History Command in Linux (Bash History)
4 Февраля 2020
|
Терминал
Если вы проводите много времени в командной строке, просмотр истории команд, которые вы ранее выполняли, может быть полезной функцией, которая может упростить вашу повседневную работу и повысить производительность.
Использование команд и расширений истории
является встроенной оболочкой, и ее поведение может немного отличаться от оболочки к оболочке. Мы рассмотрим встроенную версию Bash .
В простейшей форме, когда вызывается без каких-либо параметров или аргументов, команда отображает весь список истории с номерами строк.
При наборе выполняется n-я команда из списка истории, а команда n строк назад. В следующем примере мы выполняем команду на линии :
Другой способ выполнить команду — использовать расширение. относится к самой последней команде, начинающейся со слова.
Как правило, отображает много строк вывода, которые не помещаются на экране. Чтобы просмотреть выходные данные по одной странице за раз, передайте их в пейджерную программу, например, или команду:
Чтобы отобразить последние строки, передайте число в качестве аргумента команде. Например, чтобы просмотреть только последние пять строк из списка истории, введите:
Используйте клавиши со стрелками и для навигации по записям в списке. Когда появится команда, которую вы искали, нажмите, чтобы выполнить ее.
Введите для выполнения предыдущей команды:
Это особенно полезно, когда вы забыли добавить команду , и вместо повторного ввода команды вы можете набрать:
то же самое, что и выполняет последнюю команду из списка истории, от второй до последней и т. д.
Расширение позволяет повторно запустить последнюю команду, заменив «word1» на «word2». Если вы случайно набрали вместо вас, вы можете повторить команду, используя правильное слово с:
Используйте команду для фильтрации вывода. Например, чтобы просмотреть все команды, включая «nano», вы должны выполнить:
Теперь, если вы хотите перезапустить команду, просто наберите:
Другой способ поиска по истории команд — нажать . Приглашение изменится на следующее, и вы сможете начать поиск ранее выполненной команды.
Оболочка отобразит соответствующую строку. Чтобы перейти к следующему согласованному предложению, нажмите еще раз.
Обратитесь к руководству Bash для получения дополнительной информации о расширении истории , модификаторах и обозначениях.
Сохранение списка истории
По умолчанию при запуске нового сеанса Bash читает список истории из файла. Список команд, которые выполняются в текущем сеансе, сохраняется в памяти и сохраняется в файл при закрытии сеанса.
Если вы открыли несколько сеансов оболочки, сохраняется только история сеанса, который был закрыт последним.
Опция позволяет сохранить текущий список истории сеанса в файл:
Вариант записывает полный список истории в файл истории.
Очистка истории
Команда позволяет очистить полный список истории или удалить определенные части.
Чтобы очистить список истории, используйте параметр:
Чтобы удалить определенную строку или строки между начальной и конечной позициями из списка истории, используйте параметр.
Например, чтобы удалить строки между 365 и 375 (включая эти строки), введите:
Если вы указываете только один номер опции, команда удаляет данную строку.
Когда используется отрицательное целое число, строки отсчитываются от конца списка истории.
Приведенные выше команды очищают список истории, который хранится в памяти, но не удаляет записи из файла на диске. Чтобы очистить файл, вам нужно записать в файл список истории:
Изменение истории поведения
Поведение истории Bash может быть определено с использованием нескольких различных переменных среды . При изменении поведения истории установите переменные в любом другом файле конфигурации, который загружается при входе пользователя в систему.
По умолчанию Bash хранит 500 строк в списке истории команд. Переменная позволяет изменять это значение. Чтобы установить его на 10000, добавьте следующую строку в ваш файл:
Переменная принимает разделенный двоеточиями список значений , которые определяют , каким образом команды сохраняются в списке истории:
- — команды, начинающиеся с пробела, не сохраняются в списке истории.
- — дубликаты команд не сохраняются.
- — это стенография, включающая в себя и .
Когда переменная установлена, Bash добавляет метку времени выполнения команды в каждой строке.
Например, если вы установите:
История будет отображаться в следующем формате:
Команда отображает список ранее выполненных команд. Например, вы можете использовать историю, чтобы просмотреть длинную команду, которую вы использовали до того, что вы не можете вспомнить.
Использование команды history и расширений истории
— это встроенная оболочка, и ее поведение может немного отличаться от оболочки к оболочке. Мы рассмотрим встроенную в Bash версию .
В простейшей форме при вызове без какой-либо опции или аргумента команда отображает весь список истории с номерами строк.
При вводе выполняется n-я команда из списка истории, а команда возвращается на n строк. В следующем примере мы выполняем команду в строке :
Другой способ выполнить команду — использовать расширение . относится к самой последней команде, начинающейся с слова.
Обычно в отображается много строк вывода, которые не помещаются на экране. Чтобы просмотреть вывод по одной странице за раз, направьте его в программу пейджера, например, команду или :
Чтобы отобразить последние строк, передайте число в качестве аргумента команды. Например, чтобы просмотреть только последние пять строк из списка истории, введите:
Используйте клавиши со стрелками и для перемещения по записям в списке. Когда отобразится искомая команда, нажмите чтобы выполнить ее.
Типа для выполнения предыдущей команды:
Это особенно полезно, когда вы забываете привязать команду к и вместо повторного ввода команды можете ввести:
совпадает с и выполняет последнюю команду из списка истории секунды до последней и так далее.
позволяет повторно запустить последнюю команду, заменив «word1» на «word2». Если вы случайно набрали вместо команды вы можете повторить команду, используя правильное слово:
Используйте команду для фильтрации вывода. Например, чтобы просмотреть все команды, включая «nano», вы должны выполнить:
Теперь, если вы хотите повторно запустить команду просто введите:
Другой способ поиска в истории команд — нажать . Приглашение изменится на следующее, и вы сможете начать поиск ранее выполненной команды.
Оболочка отобразит соответствующую строку. Чтобы перейти к следующему подходящему предложению, снова нажмите .
Обратитесь к руководству Bash для получения дополнительной информации о расширении истории , модификаторах и позиционных обозначениях.
Запускаем Terminal
Чтобы открыть Терминал, его, как и любое приложение, надо найти в Finder в папке Applications, он там располжен в подпапке Utilities (Программы → Служебные программы
). Это можно сделать быстро, нажав сочетание клавиш Shift+Command+U
, также его можно закрепить в Dock, если вы планируете часто с ним работать. Я предпочитаю запускать его при помощи Spotlight .
При помощи горячих клавиш надо открыть строку поиска Spotlight и начать набирать слово terminal
(обычно достаточно набрать только ter
) и, когда Spotlight найдёт Terminal, нажать ввод
(return, он же enter)
. Таким образом для запуска программы используется только клавиатура и получается быстрее, чем мышкой или трэкпадом.
Для того чтобы открыть Spotlight у меня назначена комбинация клавиш Option+Пробел
, узнать какая комбинация назначена у вас или поменять комбинацию можно в System Preferences → Spotlight (Системные настройки → Spotlight)
.
Но вернёмся к Терминалу и командной строке.
История команд Linux
Большинство задач, связанных с историей команд, мы будем выполнять либо с помощью команды history, либо с помощью оболочки. В истории хранится последняя 1000 команд, которые вы выполняли. Чтобы посмотреть всю историю для этого терминала просто запустите команду history без параметров:
Для дополнительных действий с историей вам могут понадобиться опции. Команда history linux имеет очень простой синтаксис:
$ history опции файл
В качестве файла можно указать файл истории. По умолчанию история для текущего пользователя хранится в файле ~/.history, но вы можете задать, например, файл другого пользователя. А теперь рассмотрим опции:
- -c — очистить историю;
- -d — удалить определенную строку из истории;
- -a — добавить новую команду в историю;
- -n — скопировать команды из файла истории в текущий список;
- -w — перезаписать содержимое одного файла истории в другой, заменяя повторяющиеся вхождения.
Наиболее полезной для нас из всего этого будет опция -c, которая позволяет очистить историю команд linux:
Так вы можете посмотреть только последние 10 команд:
А с помощью опции -d удалить ненужное, например, удалить команду под номером 1007:
Если вы хотите выполнить поиск по истории bash, можно использовать фильтр grep. Например, найдем все команды zypper:
На самом деле работать с историей еще более просто с помощью оболочки, возможно, вы уже используете многие ее функции, но о некоторых точно не знаете. Рассмотрим их:
Чтобы показать предыдущую команду просто нажмите стрелку вверх, так можно просмотреть список раньше выполненных команд.
Вы можете выполнить последнюю команду просто набрав «!!». Также можно выполнить одну из предыдущих команд указав ее номер «!-2»
Чтобы выполнить поиск по истории прямо во время ввода нажмите Ctrl+R и начните вводить начало команды.
Если вы знаете, что нужная команда была последней, которая начиналась на определенные символы, например, l, то вы можете ее выполнить, дописав «!l»:
Если нужная команда последняя содержала определенное слово, например, tmp, то вы можете ее найти, использовав «!?tmp»:
Если вы не хотите, чтобы выполняемая команда сохранилась в истории просто поставьте перед ней пробел.
Таким образом, вы можете очень быстро отыскать нужную команду, если помните как она была написана. История команд bash хранит очень много команд и этого вполне достаточно для комфортной работы.
КЛЮЧЕВЫЕ КОМАНДЫ
Команда | Описание |
---|---|
cd | Сменить директорию. Например |
cd | Переместиться в домашнюю директорию |
cd ~ | Переместиться в домашнюю директорию |
cd / | Переместиться в корневую папку диска |
cd — | Переместиться в предыдущую директорию |
ls | Список файлов и папок в текущей директории |
ls -l | Список файлов и папок в текущей директории. Название каждого файла/папки петатается на отдельно строке |
ls -a | Список файлов и папок в текущей директории с учётом скрытых файлов и папок |
ls -lh | Список файлов и папок с размером объектов в Кб, Мб и т.д. |
ls -R | Отобразить рекурсивно список всех файлов и папок в директории |
sudo | Выполнить команду с правами суперпользователя (Super User DO) |
open | Открыть файл ( равносильно открытию файла двойным щелчком мыши ) |
top | Отобразить активные процессы. Нажмите для выхода |
nano | Открыть файл в редакторе |
vim | Открыть файл в редакторе |
clear | Очистить экран |
reset | Сбросить дисплей терминала |
Настройка темы терминала
Терминал имеет встроенную возможность тематизировать окна оболочки, хотя вы можете этого не заметить с первого взгляда. Для этого перейдите на экран настроек терминала.
Отсюда выберите вкладку Профили. Этот раздел позволит вам настроить внешний вид окна Терминала.
Вы можете изменить цвет фона и текста, параметры рендеринга текста, размеры и гарнитуры шрифтов, тип курсора, цвет выделения и цвета ANSI. Последний используется, когда команда терминала отображает раскрашенный вывод, но не отображается иначе.
Вы заметите несколько профилей в меню слева. Вы можете выбрать один из них или щелкнуть значок «+» в нижней части панели, чтобы создать новый настраиваемый профиль. Профили — это контейнеры для ваших настроек, поэтому вы можете создать личный профиль, прежде чем что-либо настраивать.
Когда вы будете готовы, установите новый основной профиль, нажав кнопку По умолчанию. Все новые окна Терминала теперь будут открываться с этим профилем.
Вы также можете открывать окна Терминала в определенном профиле из «Оболочки -> Новое окно», где вы также можете выбрать профиль.
Вы также можете импортировать профили в Терминал из меню внизу экрана Профили.
Это дает вам возможность согласовать работу с Терминалом с другими версиями профиля в разных приложениях. Например, в вашем редакторе Vim, терминале и приложении Slack могут быть установлены один и тот же профиль и тема.
Как посмотреть содержимое папки
Просмотр содержимого папки осуществляется с помощью команды ls.
ls – «list files in the directory», можно перевести как «вывести список файлов в папке».
Синтаксис команды:
Давайте посмотрим содержимое текущей папки, для этого наберите команду:
По умолчанию команда ls выводит список с именем всех папок и файлов в виде колонок. Для того, чтобы изменить вывод списка можно воспользоваться следующими опциями:
-A – отображение всех файлов за исключением “.” и “..”.
-a – отображение в том числе скрытых файлов, которые начинаются с точки “.”.
-f – отображение списка файлов без сортировки.
-l – отображение детального списка, который включает: размер файла, создатель, дата/время создания и т.д.
-h – отображение размера файлов в KB/MB/GB, а не только в байтах.
-r – сортировка файлов в обратном порядке.
-S – сортировка файлов по размеру.
-t – сортировка файлов по дате последнего изменения.
-u – сортировка файлов по дате последнего открытия.
Например можно вывести подробный список (-l) содержимого текущей папки, отсортированный по размеру (-S) в обратном порядке (-r), размер файлов отображается в KB/MB/GB (-h):
Полезные команды “Терминала” на Mac OS
Открыв программу “Терминал”, можно воспользоваться ее функциональностью, чтобы ускорить работу операционной системы, отключить некоторые активированные по умолчанию функции, настроить интерфейс, узнать техническую информацию о процессах и так далее. Приведем несколько команд “Терминала”, которые полезно знать каждому пользователю операционной системы Mac OS:
Узнать IP-адрес сайта и проверить ответ сервера.
Простая команда, которая позволяет определить, доступен сейчас сайт или нет, а также узнать информацию о времени его отклика и IP. Необходимо использовать команду “ping” и ввести также адрес сайта, к которому идет обращение.
ping www.сайт
Выключить тени на скриншотах.
В операционной системе Mac OS удобно реализована функция быстрого создания скриншотов, но по умолчанию при создании скриншотов к ним добавляется тень. Это может не устраивать некоторых пользователей, и у них есть возможность отключить тень через “Терминал”. Для этого введите команду:
defaults write com.apple.screencapture disable-shadow -bool TRUE
После чего подтвердите свои действия командой:
Killall SystemUIServer
После этого тени на скриншотах в Mac OS больше не будут отображаться. Если понадобится вновь их включить, используйте вновь указанные команды, но замените True на False.
Изменение формата скриншота в Mac OS.
По умолчанию в операционной системе Mac OS скриншот делается в формате PNG. Если вы хотите это изменить, можно использовать команду:
defaults write com.apple.screencapture type -string «jpg»
Вместо формата JPG можно также указать BMP, GIF, PDF или TIFF.
Показать скрытые файлы на Mac OS.
В операционной системе Windows посмотреть скрытые файлы и папки достаточно просто. На Mac их отображение включается через “Терминал”. Чтобы увидеть, какие элементы в Finder скрыты, выполните команду:
defaults write com.apple.finder AppleShowAllFiles -bool TRUE
Killall Finder
После выполнения данных действий скрытые файлы на Mac OS будут отображаться.
Отключить сон в Mac OS.
Еще одна полезная команда для пользователей компьютеров под управлением Mac. Как известно, спустя некоторое время бездействия компьютер на Mac OS переходит в спящий режим. Чтобы ему помешать это сделать, можно использовать в “Терминале” команду:
caffeinate
Стоит отметить, что при необходимости команду можно применить, совместно со временем (в секундах), в течение которого компьютер должен бодрствовать. Выглядит подобная команда примерно так:
Caffeinate -t 150000
Включить или отключить частую проверку обновлений Mac OS.
Пользователям Windows хорошо знакома проблема с постоянными обновлениями операционной системы. На Mac это происходит значительно реже
Но, если вы хотите полностью отключить обновления, либо сделать их менее регулярными, можно использовать команду:
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
Обратите внимание, что в приведенном выше примере цифра “1” указывает, что проверка обновлений будет проводиться каждый день. Если нужно выполнять поиск актуальной версии ОС раз в год, напишите вместо “1” число “365”.
Провести компьютера.
Для проверки ноутбука на Mac OS может быть полезно выполнить стресс-тест
Команда, чтобы его запустить:
yes > /dev/null &
Завершить процесс можно командой:
Killall yes
Очистка корзины без предупреждения.
Всем известно, что при попытке очистить корзину операционная система обязательно потребует подтверждения действий. Это можно исправить через “Терминал” следующей командой:
defaults write com.apple.finder WarnOnEmptyTrash -bool false
После ее выполнения корзина будет очищаться без дополнительных уведомлений.
Раскрашивание и форматирование текста терминала
Вы также можете форматировать набранный текст в Терминале, используя настройки профиля или команды оболочки прямо в приглашении.
Чтобы прикрепить цвет текста к профилю, используйте настройку цвета текста на экране «Профили -> Текст» в настройках Терминала.
Чтобы временно раскрасить текст, вы заключаете текст в двойные кавычки и используете команда:
Давайте разберем это:
- экранирует непечатаемые символы
- это цветовой код красного текста
- это наш строковый литерал
- очищает форматирование, поэтому новый текст не отображается раскрашенным
- печатает новую строку
Если вы хотите, чтобы текст оставался раскрашенным, не включайте . Чтобы завершить форматирование, распечатайте в стандартный вывод с .
Вы также можете использовать те же коды ANSI, что и ранее, и перейти к большая глубина когда дело доходит до форматирования подсказок.
Как удалить всю историю чата из сообщений в Mac OS X
Это работает во всех версиях приложения «Сообщения» для Mac, от самых ранних версий до новейших:
- Выход из сообщений для Mac
- Нажмите Ctrl + Shift + G, чтобы открыть окно «Перейти в папку».
- Введите ~ / Библиотека / Сообщения /
- Выберите все файлы в папке «Сообщения» и перейдите в корзину, файлы будут называться chat.db, chat.db-shm, chat.db-wal и т. Д.
- Очистить корзину и перезапустить iMessages
Когда вы повторно запускаете приложение «Сообщения», ни одна из ваших ранее существовавших цепочек не будет содержать никаких данных.
Имейте в виду, что вложения для разговора хранятся в отдельной папке и обрабатываются отдельно в ~ / Library / Messages / Attachments /, которая включает в себя такие вещи, как изображения, gif, видео, текстовые файлы, молнии, аудиоклипы и любые другие вложения, которые были отправлены через приложение сообщений OS X. Таким образом, если вы хотите быть осторожным в удалении всей истории и кеша из клиента сообщений, вам нужно будет посетить этот каталог вложений и удалить эти файлы. Если есть какие-либо изображения, которые вы хотите сохранить локально из приложения «Сообщения» или беседы, сохраните их перед удалением их или этой папки, иначе они исчезнут навсегда.
Очистка истории чата iMessage на Mac из командной строки
Вы также можете сделать это через командную строку, если вам удобно использовать терминал и команду rm с шаблоном, который обычно считается расширенным. Для этого выйдите из iMessage и откройте Terminal, в командной строке введите следующее:
rm -r ~ / Библиотека / Сообщения / чат. *
Затем, чтобы уничтожить вложения, изображения, почтовые и другие кэши данных:
rm -r ~ / Библиотека / Сообщения / Вложения / ??
Помните, что командная строка полностью неумолима, и файлы удаляются немедленно и постоянно, только делайте это, если вы точно знаете, что делаете, и почему вы это делаете.
Перезапустите iMessages и найдите пустую историю чата.
Оба эти трюка работают еще в оригинальной версии iMessages для Mac, а также во всех современных воплощениях приложения OS X Messages, в том числе в OS X Yosemite, где сообщения имеют прямые ссылки с приложением iOS-сообщений.
Имейте в виду, что когда вы удаляете кеши и журналы чата из приложения «Сообщения», приложение будет открываться пустым, без загрузки предыдущих сообщений, и все предыдущие разговоры будут удалены. В конце концов, это весь смысл этой процедуры.
Может быть более простой способ удалить историю чата из приложения «Сообщения» OS X, но на данный момент нет особых опций в настройках приложения Mac, поэтому вышеупомянутых трюков будет достаточно.
Для тех, кто стоит на стороне iOS, удаление сообщений с iPhone и iPad, как показано здесь, просто, но немного отличается, позволяя вам выбирать отдельные потоки сообщений, части сообщений или все их, чтобы удалить их соответствующим образом.
Способы убить процессы на Mac
Метод 1. Использование монитора активности
Этот метод позволит вам быстро просмотреть и убить процессы. Это очень простой пошаговый процесс.
Вы можете запустить монитор активности двумя способами. Вы можете запустить его, перейдя в папку «Приложение» и дважды щелкнув значок. Другой способ — одновременное нажатие клавиш Command и пробела для вызова Spotlight. А затем введите Монитор активности. Когда появится опция, нажмите кнопку возврата, чтобы запустить ее.
Затем вы увидите пять вкладок в верхней части монитора активности, которые включают ЦП, память, энергию, диск, и вы можете нажать на любую из них, чтобы увидеть, сколько ресурсов используется процессами. Например, на вкладке ЦП будет отображаться количество вычислительной мощности, используемой приложениями, а на вкладке памяти будет указан объем ОЗУ, используемый процессами. Итак, определите процессы, которые используют больше всего полномочий.
После идентификации нажмите на этот процесс, а затем нажмите на знак «X». Это заставит процесс прекратить работу и освободить использованные ресурсы. Если это приложение, оно будет закрыто. Но если это критическое приложение, оно будет перезапущено.
Метод 2: использование терминала
Если вы хотите убить процессы на терминале Mac, метод действительно очень прост. Здесь также вам нужно сначала определить критические процессы, а затем избавиться от них. Вот и все.
Точно так же вам нужно сначала запустить Терминал, одновременно нажав клавиши Command и пробел. Это принесет Прожектор. Введите там Терминал и нажмите кнопку возврата, чтобы запустить Терминал. Другой способ запустить Терминал — перейти в папку «Приложение» и дважды щелкнуть значок.
Следующим шагом будет просмотр процессов. Когда окно терминала откроется, введите «top» в окне терминала, чтобы отобразить список запущенных в данный момент процессов. Вы также получите обзор ресурсов, используемых запущенными процессами.
Итак, определите процесс, который использует больше всего. Теперь вам нужно убить процесс на PID терминала Mac. Хотите знать, что это за PID? Вы заметите столбец PID рядом с каждым именем процесса. Запишите это число. Это номер PID. Теперь, чтобы остановить процесс, вам нужно ввести «Kill-9», а затем номер PID. Нажмите Enter, и этот процесс завершится.
Метод 3: принудительный выход
Это еще один лучший и самый простой способ закрыть приложение, которое вызывает у вас проблему. Сначала вы можете определить проблемный процесс в мониторе активности или в меню iStat.
Следующий шаг требует вызова приложения Fore Quit. Вы можете запустить его, нажав одновременно клавиши Command, Alt и Esc.
Теперь щелкните приложение, которое создает проблему, и нажмите «Завершить принудительно». Вы успешно закрыли проблемное приложение.
Метод 4: завершение фонового процесса
Для повторного завершения фоновых процессов необходимо запустить монитор активности. Процесс такой же, как и в методе 1. Но единственный недостаток уничтожения фоновых процессов заключается в том, что здесь вы заметите некоторые процессы, которые вам не понятны. Всегда хорошо оставлять их такими, какие они есть. Если что-то пойдет не так, это может повлиять на MacOS. Итак, просто определите проблемное приложение, которое использует больше ОЗУ и вычислительной мощности ЦП, и избавьтесь от него, используя знак «X» в инструменте монитора активности.
Метод 5: Использование CleanMyMac
Если вы хотите, чтобы какое-то другое приложение выполняло эту задачу за вас, всегда добро пожаловать. CleanMyMac — ответ на этот вопрос. Вот пошаговый процесс использования CleanMyMac.
- Сначала определите все проблемные процессы с помощью iStat
- Затем запустите Setapp и найдите CleanMyMac.
- Теперь узнайте сценарии обслуживания. Слева вы увидите секцию скорости. Вам нужно нажать на «Обслуживание», расположенное в этом разделе.
- Вы увидите список задач, предложенных CleanMyMac для выполнения вами для оптимизации Mac. Вы определенно можете запустить их все. Но наиболее важным из них является «Выполнение сценариев обслуживания».
- Итак, запустите сценарии обслуживания и отметьте все флажки, расположенные рядом с «Запустить сценарии обслуживания». Нажмите «Выполнить». Точно так же вы можете запускать все остальные сценарии обслуживания. Наконец, когда все будет сделано, нажмите на опцию «Выбрать задачу», чтобы вернуться к списку задач обслуживания.
Итак, это способы убить процессы на вашем Mac.