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

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

$

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