Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.
№1. Переход в предыдущую директорию
Все мы используем команду cd ..
для перехода в родительскую директорию. А для перехода к предыдущей директории можно использовать команду cd -
. Этот приём похож на кнопку «Назад».
<span class="hljs-built_in">test</span>@linoxide:~/Downloads$ <span class="hljs-built_in">cd</span> -
/home/eyramm
<span class="hljs-built_in">test</span>@linoxide:~$ <span class="hljs-built_in">cd</span> -
/home/eyramm/Downloads
<span class="hljs-built_in">test</span>@linoxide:~/Downloads$
Тут мы сначала находились в директории Downloads
, затем переместились в директорию Home
, и, наконец, снова вернулись в директорию Downloads
.
№2. Повтор последней команды
Для того, чтобы повторить предыдущую команду, просто введите !!
. В этом примере мы повторим предыдущую команду с правами суперпользователя.
$ apt <span class="hljs-keyword">install</span> vlc
E: Could <span class="hljs-keyword">not</span> <span class="hljs-keyword">open</span> <span class="hljs-keyword">lock</span> <span class="hljs-keyword">file</span> /<span class="hljs-keyword">var</span>/lib/dpkg/<span class="hljs-keyword">lock</span> - <span class="hljs-keyword">open</span> (<span class="hljs-number">13</span>: Permission denied)
E: Unable <span class="hljs-keyword">to</span> <span class="hljs-keyword">lock</span> the administration <span class="hljs-keyword">directory</span> (/<span class="hljs-keyword">var</span>/lib/dpkg/), <span class="hljs-keyword">are</span> you root?
$ sudo !!
sudo apt <span class="hljs-keyword">install</span> vlc
vlc <span class="hljs-keyword">is</span> already the newest <span class="hljs-keyword">version</span> (<span class="hljs-number">2.2</span><span class="hljs-number">.2</span><span class="hljs-number">-5</span>ubuntu0<span class="hljs-number">.16</span><span class="hljs-number">.04</span><span class="hljs-number">.3</span>).
Этот приём весьма полезен именно в ситуациях, подобных рассмотренной, когда команду, введённую ранее, надо выполнить с правами суперпользователя.
№3. Многократное выполнение команды до её успешного завершения
Для того, чтобы выполнять команду до тех пор, пока она не будет успешно завершена, используйте код возврата команды в такой конструкции:
<span class="hljs-keyword">while</span> ! [<span class="hljs-built_in">command</span>]; <span class="hljs-keyword">do</span> sleep 1; <span class="hljs-keyword">done</span>
Например:
$ <span class="hljs-keyword">while</span> ! ./run.sh; <span class="hljs-keyword">do</span> sleep <span class="hljs-number">1</span>; done
cat: run.sh: <span class="hljs-keyword">No</span> such file <span class="hljs-keyword">or</span> directory
cat: run.sh: <span class="hljs-keyword">No</span> such file <span class="hljs-keyword">or</span> directory
linoxide.com
Команда в этом примере будет повторяться до тех пор, пока не будет найден файл run.sh
и его содержимое не будет выведено на экран.
№4. Просмотр сведений о ходе передачи файла
Для того, чтобы наблюдать за ходом передачи файла, воспользуйтесь командой pv
:
$ pv <span class="hljs-keyword">access</span>.<span class="hljs-keyword">log</span> | gzip > <span class="hljs-keyword">access</span>.<span class="hljs-keyword">log</span>.gz
<span class="hljs-number">611</span>MB <span class="hljs-number">0</span>:<span class="hljs-number">00</span>:<span class="hljs-number">11</span> [<span class="hljs-number">58.3</span>MB/s] [=> ] <span class="hljs-number">15</span>% ETA <span class="hljs-number">0</span>:<span class="hljs-number">00</span>:<span class="hljs-number">59</span>
№5. Планирование заданий
Планировать задания в Linux можно с помощью команды at
:
<span class="hljs-built_in">echo</span> wget https://sample.site/test.mp4 | <span class="hljs-built_in">at</span> <span class="hljs-number">2</span>:<span class="hljs-number">00</span> PM
Для того, чтобы посмотреть ожидающие выполнения задания, воспользуйтесь командой atq
.
№6. Вывод данных в виде таблицы
Вызвав команду ls
, или что-нибудь ещё, выводящее данные на экран, можно столкнуться с длинными списками, для просмотра которых требуется продолжительный скроллинг. То, что выводится на экран, легко можно организовать в виде таблицы с помощью команды column -t
. Например:
$ cat /etc/passwd | <span class="hljs-keyword">column</span> -t
Вот как выглядит то, что у нас получилось.
Вывод команды, организованный в виде таблицы
№7. Полезные комбинации клавиш
Команда clear
очищает экран терминала. Комбинация клавиш Ctrl + L
позволяет добиться того же самого быстрее.
Комбинация клавиш Alt + .
позволяет перемещаться по ранее введённым командам. Комбинация клавиш Ctrl + U
убирает из строки всё то, что уже в неё введено. Например, можете это попробовать для очистки введённого в командной строке пароля.
Для инкрементального обратного поиска по истории команд используйте комбинацию клавиш Ctrl + R
.
№8. Сжатие, разбиение и шифрование файлов
Передача больших файлов между компьютерами — задача непростая. Упростить её можно, сжав файлы с помощью команды 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 <span class="hljs-number">0</span><span class="hljs-comment">%)</span>
adding: run.sh (stored <span class="hljs-number">0</span><span class="hljs-comment">%)</span>
adding: Smart_Switch_pc_setup.exe (deflated <span class="hljs-number">2</span><span class="hljs-comment">%)</span>
№9. Стресс-тест батареи ноутбука
Хотите узнать, как долго батарея вашего ноутбука продержится при полной нагрузке на процессор? Попробуйте следующую команду:
$ cat /dev/urandom > <span class="hljs-regexp">/dev/</span><span class="hljs-literal">null</span>
№10. Переименование или перемещение файлов
Если вам нужно быстро переименовать или переместить множество файлов с суффиксами — попробуйте команду следующего вида:
$ cp /home/sample.txt{,-<span class="hljs-built_in">old</span>}
Вот как её можно расшифровать:
$ cp /home/sample.txt /home/sample.txt-<span class="hljs-built_in">old</span>
Ниже приведён пример переименования файлов с определённым расширением в пакетном режиме:
$ <span class="hljs-keyword">ls</span>
text_comes_here_1.txt
text_comes_here_2.txt
text_comes_here_3.txt
text_comes_here_4.txt
$ <span class="hljs-keyword">rename</span> <span class="hljs-string">'s/comes_here/goes_there/'</span> *.txt
$ <span class="hljs-keyword">ls</span>
text_goes_there_1.txt
text_goes_there_2.txt
text_goes_there_3.txt
Итоги
Мы рассказали о нескольких приёмах взаимодействия с командной строкой Linux. Надеемся, вы нашли здесь то, что поможет вам упростить и ускорить повседневную работу.