Секреты Терминала. Часть 17: Полезные команды для работы с файлами
Интересных новостей на примете сегодня нет, поэтому самое время вернуться к нашим статьям. Мы продолжим наш цикл статей о Терминале, писать в который новые статьи можно бесконечно долго, настолько обширной является эта область знаний. В сегодняшней, уже семнадцатой по счёту статье нам хотелось бы поделиться с читателями информацией о тех командах Терминала, которые скорее походят на полноценные приложения. Пользуясь ими, а также объединяя их, можно с успехом решать повседневные и не только задачи, экономя много времени.
Полный список таких команд занял бы много места, а описание даже базовых принципов работы с ними — это очень большой объём, которого уже могло быть хватить на целую книгу. Поэтому в этот раз поговорим о достаточно простых и часто употребляемые представители.
cat
Команда отвечает за показ содержимого файла. После этой команды перечисляем столько файлов, сколько нам нужно, все они будут выведены в окно терминала. Существует возможность указать в конце «> all_files.txt», тогда указанные файлы будут выведены не в терминал, а в указанный файл. Из наиболее ценных параметров cat отметим:
-n
— опция, необходимая в случае необходимости пронумеровать строки. В этом случае при выводе будут указаны номера строк в исходном файле, при этом сам файл, конечно же, не изменится, эта информация лишь для пользователя.
-v
— отобразить непечатаемые символы.
-e
— отобразить непечатаемые символы, а также поставить знак доллара в конце каждой строки, это бывает удобно, в случае, если необходимо как-то дальше обработать файл, опираясь на эту информацию.
cksum
Команда отображает контрольную CRC-сумму для данного файла. Бывает полезна для проверки равенства файлов и контроля целостности данных.
cmp
Утилита, которая позволяет сравнивать файлы. Иногда возникает потребность сравнить файлы, при этом не брибегая к их просмотру и сторонним утилитам. Данной программе на вход передаются имена двух сравниваемых файлов, и, если они отличаются, то будет выведено сообщение. Как и практически во всех подобных программах, в том случае, если файлы одинаковые и различий, которые можно показать, нет, то и вывода не будет.
Существуют и опции, приведём часть из них:
-b
— печатает различающиеся байты.
-l
— способствует длинному выводу, пишутся номера значения различающихся байтов.
-i
— далее пишется либо одно число, либо два, но через двоеточие. Они указывают на тот факт, сколько первых байтов должно быть пропущено, в случае с двоеточием — сколько будет пропущено в первом и во втором файле соответственно.
-n
— данная опция ограничивает количество сравниваемых байтов. Их будет не больше, чем будет задано с помощью этой опции.
head
команда, отображающая первые строки файла. Очень полезна в случае, если необходимо сравнить содержимое больших файлов. Иногда по первым строкам ясно, тот ли файл лежит перед нами, либо нет. В общем, head — некий аналог Quick Look для Терминала (насколько такой аналог там вообще возможен :).
-n
— ограничивает число строк
-b
— ограничивает число байт
history
Команда, выводящая историю работы с командной строкой, а именно те команды, что были введены и запущены на выполнение. После команды можно безо всяких ключей писать число — количество выводимых строк. Вывод как правило большой, неудобный. Достаточно первых нескольких строк, что мы и укажем. Команда отобразит список с номерами. Мы можем вызвать команды из списка введя символ «!» и после него сразу же указав тот самый номер, а последняя команда запускается на выполнения так: «!!». Заметим, что после этого она будет сдвинута в списке истории к более старым командам.
-c
— очищает истоию. Будьте осторожны с этой опцией, как и со всеми командами удаления.
-d
и затем число — удалить элемент истории под номером, который мы укажем.
iconv
Команда вызывает утилиту, изменяющую кодировку текстовых файлов.
-f
и далее название кодировки — флаг устанавливает исходную кодировку. Кодировка указывается в виде общепринятых аббревиатурных сокращений, например, ISO-8859-1, KOIR-8 или UTF-8.
-t
и название — устанавливает целевую кодировку.
Далее указываются исходные файлы, возможно несколько через пробел. Потом пишется символ «>», показывающий, что вывод программы будет направлен в файл, а в какой, мы укажем после этого символа. В итоге мы получим файл, который содержит тот же текст, однако в другой кодировке. Очень полезная команда, заменяет собой всевозможные графические конвертеры.
Традиционно напоминаем, что если у вас есть какие-либо вопросы, касающиеся Терминала, или темы, которые вам интересно было бы изучить, расскажите нам об этом. Мы постараемся учесть ваши пожелания при подготовке будущих материалов в цикл статей «Секреты Терминала».