20 приёмов работы в командной строке Linux, которые сэкономят уйму времени

https://itsfoss.com/linux-command-tricks/
  • Перевод
Тема полезных приёмов работы в терминале Linux неисчерпаема. Казалось бы — всё устроено очень просто: приглашение оболочки, да введённые с клавиатуры команды. Однако, в этой простоте кроется бездна неочевидных, но полезных возможностей. Именно поэтому мы регулярно публикуем материалы, посвящённые особенностям работы в командной строке Linux. В частности, сегодня это будет перевод статьи, автор которой увлечён экономией времени через повышение продуктивности труда.



Если вас интересует работа в командной строке Linux — вот некоторые из наших материалов на эту тему:


Приёмы работы в командной строке Linux и экономия времени


Вам когда-нибудь доводилось видеть, как коллега использует некие простые команды Linux для решения задач, решение которых занимает у вас несколько строк? Должно быть, когда подобное случалось, вы только и могли сказать себе: «Ну ничего ж себе! Я и не знал, что это можно сделать так просто».

В этом материале я покажу вам некоторые профессиональные приёмы работы в командной строке Linux, которые сэкономят вам уйму времени и в некоторых случаях избавят от плохого настроения. Мало того, что ваши друзья или коллеги скажут: «Ну надо же!», глядя на вас. Эти приёмы, кроме того, помогут вам увеличить личную продуктивность, так как вам понадобится вводить меньше команд и даже делать меньше щелчков мышью.

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

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

0. Автозавершение команд с использованием клавиши Tab


Я начну с кое-чего вполне очевидного, но весьма важного: с автозавершения команд с помощью клавиши Tab.

Когда вы начинаете набирать что-то в терминале Linux, вы можете нажать клавишу Tab, после чего будет выведена подсказка, содержащая набор вариантов продолжения ввода, начинающихся с только что введённых символов.

Например, собираясь скопировать файл с именем my_best_file_1.txt, вы можете просто ввести cp m и нажать Tab для того, чтобы увидеть возможные варианты продолжения команды.


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

Клавишу Tab можно использовать и для автозавершения команд.

1. Переход в последнюю рабочую директорию


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

cd -

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


Простое переключение между директориями

2. Возврат в домашнюю директорию


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

cd ~

Однако, в домашнюю директорию можно вернуться ещё быстрее — с помощью команды cd.

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


Самый быстрый способ перехода в домашнюю директорию

3. Вывод на экран содержимого директории


Возможно, вы зададитесь вопросом о том, в чём состоит тонкость использования команды для вывода содержимого директории. Все знают, что для этой цели служит команда ls -l.

Но в том-то всё и дело. Практически все используют команду ls -l для вывода содержимого директорий, в то время как то же самое можно сделать с помощью следующей команды:

ll

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


Использование команды ll вместо команды ls -l

4. Вызов нескольких команд в одной строке


Представьте, что вам нужно последовательно выполнить несколько команд. Наверное, вы вводите одну команду, потом ждёте, когда она завершится, дальше — вводите следующую?

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

command_1; command_2; command_3

5. Выполнение нескольких команд в одной строке и условие на успешное завершение предыдущей команды


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

Представьте себе, что хотите собрать код, а затем, если сборка оказалась успешной, вызвать make?

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

command_1 && command_2

Вот хороший пример использования &&:

sudo apt update && sudo apt upgrade

6. Простой поиск и использование ранее введённых команд


Представьте себе, что вы, пару минут или пару часов назад, вводили длинную команду, и вам снова нужна эта команда. Причём, проблема заключается в том, что вспомнить точно эту команду вы не можете.

В подобной ситуации вас спасёт обратный поиск. Данная методика позволяет проводить поиск в истории команд по ключевому слову. Тут достаточно использовать комбинацию клавиш Ctrl + R для запуска обратного поиска и ввести что-то, имеющее отношение к команде. Система просмотрит историю команд и покажет команды, соответствующие введённому запросу.

Ctrl + R search_term

По умолчанию показан будет лишь один результат. Для того, чтобы увидеть больше результатов, соответствующих запросу, вам понадобится использовать комбинацию клавиш Ctrl + R снова и снова. Для того, чтобы выйти из режима обратного поиска, нажмите Ctrl + C.


Обратный поиск по истории команд

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

7. Разблокировка терминала после случайного нажатия Ctrl + S


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

Если раньше вы, для того, чтобы исправить положение, вынуждены были закрывать и снова запускать терминал — теперь может вздохнуть спокойно, больше вам этого делать не придётся. Для того, чтобы привести терминал в рабочее состояние, просто воспользуйтесь комбинацией клавиш Ctrl + Q.

8. Перемещение к началу или концу строки


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

Конечно, в подобной ситуации можно использовать клавиши Home и End, но, как вариант, с помощью комбинации клавиш Ctrl + A можно перейти в начало строки, а с помощью комбинации Ctrl + E — в конец.


Перемещение к началу или концу строки

Мне такой способ кажется удобнее, чем использование клавиш Home и End, особенно когда я работаю на ноутбуке.

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


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

tail -f path_to_Log

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

tail -f path_to_log | grep search_term

Также тут можно задействовать опцию F. Это приведёт к тому, что утилита tail продолжит работать даже в том случае, если просматриваемый лог-файл будет удалён. При таком подходе, если этот файл снова будет создан, tail продолжит выводить данные из него на экран.

10. Чтение сжатых лог-файлов без их распаковки


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

Тут нам на помощью приходит группа команд, имя которых начинается с буквы «z». Эти команды являются альтернативой обычным командам, которые используются для работы с файлами журналов. Среди них — less, cat, grep, и другие.

Итак, используя команды zless, zcat, zgrep и подобные им, вам не придётся явным образом распаковывать сжатые файлы. Подробности об этих командах можно посмотреть здесь.

Кстати, когда я рассказал об этих «секретных» командах коллеге, мне досталась чашка кофе.

11. Использование команды less для чтения файлов


Если вам нужно просмотреть файл, особенно — большой, можно попробовать команду cat, но гораздо лучше поискать что-нибудь другое. Дело в том, что cat выведет на экран весь файл, что не так уж и удобно.

Для просмотра файлов можно воспользоваться редакторами вроде Vi или Vim, работающими в терминале, но если вам просто нужно прочесть файл, очень кстати окажется команда less.

less path_to_file

Во время сеанса работы с less можно искать нужные фрагменты текста по ключевым словам, перемещаться по страницам, выводить данные с номерами строк, и так далее.

12. Повторное использование последнего элемента из предыдущей команды с помощью !$


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

Предположим, вам нужно создать директорию, а потом в неё перейти. Тут можно воспользоваться опцией !$, вводя команду перехода после команды создания директории.


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

Ещё лучше то же самое делается с помощью сочетания клавиш Alt +. (точка). Точку можно использовать несколько раз для перебора опций последней команды.

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


С помощью !! можно вызвать всю предыдущую команду. Этот приём оказывается особенно полезным, когда вам нужно выполнить команду и оказывается, что для её выполнения нужны привилегии суперпользователя. Например, на рисунке ниже показана ситуация, в которой команда sudo !! позволяет сэкономить немало времени.


Воспользуйтесь!!! для подстановки последней команды в качестве аргумента

14. Использование псевдонимов для исправления ошибок ввода


Возможно, вы уже знакомы с командой alias. Её можно использовать для исправления ошибок во введённых командах.

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

alias gerp=grep

Теперь вам не придётся перенабирать эту команду если вы введёте её имя неправильно.

15. Копирование и вставка в терминале Linux


Этот совет несколько неоднозначен, так как он зависит от дистрибутива Linux и от терминала.

Но обычно команды копирования и вставки можно вызывать следующим образом:

  • Выделите текст, который надо скопировать, и щёлкните правой кнопкой мыши для его вставки (работает в Putty и других SSH-клиентах для Windows).
  • Выделите текст, который надо скопировать, после чего щёлкните центральной кнопкой мыши (колесом прокрутки) для того, чтобы его вставить.
  • Используйте комбинации клавиш Ctrl + Shift + C для копирования, и Ctrl + Shift + V для вставки.

16. Завершение работы команды или процесса


Возможно, то, что я тут хочу посоветовать, совершенно очевидно, однако, всё равно об этом расскажу. Если команда выполняется на переднем плане и вы хотите из неё выйти, можете нажать клавиши Ctrl + C для того, чтобы её остановить.

17. Использование команды yes для автоматизации интерактивных команд или скриптов


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

yes | command_or_script

18. Очистка содержимого файла без удаления самого файла


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

 > filename

19. Выяснение наличия в директории файлов, содержащих определённый текст


Командная строка Linux поддерживает множество способов поиска информации. Однако, если вам просто нужно узнать, имеются ли в некоей директории файлы, которые содержат определённый текст, вы можете воспользоваться такой командой:

grep -Pri Search_Term path_to_directory

Однако я советую всем, кому нужен поиск в Linux, разобраться как следует с командой find.

20. Вызов справки для любой команды


Хочу завершить этот материал одним весьма очевидным, но, тем не менее, очень важным «трюком», который заключается в вызове справки для команды или инструмента командной строки.

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

command_tool --help

Итоги: делитесь полезными советами!


Я намеренно не включил в этот материал команды вроде fuck, так как они не из тех стандартных средств, которые можно найти буквально повсюду. То, о чём я тут рассказал, может принести пользу при работе практически со всеми дистрибутивами Linux и оболочками командной строки без необходимости установки новых программ.

Уважаемые читатели! Возможно, вы уже знакомы с некоторыми из приведённых здесь методов использования команд Linux, а может и знаете их все. В любом случае, приглашаем вас поделиться вашими любимыми приёмами в комментариях.
RUVDS.com 549,64
RUVDS – хостинг VDS/VPS серверов
Поделиться публикацией
Комментарии 87
  • 0
    18. Очистка содержимого файла без удаления самого файла

    для этих целей я использую «echo > filename»

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

    filename

    я такой команды в CentOS 6 и 7 не нашел.

    • 0
      В Ubuntu 16.04 тоже нет. Нужно ставить пакет wcstools
      • 0
        Лайфхак
        : > filename
        • 0
          Исправили, спасибо.
        • +2
          Проблема с echo заключается в том, что полученный файл будет не пустым. Нужно либо писать echo -n >filename (linux) либо что-то вроде echo -e '\e' >filename, если у вас не bash, и просто :>filename в баше. На FreeBSD есть отдельная команда truncate, вроде как
        • +6
          18. Очистка содержимого файла без удаления самого файла

          для этих целей я использую «echo > filename»


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

          truncate -s 0 filename
          • 0
            truncate --size 0 filename

            Для очистки больших файлов необходимо использовать truncate.
          • +1
            Я делаю проще «cat /dev/null > filename»
            • 0
              deleted
              • 0
                можно даже без echo, просто > filename
              • +2
                12. Повторное использование последнего элемента из предыдущей команды с помощью !$

                Еще можно нажатие Alt +. (точка)

                18. Очистка содержимого файла без удаления самого файла

                Можно просто
                >filename
                • +2
                  yes |

                  выводит y, но выводить можно всё что угодно, например:
                  yes yes |

                  yes n |
                  • +12

                    ll — это не команда, а алиас к ls -l. Чуть больше рассказать про алиасы было бы многократно полезнее, чем рассказать про ll, который не предустановлен во многих дистрибутивах.

                    • 0
                      Плюсанул бы, да не умею… Это чуть ли не первый урок от MagPi в книге Bash Essentials — упростим себе жизнь, раскомментировав этот алиас в .bashrc. А ещё доступен аж целый la!
                  • +28
                    все-таки стоило назвать статью 20 приемов… для самых новичков.
                    • +2

                      Тоже ожидал увидеть что-то новое, а на самом деле компиляция элементарных приемов, которым уже 20+ лет, и которые бесчисленное количество раз тиражировались начиная с Linux HOWTOs (кто еще помнит такие) и первых Linux журналов.

                    • +1
                      Причем с грубыми ошибками в статье!
                    • 0
                      Интересно, сколько раз тут эти «20 мега приёмов» уже повторяют за все эти годы? Раз 20, не меньше, наверное.
                      • 0

                        Когда выдают экономию в один-два символа в команде cd за прием, который сэкономит уйму времени — мне хочется плакать. Вот подстановка имени файла по табу экономит много больше усилий и это реально качественный скачок на иной уровень.

                        • +2
                          Автор, где хардкор? Ну и часть советов вообще скорее вредные, например про!!! — очень частый паттерн это писать sudo !!, но вы при этом не видите, какую команду будете исполнять, и злоупотребление этой командой может привестм к печальным последствиям. Ну и не слова про fish, тоже обидно.
                          • +1

                            Смиритесь, нет оболочек кроме bash и RUVDS пророки его.

                            • +1
                              Как насчет: sudo !!<tab>, прочитать, а потом только запускать
                              • +2
                                тогда уж проще просто нажать: вверх ->ctrl+a и добавить sudo. но это как по мне.
                            • +1
                              cd ~


                              Потому что это указание на домашнюю папку пользователя.
                              ~ без имени пользователя = текущий пользователь.
                              А вот cd ~user1 — зайти в домашнюю папку user1, например /home/user1 (или что у него прописано в /etc/passwd)
                              • 0
                                «В подобной ситуации полезным окажется разделитель команд; (точка с запятой). При таком подходе вы можете ввести несколько команд в одной строке. При этом, в отличие от обычного ввода команд, для выполнения следующей команды не надо ждать завершения предыдущей.
                                command_1; command_2; command_3»


                                Неверно. команды будут выполняться последовательно, после завершения предыдущей.
                                Они же не в фоне запускаются (& в конце)

                                • +1
                                  Так автор выше и написал, "… нужно последовательно выполнить несколько команд".
                                  «Не надо ждать завершения предыдущий» — скорее всего, имелось в виду «не надо ждать завершения предыдущей, чтобы ввести и нажать Enter для выполнения следущей»
                                  • 0
                                    Ну в цитате указано, что не для ввода, а для «выполнения следующей команды», вроде как однозначно…
                                • +2
                                  достаточно использовать комбинацию клавиш Ctrl + R для запуска обратного поиска и ввести что-то, имеющее отношение к команде

                                  Есть ли какой-то способ допилить этот поиск, чтобы можно было перемещаться по результатам стрелочками? Каждый раз обламываюсь, и в итоге делаю history | grep + copy/paste :( Очень неинтуитивно. Максимально круто было бы иметь какую-нибудь функцию для zsh, чтобы не скроллить по одному результату, а просто выбрать из списка.
                                  • 0

                                    For zsh


                                    [[ -n "$key[Up]"   ]] && bindkey -- "$key[Up]"   up-line-or-beginning-search
                                    [[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search
                                    bindkey "^[[1;5A" history-substring-search-up
                                    bindkey "^[[1;5B" history-substring-search-down
                                    • +2
                                      Нужно просто ещё раз Ctrl+R нажать и подставится предыдущее вхождение.
                                      • 0
                                        "\e[A":history-search-backward
                                        "\e[B":history-search-forward


                                        в .inputrc для bash
                                        • 0
                                          fzf же!
                                          Скачать и добавить строчку в .bashrc:
                                          [ -f ~/.fzf.bash ] && source ~/.fzf.bash
                                        • 0
                                          Для пункта №9. Логи удобно будет просмтривать вот так:

                                          tail -f /var/log/file.log | ccze -A
                                          • 0
                                            apt-get moo

                                            как про это могли забыть?
                                            • 0
                                              :~$ telnet towel.blinkenlights.nl
                                            • 0
                                              Как всегда комментарии полезней самой статьи
                                              • +2

                                                А ещё, если вы делаете tail -f ... | grep onething | awk '{print $1}', то по умолчанию буферизация будет блочная у grep и вы будете видеть результаты большой задержкой. Чтобы всё же вернуть построчную буферизацию, нужно указать grep дополнительный --line-buffered:


                                                tail -f ... | grep --line-buffered onething | awk '{print $1}'

                                                • 0
                                                  Не все так просто с завершением программ
                                                  $ python
                                                  #тычем CTRL+C
                                                  >>> 
                                                  KeyboardInterrupt
                                                  >>> 
                                                  KeyboardInterrupt
                                                  #CTRL+D
                                                  $
                                                  $ bc
                                                  #тычем CTRL+C
                                                  (interrupt) use quit to exit.
                                                  ^C
                                                  (interrupt) use quit to exit.
                                                  ^C
                                                  (interrupt) use quit to exit.
                                                  ^C
                                                  (interrupt) use quit to exit.
                                                  ^C
                                                  quit
                                                  $
                                                  

                                                  И это не единственные примеры, насколько я знаю.
                                                  • +1

                                                    Примеры абсолютно корректной обработки сигналов?

                                                    • +1

                                                      Ага, из telnet так вообще надо выходить путем ввода Ctrl+] и только потом quit :). А из SSH ещё круче: ~. (тильда точка)
                                                      Причём если вы подключились по SSH, а оттуда ещё по SSH и хотите завершить вложенный SSH, то надо вводить ~~.
                                                      Если подключились 2 раза по SSH, то ~~~~. и так далее :).

                                                      • 0

                                                        Все время выхожу из ssh через Ctrl + D. ЧЯДНТ?

                                                        • 0

                                                          Речь про зависший SSH, когда хост по какой-то причине не реагирует на ввод (Ctrl+D обрабатывается удаленной стороной).

                                                          • 0

                                                            Ааа, никогда еще не сталкивался с этим, буду знать, спасибо

                                                      • 0
                                                        Про ssh: если совсем точно, то <enter>~.
                                                        Если в момент пропадания связи набирались символы, то без enter-а не выйдет
                                                        • 0

                                                          Да, возможно вы правы. Лично для меня на самом деле важнее тот факт, что это вообще можно сделать, и в man ssh написано, как именно. Потому что мне кажется, что многие просто вкладку закрывают и всё.

                                                        • 0
                                                          А exit не спасает?
                                                          • 0
                                                            Если вы уже подключились — не факт, что на той стороне exit что-то означает =)
                                                        • 0
                                                          У питона свой дзен. Есть только один правильный способ сделать это, и это sys.exit(shota)..
                                                          Причин тому много и самая очевидная — многопоточность скрипт, а потоки с в неизвестном месте обрывать ну очень плохая идея.
                                                          • 0
                                                            Собственно суть. Ничто не мешает устроить свой собственный дзен
                                                        • 0
                                                          11. Использование команды less для чтения файлов

                                                          Протестировал только что, в отличие от more после нажатия q выведенный кусок файла пропадает из консоли. More удобнее, можно просто прокрутить терминал назад и снова увидеть нужный кусок файла. Такое бывает нужно.
                                                          Конечно, less позволяет сразу редактировать, но если в дистре есть less то есть и nano или mcedit которые для редактирования удобнее.
                                                          15. Копирование и вставка в терминале Linux

                                                          Более того, можно и enter скопировать, сместив во время выделения курсор в начало следующей строки.
                                                          • 0
                                                            less позволяет ПРОСОТ бегать назад, и прокручивать нужно не терминал, а сам текст в less.
                                                            Less также позволяет выполнять поиск назад, а не только вперед, фильтр строк и многое другое.
                                                            А more — просто постраничный вывод вперед, с возможностью поиска только вперед. И с автоматическим выходом по окончании файла
                                                            • 0

                                                              А ещё в less можно уже после открытия файла выключить word-wrap путем нажатия -S<Enter> (минус S, и потом Enter). Позволяет удобно просматривать
                                                              логи с длинными строками.

                                                            • +2

                                                              Если терминал «испортился» и показывает странные символы, то его зачастую можно починить, набрав <Enter>reset<Enter> (на самом деле просто выполнить команду reset) — у терминала на самом деле есть 2 «раскладки» и это использовалось задолго до изобретения UTF-8 для того, чтобы рисовать псевдографику. Команда reset сбрасывает терминал близко к оригинальным настройкам и зачастую может «починить» терминал, который «сошел с ума».

                                                              • +1
                                                                не только раскладки. Есть еще просто ESC-последовательности, которые управляют цветом. То есть сделав cat какого-нить бинарника, можно оказаться в ситуации, когда печатаешь черным по черному, или вырвиглазным мигающим по ярко красному, с шириной экрана 10 символов.
                                                                Тоже reset спасает.
                                                              • –1
                                                                Вставить — Shift+Insert (gnome-terminal)
                                                                • 0
                                                                  Еще очень полезная утилита — parallel
                                                                  • 0
                                                                    Честно говоря, никогда не понимал, как утилита на Perl может помогать обрабатывать данные быстрее за счет параллелизации. Xargs на больших объёмах (иначе зачем вам использовать параллельную обработку) должен быть значительно быстрее, я не прав?
                                                                    • 0
                                                                      Суть не в быстрее, а в «параллельно». Нужно слить 100+ страниц для теста по базе урлов, или прогнать моделирование на 100+ входных данных...,
                                                                      то вместо того, чтобы вручную что-то придумывать, просто запускаем скрипт через parallel.
                                                                  • 0

                                                                    Э-э-э. В п 3 помянута команда ll, которая в Debian-based дистрибутивах как раз элиас в .bashrc alias ll="ls -alF". Но сами элиасы отнесены аж в п 14.

                                                                    • 0
                                                                      0. Нужен установленный bash-complection. Который частенько отсутствует на ВДСках, разворачиваемых из контейнеров.
                                                                    • 0
                                                                      с помощью комбинации клавиш Ctrl + A можно перейти в начало строки, а с помощью комбинации Ctrl + E — в конец.

                                                                      да, удобная вещь, когда в Putty (в mc) Home и End не работают…
                                                                      • 0

                                                                        Не поверите, на некоторых клавиатурах таких кнопок вообще нет :). И pgup/pgdown тоже.

                                                                      • 0
                                                                        А вместо tail -f filename.ext можно использовать tailf filename.ext
                                                                        • 0
                                                                          Когда надо вспомнить как сделать распространенное действие с какой либо утилитой командной строки, очень помогает cheat: github.com/chrisallenlane/cheat
                                                                          • 0
                                                                            Если команда выполняется на переднем плане и вы хотите из неё выйти, можете нажать клавиши Ctrl + C для того, чтобы её остановить.

                                                                            Ctrl-C отправляет SIGINT сигнал, который вызывает завершение процесса.
                                                                            Ctrl-Z отправляет SIGTSTP сигнал, который приостанавливает выполнение процесса. Продолжить выполнение можно командой fg (от foreground)
                                                                            • 0

                                                                              … и bg (background), чтобы продолжить выполнение в фоне.

                                                                              • 0
                                                                                или kill -n 18
                                                                                • 0
                                                                                  jobs — узнать список таких задач, «поставленных на паузу» или отправленных в бэкграунд.
                                                                            • +2
                                                                              14. Использование псевдонимов для исправления ошибок ввода


                                                                              Cразу вспомнил забавную утилиту thefuck

                                                                              C ней было бы так:

                                                                              $ gerp
                                                                              zsh: command not found: gerp

                                                                              $ fuck
                                                                              grep [enter/↑/↓/ctrl+c]
                                                                            • +1

                                                                              20 приёмов работы в командной строке Linux bash, которые сэкономят уйму времени.
                                                                              Или не сэкономят. Все зависит от того, что за работа будет делаться и в каком окружении. Иногда проще открыть еще одну вкладку в терминале — чтобы не экономить символы в команде cd. Иногда проще запустить файл-менеджер, чтобы не продираться с помощью tab. Иногда проще закрыть терминал вместе с зависшей сессией (2 раза в год бывает такое), чем вспоминать заклинание для ssh.

                                                                              • 0
                                                                                Есть еще одна фишка: Можно использовать tailf вместо tail -f
                                                                                • 0
                                                                                  Представьте себе, что хотите собрать код, а затем, если сборка оказалась успешной, вызвать make?

                                                                                  Помоему, данная последовательность действий ничего полезного из себя не представляет. Второй пункт, скорее всего, нужно заменить на что-то типа "запустить тесты".


                                                                                  Или, может, под "сборкой проекта" вы подразумевали процесс генерации Makefile'а?

                                                                                  • 0
                                                                                    в чём состоит тонкость использования команды для вывода содержимого директории. Все знают, что для этой цели служит команда ls -l.

                                                                                    А как же dir?
                                                                                    • +1
                                                                                      Еще screen иногда очень сильно выручает (в частности при обрыве соединения).
                                                                                      • 0
                                                                                        tmux вроде поудобнее будет)
                                                                                        • 0
                                                                                          Чем?
                                                                                          • 0
                                                                                            Много чем. у tmux-а только одно неудобство — он недоступен из коробки, нужно ставить отдельно.
                                                                                            А так — разделение на окна, кроме виртуальных вкладок, и поддержка командной строки, что позволяет автоматизировать переход в разные режимы, плюс внятный статус бар, плюс отсутствие глюков с терминалом — этого уже более чем достаточно.
                                                                                          • 0
                                                                                            Спасибо за наводку. Будем посмотреть :)
                                                                                        • 0
                                                                                          По комментариям ещё одну такую же статью можно написать:)
                                                                                          • 0
                                                                                            Меня народ за watch благодарит.
                                                                                            • 0
                                                                                              Из последнего: здорово экономят время команды вида
                                                                                              for i in 1 2 3; do ssh root@cassandra$i.example.com /opt/cassandra/bin/nodetool status; done

                                                                                              Для копирования файлов, проверки статуса софта по нескольким серверам отлично подходят.

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

                                                                                              Самое читаемое