Это прослушивало меня также, и я ответил на Ваш вопрос как на катализатор для исследования немного меня. По-видимому, Вы не.
Существует подобный вопрос на stackoverflow, который имеет только использование gdb как принятое решение. Другие ответы предлагают (и я соглашаюсь, заботитесь ли Вы), что переменные изменяющей среды после gui запуск имеют мало бесцельно. Тем более, что изменение среды процесса НЕ ВЛИЯЕТ на среду своих детей.
awk 'NR == FNR {t=($4 $5 $(NF-1));
$1=$2=$3=$4=$5=X;
$0=$0; $1=$1;
sub(/].*$/, "]");
a[t] = $0; next}
($3 $2 $5) in a {$4 = ($4 " " a[$3 $2 $5])}1' file2 file1
-121--217849- С помощью csh
или любой оболочки, реализующей csh
-подмещение истории ( tcsh
, bash
, zsh
):
!!
Затем введите .
Или либо :
!-1
Затем введите .
Или Ctrl + P , Введите
Также обратите внимание, что !!
и ! -1
не будут автоматически расширяться до тех пор, пока они не будут выполнены (когда может быть слишком поздно).
При использовании bash
можно поместить bind Космоса: magic-space
в ~/.bashrc
, затем нажать Пространства после того, как команда автоматически развернет их в линию, позволяя проверять их перед выполнением. Это особенно полезно для расширения истории из команды, выполняемой некоторое время назад, например, ! echo
будет извлекать последнюю команду, начиная с echo
. С помощью магического пространства можно предварительно просмотреть команду перед ее выполнением.
Это эквивалент выполнения bindkey '' magic-space
в tcsh
или zsh
.
Я считаю, что мне нужно часто повторять команды как суперпользователь, поэтому
sudo !!
повторяет предыдущую команду, как если бы я не забыл набрать sudo
в первую очередь.
При использовании любого POSIX-оболочки, реализующего опцию User Portability (включая ksh
, zsh
, bash
, yash
), вы также можете использовать команду fc
:
fc -e : -1
См. пример:
$ echo "hello"
hello
$ fc -e : -1
echo "hello"
hello
Больше информации в Выполните ряд команд из истории ответа Джонатана Леффлера.
С помощью csh
или любой оболочки, реализующей csh
-подобную подстановку истории (tcsh
, bash
, zsh
), вы также можете использовать ! <начало команды>
для вызова последней команды, начинающейся с <начало команды>
.
например, если вы запустили
$ tail file.txt
$ less otherfile.txt
$ !ta
!ta
выполнит tail file.txt
Конечно! Так как вы привыкли vi
keybindings, почему бы не настроить оболочку так, чтобы она отвечала на них? Для bash
поместите его в файл ~/.inputrc
:
set editing-mode vi
Запущенные экземпляры bash не будут повторно читать файл, поэтому выйдите из системы и вернитесь обратно.
zsh
даже обнаружит это для вас: если ни один из ваших сценариев запуска не заставит режим редактирования один путь или другой с помощью bindkey
и , если ваша переменная среды $ EDITOR
не будет содержать vi
, то она автоматически включит vi
keybindings. Если необходимо принудительно ввести это значение в ~/.zshrc
:
bindkey -v
После этого используйте ESC , как обычно, для ввода командной строки и k и j для перемещения вверх и вниз.
ТАКЖЕ : Привязки оболочки по умолчанию в большинстве оболочек являются привязками emacs, поэтому фактически Crtl-P и Ctrl-N должны работать без необходимости ничего менять.
Мой любимый - CTRL + P, затем CTRL + O
Это работает по умолчанию, дополнительная конфигурация не требуется. ^P позволяет переключиться на последнюю команду, а ^O позволяет выполнить текущую строку
Обратите внимание, что CTRL + O можно использовать столько раз, сколько захотите
.Для всех пользователей Mac iterm2:
Вы можете привязать ⌘ + R к 0x0C 0x10 0x0d
. Это очистит терминал и запустит последнюю команду.
Большинство оболочек, которые имеют возможность редактирования из командной строки. поддерживать крепления для ключей Emacs. (крошечное подмножество)
Up Ctrl+P
Down Ctrl+N
Left Ctrl+B
Right Ctrl+F
Home Ctrl+A
End Ctrl+E
Delete Ctrl+D
В качестве альтернативы, вы можете настроить вашу оболочку на использование режима редактирования команд vi, добавив set -o vi
в ваш стартовый файл оболочки (например, ~/.bashrc
).
Тогда, например, вы можете
!!!
).
Клавиша минус - также работает как команда "двигаться вверх". !-12
). vi
,
поэтому вам нужно будет использовать команду редактирования vi
.
(например, I, A, C, R,
или один из их низкопробных аналогов)
чтобы добавить к команде из истории. sudo !!!
. !-2:- !$
.
(К сожалению, похоже, что он не поддерживает именованные буферы.)Когда я использую хороший эмулятор xterm, например putty, мой любимый способ продолжить - выбрать команду, включая перевод строки, скопировать ее в буфер обмена, а затем щелкнуть правой кнопкой мыши, чтобы вставить ее. Это повторяет команду одним щелчком мыши. Это также отлично работает для последовательности команд, разделенных точкой с запятой.
puede usar !n
para ejecutar el comando n en la terminal. donde 'n' es el número de línea del comando history
.
tl;dr !!
просто добавляет последнюю команду к вашей текущей команде. <backtick>!!<backtick>
выполняет последнюю команду и добавляет вывод к вашей текущей команде.
На самом деле есть 2 варианта:
Позвольте мне показать вам 2 примера:
Пример 1
$ mkdir /test
mkdir: /test: Permission denied
$ sudo !!
sudo mkdir /test
Password:
Как вы видите выше, я выполняю команду и, по сути, просто добавляю последнюю команду.
Другой вариант
Пример 2
$ find ~/Documents "test.txt"
/Users/<user>/Documents/test.txt
$ vi `!!`
# Opens test.txt. But if you do
$ vi !!
vi find ~/Documents -name "test.txt"
VIM - Vi IMproved 8.1 (2018 May 18, compiled Oct 29 2018 06:55:58)
Unknown option argument: "-name"
More info with: "vim -h"
Введите История и запишите номер перед командой, которую вы хотите выполнить и использовать!number
Вы также можете использовать! -1(1 — это последняя команда, которую вы выполняете, замените это с номером счета, который вы получаете, когда делаете это снизу сохранение последнего выполненного как 1)
Есть несколько слоев, в которых вы можете запросить последнюю команду.
Строковый редактор (, в котором вы вводите свои команды ), предоставляется непосредственно ksh, библиотекой readline в bash и библиотекой zle в zsh. Другие оболочки, такие как dash, могут не иметь библиотеки редактирования для понимания этих клавиш (, если они не скомпилированы с включенной опцией --with-libedit
).
Эта работа в ksh, bash, zsh:
Ctrl-P#Режим Emacs (предыдущий)
Ctrl-N#Режим Emacs (далее)
ESC-k#режим vi ESC для перехода в командный режим и k для перехода вверх
ESC-j#режим vi ESC для перехода в командный режим и j для перехода вниз
Система истории, предоставляемая многими оболочками, позволяет расширять некоторые ярлыки:
!! # bash and zsh, may be provided by `alias \!\!='fc -e -'` in ksh.
!-1 # bash and zsh only
Есть некоторые команды, которые могут извлекать команды из истории.
Подобно довольно подробной команде (, только для печати):
history 2 | head -n-1
или старая и поэтому обычно более переносимая fc
команда (непосредственно повторно -выполняется):
fc -e - -1
Или проще fc -s -1
, но zsh не принимает такой вариант для fc.
Если вы хотите только напечатать команду, используйте:fc -nl -1 -1
.
Для редактирования установите FCEDIT
текстовый редактор (ex, ed, emacs, vi и т. д. )и используйте fc напрямую:fc -1
.
На клавиатуре счастливого хакера есть клавиши со стрелками, но не специальные клавиши со стрелками. Их можно использовать с:
На это указывают напечатанные спереди -надписи на соответствующих клавишах, как показано в этом блоге .