История Linux Shell
На этом занятии мы рассмотрели команды повтора в оболочке, историю и т. Д.
повторение последней команды
Чтобы повторить последнюю команду в bash, введите !!. Это произносится как взрыв.
datasoft @ datasoft-linux ~$ cd test2
datasoft @ datasoft-linux ~/test2$ echo this will be repeated > test2.txt
datasoft @ datasoft-linux ~/test2$ !!
echo this will be repeated > test2.txt
datasoft @ datasoft-linux ~/test2$
повторяя другие команды
Вы можете повторить другие команды, используя один удар, а затем один или несколько символов. Оболочка будет повторять последнюю команду, которая началась с этих символов.
datasoft @ datasoft-linux ~/test2$ touch test2
datasoft @ datasoft-linux ~/test2$ cat test2
datasoft @ datasoft-linux ~/test2$ !to
touch test2
datasoft @ datasoft-linux ~/test2$
история
Чтобы увидеть старые команды, используйте history, чтобы отобразить историю команд оболочки (или используйте history n, чтобы увидеть последние n команд).
datasoft @ datasoft-linux ~/test2$ history 10
1185 set +C ; set +u
1186 echo $-
1187 clear
1188 cd test2
1189 echo this will be repeated > test2.txt
1190 touch test2
1191 cat test2
1192 touch test2
1193 clear
1194 history 10
datasoft @ datasoft-linux ~/test2$
цитаты
Обратите внимание, что двойные кавычки по-прежнему позволяют анализировать переменные, тогда как одинарные кавычки предотвращают это.
Оболочка bash заменит переменные с их значением в строках с двойными кавычками, но не в строках с одинарными кавычками.
! п
При наборе текста! после номера, предшествующего команде, которую вы хотите повторить, оболочка отобразит команду и выполнит ее.
datasoft @ datasoft-linux ~/test2$ !1189
echo this will be repeated > test2.txt
datasoft @ datasoft-linux ~/test2$ ls
test2 test2.txt
datasoft @ datasoft-linux ~/test2$
Ctrl-R
Другой вариант - использовать ctrl-r для поиска в истории. На скриншоте ниже я набрал только ctrl-r, за которым следуют четыре символа apti, и он находит последнюю команду, содержащую эти четыре последовательных символа.
datasoft @ datasoft-linux ~/test2$
(reverse-i-search)`i': sudo vim apti install screen
$ HISTSIZE
Переменная $ HISTSIZE определяет количество команд, которые будут запомнены в вашей текущей среде. В большинстве дистрибутивов по умолчанию эта переменная равна 500 или 1000.
datasoft @ datasoft-linux ~/test2$ echo $HISTSIZE
1000
Вы можете изменить его на любое значение, которое вам нравится.
datasoft @ datasoft-linux ~/test2$ HISTSIZE=20000
datasoft @ datasoft-linux ~/test2$ echo $HISTSIZE
20000
$ HISTFILE
Переменная $ HISTFILE указывает на файл, который содержит вашу историю. Оболочка bash по умолчанию использует это значение ~ / .bash_history.
datasoft @ datasoft-linux ~/test2$ echo $HISTFILE
/home/datasoft/.bash_history
История сеанса сохраняется в этот файл при выходе из сеанса!
Закрытие gnome-терминала мышью или ввод перезагрузки от имени root НЕ сохранит историю вашего терминала.
$ HISTFILESIZE
Количество команд, хранящихся в файле истории, можно установить с помощью $ HISTFILESIZE.
datasoft @ datasoft-linux ~/test2$ echo $HISTFILESIZE
2000
(необязательно) регулярные выражения
Можно использовать регулярные выражения при использовании взрыва для повторения команд. Скриншот ниже переключает 1 в 2.
datasoft @ datasoft-linux ~$ cat part1
one
datasoft @ datasoft-linux ~$ !c:s/1/2
cat part2
two
datasoft @ datasoft-linux ~$
(необязательно) повторение команд в ksh
Повторение команды в оболочке Korn очень похоже. Оболочка Korn также имеет команду history, но использует букву r для вызова строк из истории.
Этот снимок экрана показывает историю команды. Обратите внимание на различное значение параметра.
1271 cd ..
1272 ls
1273 clear
1274 cat part1
1275 cat part2
1276 r
1277 $ history 17
1278 sudo apt-get r
1279 clear
1280 history 10
Повторение с r может быть объединено с номерами строк, заданными командой history, или с первыми несколькими буквами команды.
Упражнение, практика и решение:
1. Выполните команду echo Ответом на смысл жизни, вселенной и всего остального является 42.
Код:
echo The answer to the meaning of life, the universe and everything is 42);
2. Повторите предыдущую команду, используя только два символа (есть два решения!)
Код:
!!
OR
!e
3. Отобразите последние 5 введенных вами команд.
Код:
datasoft @ datasoft-linux ~$ history 5
52 ls -l
53 ls
54 df -h | grep sda
55 echo The answer to the meaning of life, the universe and everything is 42
56 history 5
You will receive different line numbers.
4. Снова введите длинное эхо из вопроса 1, используя номера строк, которые вы получили из команды в вопросе 3.
Код:
datasoft @ datasoft-linux ~$ !56
echo The answer to the meaning of life, the universe and everything is 82
The answer to the meaning of life, the universe and everything is 82
5. Сколько команд можно сохранить в памяти для текущего сеанса оболочки?
Код:
echo $ HISTSIZE
6. Где хранятся эти команды при выходе из оболочки?
Код:
echo $HISTFILE
7. Сколько команд можно записать в файл истории при выходе из текущего сеанса оболочки?
Код:
echo $ HISTFILESIZE
8. Убедитесь, что ваша текущая оболочка bash запоминает следующие 5000 введенных вами команд.
HISTSIZE=5000
9. Откройте более одной консоли (нажмите Ctrl-shift-t в gnome-terminal) с одной и той же учетной записью пользователя. Когда история команд записывается в файл истории?
when you type exit
Предыдущий: переменные оболочки Linux
Далее: Глобализация файлов Linux
Новый контент: Composer: менеджер зависимостей для PHP , R программирования