Служебные программы
20.1. Анализатор использования диска
Вместо консольной (текстовой) утилиты df (см. разд. 21.6.1) для анализа использования диска можно использовать графическую программу Приложения | Стандартные, Анализатор использования дисков (рис. 20.1). Программа эта удобнее не только тем, что показывает графическую диаграмму, она может просканировать всю файловую систему и показать, сколько места на диске занимает та или иная папка. Для этого нажмите кнопку с изображением жесткого диска на панели инструментов, и вы увидите объем каждой папки файловой системы (рис. 20.2).
Самая первая кнопка на панели инструментов — Сканировать домашнюю папку — позволяет просканировать ваш домашний каталог, а правее кнопки с изображением жесткого диска находятся две кнопки, позволяющие просканировать произвольную папку и удаленную папку.
Используя информацию анализатора дисков, вы можете определить, в какой папке имеются лишние файлы. Из рис. 20.2 видно, что каталог /var/cache занимает 453 Мбайт — это многовато для домашнего компьютера. Оказывается, 387 Мбайт из них занимает каталог /var/cache/apt/archives/archives (рис. 20.3).
В нем содержатся все DEB-пакеты, которые вы когда-либо устанавливали. Для экономии места на диске его можно очистить командой:
sudo rm /var/cache/apt/archives/*.deb
20.2. Системный монитор
Аналогично, для команды top в GNOME также есть графический аналог. Правда, возможности системного монитора (Система | Администрирование) значительно шире, чем у консольной команды top.
На вкладке Система (рис. 20.4) выводится общая информация о системе: версия дистрибутива, имя компьютера, тип процессора, объем оперативной памяти и т. д.
Вкладка Процессы (рис. 20.5) как раз и является аналогом top — она выводит запущенные процессы. Чтобы завершить тот или иной процесс (например, если он завис), нужно его выделить и нажать кнопку Завершить процесс.
На вкладке Ресурсы (рис. 20.6) выводится информация об использовании процессора, оперативной памяти и сети. Ubuntu довольно экономно использует системные ресурсы, посмотрите — использовано всего 219 Мбайт оперативной памяти.
Вкладка Файловые системы содержит информацию о смонтированных файловых системах. Из рис. 20.7 видно, что смонтирована корневая файловая система (/dev/sda1), флешка (/dev/sdb 1) и компакт-диск с дистрибутивом Ubuntu (Zdev/srQ).
20.3. Программа bum
Ранее в Ubuntu имелась программа Службы (в программной группе Система | Администрирование), позволяющая включать/отключать системные сервисы. В современных версиях Ubuntu такой программы нет. Зато можно установить программу Boot-Up Manager, которая даже лучше, чем имевшаяся программа Службы. Для установки программы откройте терминал и введите команду:
sudo apt-get install bum
Нужно отметить, что в отличие от других дистрибутивов, где по умолчанию включаются практически все установленные сервисы, в Ubuntu включаются лишь самые необходимые, поэтому вы не будете часто запускать bum (рис. 20.8), но знать о его существовании полезно.
Глава 21Работа с консолью Linux
21.1. Консоль
Настоящий линуксоид должен уметь работать в консоли. Когда система Linux появилась, для диалога с ней существовала только консоль — командная строка, о графическом интерфейсе не было и речи. Знаете, почему UNIX и Linux отталкивали обычных пользователей? Потому что не было хорошего графического интерфейса. Поэтому в Linux работали одни профессионалы. Сейчас все изменилось — в Linux очень удобный графический интерфейс, который с удовольствием используют и профессионалы (дождались наконец-то!), забывая о командной строке. Наш дистрибутив вообще ориентирован на работу в графическом режиме, а в официальных руководствах, которые можно найти в Интернете, о консоли вообще не упоминается. А ведь она есть! В этой главе мы поговорим о том, как правильно работать в консоли. Совсем необязательно работать полностью в текстовом режиме, вы можете использовать материал данной главы для эффективной работы с терминалом — эмулятором консоли.
Обычные пользователи в консоль ни ногой — даже принципиально, мол, зачем в DOS возвращаться? Под «DOS» имеется в виду командная строка Linux. Да, ее вид не очень дружелюбен, но стоит вам поработать в консоли, и вы поймете все ее преимущества. Начнем с того, что командная строка Linux намного удобнее командной строки DOS — об этом мы еще поговорим. В консоли можно выполнять те же операции, что и в графическом режиме, причем все намного быстрее. Хотите бороздить просторы Интернета? Пожалуйста, но без картинок. Не так красиво, но зато сэкономите трафик. А на обмен электронными сообщениями это никак не влияет. В консоли также можно работать и с документами, правда, о графике тоже можно забыть. На старых компьютерах консоль позволяет эффективно использовать их ресурсы. Да, в графическом режиме на стареньком «Пентиуме» не поработаешь, зато в текстовом режиме его можно быстро превратить в очень полезный для всей сети компьютер — шлюз, через который его более мощные собратья будут получать доступ к Интернету.
Для переключения между консолями используются комбинации клавиш
Работа в консоли заключается во вводе нужной команды. Вы вводите команду (например, создания каталога, просмотра файла, вызова редактора и т. д.) и нажимаете клавишу
man имя_программы
Никак не можете вспомнить, как пишется та или иная команда? Если вы помните, хотя бы на какую букву она начинается, воспользуйтесь функцией автодополнения командной строки — введите первые буквы команды и нажмите клавишу
Вам не хочется писать (даже с автодополнением) длинные команды? Тогда можно создать псевдонимы команд. Для этого в файл. bash_profile добавьте строки вида:
alias псевдоним= 'команда'
Например,
alias cfg-net='system-config-network'
Для того чтобы изменения вступили в силу, выйдите из консоли (команда logout) и заново зарегистрируйтесь.
Пожалуй, для полноценной работы с консолью вам нужно знать еще одну команду — clear. Данная команда очищает консоль (терминал). Очень полезная команда, особенно, когда вы хотите все начать с «чистого листа».
Иногда бывает полезно результаты одной программы перенаправить другой программе или записать в файл. Предположим, что есть команда cmd, которая выводит очень много информации, — вы ее просто не успеваете прочитать. Тогда вывод этой программы можно перенаправить программе-просмотрщику, например, программе less, которая с помощью клавиш
cat big_file.txt | less
Вы хотите сохранить вывод программы в файл, чтобы передать потом кому-то по электронной почте? Тогда вам нужно с помощью символа > указать программе имя будущего файла:
команда>файл
Например,
dmesg > kernel.txt
Данная команда перенаправляет результаты работы программы dmesg, выводящей загрузочные сообщения ядра, в файл kemel.txt. При отсутствии файла kemel.txt он будет создан, при наличии — перезаписан. Если вы не хотите, чтобы kemel.txt был перезаписан, нужно использовать два символа >>:
dmesg >> kernel.txt
В этом случае вывод программы dmesg будет дописан в конец файла kemel.txt.
21.2. Команды poweroff, halt, reboot, shutdown
С помощью меню GNOME можно легко завершить работу системы. Спрашивается, зачем нужно знать дополнительные команды для завершения работы системы? Хотя бы для того, чтобы настроить вашу систему на автоматическое выключение. Скажем, в 23:00. С помощью меню GNOME это сделать невозможно — кому-то ведь нужно будет вызвать команду меню. А вот с помощью упомянутых в этом разделе консольных команд задуманное воплотимо.
Команда reboot используется для перезагрузки системы. Для завершения работы системы служат команды halt и poweroff. Первая команда завершает работу системы, но не выключает ее питание. Вы увидите сообщение System is halted, свидетельствующее о возможности выключения питания. Данная команда предназначена для старых компьютеров, не поддерживающих расширенное управление питанием. Вторая (poweroff) завершает работу системы и выключает ее питание.
Самой «продвинутой» командой является команда shutdown — она позволяет завершить работу системы, перезагрузить систему, указать время завершения работы. Предположим, вы хотите уйти пораньше, но компьютер нужно выключить в 19:30 — вдруг некоторые пользователи задержались на работе, а вы выключите сервер — получится некрасиво. Вам поможет команда shutdown:
# shutdown — h 19:30 [сообщение]
Сообщение можно и не указывать — все равно Windows-пользователи его не увидят.
Если нужно завершить работу системы прямо сейчас, вместо времени укажите now:
# shutdown — h now
Для перезагрузки системы используется опция — r:
# shutdown — r now
Далее мы рассмотрим полезные команды Linux, которые пригодятся каждому пользователю.
21.3. Общие команды
21.3.1. Команда arch — вывод архитектуры компьютера
Команда arch поможет узнать тип аппаратной платформы, например: i386, i586, i686 и др.
Пример использования:
$ arch
i686
21.3.2. Команда clear — очистка экрана
Команда clear очищает экран при работе в консоли (терминале).
Пример использования:
$ clear
21.3.3. Команда date
Команда date используется для вывода текущей даты. Эта команда может применяться также для установки даты, если запущена от имени администратора.
Пример использования:
$ date
# date 1705101707
Первая команда выводит дату, а вторая — устанавливает дату (при условии, что команда запущена от имени root) 17 мая (1705) 2010 года (10) и время 17:07. Как видите, установка даты осуществляется в формате ddMMyyhhmm (dd — число, MM — месяц, yy — год, hh — часы, mm — минуты).
Команда date может вывести дату в указанном вами формате. Для изучения форматов даты введите команду man date.
21.3.4. Команда echo
Команда echo выводит текстовую строку, указанную в качестве аргумента, например:
$ echo "Hello world!"
Hello world!
Обычно данная команда используется в сценариях командного интерпретатора для вывода сообщений на экран.
21.3.5. Команда exit — выход из системы
Для завершения сеанса работы в системе (при условии, что вы работаете в консоли) нужно использовать команду exit. Если не завершить сеанс работы, кто угодно сможет работать в системе под вашим именем (понятно, что во время вашего отсутствия за компьютером).
21.3.6. Команда man — вывод справки
Команда man используется для получения справки о любой команде системы. Например, команда man ls выведет справку об использовании команды ls, которая выводит содержимое каталога. О том, как правильно использовать саму справочную систему, вам расскажет команда man man.
21.3.7. Команда passwd — изменение пароля
С этой командой мы уже знакомы. Она обеспечивает изменение пароля пользователя, который ее запустил. Суперпользователь root имеет право изменить пароль любого пользователя:
# passwd имя_пользователя
21.3.8. Команда uptime — информация о работе системы
Команда uptime (рис. 21.1) выводит статистическую информацию о работе системы: сколько времени прошло с момента последней перезагрузки (собственно, это и есть время «uptime»), сколько пользователей в данный момент подключено к системе и среднюю загрузку системы за последние 1, 5 и 15 минут.
21.3.9. Команда users — информация о пользователях
Команда выводит информацию о пользователях, подключенных к системе в данный момент. Из рис. 21.2 видно, что пользователь denis подключился к системе двумя способами: вошел и в консоли, и в графическом режиме (или по FTP, ssh, telnet — способы подключения к системе могут быть разные).
21.3.10. Команды w, who и whoami — информация о пользователях
Эти три родственные команды выводят следующую информацию (рис. 21.3):
□ команда w — список пользователей, подключенных к системе; виртуальный терминал, с которого работает пользователь; время входа в систему для каждого пользователя, статистику использования системы (IDLE — время простоя, JCPU — использование процессора), выполняемые каждым пользователем задачи;
□ команда who — список пользователей, подключенных к системе; время и дату входа каждого пользователя;
□ команда whoami — имя пользователя, который ввел команду.
21.4. Команды для работы с текстом
21.4.1. Команда diff — сравнение файлов
Команда используется для сравнения двух файлов. Формат вызова программы diff:
diff параметры файл1 файл2
В выводе программы отличающиеся строки помечаются символами > и <:
□ строка из первого файла помечается символом <;
□ строка из второго файла — символом >.
Самые полезные параметры программы diff приведены в табл. 21.1.
21.4.2. Команда grep — текстовый фильтр
Предположим, что у нас есть файл протокола /var/log/messages, и вы хотите вывести все сообщения, связанные с демоном pppd. Понятно, что вручную выделить все нужные сообщения будет довольно трудно. Но с помощью grep можно автоматизировать данную задачу:
cat /var/log/messages | grep ppp
Команда cat /var/log/messages передаст содержимое файла /var/log/messages на стандартный ввод команды grep, которая, в свою очередь, выделит строки, содержащие строку ppp.
Вообще-то, просматривать журналы удобнее с помощью команды tac, которая выводит строки файла в обратном порядке — ведь сообщения дописываются в конец журнала, следовательно, если выводить строки в обратном порядке, то сначала получим самые новые сообщения, а потом уже все остальные:
tac /var/log/messages | grep ppp
21.4.3. Команды more и less — постраничный вывод
Большой текстовый файл намного удобнее просматривать с помощью команд less или more. Программа less удобнее, чем more, если она есть в вашей системе:
tac /var/log/messages | grep ppp | less
21.4.4. Команды head и tail — вывод начала и хвоста файла
Команда head выводит первые десять строк файла, а tail — последние десять. Количество строк может регулироваться с помощью параметра — n.
Пример использования:
head — n 10 /var/log/messages tail — n 15 /var/log/messages
21.4.5. Команда wc — подсчет слов в файле
Команда wc используется:
□ для подсчета слов в текстовом файле:
wc /var/log/messages
□ для подсчета количества строк (если задан параметр -1):
wc — l /var/log/messages
□ для подсчета количества символов (параметр — c):
wc — c /var/log/messages
21.5. Команды для работы с Интернетом
21.5.1. Команда ftp — стандартный FTP-клиент
Для открытия соединения с любым FTP-сервером введите команду:
ftp <имя или адрес FTP-сервера>
Можно просто ввести команду ftp, а в ответ на приглашение ftp> ввести команду:
open <имя или адрес FTP-сервера>
Лично мне больше нравится первый вариант, поскольку он позволяет сэкономить время. При подключении к серверу вы сможете ввести имя пользователя и пароль:
[den@dhsilabs ~]$ ftp
ftp> open ftp.narod.ru
Connected to ftp.narod.ru.
220 ftp.narod.ru (Libra FTP daemon 0.17 20050906)
500 Unrecognized command AUTH
Name (ftp.narod.ru: den): den
331 Password required
Password:
230 Logged in, proceed
Remote system type is UNIX.
ftp>
Подключившись к серверу, вы можете ввести команду help, чтобы просмотреть список доступных команд. Для получения справки по той или иной команде введите help <имя_команды> (рис. 21.4).
Наиболее популярные команды приведены в табл. 21.2.
Кроме команды ftp, в Linux есть и другие текстовые FTP-клиенты, например, NcFTP (http://www.ncftp.com), lukemftp (ftp://ftp.netbsd.org/pub/NetBSD/ misc/lukemftp/), lftp (http://ftp.yars.free.net/projects/lftp/) и др. Все эти FTP-клиенты не входят в состав дистрибутивов, их нужно устанавливать самостоятельно. Но стоит ли это делать — решать вам. Ведь все они подобны стандартному клиенту ftp и обладают двумя-тремя дополнительными функциями, которые, возможно, вам и не понадобятся. Например, NcFTP умеет докачивать файлы, а lftp — загружать одновременно несколько файлов. В любом случае вы можете изучить документацию по тому или иному FTP-клиенту (ее легко найти в Интернете), а потом решить, стоит его использовать или нет.
21.5.2. Команда lynx — текстовый браузер
Если графический режим недоступен (например, на сервере), а по сети побродить хочется, командой lynx можно вызвать текстовый браузер lynx. В Ubuntu программа lynx не устанавливается по умолчанию. Для ее установки нужно ввести команду:
sudo apt-get install lynx
В некоторых дистрибутивах вместо lynx используются браузеры links и elinks, но суть остается та же — просмотр страниц Интернета в текстовом режиме.
21.5.3. Команда mutt — чтение почты и отправка сообщений
Программа, вызываемая командой mutt, — это текстовый клиент для чтения и отправки почты. В отличие от стандартной команды mail, программа mutt — это полноценный почтовый клиент, поддерживающий MIME-кодирование, протоколы POP и ESMTP, SASL-аутентификацию, то есть все, что поддерживают современные графические клиенты. Программу mutt удобно использовать на серверах без графического интерфейса или когда вы удаленно подключаетесь к своей системе по ssh.
21.6. Команды системного администратора
21.6.1. Команды free и df— информация о системных ресурсах
Команда free выводит информацию об использовании оперативной и виртуальной памяти, а df — об использовании дискового пространства.
Из рис. 21.5 видно, что в системе установлено всего 512 Мбайт ОЗУ, из них почти все занято. На жестком диске /dev/sda1 11 Гбайт дискового пространства, из них свободно — 7 Гбайт. По умолчанию df выводит информацию об использовании дискового пространства в байтах. Это несколько неудобно, поэтому рекомендуется использовать ключ — h (рис. 21.6).
21.6.2. Команда md5sum — вычисление контрольного кода MD5
Для проверки подлинности некоторых файлов, передаваемых через Интернет, используется алгоритм MD5 (точнее, контрольный код, вычисленный с использованием этого алгоритма). Разработчик программы выкладывает в Интернете пакет с этой программой и на своем сайте публикует контрольный код. Вы скачиваете пакет и вычисляете его контрольный код. Если коды отличаются, то файл при передаче был поврежден (или это другая версия пакета, которая, возможно, была подложена злоумышленником с целью ввода вражеского кода в вашу систему).
Использовать программу нужно так:
md5sum файл