На этом уроке по Linux мы рассмотрим создание (touch), редактирование (nano) и чтение (cat, tac, grep, less, tail) текстовых файлов.

Создание файлов и просмотр их в каталоге

Все примеры я буду показывать на Debian 11, так как на Ubuntu 22.04 все выполняется аналогично. Вообще в Linux работа в терминале на любых системах практически одинакова. Поэтому создание, редактирование и чтение файлов можно продемонстрировать на любой системе.

Для создания текстового файла служит команда touch:

alex@deb:~$ touch file.txt

С помощью команды ls можно посмотреть какие файлы есть в каталоге:

alex@deb:~$ ls
file.txt

Для команды ls есть дополнительные опции:

  • -l — показывает информацию по каждому файлу;
  • -h — показывает размер файла в удобном для человека виде (байты, килобайты, мегабайты и т.д.). Эту опцию можно использовать только вместе в -l.

Опции можно писать слитно (ls -lh) или раздельно (ls -l -h). Вот пример:

alex@deb:~$ ls -lh
итого 0
-rw-r--r-- 1 alex alex 0 ноя 26 16:15 file.txt

Команда touch не только создает файл, но если этот файл уже есть, то обновляет время доступа и модификации данного файла:

alex@deb:~$ touch file.txt

alex@deb:~$ ls -lh
итого 0
-rw-r--r-- 1 alex alex 0 ноя 26 16:17 file.txt

Как вы могли заметить вначале время последнего изменения файла было 16:15, а после выполнения команды touch оно изменилось на 16:17. На самом деле команда touch не изменила файл, она лишь прикоснулась к файлу и тем самым изменила его время доступа. Кстати, с английского touch переводится как прикасаться.

Давайте теперь разберём вывод команды ls -lh:

Тип файла
| Права 
| |         Кол-во ссылок
| |         | Владелец
| |         | |    Группа
| |         | |    |    Размер
| |         | |    |    | Дата и время последнего касания или изменения
| |         | |    |    | |            Имя файла
| |         | |    |    | |            |  
- rw-r--r-- 1 alex alex 0 ноя 26 16:17 file.txt

Пока что вам нужно запомнить что таким образом можно посмотреть размер файла и дату его изменения, с остальным разберемся позже. И ещё запомните 2 типа файлов:

  • знак тире “-“ – это обычный файл;
  • символ “d” – это каталог;
  • есть и другие типы файлов, но пока их рассматривать не будем.

Редактирование файлов

Отредактировать текстовый файл можно с помощью текстового редактора “nano”:

alex@deb:~$ nano file.txt

После выполнения этой команды у Вас откроется текстовый редактор:

Для того чтобы сохранить этот файл нужно нажать комбинацию клавиш “Ctrl+o“.

А чтобы закончить редактирование и закрыть этот файл нужно нажать “Ctrl+x“. При этом у вас спросят, хотите ли вы сохранить этот файл и если да, то нужно ввести “y” и нажать клавишу “Enter“. Таким образом необязательно использовать комбинацию “Ctrl+o” перед закрытием файла.

Внизу я выделил подсказки текстового редактора Nano, в подсказках символ “^” – это клавиша Ctrl.

Если с помощью nano открыть несуществующий файл, то файл будет создан как только вы его сохраните. Поэтому выполнять touch перед nano не обязательно.

Чтение файлов

Команды cat и tac

Давайте теперь научимся читать текстовые файлы. Чаще всего для этого используется команда cat:

alex@deb:~$ cat file.txt
И тут мы можем
вводить текст,
какой только пожелаем.

У команды cat есть опция -n, которая выводит номера строк:

alex@deb:~$ cat -n file.txt
     1  И тут мы можем
     2  вводить текст,
     3  какой только пожелаем.

Для команды cat есть команда перевёртыш, это команда tac. Она выводит текст задом наперед:

alex@deb:~$ tac file.txt
какой только пожелаем.
вводить текст,
И тут мы можем

Команда grep

Если Вам нужно что-то найти в тексте, то для этого используйте команду grep. Например, мы ищем строку в которой встречается слово “какой”:

alex@deb:~$ grep какой file.txt
какой только пожелаем.

Команда less

Если текст длинный то вместо cat лучше использовать команду less:

alex@deb:~$ less /etc/ssh/sshd_config

Используя less мы можем кнопками вверх / вниз перемещаться по тексту:

Если нажать кнопу «/», то откроется строка, куда можно ввести фразу для поиска в этом файле. Давайте, например, найдём строку со словом “Port”:

При поиске удобно использовать кнопку “n” для дальнейшего поиска введенной фразы, и комбинацию “Shift+n” для поиска в обратном направлении (к началу файла). Для выхода из программы используйте клавишу”q“.

Команды tail и head

Если Вам нужно посмотреть последние строки файла используйте команду “tail“:

alex@deb:~$ tail /etc/ssh/sshd_config

# override default of no subsystems
Subsystem       sftp    /usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server 

А если нужно посмотреть первые строки файла то команду “head“:

alex@deb:~$ head /etc/ssh/sshd_config
#       $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the

Эти две команды выводят 10 последних (tail) или 10 первых (head) строк файла. И у этих команд есть параметр -n, с помощью которого можно указать сколько строк выводить, например выведем по 3 строки:

alex@deb:~$ tail -n 3 /etc/ssh/sshd_config
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server

alex@deb:~$ head -n 3 /etc/ssh/sshd_config
#       $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $

# This is the sshd server system-wide configuration file.  See

А ещё команда tail позволяет выводить изменяющиеся файлы, например логи. Для этого используется опция -f. Чтобы закончить наблюдение за файлом, нужно нажать комбинацию Ctrl+c.


Сводка
Linux. Работа с текстовыми файлами
Имя статьи
Linux. Работа с текстовыми файлами
Описание
На этом уроке по Linux мы рассмотрим создание (touch), редактирование (nano) и чтение (cat, tac, grep, less, tail) текстовых файлов

Добавить комментарий

Ваш адрес email не будет опубликован.