Привет, посетитель сайта ZametkiNaPolyah.ru! В рубрике, посвященной системе Linux мы уже разобрались с несколькими полезными командами, которые дают нам возможность изучать систему и передвигаться по лабиринту каталогов. Теперь я предлагаю поговорить о командах, которые дают нам возможность более тесно познакомиться с системой, а именно о командах Linux, которые позволяют просматривать файлы и определять тип их содержимого.

Всего мы рассмотрим восемь команд: ls, file, cat, head, tail, less, more, wc. Давайте во вступлении коротко расскажу о их назначении. Команда ls в Unix-подобных операционных системах позволяет просматривать содержимое каталогов, мы уже о ней упоминали ранее. Команда file в Linux позволяет определить тип файла, в прошлой публикации я уже подробно описал эту команду, но приходится повторяться, иначе эта публикация будет не полной. Команда cat в самом простом своем варианте позволяет просмотреть содержимое файла, выводя его на экран эмулятора терминала, что не всегда бывает удобно. Команда head выводит первых 10 строк файла на экран эмулятора терминала хотя ее поведение можно изменить при помощи параметров. Команда tail в своем стандартном режиме работы выводит последних 10 строк файл на экран, ее поведение также меняется параметрами. Команда less в Linux используется для просмотра больших файлов, использовать ее удобнее, чем команду cat, поскольку она разбивает содержимое файла на страницы и дает возможность осуществлять поиск по файлу. Команда more не рекомендована к использованию, так как есть команда less, ее я упоминаю лишь потому, что есть некоторые дистрибутивы Linux, в которых есть more, но нет less.  И наконец команда wc используется в системах Linux для определения размера файлов, причем команда wc может выводить размер файла в попугаях, удавах и мартышках, вернее в байтах, строках, символах и других единицах измерения.

Немного о файлах в Linux

Перед тем как мы начнем рассматривать команды оболочки, которые дают возможность просматривать файлы и получать о них информацию, давайте немного поговорим о самих файлах. Буквально в прошлой публикации я отмечал два очень важных момента, касающихся файлов в Linux: все сущее в Unix-подобных операционных системах есть файл и для определения типа файлов операционным системам типа Linux вовсе не требуется расширения, хотя в Linux есть приложения, которые определяют тип файла по его расширению.

Также стоит заметить, что в Linux, в том числе и в дистрибутиве Linux Mint, есть специальные файлы, имена которых начинаются с точки, эти файлы считаются скрытыми и, например, когда мы пользуемся командной ls без дополнительных параметров, мы эти файлы не увидим. Чуть позже мы посмотрим мой домашний каталог и обнаружим несколько скрытых файлов, которые хранят в себе различные параметры учетной записи пользователя, такие файлы называются конфигурационным, пользуясь Linux, вам придется часто работать с такими файлами: просматривать и редактировать их.

Также стоит заметить, что операционные системы подобные Unix различают регистр символов в именах файлов, например: file1, File1 и FILE1 – это три разных файла, хотя содержимое у них может быть одинаковым.

Обычно любой дистрибутив Linux сможет работать с файлами, имена которых содержат пробелы, кириллицу и знаки пунктуации, но использовать пробелы, кириллицу и знаки пунктуации (кроме точки, дефиса и нижнего подчеркивания) не стоит для своего удобства. Рекомендация: если имя вашего файла состоит из двух слов, то вместо пробелов используйте нижнее подчеркивание, подобная практика даст вам повод в будущем любить себя прошлого так, как будто вы нашли деньги в куртке, которую давно не носили.

Тут нам стоит отметить, что не только файлы, но и каталоги в Linux могут быть с точкой, например, каталог .ssh. Что же, на данном этапе нам достаточно полученной информации, чтобы начать знакомство с некоторыми полезными и часто используемыми командами.

Если у вас еще не установлена копия дистрибутива Linux и вы не знаете как это сделать, то рекомендую вам ознакомиться с несколькими публикациями, где я последовательно рассказываю про виртуальную машину Oracle VirtualBox и ее установку на Windows 10, затем перейдите к публикации про установку дистрибутива Linux Mint на виртуальную машину, а чтобы быстрее разобраться с интерфейсом VirtualBox ознакомьтесь с небольшой инструкцией.

ls – команда для получения информации о файлах в каталоге Linux

Мы уже видели возможности команды ls, когда говорили про навигацию в Linux, но ее возможности куда шире благодаря дополнительным параметра, некоторые из них мы сейчас и рассмотрим. Так выглядит результат работы команды ls без параметров для моего домашнего каталога:

[php]

kirill@AsusPC ~ $ ls
Dropbox Документы Изображения Общедоступные Шаблоны
Видео Загрузки Музыка Рабочий стол
kirill@AsusPC ~ $

[/php]

А вот так с параметром -l, который выводит дополнительную информацию о объектах, находящихся в каталоге:

[php]

kirill@AsusPC ~ $ ls -l
итого 36
drwx------ 4 kirill kirill 4096 окт 9 00:07 Dropbox
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Видео
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Документы
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Загрузки
drwxr-xr-x 2 kirill kirill 4096 окт 10 15:15 Изображения
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Музыка
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Общедоступные
drwxr-xr-x 3 kirill kirill 4096 окт 10 15:05 Рабочий стол
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Шаблоны
kirill@AsusPC ~ $

[/php]

Как видите, мы получили довольно много информации о файлах и каталогах одной простой командной, если вы пока не понимаете, что здесь к чему, не пугайтесь, буквально через две публикации все встанет на свои места. На самом деле в домашнем каталоге папок и файлов куда больше, давайте передадим ей еще и параметр -a команде ls:

[php]

kirill@AsusPC ~ $ ls -la
итого 152
drwxr-xr-x 21 kirill kirill 4096 окт 26 19:54 .
drwxr-xr-x 4 root root 4096 окт 8 23:31 ...
— rw------- 1 kirill kirill 5477 окт 23 20:55 .bash_history
— rw-r--r-- 1 kirill kirill 220 окт 8 23:31 .bash_logout
— rw-r--r-- 1 kirill kirill 4000 окт 8 23:31 .bashrc
drwx------ 10 kirill kirill 4096 окт 26 20:04 .cache
drwxr-xr-x 16 kirill kirill 4096 окт 11 15:31 .config
— rw-r--r-- 1 kirill kirill 23 окт 8 23:46 .dmrc
drwx------ 6 kirill kirill 4096 окт 26 19:54 .dropbox
drwx------ 4 kirill kirill 4096 окт 9 00:07 Dropbox
drwxr-xr-x 3 kirill kirill 4096 окт 17 22:38 .dropbox-dist
drwx------ 2 kirill kirill 4096 окт 22 13:37 .gconf
— rw-r----- 1 kirill kirill 0 окт 9 00:08 .gksu.lock
drwx------ 3 kirill kirill 4096 окт 26 19:53 .gnupg
— rw-r--r-- 1 kirill kirill 22 окт 8 23:31 .gtkrc-2.0
— rw-r--r-- 1 kirill kirill 516 окт 8 23:31 .gtkrc-xfce
— rw------- 1 kirill kirill 318 окт 26 19:53 .ICEauthority
— rw------- 1 kirill kirill 100 окт 11 15:45 .lesshst
drwxrwxr-x 3 kirill kirill 4096 окт 8 23:46 .linuxmint
drwxr-xr-x 3 kirill kirill 4096 окт 8 23:31 .local
drwxr-xr-x 4 kirill kirill 4096 окт 9 00:06 .mozilla
— rw-r--r-- 1 kirill kirill 655 окт 8 23:31 .profile
— rw-r--r-- 1 kirill kirill 0 окт 9 00:05 .sudo_as_admin_successful
drwxrwxr-x 3 kirill kirill 4096 окт 8 23:47 .thumbnails
— rw-r----- 1 kirill kirill 5 окт 26 19:53 .vboxclient-clipboard.pid
— rw-r----- 1 kirill kirill 5 окт 26 19:53 .vboxclient-display.pid
— rw-r----- 1 kirill kirill 5 окт 26 19:53 .vboxclient-draganddrop.pid
— rw-r----- 1 kirill kirill 5 окт 26 19:53 .vboxclient-seamless.pid
— rw------- 1 kirill kirill 51 окт 26 19:53 .Xauthority
— rw-rw-r-- 1 kirill kirill 131 окт 9 00:00 .xinputrc
— rw------- 1 kirill kirill 0 окт 26 19:53 .xsession-errors
— rw------- 1 kirill kirill 360 окт 23 20:55 .xsession-errors.old
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Видео
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Документы
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Загрузки
drwxr-xr-x 2 kirill kirill 4096 окт 10 15:15 Изображения
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Музыка
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Общедоступные
drwxr-xr-x 3 kirill kirill 4096 окт 10 15:05 Рабочий стол
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Шаблоны
kirill@AsusPC ~ $

[/php]

Их можно комбинировать и вот таким образом:

[php]

kirill@AsusPC ~ $ ls -l -a
итого 152
drwxr-xr-x 21 kirill kirill 4096 окт 26 19:54 .
drwxr-xr-x 4 root root 4096 окт 8 23:31 ...
— rw------- 1 kirill kirill 5477 окт 23 20:55 .bash_history
— rw-r--r-- 1 kirill kirill 220 окт 8 23:31 .bash_logout
— rw-r--r-- 1 kirill kirill 4000 окт 8 23:31 .bashrc
drwx------ 10 kirill kirill 4096 окт 26 20:04 .cache
drwxr-xr-x 16 kirill kirill 4096 окт 11 15:31 .config
— rw-r--r-- 1 kirill kirill 23 окт 8 23:46 .dmrc
drwx------ 6 kirill kirill 4096 окт 26 19:54 .dropbox
drwx------ 4 kirill kirill 4096 окт 9 00:07 Dropbox
drwxr-xr-x 3 kirill kirill 4096 окт 17 22:38 .dropbox-dist
drwx------ 2 kirill kirill 4096 окт 22 13:37 .gconf
— rw-r----- 1 kirill kirill 0 окт 9 00:08 .gksu.lock
drwx------ 3 kirill kirill 4096 окт 26 19:53 .gnupg
— rw-r--r-- 1 kirill kirill 22 окт 8 23:31 .gtkrc-2.0
— rw-r--r-- 1 kirill kirill 516 окт 8 23:31 .gtkrc-xfce
— rw------- 1 kirill kirill 318 окт 26 19:53 .ICEauthority
— rw------- 1 kirill kirill 100 окт 11 15:45 .lesshst
drwxrwxr-x 3 kirill kirill 4096 окт 8 23:46 .linuxmint
drwxr-xr-x 3 kirill kirill 4096 окт 8 23:31 .local
drwxr-xr-x 4 kirill kirill 4096 окт 9 00:06 .mozilla
— rw-r--r-- 1 kirill kirill 655 окт 8 23:31 .profile
— rw-r--r-- 1 kirill kirill 0 окт 9 00:05 .sudo_as_admin_successful
drwxrwxr-x 3 kirill kirill 4096 окт 8 23:47 .thumbnails
— rw-r----- 1 kirill kirill 5 окт 26 19:53 .vboxclient-clipboard.pid
— rw-r----- 1 kirill kirill 5 окт 26 19:53 .vboxclient-display.pid
— rw-r----- 1 kirill kirill 5 окт 26 19:53 .vboxclient-draganddrop.pid
— rw-r----- 1 kirill kirill 5 окт 26 19:53 .vboxclient-seamless.pid
— rw------- 1 kirill kirill 51 окт 26 19:53 .Xauthority
— rw-rw-r-- 1 kirill kirill 131 окт 9 00:00 .xinputrc
— rw------- 1 kirill kirill 0 окт 26 19:53 .xsession-errors
— rw------- 1 kirill kirill 360 окт 23 20:55 .xsession-errors.old
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Видео
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Документы
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Загрузки
drwxr-xr-x 2 kirill kirill 4096 окт 10 15:15 Изображения
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Музыка
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Общедоступные
drwxr-xr-x 3 kirill kirill 4096 окт 10 15:05 Рабочий стол
drwxr-xr-x 2 kirill kirill 4096 окт 8 23:46 Шаблоны
kirill@AsusPC ~ $

[/php]

А еще команда ls может показывать содержимое каталогов, отличных от текущего рабочего каталога, для этого ей нужно передать в качестве аргумента путь к каталогу, который вы хотите посмотреть:

[php]

kirill@AsusPC ~ $ ls /home/kirill/'Рабочий стол'/dir1
dir2 dir3 file1 file2 file3
kirill@AsusPC ~ $

[/php]

Параметры в этом случае также можно использовать:

[php]

kirill@AsusPC ~ $ ls /home/kirill/'Рабочий стол'/dir1 -la
итого 16
drwxrwxr-x 4 kirill kirill 4096 окт 10 15:05 .
drwxr-xr-x 3 kirill kirill 4096 окт 10 15:05 ...
drwxrwxr-x 4 kirill kirill 4096 окт 11 15:57 dir2
drwxrwxr-x 2 kirill kirill 4096 окт 10 15:05 dir3
— rw-rw-r-- 1 kirill kirill 0 окт 10 15:05 file1
— rw-rw-r-- 1 kirill kirill 0 окт 10 15:05 file2
— rw-rw-r-- 1 kirill kirill 0 окт 10 15:05 file3
kirill@AsusPC ~ $

[/php]

Мы рассмотрели несколько полезных примеров использования команды ls, но это далеко не всё.

file – команда для определения типа файлов в Linux

С командой file мы уже знакомы, но данная часть была бы не совсем полной, если бы ее не упомянули здесь. Команды file помогает определить тип файла, ведь в операционных системах с ядром Linux у файлов необязательно будет расширение, а тип файла нам иногда требуется определить. Давайте сперва посмотрим на содержимое уже знакомого нам каталога dir2:

[php]

kirill@AsusPC ~ $ ls /home/kirill/'Рабочий стол'/dir1/dir2 -la
итого 788
drwxrwxr-x 4 kirill kirill 4096 окт 11 15:57 .
drwxrwxr-x 4 kirill kirill 4096 окт 10 15:05 ...
drwxrwxr-x 2 kirill kirill 4096 окт 10 15:07 dir4
— rw-rw-r-- 1 kirill kirill 33398 окт 11 15:09 dir5
drwxrwxr-x 2 kirill kirill 4096 окт 10 15:06 dir6
— rw-rw-r-- 1 kirill kirill 5888 окт 11 15:57 file5
— rw-rw-r-- 1 kirill kirill 24 окт 11 13:13 file6
— rw-rw-r-- 1 kirill kirill 14 окт 10 16:10 pict1.jpg
— rw-rw-r-- 1 kirill kirill 0 окт 10 16:11 pict2.png
— rw-rw-r-- 1 kirill kirill 39 окт 11 13:15 .shadow_file
— rw-rw-r-- 1 kirill kirill 730979 окт 11 13:12 vasya
kirill@AsusPC ~ $

[/php]

А теперь давайте определим тип всех объектов файловой системы, находящихся в этом каталоге при помощи команды file:

[php]

kirill@AsusPC ~ $ cd /home/kirill/'Рабочий стол'/dir1/dir2
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file dir5
dir5: UTF-8 Unicode text
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Здесь мы передали только один файл команде file и она определила, что это обычный текстовый файл и указала его кодировку. Но еще команде file можно указать сразу несколько имен файлов, разделяя их пробелом:

[php]
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file dir4 dir5 dir6 file5 file6 pict1.jpg pict2.png .shadow_file vasya
dir4: directory
dir5: UTF-8 Unicode text
dir6: directory
file5: UTF-8 Unicode text
file6: UTF-8 Unicode text
pict1.jpg: UTF-8 Unicode text
pict2.png: empty
.shadow_file: UTF-8 Unicode text
vasya: PNG image data, 1920 x 1000, 8-bit/color RGB, non-interlaced
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Теперь мы видим, что в каталоге dir2 является изображением, что текстом, а где здесь вообще пустой файл. Давайте попробуем перейти в домашний каталог (cd ~) и оттуда определить тип файла, который находится в каталоге dir2:

[php]

kirill@AsusPC ~ $ cd ~
kirill@AsusPC ~ $ file /home/kirill/'Рабочий стол'/dir1/dir2/file5
/home/kirill/Рабочий стол/dir1/dir2/file5: UTF-8 Unicode text
kirill@AsusPC ~ $

[/php]

Как видим, команда file, как и многие другие команды Linux может работать не только с объектами текущего рабочего каталога, но и проверять файлы по указанному пути, в данном случае мы, находясь в своем домашнем каталоге проверили файл, который находится в каталоге dir2, указав полный путь до этого файла.

 

cat – команда для вывода содержимого файлов в Linux

Команда cat в Linux выполняет две функции в зависимости от количества переданных аргументов. Первая функция: данная команда позволяет просмотреть содержимое файла. Вот так мы можем посмотреть содержимое файла, вернее вывести его на экран терминала:

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ cat file6
Второй текст
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

 

Но содержимое может быть довольно-таки большим и вывод команды cat будет не очень читабельным:

Команда cat выводит содержимое файла непосредственно на экран эмулятора терминала

Команда cat выводит содержимое файла непосредственно на экран эмулятора терминала

Команда cat выводит содержимое файла непосредственно на экран эмулятора терминала, что не очень удобно если содержимое файла достаточно велико, для его просмотра придется пользоваться прокруткой, а о том, чтобы что-то быстро найти не может быть и речи. Если команде cat передать два и более аргумента, то она объединить содержимое нескольких файлов и выведет нам на экран:

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ cat pict1.jpg file6
Привет!
Второй текст
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Обратите внимание: сперва было выведено содержимое файла pict1.jpg, а затем к нему добавилось содержимое файла с именем file6. Теоретически команде cat можно передавать неограниченное число аргументов и таким образом объединять их содержимое на экране вывода терминала. А если cat в качестве аргумента передать имя каталога, то она нам сообщит, что это не файл, а каталог и больше ничего не выведет.

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ cat dir6
cat: dir6: Это каталог
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Польза от команды cat для нас пока не очень очевидна и будет не очевидна до тех пор, пока мы не разберемся с перенаправлением и стандартным ввод-выводом в Linux. Замечу, что команду cat можно использовать не только в текущем рабочем каталоге, но и передавать ей в качестве аргумента путь до файла, лежащего в другой папке, но это вы можете попробовать самостоятельно.

head – команда для вывода первых 10 строка файла в Linux

Иногда вам требуется просмотр не весь файл целиком, а только первых несколько строк, для этого есть команда head, которая без дополнительных параметров выводит первых 10 строк файла на экран:

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ head dir5
1.В этом файле будет очень много много текста
2.В этом файле будет очень много много текста
3.В этом файле будет очень много много текста
4.В этом файле будет очень много много текста
5.В этом файле будет очень много много текста
6.В этом файле будет очень много много текста
7.В этом файле будет очень много много текста
8.В этом файле будет очень много много текста
9.В этом файле будет очень много много текста
10.В этом файле будет очень много много текста
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Данная команда не нумерует строки, это сделал я непосредственно в текстовом файле. У команды head есть параметр -n, который позволяет задать количество строк, которые вы хотите увидеть, это довольно просто (после параметра -n нужно указать количество строк, которое вы хотите увидеть):

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ head dir5 -n 12
1.В этом файле будет очень много много текста
2.В этом файле будет очень много много текста
3.В этом файле будет очень много много текста
4.В этом файле будет очень много много текста
5.В этом файле будет очень много много текста
6.В этом файле будет очень много много текста
7.В этом файле будет очень много много текста
8.В этом файле будет очень много много текста
9.В этом файле будет очень много много текста
10.В этом файле будет очень много много текста
11.В этом файле будет очень много много текста
В этом файле будет очень много много текста
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Можно немного изменить режим работы команды head и сделать так, чтобы команда печатала весь файл, кроме последних n строк, для этого перед число в параметре нужно указать знак минус:

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ head dir5 -n -10
1.В этом файле будет очень много много текста
2.В этом файле будет очень много много текста
3.В этом файле будет очень много много текста
4.В этом файле будет очень много много текста
5.В этом файле будет очень много много текста
6.В этом файле будет очень много много текста
7.В этом файле будет очень много много текста
8.В этом файле будет очень много много текста
9.В этом файле будет очень много много текста
10.В этом файле будет очень много много текста
11.В этом файле будет очень много много текста
В этом файле будет очень много много текста

.............

В этом файле будет очень много много текста
401.В этом файле будет очень много много текста
402.В этом файле будет очень много много текста
403.В этом файле будет очень много много текста
404.В этом файле будет очень много много текста
405.В этом файле будет очень много много текста
406.В этом файле будет очень много много текста
407.В этом файле будет очень много много текста
408.В этом файле будет очень много много текста
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Вместо строк команда head может выводить первых n байт, за это отвечает параметр -c:

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ head dir5 -c 400
1.В этом файле будет очень много много текста
2.В этом файле будет очень много много текста
3.В этом файле будет очень много много текста
4.В этом файле будет очень много много текста
5.В этом файле будет очень много много тkirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Обратите внимание: для параметра -с нужно обязательно указывать количество выводимых на экран байт. Можно пропустить последних n байт и вывести оставшееся содержимое файла, для этого поставьте знак минус перед числом.

Собственно, это всё, что стоит знать о команде head. Хотя у этой команды есть еще несколько параметров, воспользуйтесь командой man, чтобы получить справку: man head.

tail – команда для вывода последних 10 строк файла в Linux

Команда tail похожа на head, но в отличие от предыдущей, данная команда выводит последних 10 строк из указанного файла, выглядит это примерно так:

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ tail dir5
409.В этом файле будет очень много много текста
410.В этом файле будет очень много много текста
411.В этом файле будет очень много много текста
412.В этом файле будет очень много много текста
413.В этом файле будет очень много много текста
414.В этом файле будет очень много много текста
415.В этом файле будет очень много много текста
416.В этом файле будет очень много много текста

dfsfsdfsdfsdfsd
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Также команда tail обладает рядом параметров, которые несколько расширяют ее арсенал возможностей. Например, здесь точно также можно задать количество выводимых строк при помощи параметра -n:

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ tail dir5 -n 17
402.В этом файле будет очень много много текста
403.В этом файле будет очень много много текста
404.В этом файле будет очень много много текста
405.В этом файле будет очень много много текста
406.В этом файле будет очень много много текста
407.В этом файле будет очень много много текста
408.В этом файле будет очень много много текста
409.В этом файле будет очень много много текста
410.В этом файле будет очень много много текста
411.В этом файле будет очень много много текста
412.В этом файле будет очень много много текста
413.В этом файле будет очень много много текста
414.В этом файле будет очень много много текста
415.В этом файле будет очень много много текста
416.В этом файле будет очень много много текста

dfsfsdfsdfsdfsd
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Еще команда tail может напечатать строки, начиная с определенной строки при помощи параметра -n+390 (вместо 390 любое другое число), таким образом tail выведет весь файл, начиная со строки под номером 390:

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ tail dir5 -n+390
В этом файле будет очень много много текста

fdgdfgfdgdf
В этом файле будет очень много много текста
В этом файле будет очень много много текста
В этом файле будет очень много много текста
В этом файле будет очень много много текста
В этом файле будет очень много много текста
В этом файле будет очень много много текста
В этом файле будет очень много много текста
В этом файле будет очень много много текста
В этом файле будет очень много много текста
В этом файле будет очень много много текста
401.В этом файле будет очень много много текста
402.В этом файле будет очень много много текста
403.В этом файле будет очень много много текста
404.В этом файле будет очень много много текста
405.В этом файле будет очень много много текста
406.В этом файле будет очень много много текста
407.В этом файле будет очень много много текста
408.В этом файле будет очень много много текста
409.В этом файле будет очень много много текста
410.В этом файле будет очень много много текста
411.В этом файле будет очень много много текста
412.В этом файле будет очень много много текста
413.В этом файле будет очень много много текста
414.В этом файле будет очень много много текста
415.В этом файле будет очень много много текста
416.В этом файле будет очень много много текста

dfsfsdfsdfsdfsd
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Команда tail, как и head, может работать с байтами, здесь также используется параметр -c:

[php]

kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ tail dir5 -c 400
очень много много текста
413.В этом файле будет очень много много текста
414.В этом файле будет очень много много текста
415.В этом файле будет очень много много текста
416.В этом файле будет очень много много текста

dfsfsdfsdfsdfsd
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

А если воспользоваться конструкцией -c+49, то tail напечатает весь файл, начиная с 49 байта. Есть еще одна важная особенность работы команды tail, ее можно использовать для динамического вывода данных или для отслеживания изменений в файле, для этих целей используется специальный параметр -F. Когда вы выполните команду tail -F для какого-либо файла, то командная оболочка не станет возвращать вам приглашение, а будет ждать добавление новых строк в указанный файл, чтобы затем вывести изменения вам на экран. К сожалению, скрином это показать не представляется возможным, но учтите, после того как вы выполните команду tail с параметром -F, вы не увидите на экране терминала приглашения.

Чтобы вернуть управление и получить приглашение от командной оболочки, воспользуйтесь сочетанием клавиш Ctrl+C. Мы еще попробуем поработать с командами tail и head, когда пойдет разговор о конвейерах и фильтрах.

less – команда для постраничного просмотра содержимого файла в Linux

Как мы уже видели ранее, использовать команду cat для больших файлов не очень удобно и более того – не очень-то и правильно, ведь в Unix-подобных операционных системах есть замечательная команда less, которая предназначена для постраничного просмотра текстовых файлов. Команду less используют многие пользователи Linux, что просматривать конфигурационные файлы и разбираться с тем, как работает та или иная штука или же команду less можно использовать, чтобы понять, как работает та или иная программа, ведь в Linux некоторые программы – это сценарии, написанные в текстовом файле. Откройте текстовый файл при помощи команду less.

Текстовый файл, открытый командой less

Текстовый файл, открытый командой less

Обратите внимание как изменилось окно эмулятора терминала: вместо всех предыдущих команд и выводов мы теперь видим содержимое файла, которое less разбил на страницы.

Файл можно прокручивать вверх и вниз при помощи клавиши «Пробел» вы можете листать файл вниз, а клавиша «b» позволяет листать вверх. Стрелки вверх и вниз дают нам возможность прокрутить файл вверх или вниз на одну строку. Кнопка «G» переместит вас в конец текстового файла, «g» отправит вас в начало файла. Клавиша «h» вызовет для вас справку по работе с командой less, а «q» закроет текстовый файл, и вы увидите приглашение.

Но при помощи команды less можно осуществлять поиск по файлу, когда вы открыли файл при помощи less, то можете воспользоваться вот такой конструкцией для поиска «вперед» по файлу:

[php]

/прив

[/php]

Здесь после символа «/» вы вписываете слово, которое хотите найти в файле. Если less нашла вхождение, а вы хотите продолжить поиск, то нажмите клавишу «n», это продолжит поиск, продолжать можно до конца файла.

Поиск можно осуществлять и «назад», для этого воспользуйтесь вот такой конструкцией, естественно, файл должен быть открыт при помощи less:

[php]

?прив

[/php]

Здесь точно также для продолжения поиска можно использовать клавишу «n». Но и в первом, и во втором случае можно воспользоваться клавишей «N», чтобы посмотреть предыдущее найденное вхождение.

Замечу, что это лишь те возможности команды less, которым вы будете пользоваться чаще всего, получите больше информации о команде, воспользовавшись: man less.

more – устаревший аналог команды less в Linux

Если вы используете достаточно древний дистрибутив Linux, то, возможно, что в нем не будет работать команда less, но в таком дистрибутиве есть команда more, которая имеет несколько более скромные возможности, чем less, если вам нужно больше информации по этой команде, то воспользуйтесь интерактивной справкой. Команду more применять в современных дистрибутивах не стоит.

Здесь мы отметим, что есть еще команда pg, которая предоставляет функционал аналогичный двум предыдущим, но о ней мы поговорим в дальнейшем.

wc – команда для определения размера файла в Linux

Про команду wc мы еще поговорим, но сейчас нам важно отметить, что команда wc дает нам возможность определить размер файла в системах Linux, да и имя команды wc (word count) можно перевести как счетчик слов и, как становится понятно из названия, эта команда позволяет нам подсчитать количество строк, слов и байтов в файлах:

[php]

kirill@AsusPC ~ $ cd /home/kirill/"Рабочий стол"/dir1/dir2
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ ls
dir4 dir5 dir6 file5 file6 pict1.jpg pict2.png vasya
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ wc dir5
420 3330 33398 dir5
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $

[/php]

Команде необязательно передавать аргументы, она может работать со стандартным вводом. Нам стоит отметить, что у wc есть несколько полезных параметров:

  • -l вывод количества новых строк;
  • -w вывод количества слов;
  • -m вывод общего количества символов;
  • -c вывод количества байт;
  • -L вывод длину самой длинной строки в заданном тексте.

Итак, мы рассмотрели самые востребованные команды оболочки, которые позволяют нам просматривать файлы и получать об этих самых файлах полезную информацию. Команда ls используется для просмотра содержимого каталогов. Команда file применяется тогда, когда есть необходимость точно знать тип файла. Команда cat вывод содержимое файла на экран терминала, если в качестве аргумента ей передать один файл, если два и больше, то она объединит содержимое файлов на экране. Команды head и tail используются для частичного вывода данных из файла, а вторую можно еще использовать для мониторинга логов. А команды less и more применяются для просмотра содержимого файлов.

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Loading Disqus Comments ...