- •II. First steps on the command line
- •5. Man pages
- •6. Working with directories (работа с папками)
- •7.Working with files
- •8. Working with file contents
- •9. The Linux file tree
- •III. Shell expansion
- •10. Commands and arguments
- •11. Control operators
- •12. Variables
- •13. Shell history
- •14. File globbing
- •IV. Pipes and commands
- •Глава 16. Фильтры.
- •16.3 Grep
- •16.7. Sort
- •16.8. Uniq
- •16.9. Comm
- •16.12. Примеры пайпов
- •Глава 17. Основные инструменты Unix
- •17.1. Find
- •17.2. Размещение
- •17.3. Date
- •17.5. Sleep
- •17.6. Time
- •17.7. Gzip - gunzip
- •17.8. Zcat - zmore
- •18.3. Замена и удаление символов (r X X)
- •18.4. Отменить и повторить (u .)
- •18.5. Вырезать, копировать и вставить строчки (dd yy p p)
- •18.6. Вырезать, копировать и вставить строчки (3dd 2yy)
- •18.8. Объединения двух и более линий (j)
- •18.9. Слова (w b)
- •18.10. Сохранить (или нет) и выход (:w :q :q! )
- •18.11. Поиск (/ ?)
- •18.13. Чтение файлов (:r :r !cmd)
- •19.1. Предпосылки
- •19.2. Hello World
- •19.4. Комментарии
- •20.2. Если, затем, иначе (if then else)
- •20.3. If then elif
- •20.4. For loop
- •20.5. While loop
- •21.2. Shift through parameters.
- •21.3. Runtime input.
- •21.3. Sourcing a config file.
- •21.5. Get script options with getopts.
- •21.6. Get shell options with shopt.
- •Глава 22 More scripting.
- •22.1. Eval.
- •22.4. Case.
- •22.5. Shell functions.
- •Раздел VII. Local user management. Глава 23. Users.
- •23.1. Identify yourself.
- •23.2. Users.
- •23.3. Passwords.
- •23.4 Home directories
- •23.5 User shell
- •23.6. Switcj users with su
- •23.7 Run a program as another user
- •23.10 Shell environment
- •Глава 24. Groups
- •24.1 About groups
- •24.2 Groupadd
- •24.3 /Etc/group
- •24.4 Usermod
- •24.5 Groupmod
- •24.6 Groupdel
- •24.7 Groups
- •24.8 Gpasswd
- •24.9 Vigr
13. Shell history
Оболочка позволяет легко для нас повторять команды, эта глава объяснит как.
Чтобы повторить последнюю команду 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$
Повторение других команд. Вы можете использовать повторение других команд используя один bang, сопроводив его одним или более символов. Shell тогда повторит последнюю команду, начинавшуюся с этих символов.
paul@debian5:~/test42$ touch file42
paul@debian5:~/test42$ cat file42
paul@debian5:~/test42$ !to
touch file42
paul@debian5:~/test42$
История. Чтобы увидеть более поздние команды, используйте команду 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
!n. Когда вводишь ! и затем номер предшествовавшей команды, которую вы хотели бы повторить, тогда shell применит к ней echo и выполнит.
paul@debian5:~/test$ !43
ls
file1 file2 summer.txt winter.txt
Ctrl-r. Можно использовать сочетание ctrl-r для поиска по истории. В примере ниже только нажали это сочетание, затем ввели apti тогда оно нашло последнюю команду, которая содержала эти 4 последовательных символа:
paul@debian5:~$
(reverse-i-search)`apti': sudo aptitude install screen
$HISTSIZE – переменная определяющая количество команд, которые будут запомнены в вашей текущей среде. В большинство дистрибутивов по умолчанию установлено 500 или 1000.
paul@debian5:~$ echo $HISTSIZE
500
Вы можете изменять значение этой переменной по усмотрению:
paul@debian5:~$ HISTSIZE=15000
paul@debian5:~$ echo $HISTSIZE
15000
$HISTFILE – переменная, указывающая на файл, который содержит вашу историю. Для bash shell по умолчанию это значение ~/.bash_history
paul@debian5:~$ echo $HISTFILE
/home/paul/.bash_history
История сессии сохраняется в этот файл, когда вы выходите из сессии!
Закрытие терминала в gnome с помощью мышки, или ввод команды reboot не сохранят вашу историю.
$HISTFILESIZE – количество команд, хранящихся в вашей истории, может быть настроено с помощью этой переменной.
paul@debian5:~$ echo $HISTFILESIZE
15000
(опционально) регулярные выражения. Можно использовать регулярные выражения (regular expressions) когда используете bang для повторения команд. На примере внизу 1 заменяется на 2.
paul@deianb5:~/test$ cat file1
paul@debian5:~/test$ !c:s/1/2
cat file2
hello
paul@debian5:~/test$
(опционально) повторяющиеся команды в 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
$