- Sysadminium
- Создание файлов и просмотр их в каталоге
- Редактирование файлов
- Чтение файлов
- Команды cat и tac
- Команда grep
- Команда less
- Команды tail и head
- Редактор Nano, как пользоваться
- Установка редактора Nano
- Создание и открытие файлов
- Файл только для чтения
- Резервная копия файла
- Редактирование файлов
- Поиск и замена текста
- Вырезание, копирование и вставка текста
- Как удалить весь текст из файла
- Сохранение и выход
- Список основных горячих клавиш для работы с редактором Nano
- Категории
- Свежие записи
Sysadminium
На этом уроке по Linux мы рассмотрим создание (touch), редактирование (nano) и чтение (cat, tac, grep, less, tail) текстовых файлов.
Создание файлов и просмотр их в каталоге
Все примеры я буду показывать на Debian 11, так как на Ubuntu 22.04 все выполняется аналогично. Вообще в Linux работа в терминале на любых системах практически одинакова. Поэтому создание, редактирование и чтение файлов можно продемонстрировать на любой системе.
Для создания текстового файла служит команда touch:
С помощью команды ls можно посмотреть какие файлы есть в каталоге:
Для команды 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»:
После выполнения этой команды у Вас откроется текстовый редактор:
Для того чтобы сохранить этот файл нужно нажать комбинацию клавиш «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.
Редактор Nano, как пользоваться
Занимаясь веб-разработкой, достаточно часто возникает необходимость в редактировании конфигурации удаленного сервера и сделать это можно только удаленно через терминал. В этом помогают консольные текстовые редакторы. Ниже я опишу простой консольный редактор Nano, который включен почти во все дистрибутивы Linux.
Открыл для себя удобный консольный редактор Micro, с поддержкой мышки, рекомендую попробовать.
Установка редактора Nano
Если Nano у вас не установлен, установить его можно командой:
sudo apt update
sudo apt install nano
Команда выше подходит для операционных систем Debian/Ubuntu.
Создание и открытие файлов
Чтобы открыть существующий файл или создать новый, в командной строке наберите nano и название файла:
Сразу откроется окно редактора:
В нижней части окна располагается список основных команд и вызывающих их сочетаний клавиш ( все управление в nano выполняется с клавиатуры с использованием горячих клавиш).
В сокращениях символ ^ означает клавишу Ctrl. Например, для получение справки нужно выполнить ^G, это означает сочетание клавиш Ctrl+G.
Файл только для чтения
Если вам нужно открыть файл только для чтения используется ключ -v:
Резервная копия файла
Так же можно сделать чтобы при изменения файла создавалась его резервная копия. Для этого используется ключ -B:
После сохранения файла будет создана резервная копия файла с содержимым, которое было до изменения. Имя резервной копии соответствует имени исходного файла со значком тильды ~ на конце.
Редактирование файлов
Сразу после открытия редактора вы можете приступить к редактированию файла (в отличии, например, от редактора vim).
Поиск и замена текста
Чтобы найти какой либо текст внутри файла используйте сочетание клавиш Ctrl+W, далее введите строку поиска и нажмите Enter. Курсов переместиться на первое вхождение (относительно курсора) искомого текста, чтобы проложить поиск, нажмите сочетание клавиш Alt+W и курсор переместиться к следующему вхождению.
Чтобы найти и заменить какой-либо текст внутри файла, вам потребуется сочетание клавиш Ctrl+\. После его нажатия появится запрос на ввод текста который нужно найти и заменить, введите его и нажмите Enter. Далее нужно ввести текст на который выходите заменить, введите его и нажмите Enter.
Далее режим работы такой, при нажатии клавиши:
A — будет произведена замена всех вхождений искомого текста.
Y — заменить текст около курсора.
N — пропустить и не менять текст около курсора.
Вырезание, копирование и вставка текста
Если вам нужно вырезать и вставить целую строку, то переместите курсор на эту строку и нажмите сочетание клавиш Ctrl+K. Затем, чтобы вставить вырезанную строку из буфера, нажмите Ctrl+U.
Для копирования и вставки произвольного текста вам нужно сначала выделить его. Чтобы это сделать поместите курсор на начало текста, который планируется копировать, и нажмите сочетание клавиш Ctrl+6, затем перемещайте курсор клавишами влево вправо, чтобы выделить нужный фрагмент. Далее чтобы скопировать текст нажмите Alt+6 или вырезать Ctrl+K. Чтобы вставить используйте уже знакомое сочетание Ctrl+U.
Если вы работаете с Nano в Ubuntu через Windows Subsystem for Linux (WSL2), то сочетание клавиш Ctrl+6 работать не будет, для выделения текста используйте Alt+Shift+6
Или можно нажать Esc+Esc+6
Кстати, двойное нажатие на клавиши Esc можно использовать вместо Ctrl, т.е. Ctrl = Esc Esc
Для вставки текста из другого файла используется клавиша Ins.
Зажатой клавишей Shift и стрелками можно выделять текст.
Как удалить весь текст из файла
Комбинация клавиш Alt + T сотрет все от курсора и до конца файла. Если поставить курсор в начало файла, то сотрется все содержимое.
Сохранение и выход
Если вы просто хотите сохранить изменения и продолжить работу не закрывая редактор, то используйте сочетание клавиш Ctrl+O, далее введите имя файла или оставьте старое и нажмите Enter.
Если вам нужно сохранить изменения и выйти из редактора, то используйте сочетание клавиш:
Дальше, если вы изменяли файл, то появится вопрос: «Save modified buffer?». Если вы хотите сохранить изменения нажмите клавишу Y, появится вопрос на ввод имени файла. Введите новое имя файла или оставьте старое и нажмите Enter. Если не хотите сохранять изменения, то нажмите клавишу N.
При нажатии Ctrl+C вы вернетесь обратно в редактор.
Список основных горячих клавиш для работы с редактором Nano
Сочетание | Что делает |
---|---|
Ctrl+A | Переместить курсор в начало строки. |
Ctrl+E | Переместить курсор в конец строки. |
Ctrl+Y | Переместить курсор на 1 страницу вверх (аналог PageUp) |
Ctrl+V | Переместить курсор на 1 страницу вниз (аналог PageDown) |
Ctrl+_ | Перейти к определенной строке (после нажатия введите номер строки). |
Ctrl+C | Показать на какой строке и в какой позиции находится курсор. |
Ctrl+W | Поиск текста в файле (после нажатия введите что искать). |
Ctrl+\ | Поиск и замена текста в файле (после нажатия введите что найти/заменить, а после на что менять). |
Ctrl+D | Удалить символ под курсором. |
Ctrl+K | Удалить текущую строку. |
Ctrl+O | Сохранить изменения, не закрывая редактор. |
Ctrl+X | Выход из редактора. Если файл был изменен, появится запрос на сохранение изменений. |
Вот собственно и все основы по работе в редакторе Nano. Я думаю этого хватит для простого редактирования файлов конфигурации, но если я что-то существенное упустил, напишите в комментариях. Например я не затронул тему кастомизации редактора Nano, но мне правда она никогда не требовалась.