Давайте посмотрим на несколько крошечных, но полезных команд Linux, приемов работы с терминалом и ярлыков, которые сэкономят вам много времени при работе с командной строкой Linux.
Вы когда-нибудь сталкивались с моментом, когда видите, как ваш коллега использует несколько простых команд Linux для задач, требующих нескольких нажатий клавиш? И увидев это, вы подумали: «Вау! Я не знал, что это можно было сделать так легко».
В этой статье я покажу вам некоторые профессиональные приемы работы с командами Linux, которые сэкономят вам много времени, а в некоторых случаях и много разочарований. Не только ваши друзья или коллеги будут вас удивлять, это также поможет вам повысить вашу продуктивность, поскольку вам потребуется меньше нажатий клавиш и еще меньше щелчков мыши.
Дело не в том, что это советы по Linux только для новичков. Скорее всего, даже опытные пользователи Linux найдут некоторые скрытые жемчужины, о которых они не знали, несмотря на то, что использовали Linux все эти годы.
В любом случае, вы изучаете Linux на опыте, будь то свой или чужой [email protected]:~/Documents$ cp my_file my_file_1.txt my_file_2.txt [email protected]:~/Documents$ cp my_file
Вы также можете использовать вкладку при заполнении команд.
Вернитесь в последний рабочий каталог.
Предположим, вы попали в длинный путь к каталогу, а затем перешли в другой каталог по совершенно другому пути. И тогда вы понимаете, что вам нужно вернуться в предыдущий каталог, в котором вы были. В этом случае все что вам нужно сделать, это ввести эту команду:
cd -
Эта команда вернет вас в последний рабочий каталог. Вам больше не нужно вводить длинный путь к каталогу или копировать и вставлять его.
Вернитесь в домашний каталог.
Это слишком очевидно. Вы можете использовать команду ниже, чтобы перейти в домашний каталог из любой точки командной строки Linux:
cd ~
Однако вы также можете использовать просто cd, чтобы вернуться в домашний каталог:
cd
В большинстве современных дистрибутивов Linux для этой команды предварительно настроена оболочка.
Перечислите содержимое каталога.
Вы должно быть догадываетесь, в чем трюк в команде для вывода содержимого каталога. Все знают, что для этой цели нужно использовать ls -l.
Вот в чем дело. Большинство людей используют ls -l для вывода содержимого каталога, тогда как то же самое можно сделать с помощью следующей команды:
ll
Опять же, это зависит от дистрибутивов Linux и конфигурации оболочки, но есть вероятность, что вы сможете использовать его в большинстве дистрибутивов Linux.
Запуск нескольких команд в одной команде.
Предположим, вам нужно выполнить одну за другой несколько команд. Вы ждете завершения выполнения первой команды, а затем выполняете следующую?
Вы можете использовать ‘;’ разделитель для этого. Таким образом, вы можете запустить несколько команд в одной строке. Не нужно ждать, пока предыдущие команды закончат свои дела.
command_1; command_2; command_3
Выполнение нескольких команд в одной команде, только если предыдущая команда была успешной.
В предыдущей команде вы видели, как запускать несколько команд в одной команде для экономии времени. Но что, если вам нужно убедиться, что команды не дают сбоев?
Представьте себе ситуацию, когда вы хотите создать код, а затем, если сборка прошла успешно, запустить make?
В этом случае вы можете использовать разделитель &&. Он гарантирует, что следующая команда будет запущена только тогда, когда предыдущая команда была успешной.
command_1 && command_2
Хорошим примером этой команды является использование sudo apt update && sudo apt upgrade для обновления вашей системы.
С легкостью ищите и используйте команды, которые вы использовали в прошлом.
Представьте себе ситуацию, когда вы использовали длинную команду пару минут / часов назад, и вам нужно использовать ее снова. Проблема в том, что вы больше не можете вспомнить точную команду.
Обратный поиск – ваш спаситель. Вы можете искать команду в истории, используя поисковый запрос.
Просто используйте клавиши ctrl + r, чтобы начать обратный поиск, и введите часть команды. Он заглянет в историю и покажет вам команды, соответствующие поисковому запросу.
ctrl+r поисковый_запрос
По умолчанию будет показан только один результат. Чтобы увидеть больше результатов, соответствующих вашему поисковому запросу, вам придется снова и снова использовать ctrl + r. Чтобы выйти из обратного поиска, просто нажмите Ctrl + C.
Обратите внимание, что в некоторых оболочках Bash вы также можете использовать клавиши Page Up и Down с вашим поисковым запросом.
Разморозьте терминал Linux от случайного нажатия 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
Вы также можете использовать опцию F. Она будет поддерживать работу хвоста, даже если файл журнала будет удален. Поэтому, если файл журнала создается снова, tail продолжит регистрацию.
Чтение сжатых журналов без извлечения
Журналы сервера обычно сжимаются с помощью gzip для экономии места на диске. Это создает проблему для разработчика или системного администратора при анализе журналов. Возможно, вам придется передать его на свой локальный компьютер, а затем извлечь его для доступа к файлам, потому что иногда у вас нет разрешения на запись для извлечения журналов.
К счастью, команды z спасают вас в таких ситуациях. Команды z предоставляют альтернативы обычным командам, которые вы используете для работы с файлами журнала, такими как less, cat, grep и т. д.
Таким образом, вы получаете zless, zcat, zgrep и т. д., и вам даже не нужно явно извлекать сжатые файлы.
Чтения файлов.
Для просмотра содержимого файла cat – не лучший вариант, особенно если это большой файл. Команда cat отобразит весь файл на вашем экране.
Вы можете использовать Vi, Vim или другие текстовые редакторы на базе терминала, но если вы просто хотите прочитать файл, команда less – лучший выбор.
less path_to_file
Вы можете искать термины внутри less, перемещаться по страницам, отображать номера строк и т. д.
Повторно используйте последний элемент из предыдущей команды с помощью! $
Использование аргумента предыдущей команды полезно во многих ситуациях.
Скажем, вам нужно создать каталог, а затем перейти во вновь созданный каталог. Там вы можете использовать опции! $.
Лучший способ сделать то же самое – использовать alt +. . Вы можете использовать опцию несколько раз, чтобы переключаться между вариантами последних команд.
Повторно используйте предыдущую команду в текущей команде с !!
Вы можете вызвать всю предыдущую команду с помощью !!. Это особенно полезно, когда вам нужно запустить команду и понять, что ей нужны привилегии root.
Быстрое sudo !! экономит здесь много нажатий клавиш.
Скопируйте и вставьте в терминал Linux.
Это немного неоднозначно, потому что оно зависит от дистрибутивов Linux и терминальных приложений. Но в целом вы должны иметь возможность копировать команды вставки с помощью следующих ярлыков:
Выделите текст для копирования и щелкните правой кнопкой мыши для вставки (работает в Putty и других клиентах Windows SSH)
Выделите текст для копирования и щелкните средней кнопкой мыши (кнопка прокрутки мыши) для вставки
Ctrl + Shift + C для копирования и Ctrl + Shift + V для вставки
Убить запущенную команду / процесс.
Возможно, это слишком очевидно. Если на переднем плане выполняется команда, и вы хотите выйти из нее, вы можете нажать Ctrl + C, чтобы остановить эту выполняющуюся команду.
Использование команды yes для команд или скриптов, требующих интерактивного ответа.
Если есть команды или сценарии, требующие взаимодействия с пользователем, и вы знаете, что вам нужно вводить Y каждый раз, когда требуется ввод, вы можете использовать команду Yes.
Просто используйте ее следующим образом:
yes | command_or_script
Очистите файл, не удаляя его.
Если вы просто хотите очистить содержимое текстового файла, не удаляя сам файл, вы можете использовать команду, подобную этой:
> filename
Найдите, есть ли файлы, содержащие определенный текст.
Есть несколько способов поиска в командной строке Linux. Но в том случае, когда вы просто хотите увидеть, есть ли файлы, содержащие определенный текст, вы можете использовать эту команду:
grep -Pri Search_Term path_to_directory
Тем не менее, я настоятельно рекомендую освоить команду find.
Использование справки с любой командой
Я завершу эту статью еще одним очевидным, но все же очень важным “приемом”, использующим помощь с командой или инструментом командной строки.
Почти все инструменты командной строки имеют справочную страницу, на которой показано, как использовать команду. Часто использование справки подскажет вам основные принципы использования инструмента / команды.
Просто используйте ее таким образом:
command_tool --help
Ваши любимые уловки с командной строкой Linux?
Я намеренно не включил такие команды, как fuck, потому что это не стандартные команды, которые вы найдете. Обсуждаемые здесь приемы можно использовать почти во всех дистрибутивах и оболочках Linux без необходимости установки нового инструмента.
Я бы также предложил использовать команду alias в Linux, чтобы заменить сложные команды простыми. Экономит много времени.
Я знаю, что есть и другие уловки с командами Linux для экономии времени в терминале. Почему бы не поделиться своим опытом работы с Linux и не поделиться своим лучшим трюком с остальной частью сообщества? Раздел комментариев ниже в вашем распоряжении.