Команда позволяет посмотреть текущие дату и время в одном из множества форматов. Суперпользователь также может использовать эту команду для установки текущей даты и времени.
По умолчанию команда выводит время в формате заданной временной
зоны. Для получения времени по Гринвичу используется
ключ -u
.
При выводе даты и времени используется формат вывода, принятый для данной
страны и задаваемый переменными окружения LC_TIME
и т. п.
Рассмотрим примеры использования команды:
Текущее время:
[user@localhost ~]$ date Срд Окт 19 08:21:38 MSD 2005
Текущее время по Гринвичу:
[user@localhost ~]$ date -u Срд Окт 19 04:21:39 UTC 2005
Вывод даты в специальном формате:
[user@localhost ~]$ date +%d%m%Y 07012007
Команда предназначена для вывода календаря на месяц или на год. По умолчанию, выводит календарь текущего месяца.
В качестве параметра можно указать год или месяц и год. Обратим внимание, что команда cal 05 выведет календарь на 5-й год, а не на 2005-й.
При выводе календаря используется формат вывода, принятый для данной
страны и задаваемый переменными окружения LC_TIME
и т. п.
Рассмотрим примеры использования команды:
Календарь на текущий месяц
[user@localhost ~]$ cal Октябрь 2005 Вс Пн Вт Ср Чт Пт Сб 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Календарь на 2005 год.
[user@localhost ~]$ cal 2005 2005 Январь Февраль Март Вс Пн Вт Ср Чт Пт Сб Вс Пн Вт Ср Чт Пт Сб Вс Пн Вт Ср Чт Пт Сб 1 1 2 3 4 5 1 2 3 4 5 2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12 9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19 16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26 23 24 25 26 27 28 29 27 28 27 28 29 30 31 30 31 ...
Команда выводит список всех запущенных процессов. Когда эта команда выполняется без параметров, то выводимый список содержит информацию о номере процесса, связанном с ним терминале, времени работы процесса ps и командной оболочки, в которой он был запущен. Однако эта команда принимает множество ключей, позволяющих проследить многие параметры исполняющихся в системе процессов.
Команда ps обладает несколькими видами записи
параметров, что может в вести в заблуждение: например, список всех
исполняющихся процессов можно получить как с помощью команды ps
ax или ps -ef, а также с помощью ps
-A. Получть полный список возможных ключей можно,
запустив ps --help. Таким
неоднородным набором ключей
команда обязана своей долгой истории использования во всех версиях UNIX
(например, ключи без знака -
достались в наследство от BSD
UNIX).
Для просмотра всех процессов можно воспользуемся следующей командой:
[user@localhost ~]$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.4 1540 556 ? Ss 19:46 0:04 init [5] root 2 0.0 0.0 0 0 ? S 19:46 0:00 [migration/0] root 3 0.0 0.0 0 0 ? S 19:46 0:00 [ksoftirqd/0] root 4 0.0 0.0 0 0 ? S 19:46 0:00 [watchdog/0] .. user 1655 0.2 1.3 3068 1676 tty1 S 20:38 0:00 -bash user 1695 0.0 0.6 2380 788 tty1 R+ 20:41 0:00 ps aux
Вывод этой команды ориентирован на пользователя (ключ
u
), но отсортирован по времени
запуска процесса.
Здесь можно увидеть следующие параметры процесса: пользователь,
идентификатор, уровень использования процессора (в процентах), уровень использования
памяти (в процентах), объём используемой виртуальной памяти, объём используемой реальной
памяти, терминал, с которым связан процесс, состояние выполнения, время
старта, время исполнения (на процессоре), имя
программы (с параметрами), в результате которой был
создан процесс. Отметим, что сам процесс ps всегда находится в
конце таблицы, так как сам выполнялся в момент сбора состояния процессов.
При использовании ключа -H
можно
посмотреть процессы, выстроенные в иерархию:
[user@localhost ~]$ ps u -H USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user 22537 0.0 0.3 3720 1560 pts/3 Ss 22:37 0:00 /bin/bash user 8890 0.0 0.1 2644 876 pts/3 R+ 23:13 0:00 ps u -H user 9243 0.0 0.2 3724 1368 pts/1 Ss+ 17:15 0:00 /bin/bash --noediting -i user 8033 0.0 0.3 3720 1568 tty1 S 13:17 0:00 -bash user 8168 0.0 0.2 3260 1120 tty1 S+ 13:18 0:00 /bin/sh /usr/bin/startx user 8179 0.0 0.1 2240 636 tty1 S+ 13:18 0:00 xinit .xinitrc -- user 8186 0.0 0.2 3516 1080 tty1 S 13:18 0:00 sh /home/user/.xinitrc ...
В данном случае выводятся все процессы текущего пользователя.
Для иерархического отображения запущенных процессов больше подходит программа pstree, отображающая дерево запущенных процессов:
[user@localhost ~]$ pstree init-+-acpid |-crond |-dbus-daemon |-events/0 |-hald---hald-runner-+-hald-addon-acpi | |-hald-addon-keyb | `-hald-addon-stor |-khelper |-ksoftirqd/0 |-kthread-+-aio/0 | |-cqueue/0 | |-kacpid | |-kblockd/0 ...
Видно, что в корне дерева находится процесс init, который в UNIX является самым первым процессом, запускаемым операционной системой.
Эта команда также имеет множество ключей, настраивающих формат вывода информации о процессах.
Для вывода динамически изменяющейся информации о процессах и используемых ресурсах системы используется программа top. После запуска программы пользователь попадает в интерактивный интерфейс:
Tasks: 86 total, 2 running, 84 sleeping, 0 stopped, 0 zombie Cpu(s): 6.2% us, 0.8% sy, 0.0% ni, 92.0% id, 0.6% wa, 0.3% hi, 0.0% si Mem: 512480k total, 428352k used, 84128k free, 44848k buffers Swap: 529160k total, 12312k used, 516848k free, 210444k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 8239 dralex 15 0 26856 8860 6512 S 7.9 1.7 5:39.31 artsd 1 root 16 0 1432 480 420 S 0.0 0.1 0:01.22 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0 3 root 10 -5 0 0 0 S 0.0 0.0 0:00.54 events/0 4 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread 8 root 10 -5 0 0 0 S 0.0 0.0 0:00.59 kacpid 7 root 7 -10 0 0 0 S 0.0 0.0 0:00.10 vesafb ...
Для выхода используется клавиша q. Программа имеет много управляющих клавиш, которые можно узнать, нажав на h (help).
Вверху экрана расположена общая информация о системе: число запущенных процессов, уровень использования процессора и памяти. Далее следует обновляемый список процессов в стиле ps, отсортированный по уменьшению процессорной активности.
Небольшая команда, предоставляющая информацию об использовании памяти. Она представлена не во всех современных версиях UNIX.
[user@localhost ~]$ free total used free shared buffers cached Mem: 512480 476256 36224 0 51216 251712 -/+ buffers/cache: 173328 339152 Swap: 529160 11500 517660
Команда выводит объём оперативной памяти (в килобайтах) и устройства своппинга: общий, свободный, занятый, используемый для системных нужд.
Существует команда и для просмотра заполненности дисков.
Команда df выводит сведения обо всех примонтированных файловых системах:
[user@localhost ~]$ df Файловая система 1K-блоков Исп Доступно Исп% смонтирована на /dev/hda6 24697672 21164336 3533336 86% / udev 256240 180 256060 1% /dev /dev/hda1 9827968 8073084 1754884 83% /mnt/win none 256240 0 256240 0% /dev/shm server:/home/shared 8194752 5368992 2416032 69% /mnt/shared
Для более «человеческого» представления объёма диска
используется ключ -h
:
[user@localhost ~]$ df -h Файловая система Разм Исп Дост Исп% смонтирована на /dev/hda6 24G 21G 3,4G 86% / udev 251M 180K 251M 1% /dev /dev/hda1 9,4G 7,7G 1,7G 83% /mnt/win none 251M 0 251M 0% /dev/shm server:/home/shared 7,9G 5,2G 2,4G 69% /mnt/shared
Команда выводит список пользователей, работающих в настоящий момент в системе.
При запуске без параметров для каждого сеанса пользователя выводится терминал и время входа в систему:
[user@localhost ~]$ who user tty1 2005-10-24 13:17 user pts/0 2005-10-24 13:19 user pts/2 2005-10-24 23:59
При использовании ключа -u
выводится
время неактивности для каждого терминала и идентификатор соответствующего
ему процесса:
[user@localhost ~]$ who -u user tty1 2005-10-24 13:17 11:41 7992 user pts/0 2005-10-24 13:19 11:41 8228 user pts/2 2005-10-24 23:59 . 9280
Эта команда используется для монтирования новых файловых систем (подробнее об этом сказано в разделе «Дерево каталогов»). В общем случае команда mount имеет следующий формат: mount [-t тип_ФС] имя_устройства точка_монтирования [параметры]
Рассмотрим пример монтирования гибкого диска:
[user@localhost ~]$ mount -t vfat /dev/fd0 /mnt/floppy -o rw [user@localhost ~]$ ls /mnt/floppy document.tex files/
В качестве файловой системы указан FAT, опции содержат флаг разрешения
чтения и записи содержимого диска. После монтирования файлы доступны в
каталоге /mnt/floppy
.
Для размонтирования применяется команда umount.
При запуске mount без параметров выводится список всех примонтированных локальных и сетевых файловых систем:
[user@localhost ~]$ mount /dev/hda6 on / type reiserfs (rw,noatime) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) udev on /dev type tmpfs (rw,nosuid) devpts on /dev/pts type devpts (rw) /dev/hda1 on /mnt/win type ntfs (ro,uid=1000,gid=100,nls=utf8) none on /dev/shm type tmpfs (rw) usbfs on /proc/bus/usb type usbfs (rw,devmode=0664,devgid=85) server:/home/shared on /mnt/shared type nfs (rw,rsize=32768,wsize=32768,intr,...
Можно увидеть ряд служебных файловых систем (proc, udev, sysfs, т. п.).
Вывод имени запущенной UNIX-системы.
[user@localhost ~]$ uname Linux
Для вывода полного имени используется
параметр -a
:
[user@localhost ~]$ uname -a Linux localhost 2.6.18-wks-smp-alt1 #1 SMP Wed Dec 13 01:43:50 MSK 2006 i686 GNU/Linux
Команда используется для отправки сигнала процессу.
Команда kill имеет один из следующих форматов: kill [-s название_сигнала] идентификатор_процесса kill -название_сигнала идентификатор_процесса kill -код_сигнала идентификатор_процесса
Для того, чтобы отправить сигнал, необходимо знать идентификатор процесса-получателя. Узнать идентификатор можно с помощью команды ps. Если при вызове команды kill сигнал не указан, то посылается сигнал TERM. Обычный пользователь может посылать сигналы только своим процессам. Посылать сигналы процессам других пользователей может только суперпользователь. Рассмотрим пример уничтожения процесса:
[user@localhost ~]$ ps PID TT STAT TIME COMMAND 3800 p3 S 0:00,03 su (bash) 3822 p3 T 0:00,08 mplayer /home/guest/music/U96/Das\ Boot.mp3 3824 p3 R+ 0:00,00 ps [user@localhost ~]$ kill 3822
После вызова команды kill 3822 процесс mplayer будет уничтожен.
Для вывода списка всех сигналов используется команда kill -l:
[user@localhost ~]$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE 9) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGURG 17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD 21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGINFO 30) SIGUSR1 31) SIGUSR2
Является встроенной командой оболочки. Используется для замены процесса shell другим процессом.
Команда exec имеет следующий синтаксис: exec -lc -a имя исполняемый файл [перенаправление ...]
Символ &
используется для запуска программ в фоновом режиме. Пример:
[user@localhost ~]$ mplayer /home/guest/music/U96/Das\ Boot.mp3& [1] 1558
Являются встроенными командами оболочки. Команды используются для работы с заданиями — процессами, запущенными из командного интерпретатора.
Команда jobs имеет следующий синтаксис: jobs [-lnprs] [jobspec ...] jobs -x команда [параметры]
Для вывода всех заданий используется команда jobs:
[user@localhost ~]$ jobs [1]+ Running nice -n 20 tar -cyf test.tar.bz2 /home/guest/data/* & [2]+ Stopped nice -n 20 tar -cyf test.tar.bz2 /home/guest/texts/* [3]- Exit 127 nice 20 tar -cyf /abcdefg/texts ./test.tar.bz2 [4]+ Done tar -cyf test.tar.bz2 text.txt
Напротив идентификатора задания указано состояние процесса.
Для вывода, кроме основной информации, идентификаторов запущенных процессов
используется ключ -l
.
Для вывода только идентификаторов запущенных процессов используется ключ -p
.
Для вывода информации о процессах, у которых изменилось состояние с момента последнего вызова
команды jobs используется ключ -n
.
Команда bg используется для перевода задания в фоновый режим.
Команда имеет следующий синтаксис: bg [идентификатор_задания]
Запуск команды без параметров приводит к запуску в фоновом режиме текущего задания.
Если указан параметр идентификатор_задания
, то в фоновом
режиме будет запущено указанное задание.
Пример:
[user@localhost ~]$ bg [1]+ nice -n 20 tar -cyf test.tar.bz2 /home/guest/texts/* &
Команда fg используется для перевода задания на передний план.
Команда имеет следующий синтаксис:
fg [идентификатор_задания]
Запуск команды без параметров переводит к переводу текущего задания на передний план. Если указан параметр
идентификатор_задания
, то задание с указанным
идентификатором станет текущим и будет переведено на передний план.
Пример:
[user@localhost ~]$ fg nice -n 20 tar -cyf test.tar.bz2 /home/guest/texts/*
Команда позволяет запустить процесс, отключив его от управляющего терминала.
Команда nohup имеет следующий синтаксис:
nohup [--] запускаемая_программа [аргументы]
nohup запускает указанную программу с игнорированием
сигналов HUP и увеличением приоритета для планировщика
задач на 5. Таким образом, команда может продолжать выполняться в фоновом
режиме и после того, как пользователь выйдет из системы. Если стандартным
выводом stdout команды является терминал, то он и
стандартный поток ошибок stderr перенаправляются в
файл nohup.out
в текущем каталоге. Если это
невозможно, то перенаправление происходит в
файл $HOME/nohup.out
. Если и это
оказывается невозможным,
то команда не запускается. Команда nohup не переводит
автоматически запускаемый процесс в фоновый
режим. Чтобы это сделать, необходимо завершить команду символом &
.
Пример использования:
[user@localhost ~]$ nohup mplayer /home/guest/music/U96/Das\ Boot.mp3 appending output to /home/guest/nohup.out
Команда используется для запуска процесса с измененным приоритетом для планировщика задач.
Команда nice имеет следующий формат: nice [-n смещение_приоритета] запускаемая_программа [параметры]
Команда nice позволяет изменять приоритет от -20 (наивысший) до 20 (самый низкий) относительно текущего. По умолчанию, процессы имеют приоритет командного интерпретатора, из которого они запускаются. Повышать приоритет может только суперпользователь (т. е. задавать отрицательное значение параметра -n смещение_приоритета
).
Пример использования команды:
[user@localhost ~]$ nice -n 15 mplayer /home/guest/music/U96/Das\ Boot.mp3 & [1] 895 uest@premudrij-peskar$ ps -l UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND 1002 890 889 0 8 0 3112 1660 wait S p2 0:00,02 su (bash) 1002 895 890 0 111 15 23000 13200 - TN p2 0:00,08 mplayer /home/guest/music/U96/Das\ Boot.mp3 1002 896 890 0 96 0 1392 768 - R+ p2 0:00,00 ps -l
Значение NI процесса mplayer равно 15, для всех остальных процессов равно 0 по умолчанию.
Команда используется для изменения приоритета запущенных процессов.
Команда renice имеет следующий формат: renice новое_значение_приоритета список_идентификаторов renice -n смещение_приоритета список_идентификаторов Для изменения значения приоритета отдельных процессов достаточно перечислить их идентификаторы:
[user@localhost ~]$ ps -l UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND 1002 890 889 0 96 0 3112 1600 - R p2 0:00,06 su (bash) 1002 895 890 0 111 17 23000 11224 - TN p2 0:00,08 mplayer Boot.mp3 1002 900 890 0 101 5 23000 11224 - TN p2 0:00,08 mplayer Boot.mp3 1002 1084 890 1 96 0 1392 760 - R+ p2 0:00,00 ps -l [user@localhost ~]$ renice +18 895 900 895: old priority 17, new priority 18 900: old priority 5, new priority 18 [user@localhost ~]$ ps -l UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND 1002 890 889 0 8 0 3112 1600 wait S p2 0:00,06 su (bash) 1002 895 890 0 111 18 23000 11224 - TN p2 0:00,08 mplayer Boot.mp3 1002 900 890 0 101 18 23000 11224 - TN p2 0:00,08 mplayer Boot.mp3 1002 1086 890 0 96 0 1392 760 - R+ p2 0:00,00 ps -l
Для изменения приоритета всех процесов какого-либо
пользователя необходимо использовать ключ -u
. В этом случае значения идентификаторов после ключа -u
будут интерпретироваться как идентификаторы пользователей. Можно задавать как числовые, так и символьные идентификаторы пользователей.
[user@localhost ~]$ renice -n 1 -u guest 1002: old priority 0, new priority 1 [user@localhost ~]$ ps -l UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND 1002 890 889 0 8 1 3112 1600 wait SN p2 0:00,07 su (bash) 1002 895 890 0 111 18 23000 11224 - TN p2 0:00,08 mplayer Boot.mp3 1002 900 890 0 101 18 23000 11224 - TN p2 0:00,08 mplayer Boot.mp3 1002 1110 890 0 97 1 1392 760 - RN+ p2 0:00,00 ps -l
Из данного примера видно, что значения NI для
процессов mplayer не изменились. Вызов
команды renice с
ключом -n
изменяет только
минимальные приоритеты (в данном случае, нули).