1. Выполните последнюю команду с помощью !!
Название говорит само за себя, просто введите в терминал следующее ...
!!
… Чтобы повторно выполнить последнюю введенную команду. Этот трюк очень полезен, когда мы забываем ввести Sudo с начала. В этом случае вам нужно будет ввести:
пот !!
Чтобы найти более сложные способы получить максимальную отдачу от этого трюка, я рекомендую прочитать это старый пост.
2. Выполните последнюю команду, но исправьте опечатку.
Этот прием действительно полезен, когда мы вводим команду с простой опечаткой. Например, если мы запустим:
эхо "desdelinuxz"
Вы можете исправить это, введя следующее:
^z
3. Вызовите текстовый редактор, чтобы ввести длинную команду.
Иногда нужно вводить бесконечные команды в терминале. В этом случае может оказаться полезной помощь простого текстового редактора, такого как nano или emacs.
Чтобы открыть редактор, просто нажмите Ctrl + x + e в терминале. Текст, который вы ввели до сих пор, будет скопирован в текстовый редактор после его открытия.
Со своей стороны, будет использоваться редактор, указанный в переменной $ EDITOR. Чтобы изменить эту конфигурацию, можно выполнить ...
экспорт EDITOR = nano
… Замена nano на предпочитаемый вами редактор.
4. Выполнить команду, не сохраняя ее в истории.
Настоящий хакер не может игнорировать этот трюк. Как вы все знаете, bash сохраняет историю выполненных команд, к которой очень легко получить доступ, используя стрелки клавиатуры или Ctrl + R (выполнить обратный поиск в истории).
В этом случае вам нужно сделать, чтобы введенная команда не сохранялась в истории, - это поставить перед ним пробел:
команда
5. Автоматически размещать последний параметр команды.
Предположим, что ранее выполненная команда была
cp file.txt / var / www / wp-content / uploads / 2009/03 /
Чтобы получить доступ к рассматриваемому каталогу, вы можете ввести команду cd с последующим Alt +. o Esc +. :
cd 'ALT +.'
Это просто сокращенный способ входа:
cd / var / www / wp-content / uploads / 2009/03 /
6. Выполните команду в указанное время.
Да, да, это то, для чего он существует крон. Однако иногда мы хотим запустить команду в определенное время, но только один раз.
Предположим, мы хотим выполнить команду ls -l в полночь. В этом случае мы должны выполнить его следующим образом:
echo "ls -l" | в полночь
7. Получите свой внешний IP
Благодаря услуге, предоставляемой http://ifconfig.me/ Прямо с терминала можно узнать различные данные о вашем интернет-соединении:
curl ifconfig.me/ip // IP-адрес curl ifconfig.me/host // Удаленный сервер curl ifconfig.me/ua // Пользовательский агент curl ifconfig.me/port // Порт
8. Узнайте, как использовать Ctrl + u и Ctrl + y.
Сколько раз с вами случалось, что вы начинали набирать команду и вспоминали, что раньше нужно было сделать что-то еще? Что ж, можно сделать что-то вроде вырезания-вставки, чтобы потом было легче повторно ввести команду, которая была оставлена наполовину.
Допустим, вы начали писать ...
cd / home / user
и вы вспомнили, что раньше вам нужно было что-то проверять в текущем каталоге. В этом случае нажмите Ctrl + U (Это было бы что-то вроде "разрезания").
Введите команду, которую нужно запустить в первую очередь. Предположим ...
ls -l
... а затем нажмите Ctrl + y (Работает как "паста").
9. Легко очистите терминал.
В лице Ctrl + l Терминал можно очистить в мгновение ока.
10. Перейдите в каталог, выполните команду и вернитесь в текущий каталог.
Этот трюк вызывает восторг. Чтобы выполнить серию команд, не покидая текущий каталог, просто сгруппируйте их в круглые скобки. Как известно почти всем, чтобы выполнить серию команд, вы должны объединить их с помощью &&. Используя эти концепции, мы можем выполнить что-то вроде следующего:
(cd / tmp && ls)
Результатом этой команды (обратите внимание на скобки) будет список файлов и каталогов в папке. / Tmp. И все это в нашем текущем каталоге. Жемчужина!
Япа. Список наиболее часто используемых команд
Чтобы увидеть их наиболее часто используемые команды просто выполните следующее:
история | awk '{a [$ 2] ++} END {for (i in a) {print a [i] "" i}}' | sort -rn | голова
В моем случае победителями стали:
450 yaourt 415 sudo 132 git 99 cd 70 leafpad 70 killall 68 ls 52 pacman 50 xrandr 45 top
Любителям терминалов, которым нравится этот сервер, я рекомендую посетить командная строка. Кроме того, почему бы и нет, не переставайте смотреть на архив из нашего блога.
Был один, который я использовал без заглавных букв в моем inputrc, потому что, честно говоря, многие файлы, которые начинались таким образом, попадали в меня.
Я думаю, что одна из самых важных - это команда истории, в которой она возвращает нумерованный список
из команд, которые вы использовали, и если вы хотите использовать любую из них, просто используйте следующую строку
! 22
который выполнит команду, которая находится в вашей истории под номером 22 😀
Для поиска команды с автозаполнением есть
Ctrl + R
Я также всегда использую Ctrl + r, чтобы повторить последнюю команду; как только появится последний из них, вы можете прокрутить историю назад, нажав кнопку «Вверх» (стрелка вверх).
Привет.
Хорошая статья. Спасибо, что поделились этими советами.
Я хочу поделиться тем, что я использую ежедневно, это «fg», который позволяет вам открывать приложения, которые вы остановили ранее, с помощью «Ctrl + z».
А с 'bg' вы отправляете их в фоновый режим 🙂
Посмотри на себя ... хороший трюк! Спасибо, что поделились этим.
Объятие! Павел.
Отличный пост, они всегда заставляют вспомнить то, что вы знали и в конце концов забыли, но это действительно полезно.
Терминальные читы всегда приветствуются.
Невероятно, но я не знал, что добавление пробела к команде было исключено из истории.
Большое спасибо, привет !!
для использования автозаполнения истории фильтрации добавьте в файл $ HOME / .inputrc
"\ E [5 ~": поиск в истории назад
"\ E [6 ~": поиск в истории вперед
и, например, в какой-то момент вы использовали:
$ cd / one / path / длиннее / чем / the / shit
и теперь вы хотите использовать его снова, вам нужно сделать:
$ cd
а затем нажимайте клавиши «Page Up» или «Page Down», чтобы перемещаться по всем командам в истории, которые начинались с «cd».
ИЛИ ЖЕ…. Ничего не редактируя, нажмите Ctrl + R, а затем cd (если вы хотите найти что-то с помощью 'cd') и, повторно нажимая Ctrl + R, вы увидите все команды, которые содержат это, пока не дойдете до нужной. Очевидно, что если это непосредственно предыдущий, вы его получите.
Очень хорошо!
На самом деле ls / tmp должно быть достаточно, чтобы отобразить каталог, не выходя из текущего.
Вы также можете объединить команду, используя ";" как в примере № 10, это будет так:
(cd / tmp; ls)
привет
Он ";" Он работает иначе, чем «&&» (и), когда мы выполняем command-1 && command-2, вторая команда выполняется только в том случае, если вывод первой равен «0», то есть без ошибок. В случае точки с запятой вторая команда выполняется независимо от вывода первой. Для расширения есть оператор «||» (или), в этом случае вторая команда выполняется только в том случае, если первая выдает ошибку на выходе. С уважением.
Чтобы каждая строка, которая запоминает историю, имела дату и время, в ~ .bashrc есть переменная среды обычного пользователя или root.
# нано .bashrc
экспорт HISTTIMEFORMAT = »% F% T»
# история
492 2014 09:02:14 revdep-rebuild -i -v
493 2014 09:02:14 eclean-dist -d
494 2014 09:02:14 localepurge -v
495 2014-09-02 14:31:29 etc-update
496 2014 09:02:14 emerge –depclean –pretend
497 2014-09-02 14:39:08 updatedb
Есть еще варианты, которые касаются количества сохраняемых строк, я их тестирую.
Очень хороший пост. Действительно очень полезно. Уловка номер 4, заключающаяся в выполнении команды без сохранения ее в истории, у меня сработала только в Ubuntu, но не в Debian или Centos.
У меня это сработало на распбиане, а не на арке.
Мервейе!!
Привет,
что поставить пробел перед выполнением команды, чтобы она не регистрировалась в истории, так как не работает ...
[пользователь @ хост /] $ ls -l
Всего 104
dr-xr-xr-x. 2 root root 4096 21 августа 03:55 bin
dr-xr-xr-x. 5 root root 3072 20 августа 17:26 boot
drwxr-xr-x. 2 root root 4096 9 декабря 2013 cgroup
[user @ host /] $ history
1024 лс
1025 лс
1026 история
1027 ls -l
1028 история
интересная статья ..
приветствия
Извините, что не прочитал все сообщения,
Тест также выполняется в сентосах.
Хорошо работает с Ctrl + U и Ctrl + Y.
В моей системе список наиболее часто используемых команд работал у меня, изменяя значение переменной на 5 долларов.
Пример вывода:
1122 судо
362 ls
279 clear
214 cd
142 раскопок
141 год
130 внстат
122 MV
112 см
История 112
Это потому, что в моем файле .bashrc есть следующая строка:
# Показать дату команде истории
экспорт HISTTIMEFORMAT = '% F% T:'
Я почти уверен, что многие здесь использовали несколько терминалов одновременно.
Я не знаю, говорить ли вам, что это уловка с терминалом, но поскольку у меня обычно много окон или я использую экран для открытия нескольких терминалов, это позволяет любую команду, введенную в один из этих терминалов, так как она будет отражена .
Это находится в файле .bashrc:
HISTSIZE = 90000
HISTFILESIZE = $ HISTSIZE
HISTCONTROL = ignorespace: игнорировать дубликаты
history () {
_bash_history_sync
встроенная история "$ @"
}
_bash_history_sync () {
встроенная история -a # 1
HISTFILESIZE = $ HISTSIZE # 2
встроенная история -c # 3
встроенная история -r # 4
}
PROMPT_COMMAND = _bash_history_sync
Очень хороший вклад! Спасибо за прохождение.
Объятие! Павел.
Поздравляю со статьей.
Очень практично, и я выучил несколько команд.
Хотя я уже в чем-то "опытен" в этих делах, эти уловки всегда ценятся, так что ... за ствол уловок !!!
отлично, спасибо за хитрости, действительно полезные 😀
Пути консоли непостижимы 😉
Уловка нажатия control + u и control + y зависит не от оболочки, а от конфигурации терминала. По сей день в Linux tty являются очень сложными объектами, на самом деле я исследовал их работу и могу заверить, что у них гораздо больше входов и выходов, чем кажется. На tty есть управляющие символы, которые меняют свой статус, например, у меня иногда случалось, что я обнаруживаю двоичный файл, и после того, как весь "мусор" появляется на экране, подсказка странная или с другой кодировкой. Это связано с тем, что в случайном файле высока вероятность встретить управляющие символы tty.
Например, запустите это в оболочке:
напечатать '33c'
Это очистит экран (как если бы вы очистили).
Другие комбинации, такие как Ctrl + L для очистки экрана, исходят из используемой оболочки, классические оболочки / bin / sh обычно не поддерживают эту функцию.
Кроме того, на сегодняшний день существует множество сложных вариантов работы с файлами и сокетами под Linux. Например, если вы открываете tty-устройство с помощью open () в режиме AIO (асинхронный ввод / вывод), процесс будет получать сигнал SIGIO каждый раз, когда во входном буфере есть данные.
Если, например, bash работает просто путем чтения строк и выполнения команд (как это происходит при выполнении сценария), при нажатии control + L эта последовательность символов будет просто включена как часть команд, но поскольку bash имеет управление буфера ввода может это обнаружить.
Например, иногда при программировании я использую fcntl для получения неблокирующего входного буфера, который я использовал даже с библиотеками ncurses (манипулируйте tty управления перед запуском ncurses в программе).
Saludos!
Для тех, кто не работал с пробелом в начале и, возможно, чтобы добавить его в заметку, есть переменная HISTIGNORE, в которой символ, добавляемый перед командой, настроен на игнорирование в истории.
В некоторых установках эта переменная не из
Привет и хороший пост! прямо в избранное!
Обратите внимание, что в комментариях я тоже увидел несколько интересных вещей .. !!
Все действительно очень полезно. Спасибо.