Мы продолжаем использовать интересные и полезные команды, которые мы иногда забываем использовать, поскольку они неявны в нашей системе. В этом случае мы будем использовать тот, который позволяет нам немного поиграть с нашей историей.
Давайте возьмем простой пример, откройте терминал и введите:
$ nano /etc/sudoers
Они смогут понять, что мы не можем редактировать файл, если мы не являемся администраторами. Итак, воспользуемся sudo, но чтобы не повторять поставленную нами команду:
$ sudo !!
И это будет повторяться:
$ sudo nano /etc/sudoers
То есть команда !! повторит команду, которую мы запустили ранее в терминале. Мы также можем выполнить другую команду, которая не знает своего номера в истории.
Откройте терминал и введите:
$ history
В моем случае это выглядит примерно так:
[код] 495 cd Desktop /496 лс
497 wget -c http://cinnamon.linuxmint.com/tmp/blog/119/classic.png
498 кд
499 cvlc Music / Jamendo / The \ Patinettes \ - \ Bliss \ - \ 2011.06.03 /
500 cvlc Музыка / Рок /
[/ Код]
Если я запустил команду !! выполняется предыдущая команда, которая в этом случае будет:
$ cvlc Música/Rock/
Но если вы хотите запустить, например, команду:
$ wget -c http://cinnamon.linuxmint.com/tmp/blog/119/classic.png
Мне просто нужно было поставить:
$ !497
497 - это число перед командой. Все просто, правда?
Вау, я этого не знал, очень хорошая информация, спасибо.
Это избавляет меня от нажатия стрелки вверх | start. Спасибо за информацию.
Я считаю это очень полезным, это в сочетании с Ctrl + R для поиска команд делает работу с ttys еще более приятной.
Я обычно использую псевдоним фильтровать:
alias h='history | egrep -i'
На самом деле теперь, когда я думаю об этом, может быть, лучше добавить такую функцию в .bashrc:
h () {
# Función para listar comandos del historial
HISTERROR="Se puede utilizar como máximo un parámetro."
if [ $# -eq 0 ] ; then
history | less
elsif [ $# -eq 1 ] ; then
history | egrep -i $1 | less
else
echo $HISTERROR
fi
}
Таким образом, просто используйте h чтобы перечислить все команды в истории, или параметр h чтобы перечислить команды, соответствующие параметру (который, кстати, допускает регулярные выражения).
Я использую стрелки. Потом пробую.