Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
spo_voprosy.docx
Скачиваний:
28
Добавлен:
20.03.2016
Размер:
465 Кб
Скачать

13. Shell history

Оболочка позволяет легко для нас повторять команды, эта глава объяснит как.

  1. Чтобы повторить последнюю команду bash напечатайте !!. Это произносится как bang bang.

paul@debian5:~/test42$ echo this will be repeated > file42.txt

paul@debian5:~/test42$ !!

echo this will be repeated > file42.txt

paul@debian5:~/test42$

  1. Повторение других команд. Вы можете использовать повторение других команд используя один bang, сопроводив его одним или более символов. Shell тогда повторит последнюю команду, начинавшуюся с этих символов.

paul@debian5:~/test42$ touch file42

paul@debian5:~/test42$ cat file42

paul@debian5:~/test42$ !to

touch file42

paul@debian5:~/test42$

  1. История. Чтобы увидеть более поздние команды, используйте команду history (или используйте history n, чтобы увидеть последние n команд)

paul@debian5:~/test$ history 10

38 mkdir test

39 cd test

40 touch file1

41 echo hello > file2

42 echo It is very cold today > winter.txt

43 ls

44 ls -l

45 cp winter.txt summer.txt

46 ls -l

47 history 10

  1. !n. Когда вводишь ! и затем номер предшествовавшей команды, которую вы хотели бы повторить, тогда shell применит к ней echo и выполнит.

paul@debian5:~/test$ !43

ls

file1 file2 summer.txt winter.txt

  1. Ctrl-r. Можно использовать сочетание ctrl-r для поиска по истории. В примере ниже только нажали это сочетание, затем ввели apti тогда оно нашло последнюю команду, которая содержала эти 4 последовательных символа:

paul@debian5:~$

(reverse-i-search)`apti': sudo aptitude install screen

  1. $HISTSIZE переменная определяющая количество команд, которые будут запомнены в вашей текущей среде. В большинство дистрибутивов по умолчанию установлено 500 или 1000.

paul@debian5:~$ echo $HISTSIZE

500

Вы можете изменять значение этой переменной по усмотрению:

paul@debian5:~$ HISTSIZE=15000

paul@debian5:~$ echo $HISTSIZE

15000

  1. $HISTFILEпеременная, указывающая на файл, который содержит вашу историю. Для bash shell по умолчанию это значение ~/.bash_history

paul@debian5:~$ echo $HISTFILE

/home/paul/.bash_history

История сессии сохраняется в этот файл, когда вы выходите из сессии!

Закрытие терминала в gnome с помощью мышки, или ввод команды reboot не сохранят вашу историю.

  1. $HISTFILESIZEколичество команд, хранящихся в вашей истории, может быть настроено с помощью этой переменной.

paul@debian5:~$ echo $HISTFILESIZE

15000

  1. (опционально) регулярные выражения. Можно использовать регулярные выражения (regular expressions) когда используете bang для повторения команд. На примере внизу 1 заменяется на 2.

paul@deianb5:~/test$ cat file1

paul@debian5:~/test$ !c:s/1/2

cat file2

hello

paul@debian5:~/test$

  1. (опционально) повторяющиеся команды в ksh. Повторение команд в Korn Shell довольно похожее. Он так же имеет команду history, но использует букву r, чтобы вызывать строки из истории. Пример показывает действие команды history. Обратите внимание на другое значение параметра:

$ history 17

17 clear

18 echo hoi

19 history 12

20 echo world

21 history 17

Повторение с помощью r можно совмещать с номерами строк, данными командой history, или с первыми несколькими буквами команды.

$ r e

echo world

world

$ cd /etc

$ r

cd /etc

$

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]