NetTOOLSLib home page

GoНекоторые приемы, которые упрощают работу в Linux

В этой статье рассказывается о приемах быстрой работы в Linux.
Приемы, описанные в статье, будут интересны не только начинающим "линуксоидам", но какие то аспекты подойдут и опытным пользователям.
Некоторые приемы возможно не доступны в отдельных дистрибутивах Linux, но в подавляющем большинстве будут работать.

Клавиша "TAB" используется для автозаполнения

Когда вы начинаете что-то печатать в командной строке Linux, вы можете нажать клавишу tab и система предложит вам варинты продолжения команд.

В указанном ниже примере мы хотим скопировать файл file1.txt в какой то другой файл, начинаем набирать команду cp file1 , нажимаем tab и система подставляет продолжение имени файла


[user1@srv1 folders]$ cp file1

[user1@srv1 folders]$ cp file1.txt



если есть несколько вариантов продолжения, то повторное нажатие tab приведет к выводу вариантов продолжения

[user1@srv1 folders]$ cp file
file1.txt file2.txt
[user1@srv1 folders]$ cp file



Возврат к последнему рабочему каталогу.

Если вы ранее работали в каком то каталоге, а затем перешли в другой по совершенно другому пути, то для возврата к предыдущему каталогу необходимо набрать эту команду: cd -


/work/folders
[user1@srv1 folders]$ cd -
/work
[user1@srv1 work]$



Вернуться в домашний каталог

Для быстрого возврата в домашний каталог вы можете использовать команду: cd ~
Но также вы можете использовать простую команду: cd

В большинстве современных дистрибутивов Linux оболочка предварительно настроена для этой команды.


[user1@srv1 folders]$ pwd
/work/folders
[user1@srv1 folders]$ cd
[user1@srv1 ~]$



Перечислите содержимое каталога

Есть известная команда Linux: ls -l, но есть более простая команда: ll. Она выполняет ту же функцию, но быстрее набирается.
Опять же, это зависит от дистрибутивов Linux, но скорее всего вы сможете использовать его в большинстве случаев.


[user1@srv1 folders]$ pwd
/work/folders
[user1@srv1 folders]$ ll
total 0
-rw-r--r-- 1 root root 0 Dec 8 14:12 doc1.txt
-rw-r--r-- 1 root root 0 Dec 8 14:11 file1.txt
-rw-r--r-- 1 root root 0 Dec 8 14:11 file2.txt
[user1@srv1 folders]$



Запуск нескольких команд в одной строке

Предположим, необходимо выполнить несколько команд одну за другой. Для этого можно использовать разделитель ; . Таким образом, вы можете запустить несколько команд в одной строке.


command_1; command_2; command_3



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

В предыдущей команде вы видели как выполнить несколько команд в одной команде, если вам нужно убедиться в корректном завершении предыдущей команды, то вы можете использовать && разделитель.
&& необходим, когда требуется убедится, что следующая команда будет выполняться только тогда, когда предыдущая команда была успешной.


command_1 && command_2



Поиск и использование команд, которые вы использовали ранее

Для поиска команд, использованных ранее, используйте клавиши ctrl + r для запуска обратного поиска и введите часть команды.


ctrl + r search_term

[user1@srv1 ~]$
(reverse-i-search)`':



По умолчанию он покажет только один результат. Чтобы увидеть больше результатов, соответствующих вашему поисковому запросу, вам придется снова и снова использовать ctrl + r.
Чтобы выйти из обратного поиска, просто используйте ctrl + c.

В некоторых оболочках bash вы также можете использовать клавиши Page Up и Page Down со своим поисковым правилом и он автоматически завершит команду.

Разблокировка Linux-терминала от случайного нажатия ctrl + s

Комбинация клавиш ctrl + s часто используется для сохранения, но если вы случайно нажали ctrl + s в окне терминала Linux, то у вас будет заблокированный терминал.

использование ctrl + q разблокирует терминал.


ctrl + q



Переход к началу или концу строки

Более простой способ - это клавиши Home и End, но в качестве альтернативы вы можете использовать ctrl + a, чтобы перейти к началу строки, и ctrl + e, чтобы перейти к концу.

В некоторых случаях это более удобно, чем использование клавиш Home и End.

Чтение файла журнала в режиме реального времени

Если требуется анализировать журналы во время работы приложения, вы можете использовать команду tail с опцией -f.


tail -f path_to_Log



Вы также можете использовать обычные параметры grep для отображения только тех строк, которые имеют для вас значение:


tail -f path_to_log | grep search_term



Чтение сжатых журналов без извлечения

Журналы сервера обычно сжаты gzip для экономии места на диске. Обычно для чтения данных потребуется извлечение файлов во временный каталог.

Для упрощения работы можно использовать команды z...., которые помогают вам в таких ситуациях.
Команды z.... предоставляют альтернативы обычным командам, которые вы используете для работы с файлами журналов, такими как less, cat, grep и т. д.

Таким образом, при использовании zless, zcat, zgrep и т.д. читать данные можно без промежуточного извлечения.

Чтение содержимого файла

Для то чтобы увидеть содержимое файла, команда cat не лучший вариант, особенно если это большой файл. cat отобразит весь файл на вашем экране.
Вы можете использовать vi, vim или другие текстовые редакторы на основе терминала, но если вы просто хотите прочитать файл, команда less - гораздо лучший выбор.


less path_to_file



Вы можете искать тексты внутри less по странице, отображать номера строк и т.д.

Используйте последний элемент из предыдущей команды с помощью !$

Для повторения выполнения предыдущей команды удобно использовать !$


[user1@srv1 folders]$ pwd
/work/folders
[user1@srv1 folders]$ !$
pwd
/work/folders
[user1@srv1 folders]$



Повторно используйте предыдущую команду с помощью команды: !!

Вы можете вызвать всю предыдущую команду с помощью !!. Это особенно полезно, когда вам нужно запустить команду и понять, что ей нужны привилегии root.
Например: sudo !! сохраняет много нажатий клавиш.


[user1@srv1 folders]$ sudo !!
yum install telnet
[user1@srv1 folders]$



Использование псевдонима для исправления опечаток

В Linux есть возможность использования псевдонимов команд

Например, вы можете часто ошибочно набирать grp вместо grep. Если вы добавили псевдоним в ваш bashrc следующим образом:


alias grp = grep



то вам не придется повторно вводить команду.


[user1@srv1 folders]$ grp
-bash: grp: command not found
[user1@srv1 folders]$ alias grp=grep
[user1@srv1 folders]$ grp
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
[user1@srv1 folders]$



простая команда alias выведет список заданных псевдонимов.

копировать/вставить в терминал Linux

Выберите текст для копирования и щелкните правой кнопкой мыши для вставки (работает в Putty и других клиентах Windows SSH)
Выделите текст для копирования и щелкните средней кнопкой мыши (кнопка прокрутки мыши) для вставки
ctrl + shift + c для копирования и ctrl + shift + v для вставки

Принудительно завершение запущенной команды

Скорее всего это всем известная комбинация клавиш ctrl + c, чтобы остановить запущенную команду.

Использование команды yes для команд или сценариев, которые требуют интерактивного ответа

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


yes | command_or_script



Очистите файл, не удаляя его

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


> имя файла



Поиск текста в файле

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


grep -Pri Search_Term path_to_directory


Рекомендуется использование команды find.

Использование справки с любой командой

Почти все инструменты командной строки содержат страницу справки, которая показывает, как использовать команду.
Часто использование справки покажет вам основное использование команды.

Просто используйте это следующим образом:


command --help


В данной статье рассмотрены некоторые приемы более быстрой и комфортной работы в Linux.

Go


NetTOOLSLib home page
(online network tools and utilities)