10 приёмов работы в терминале Linux

Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в 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. Надеемся, вы нашли здесь то, что поможет вам упростить и ускорить повседневную работу.

Поділіться своєю знахідкою

Залишити відповідь

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x