Хочу рассказать об одной полезной команде, с помощью которой можно записывать все, что происходит в терминале в файл. Фактически вы составляете полный лог всех команд, которые вы вводите в терминале и то, что выводится на экран.
Чтобы начать запись нужно выполнить команду script. Если вызвать команду script без параметров, то запись будет вестись в файл с именем typescript.
yuriy@yuriy:~$ script
Скрипт запущен, файл - typescript
Файл будет создан именно в той директории, в которой вы находитесь. Вывести название текущей директории можно командой pwd. Если файл уже существует, то он будет очищен.
В качестве параметра команде script можно указать имя файла, в который вы хотите записывать всю активность в терминале. Пример вызова:
script myterminal.log
После ввода команды будет создан файл, но данные в него будут записаны только после того, как вы введете команду exit или нажмете сочетание клавиш Ctrl+D. Пример:
yuriy@bum:~$ script
Скрипт запущен, файл - typescript
yuriy@bum:~$ pwd
/home/yuriy
yuriy@bum:~$ uptime
21:47:40 up 6 min, 2 users, load average: 1.20, 1.37, 0.71
yuriy@bum:~$ exit
exit
Скрипт выполнен, файл - typescript
yuriy@bum:~$
Мы выполнили команду script. Автоматически был создан файл typescript (если он уже существовал, то он будет очищен). С этого момента система начинает запоминать весь ввод и вывод в терминале. В конце мы вводим команду exit и в файл с именем typescript записывается все, что происходило в терминале с момента ввода команды script.
Если вы хотите, чтобы запись велась уже в существующий файл, тогда нужно добавить опцию -a. В этом случае файл не будет очищен, а новые данные будут добавлены к текущему содержимому. Пример:
yuriy@bum:~$ script my.log <--- Первый вызов: создается пустой файл my.log
Скрипт запущен, файл - my.log
yuriy@bum:~$ ifconfig
eth0 Link encap:Ethernet HWaddr bb:aa:cc:dd:aa:bb
..
yuriy@bum:~$ exit <--- Данные записываются в файл my.log
exit
Скрипт выполнен, файл - my.log
yuriy@bum:~$ script my.log -a <--- Второй вызов с опцией -a. Файл не очищается.
Скрипт запущен, файл - my.log
yuriy@bum:~$ pwd
/home/yuriy
yuriy@bum:~$ exit
exit
Скрипт выполнен, файл - my.log <--- Данные добавляются к содержимому my.log
Еще стоит сказать о полезной опции -c или —command. Данная опция позволяет указать команду, которую нужно выполнить, а вывод этой команды записать файл. Пример:
yuriy@bum:~$ script my.log -c ls
Скрипт запущен, файл - my.log
my.log temp Ubuntu One Изображения
Загрузки Рабочий стол
Скрипт выполнен, файл - my.log
В данном примере мы вызываем команду script с опцией -c и указываем в качестве параметра опции команду ls, которую нужно выполнить, а вывод команды нужно записать в файл my.log. Команда ls выводит список файлов в текущей директории. Таким образом в файл my.log попадет список файлов.
Получить справку по команде script (по всем ее опциям) можно, выполнив в терминале:
man script
Комментарии
21:18
07:31
15:49
18:27