- uname
-
Выводит на stdout имя
системы. С ключом -a, выводит
подробную информацию, содержащую имя системы, имя узла
(то есть имя, под которым система известна в сети),
версию операционной системы, наименование модификации
операционной системы, аппаратную архитектуру (см.
Пример 12-5).
bash$ uname -a
Linux localhost.localdomain 2.2.15-2.5.0 #1 Sat Feb 5 00:13:43 EST 2000 i686 unknown
bash$ uname -s
Linux
- arch
-
Выводит тип аппаратной платформы компьютерв.
Эквивалентна команде uname
-m. См. Пример 10-26.
bash$ arch
i686
bash$ uname -m
i686
- lastcomm
-
Выводит информацию, о ранее выполненных командах, из
файла /var/account/pacct.
Дополнительно могут указываться команда и пользователь.
Это одна из утилит пакета GNU acct.
- lastlog
-
Выводит список всех пользователей, с указанием времени
последнего входа в систему. Данные берутся из файла
/var/log/lastlog.
bash$ lastlog
root tty1 Fri Dec 7 18:43:21 -0700 2001
bin **Never logged in**
daemon **Never logged in**
...
bozo tty1 Sat Dec 8 21:14:29 -0700 2001
bash$ lastlog | grep root
root tty1 Fri Dec 7 18:43:21 -0700 2001
|
Исполнение этой команды будет завершаться неудачей, если пользователь, вызвавший утилиту, не имеет прав на чтение файла /var/log/lastlog.
|
- lsof
-
Выводит детальный список открытых, в настоящий момент
времени, файлов в виде таблицы. В таблице указаны --
владелец файла, размер файла, тип файла, процесс,
открывший файл, и многое другое. Само собой разумеется,
что вывод команды lsof
может быть обработан, в конвейере, с помощью утилит
grep и/или awk.
bash$ lsof
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root mem REG 3,5 30748 30303 /sbin/init
init 1 root mem REG 3,5 73120 8069 /lib/ld-2.1.3.so
init 1 root mem REG 3,5 931668 8075 /lib/libc-2.1.3.so
cardmgr 213 root mem REG 3,5 36956 30357 /sbin/cardmgr
...
- strace
-
Диагностическая и отладочная утилита, предназначенная
для трассировки системных вызовов и сигналов. В
простейшем случае, запускается как: strace COMMAND.
bash$ strace df
execve("/bin/df", ["df"], [/* 45 vars */]) = 0
uname({sys="Linux", node="bozo.localdomain", ...}) = 0
brk(0) = 0x804f5e4
...
Эквивалентна команде truss.
- nmap
-
Сканер сетевых портов. Эта утилита сканирует сервер в
поисках открытых портов и сервисов. Это очень важный
инструмент, используемый для поиска уязвимостей при
настройке системы.
#!/bin/bash
SERVER=$HOST # localhost.localdomain (127.0.0.1).
PORT_NUMBER=25 # порт службы SMTP.
nmap $SERVER | grep -w "$PORT_NUMBER" # Проверить -- открыт ли данный порт?
# grep -w -- поиск только целых слов,
#+ так, например, порт 1025 будет пропущен.
exit 0
# 25/tcp open smtp
- free
-
Показывает информацию об использовании памяти, в
табличной форме. Вывод команды может быть проанализирован
с помощью grep, awk или Perl. Команда procinfo тоже выводит эту информацию,
среди всего прочего.
bash$ free
total used free shared buffers cached
Mem: 30504 28624 1880 15820 1608 16376
-/+ buffers/cache: 10640 19864
Swap: 68540 3128 65412
Показать размер неиспользуемой памяти RAM:
bash$ free | grep Mem | awk '{ print $4 }'
1880
- procinfo
-
Извлекает и выводит информацию из файловой системы /proc.
bash$ procinfo | grep Bootup
Bootup: Wed Mar 21 15:15:50 2001 Load average: 0.04 0.21 0.34 3/47 6829
- lsdev
-
Список аппаратных устройств в системе.
bash$ lsdev
Device DMA IRQ I/O Ports
------------------------------------------------
cascade 4 2
dma 0080-008f
dma1 0000-001f
dma2 00c0-00df
fpu 00f0-00ff
ide0 14 01f0-01f7 03f6-03f6
...
- du
-
Выводит сведения о занимаемом дисковом пространстве в
каталоге и вложенных подкаталогах. Если каталог не
указан, то по-умолчанию выводятся сведения о текущем
каталоге.
bash$ du -ach
1.0k ./wi.sh
1.0k ./tst.sh
1.0k ./random.file
6.0k .
6.0k total
- df
-
Выводит в табличной форме сведения о смонтированных
файловых системах.
bash$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda5 273262 92607 166547 36% /
/dev/hda8 222525 123951 87085 59% /home
/dev/hda7 1408796 1075744 261488 80% /usr
- stat
-
Дает подробную информацию о заданном файле (каталоге
или файле устройства) или наборе файлов.
bash$ stat test.cru
File: "test.cru"
Size: 49970 Allocated Blocks: 100 Filetype: Regular File
Mode: (0664/-rw-rw-r--) Uid: ( 501/ bozo) Gid: ( 501/ bozo)
Device: 3,8 Inode: 18185 Links: 1
Access: Sat Jun 2 16:40:24 2001
Modify: Sat Jun 2 16:40:24 2001
Change: Sat Jun 2 16:40:24 2001
Если заданный файл отсутствует, то stat вернет сообщение об ошибке.
bash$ stat nonexistent-file
nonexistent-file: No such file or directory
- vmstat
-
Выводит информацию о виртуальной памяти.
bash$ vmstat
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
0 0 0 0 11040 2636 38952 0 0 33 7 271 88 8 3 89
- netstat
-
Показывает сведения о сетевой подсистеме, такие как:
таблицы маршрутизации и активные соединения. Эта утилита
получает сведения из /proc/net
(Глава 27). См. Пример 27-3.
netstat -r --
эквивалентна команде route.
- uptime
-
Показывает количество времени, прошедшего с момента
последней перезагрузки системы.
bash$ uptime
10:28pm up 1:57, 3 users, load average: 0.17, 0.34, 0.27
- hostname
-
Выводит имя узла (сетевое имя системы). С помощью этой
команды устанавливается сетевое имя системы в сценарии
/etc/rc.d/rc.sysinit.
Эквивалентна команде uname
-n и внутренней переменной $HOSTNAME.
bash$ hostname
localhost.localdomain
bash$ echo $HOSTNAME
localhost.localdomain
- hostid
-
Выводит 32-битный шестнадцатиричный идентификатор
системы.
bash$ hostid
7f0100
|
Эта команда генерирует "уникальный" числовой идентификатор системы. Некоторые программные продукты используют этот идентификатор в процедуре регистрации. К сожалению, при генерации идентификатора, hostid использует только IP адрес системы, переводя его в шестнадцатиричное представление и переставляя местами пары байт.
Обычно, IP адрес системы можно найти в файле /etc/hosts.
bash$ cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
Переставив местами байты, попарно, в начальном адресе 127.0.0.1, мы получим 0.127.1.0, в шестнадцатиричном представлении это будет 007f0100, что в точности совпадает с приведенным выше результатом выполнения hostid. Наверняка можно найти несколько миллионов компьютеров с таким же "уникальным" идентификатором.
|
- sar
-
Команда sar (System
Activity Reporter) выводит очень подробную статистику о
функционировании операционной системы. В июне 1999 года,
компания Santa Cruz Operation (SCO) опубликовала исходные
тексты утилиты. Она, как правило, не входит в базовый
комплект пакетов Linux-систем. Но ее можно получить в
составе пакета sysstat utilities, автор: Sebastien Godard.
bash$ sar
Linux 2.4.9 (brooks.seringas.fr) 09/26/03
10:30:00 CPU %user %nice %system %iowait %idle
10:40:00 all 2.21 10.90 65.48 0.00 21.41
10:50:00 all 3.36 0.00 72.36 0.00 24.28
11:00:00 all 1.12 0.00 80.77 0.00 18.11
Average: all 2.23 3.63 72.87 0.00 21.27
14:32:30 LINUX RESTART
15:00:00 CPU %user %nice %system %iowait %idle
15:10:00 all 8.59 2.40 17.47 0.00 71.54
15:20:00 all 4.07 1.00 11.95 0.00 82.98
15:30:00 all 0.79 2.94 7.56 0.00 88.71
Average: all 6.33 1.70 14.71 0.00 77.26
- readelf
-
Показывает сведения о заданном бинарном файле формата
elf. Входит в состав пакета
binutils.
bash$ readelf -h /bin/bash
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: Unix - System V
ABI Version: 0
Type: EXEC (Executable file)
. . .
- size
-
Команда size
[/path/to/binary] выведет информацию о размерах
различных сегментов в исполняемых или библиотечных
файлах. В основном используется программистами.
bash$ size /bin/bash
text data bss dec hex filename
495971 22496 17392 535859 82d33 /bin/bash