кодесурса
«Linux

История Linux Shell

script1adsense2code
script1adsense3code

На этом занятии мы рассмотрели команды повтора в оболочке, историю и т. Д.

повторение последней команды

Чтобы повторить последнюю команду в 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code