Топ-20 малоизвестных приемов и команд Linux

Любому профессиональному разработчику или же простому IT-специалисту, которому приходится иметь дело с Linux, в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом). Независимо от того, новичок вы или гуру, здесь вы найдете для себя полезное среди нижеприведенных советов и рекомендаций.

Тесное знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Некоторые из перечисленных приёмов работы в командной строке Linux, которые перечислены ниже, обязательно попадут в ваш личный список полезных команд!

1. Полезные комбинации клавиш

Команда clear очищает экран терминала. Комбинация клавиш Ctrl + L позволяет добиться того же самого быстрее.

Комбинация клавиш Alt + . позволяет перемещаться по ранее введённым командам. Комбинация клавиш Ctrl + U убирает из строки всё то, что уже в неё введено. Например, можете это попробовать для очистки введённого в командной строке пароля.

Опытные пользователи, возможно, знают, что история запущенных команд сохраняется в файле ~/.bash_history и может быть запрошена с помощью команды history.
Просто вставьте один или несколько пробелов перед вводом команды в терминале, и она не будет записана в истории команд: [space] [command]

«Ctrl-x-e» — эта команда очень полезна для администраторов и разработчиков. Для автоматизации повседневных задач администратору требуется редактор, например vi, vim, nano и т.д. Нажав «Ctrl-x-e», вы сразу запустите текстовый редактор, установленный в вашей системе в качестве редактора по умолчанию.

<Alt>. и <Esc>. Данные сочетания клавиш на самом деле являются не командами, а твиком, подставляющим в командную строку последнюю введенную команду. Просто нажмите «Alt» или «Esc», и, продолжая удерживать клавишу, нажимайте «.».

2. Команда «man»

Начнем с простого, команда man, что означает manual. Если хотите прочитать о какой-либо команде, просто наберите:

man [command]

Вот так можно прочитать мануал по man’у:

man man

man — не малоизвестная команда, ее вы найдете в любом учебнике Unix’а, однако я бы хотел обратить ваше внимание на некоторые ее особенности.

Так, например, чтобы прочитать про ASCII-таблицу, наберите следующее:

man ascii

Путались когда-нибудь, что меньше пико- или фемто-? Пробуйте следующее:

man units

Подобных веселых команд еще много. Есть с чем поразвлечься. (попробуйте xkill). А пока, идем дальше.

3. Переход в предыдущую директорию

Все мы используем команду cd .. для перехода в родительскую директорию. А для перехода к предыдущей директории можно использовать команду cd -. Этот приём похож на кнопку «Назад». Запомните, если вы случайно сменили директорию, можно просто вернуться в последнюю набрав: cd —

test@linotest:~/Downloads$ cd —
/home/kav
test@linotest:~$ cd —
/home/kav/Downloads
test@linoxide:~/Downloads$

Тут мы сначала находились в директории Downloads, затем переместились в директорию Home, и, наконец, снова вернулись в директорию Downloads.

4. Повтор последней команды

Для того, чтобы повторить предыдущую команду, просто введите !!. В этом примере мы повторим предыдущую команду с правами суперпользователя.

$ apt install vlc
E: Could not open lock file /var/lib/dpkg/lock — open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Подобная ситуация подчеркивает важность команды sudo в Unix. sudo выполняет команду с правами администратора. Если вы набрали команду без sudo, а потом оказалось, что она необходима, просто наберите «sudo !!» и она запустится уже с правами администратора:

$ sudo !!
sudo apt install vlc
vlc is already the newest version (2.2.2-5ubuntu0.16.04.3).

Этот приём весьма полезен именно в ситуациях, подобных рассмотренной, когда команду, введённую ранее, надо выполнить с правами суперпользователя.

5. Переименование или перемещение файлов

Если вам нужно быстро переименовать или переместить множество файлов с суффиксами — попробуйте команду следующего вида:

$ cp /home/sample.txt{,-old}

Вот как её можно расшифровать:

$ cp /home/sample.txt /home/sample.txt-old

Ниже приведён пример переименования файлов с определённым расширением в пакетном режиме:

$ ls
text_comes_here_1.txt
text_comes_here_2.txt
text_comes_here_3.txt
text_comes_here_4.txt

$ rename ‘s/comes_here/goes_there/’ *.txt
$ ls
text_goes_there_1.txt
text_goes_there_2.txt
text_goes_there_3.txt

6. Сжатие, разбиение и шифрование файлов

Передача больших файлов между компьютерами — задача непростая. Упростить её можно, сжав файлы с помощью команды zip, или, если файлы ну просто очень большие, создав многотомный архив. Если при этом файлы нужно ещё и зашифровать — воспользуйтесь ключом -e.

$ zip -re test.zip AdbeRdr11010_en_US.exe run.sh Smart_Switch_pc_setup.exe
Enter password:
Verify password:
adding: AdbeRdr11010_en_US.exe (deflated 0%)
adding: run.sh (stored 0%)
adding: Smart_Switch_pc_setup.exe (deflated 2%)

7. Команда «df»

Довольно простая команда. Показывает свободное пространство на диске (disk free)

8. Команда «w»

Команда w показывает, кто на данный момент вошел в систему, наряду с другой полезной информацией такой, как время работы или нагрузкой процессора.

9. Команда «last»

Команда «last» выводит сведения о пользователях, входивших в систему. Она производит поиск в файле «/var/log/wtmp» и выводит список пользователей, входивших и выходивших из системы, а также дополнительную информацию (время, номер виртуальной консоли и т.д.).

# last
server pts/0 :0 Tue Oct 22 12:03 still logged in
server tty8 :0 Tue Oct 22 12:02 still logged in


(unknown tty8 :0 Tue Oct 22 12:02 — 12:02 (00:00)
server pts/0 :0 Tue Oct 22 10:33 — 12:02 (01:29)
server tty7 :0 Tue Oct 22 10:05 — 12:02 (01:56)
(unknown tty7 :0 Tue Oct 22 10:04 — 10:05 (00:00)
reboot system boot 3.2.0-4-686-pae Tue Oct 22 10:04 — 12:44 (02:39)

wtmp begins Fri Oct 4 14:43:17 2007

10. Команда «mtr»

Большинство из нас хорошо знакомы с ping и traceroute. А как насчет объединения их функциональности в одной команде mtr? Если эта программа у вас не установлена, это можно сделать с помощью apt или yum. На деле mtr — мощный инструмент для диагностики сети.

mtr [hostname]

11. curl ifconfig.me

Как узнать свой внешний IP-адрес? Приведенная ниже команда выводит в терминале ваш внешний IP-адрес.

# curl ifconfig.me

12. Команда «pkill»

pkill (или process kill) завершает запущенный процесс. Эта команда особенно полезна, когда приложение не отвечает:

pkill [application_name]

Веселой/жестокой команда может оказаться, если вы запускаете ее на удаленной машине. Будьте осторожны, можно потерять важные данные.

13. Команда «pstree»

Эта команда выводит все запущенные процессы, вместе с соответствующими дочерними процессами, в формате древа, как и команда tree.

14. Планирование заданий

Планировать задания в Linux можно с помощью команды at:

echo wget https://sample.site/test.mp4 | at 2:00 PM

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

15. Многократное выполнение команды до её успешного завершения

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

while ! [command]; do sleep 1; done

Например:

$ while ! ./run.sh; do sleep 1; done
cat: run.sh: No such file or directory
cat: run.sh: No such file or directory
linoxide.com

Команда в этом примере будет повторяться до тех пор, пока не будет найден файл run.sh и его содержимое не будет выведено на экран.

16. Просмотр сведений о ходе передачи файла

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

$ pv access.log | gzip > access.log.gz
11MB 0:00:11 [58.MB/s] [=> ] 15% ETA 0:00:59

17. Вывод данных в виде таблицы

Вызвав команду ls, или что-нибудь ещё, выводящее данные на экран, можно столкнуться с длинными списками, для просмотра которых требуется продолжительный скроллинг. То, что выводится на экран, легко можно организовать в виде таблицы с помощью команды column -t. Например:

$ cat /etc/passwd | column -t

17. Команда «jot»

jot генерирует текст. Числа, текст, все вместе. Чтобы сгенерировать числа, попробуйте следующее:

jot [количество чисел] [начиная с]

Если пропишете один аргумент, сгенерируются числа от 1 до значения аргумента.

Чтобы получить случайные:
jot -r [количество чисел] [нижний предел] [верхний предел]

Подробнее читайте мануал, набрав «man jot»

18. Команда «cal»

Старый-добрый Григорианский календарь.

 

19. Команда «nl»

Команда nl нумерует строки файла. Например, у нас есть файл «one.txt». Сначала выведем его на экран с помощью команды «cat»:

# cat numbers.txt

one
two
three
four
five
Теперь запустим «nl», чтобы вывести его в пронумерованном виде:

# nl numbers.txt

1 one
2 two
3 three
4 four
5 five

Да, nl тупо нумерует строки, но иногда команда может быть очень полезна, если использовать ее в качестве аргумента!

20. Стресс-тест батареи ноутбука

Хотите узнать, как долго батарея вашего ноутбука продержится при полной нагрузке на процессор? Попробуйте следующую команду:

$ cat /dev/urandom > /dev/null

Ну вот мы и подошли к концу команд нашего списка. В статье показано лишь несколько приёмов взаимодействия с командной строкой Linux, но надеюсь, это поможет вам упростить и ускорить повседневную работу.


Категории: Linux,Программное обеспечение

Комментирование отключено