Linux последний аргумент предыдущей команды

Обновлено: 06.07.2024

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

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

/.bash_history по умолчанию.

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

Просмотр всей истории

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

История будет распечатана на экране в следующем формате по умолчанию:


В вышеупомянутом изображении Вы видите список всех команд с числом, присвоенным каждому из них. Команда номер 1 соответствует первой команде, которую Вы выполнили, и последняя пронумерованная команда представляет последнюю команду, которую Вы выполнили.

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

Фильтрация вывода истории

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

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

История $ | grep ping


Вы видите, что мой вывод теперь отображает только команды включая мое поисковое ключевое слово “ping”

Просмотр многих недавних команд

Можно также просмотреть определенное количество команд, например:

N количество недавних команд

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

Пример:

В этом примере я хочу просмотреть последние 3 команды, которые я выполнил с ключевым словом 'ping':


Вывод только отображает 3 недавних команды ping вместо всей истории

N количество самых старых команд

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

Пример:

В этом примере я хочу просмотреть самые старые 3 команды, которые я выполнил с ключевым словом 'ping':


Вывод только отображает 3 самых старых команды ping вместо всей истории

Перечислите все команды с датой и меткой времени

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

Теперь, когда Вы хотите просмотреть историю, просто выполнить команду истории для наблюдения вывода в следующем формате:

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

Навигация по командам из истории

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

Просмотр команд

Можно использовать следующие средства управления клавиатурой для навигации посредством команд истории

Стрелка вверх,/Ctrl+PИспользуя эти средства управления, можно отобразить предыдущую команду, которую Вы использовали. Можно поразить эти средства управления многократно для возвращения к определенной команде в истории.
Стрелка вниз,/Ctrl+NИспользуя эти средства управления, можно отобразить следующую команду, которую Вы использовали. Можно поразить эти средства управления многократно для продвижения к определенной команде в истории.
Alt+RПри редактировании команды которую Вы вытянули из истории на текущей строке, можно использовать это управление для возвращения ее к исходной команде.

Вспоминание команд

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

Ctrl+RИспользуя это управление, можно вспомнить команду из истории путем определения строки поиска.
Ctrl+OИспользуя это управление, можно выполнить команду, которую Вы вспомнили через Ctrl+R
Ctrl+GИспользуя это управление, можно выйти из истории, не выполняя команду, которую Вы вспомнили через Ctrl+R

Пример:

В этом примере я нажал ctrl+R и затем предоставил строке поиска 'площадь'. История отобразила команду 'дуга'.


Когда я выполнил команду 'дуга' путем нажатия ctrl+O, это отобразило архитектуру ЦП моей системы:


Использование истории Bash

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

Выполнение команд из истории

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

Пример:

Здесь я выполняю команду номер 95 из своей истории:


Вывод отображает результат ‘lscpu’, который был перечислен как команда номер 95 в моей истории удара. Эта команда отображает мой ЦП и спецификации операционной системы.

  • Можно повторно выполнить предыдущую команду при помощи следующей команды:

Пример:

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


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

Пример:

Я буду использовать следующую команду, чтобы повторно выполнить последнюю команду с ключевым словом ‘dconf’ в нем:


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


Используя аргументы от предыдущих команд

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

Используя последний аргумент от предыдущей команды

Переменная! $ имеет последний аргумент от предыдущей команды, сохраненной в нем.

Пример:

В этом примере я создам файл с длинным именем.

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


Вы видите, что я смог скопировать файл, не перепечатывая имя файла при помощи переменной! $

Используя первый аргумент от предыдущей команды

Иногда, только первый аргумент от предыдущей команды полезен в текущей.

В этом случае можно использовать следующую команду:

Пример:

В следующем примере я выполнил команду ping путем определения имени узла и количества как аргументы. Теперь я хочу использовать имя узла (первый аргумент), а не 2 (последний аргумент) в моей новой команде. Я буду использовать следующую команду с этой целью:


Используя все аргументы от предыдущей команды

Можно также использовать все аргументы от предыдущей команды при помощи следующей команды:

Используя один аргумент от команды истории

Можно также использовать команды из истории путем многократного использования их аргументов. Используйте следующую команду с этой целью:

Пример:

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

Следующий вывод показывает, что 2-й аргумент последнего CP управляет, чтобы я работал:


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

Следующая команда будет хранить все аргументы от искавшей команды истории и использовать их в текущей команде:

Пример:

В следующей команде я распечатаю все аргументы последней команды CP при помощи команды эха следующим образом:


Изменение и выполнение предыдущих команд

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

Пример:

Я ввел команду с опечаткой ‘grep’ как ‘gep’, и теперь я хочу выполнить команду путем исправления текста:

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


Очистка истории

Для стирания истории удара используйте следующую команду:

Эта команда очистит Вашу историю и удалит все содержание из файла

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

Тема полезных приёмов работы в терминале 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. Переход в последнюю рабочую директорию

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


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


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

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

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


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

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


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

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

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

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


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


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

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

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

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

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

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

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

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


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

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

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

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


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


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

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

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

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

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

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

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


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

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

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

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


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


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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

В качестве командной оболочки используется самая популярная - bash. Также для некоторых задач нам понадобится демон планирования выполнения задач cron.

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

Создание папок в терминале

Для создания папки в терминале используется команда mkdir. Вот так она выглядит:

Но не все знают о ее дополнительных возможностях. Чтобы создать несколько вложенных папок используйте команду p:

mkdir -p /mnt/foo/bar/

Создать несколько папок за один раз:

Создать папку и перейти в нее:

mkdir /home/foo/doc/bar && cd $_

Кстати, синтаксис фигурных скобок поддерживают и другие команды для Linux терминала.

Ожидать завершения команды и выключить компьютер

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

Можно просто объединить команды с помощью стандартного синтаксиса Bash. Для объединения используются символы && и ||. Первый - выполнить другую команду если первая завершилась успешно, второй если первая завершилась ошибкой.

Например, обновить систему и если все хорошо выключить PC:

apt update && apt upgrade && shutdown -h now

Или выключить компьютер если обновление не удалось:

apt update && apt upgrade || shutdown -h now

Или выключить независимо от того произошла ошибка или нет:

apt update && apt upgrade ; shutdown -h now

Здесь приведена команда обновления Ubuntu, но в других дистрибутивах нужно заменить эту команду на свою.

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

Если мы уже начали говорить о возможностях Bash пойдем дальше. Символ !! означает выполнить последнюю команду. Часто ли у вас случалось такое, что вы набираете команду нажимаете Enter и понимаете, что для ее работы нужно было использовать sudo? Тогда приходиться набирать ту же команду только уже правильно. Но можно пойти другим путем, выполнить:

Кроме символа !! В Bash есть еще несколько указателей на команды:

  • !^ — первый аргумент предыдущей команды;
  • !$ — последний аргумент предыдущей команды;
  • !* — все аргументы предыдущей команды;
  • !-2 — вторая с конца команда;
  • *— содержимое текущего каталога.

А вот так можно сохранить последнюю выполненную команду в скрипт:

Ещё о подобных возможностях Bash можно почитать здесь.

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

И еще о возможностях Bash. Например, вы помните что подключались в последний раз к определенному узлу по SSH, и теперь вам нужно подключиться к нему снова. Чтобы не вводить полностью команду можно набрать знак "!" и символы с которых начиналась команда:

Будет выполнена последняя команда, которая начиналась на ssh.

Посмотреть ip адрес

Часто возникает необходимость быстро узнать ip адрес своей машины. Для этого есть легко запоминающаяся команда, использующая curl и сайт ifconfig.me:

Форматирование вывода

Многие команды Linux выводят данные, разделяя столбцы пробелами. Одна из них mount. И естественно, в этом выводе трудно что-либо разобрать. Для разделения столбцов табуляциями используйте утилиту column:

mount | column -t

Динамический просмотр лога

Допустим, есть у нас лог файл в который пишется определенная информация и мы хотим видеть все изменения сразу, на лету. Тогда используйте команду tail с опцией -f:

tail -f /адрес/лог/файла

Будет выведено 8 последних строк из лога файла, а затем они будут постоянно обновляться.

Очистить терминал

Вывод команд, если во время их разработки были допущены некоторые ошибки может сломать форматирование строк терминала. Или просто может понадобится стереть всю лишнюю информацию. Для этого есть аж две полезные команды linux, первая:

Первая только переводит курсор вверх страницы, вторая добавляет несколько пустых строк. Ещё можно сбросить терминал нажав сочетание клавиш Ctrl+L.

Подключение RAM диска

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

mount -t tmpfs tmpfs /mnt -o size=1024m

В папку /mnt будет подключен RAM диск размером 1024 мегабайт.

Узнать архитектуру системы

Этой простой командой можно быстро узнать разрядность системы:

Открыть файл на определенной строке

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

nano +55 /sourcefile

vim +55 /sourcefile

И оказываетесь сразу на нужной строке.

Время выполнения команды

Хотите узнать сколько времени выполняется та или иная команда? Просто добавьте перед ней вызов утилиты time. Например:

Эту команду также можно использовать в качестве секундомера. Просто выполните:

А затем нажмите Ctrl+D когда нужно будет узнать сколько времени прошло.

Автоматическое удаление старых файлов

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

Утилита find позволяет находить все файлы, созданные позже определенной даты и выполнять с ними нужное действие. Все нужные файлы будем вовремя рассортировывать и перемещать по папкам назначения, а все что останутся в загрузках будут через два дня автоматически удаляться. Знание что файлы будут удалены заставит их вовремя переместить куда нужно.

Вот так выглядит сама команда:

find /home/user/Downloads/ -type f -mtime +180 -exec 'rm -f <>'

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

find /home/user/Downloads/ -type f -mtime +180 -exec 'mv <>

Подробнее о работе find можно почитать тут. Для полной автоматизации добавим выполнение этой команды каждый день в расписание cron:

0 0 * * * find /home/user/Downloads/ -type f -mtime +180 -exec 'rm -f <>'

Теперь давние файлы будут автоматически удаляться каждый день.

Убить все процессы из консоли

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

ps aux | grep chromium | awk '' | xargs kill -TERM

Или намного проще:

Здесь мы получаем список всех процессов в ps, выбираем из них chromium, потом отбираем второй столбец, то есть PID, и с помощью xargs вызываем kill для каждой вкладки. Точно таким же способом можно уничтожить любое приложение создающее много процессов.

Создать пустой файл

Иногда возникает необходимость создать пустой файл, например, когда он нужен для конфигурации какого-либо сервиса или чего-то тому подобного. Для этого можно воспользоваться командой touch:

Для создания файла определённого размера надо использовать команду dd:

dd if=/dev/zero of=/путь/к/файлу bs=1M count=размер_в_мегабайтах

Завершение

Вот и подошли к концу наш список. Если вы знаете другие полезные команды Linux, поделитесь ими в комментариях!


Трюк в командной строке Linux - символы !$

В этой заметке мы познакомимся с одной интересной возможностью командной строки Linux — использование символов !$ .

Зачем нужны символы !$ ?

Символы !$ заменяются в командной строке на последний аргумент (или последнюю опцию) последней выполненной команды.

То есть, например, вы выполнили какую-нибудь команду: somecommand --option1 --option2 arg1 arg2 . Если в следующей команде вы будете использовать символы !$ , то они автоматически заменятся на последний аргумент из предыдущей команды, то есть на arg2 в нашем примере.

Если быть более точным, то символы !$ заменяются не на аргумент, а на последнее слово в последней выполненной команде.

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

Проще всего понять, как это работает, на примерах.

Примеры

Пример 1

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

Теперь вы хотите перейти в эту директорию. Для этого можно выполнить команду:

Символы !$ будут автоматически заменены на последнее слово предыдущей команды. В предыдущей команде у нас был всего один аргумент — это название директории. Таким образом в результате будет выполнена команда:

mkdir

Пример 2

!$ будет заменено на mydir/

В результате будет выполнена команда:

ls

Пример 3

!$ будет заменено на -x . В данном случае последнее слово в команде это опция -x .

Читайте также: