Утилиты Командной Строки

ls – вывод имен файлов

Утилита ls выводит список файлов в каталоге.

Пример 1 работы ls

В приведенном ниже примере в текущем каталоге находятся 3 файла с именами file1, file2 и file3.

$ ls
file1 file2 file3

С помощью команды ls можно выводить и права доступа к файлам.

Пример 2 работы ls

В приведенном ниже примере мы видим, что файлы file1 И file2 принадлежат пользователю root и группе root, а файл file3 принадлежит пользователю admin и группе wheel. Также права доступа на файлы file1 и file3 -rw-r-r-, а права доступа на file2 -rw-rw-rw-. Более подробно о правах доступа читайте в описании утилиты chmod.

$ ls -l
-rw-r--r-- 1 root  root  13 Май 17 16:41 file1
-rw-rw-rw- 1 root  root   5 Май 17 16:42 file2
-rw-r--r-- 1 admin wheel  0 Май 17 16:44 file3

Пример 3 работы ls

В приведенном ниже примере мы выводим список файлов из каталога /etc/init.d/. Как мы видим в качестве параметра утилите ls передается имя каталога список файлов которого мы хотим получить.

$ ls /etc/init.d
freshclam           messagebus                readahead_later
acpid               functions     microcode_ctl             restorecond
anacron             fuse          milter-regex              rpcgssd
apcupsd             gpm           multipathd                rpcidmapd
apmd                haldaemon     mysqld                    rpcsvcgssd
atd                 halt          named                     saslauthd
auditd              halt.old      netconsole                sendmail
autofs              hidd          netfs                     single
avahi-daemon        hplip         netplugd                  smartd
avahi-dnsconfd      hsqldb        network                   smb
bluetooth           httpd         NetworkManager            snmpd
capi                ibmasm        NetworkManagerDispatcher  snmptrapd
clamav-milter       clamd         iptables                  yum-updatesd
conman              irda          nfslock                   sshd
cpuspeed            irqbalance    nginx                     syslog
crond               isdn          nscd                      sysstat
cups                killall       ntpd                      vmware
cups-config-daemon  krb524        oddjobd                   vncserver
dhcdbd              kudzu         pand                      vsftpd
dhcpd               lirc          pcscd                     winbind
dhcrelay            lm_sensors    portmap                   wine
dns-flood-detector  mcstrans      psacct                    xfs
dund                mdmonitor     rdisc                     ypbind
firstboot           mdmpd         readahead_early           yum-updatesd

cat – вывод текстовых файлов

Утилита cat выводит содержимое текстового файла.

Пример 1 работы cat

В данном примере выводится содержимое файла file1

$ cat file1
Это содержимое файла с именем file1

Пример 2 работы cat

В данном примере содержимое двух файлов file1 И file 2 перенаправляется в третий файл с именем file3, затем выведем содержимое полученного файла.

$ cat file1 file2 > file3

$ cat file3
Это содержимое файла с именем file1
Это содержимое файла с именем file2

rm – удаление файлов

Утилита rm удаляет файл. По умолчанию в Red Hat Linux команда rm это алиас на команду «rpm -i» парамерт -i указывает, что перед удалением файла необходимо попросить подтверждение, подробнее смотрите файл .bashrc в каталоге пользователя и файл /etc/bashrc.

Пример работы rm

$ rm file1
rm: удалить обычный файл `file1'? y

less – поэкранный вывод файлов

Утилита less предназначена для поэкранного вывода файла, основное отличие данной команды от команды more состоит в том, что после вывода всего файла утилита ждет нажатия клавиши q для завершения своей работы.

more – поэкранный вывод файлов

Утилита more предназначена для поэкранного вывода файла, основное отличие данной команды от команды less состоит в том, что после вывода всего файла утилита возращается в командную оболочку, а less ждет нажатия клавиши q для завершения своей работы.

cp – копирование файлов

Утилита cp создает копию файла. Синтаксис команды в общем случае такой

# cp "файл источник" "файл назначение"

Пример работы cp

В приведенном ниже примере мы создадим копию файла file1 с именем file2

# cp file1 file2

В случае если файл file2 существует, то его старое содержимое затрется, для того чтобы избежать случайной потери важных данных в Red Hat Linux команда cp это алиас на команду «cp -i» которая просит подтверждения на перезапись существующего файла, подробнее смотрите файл .bashrc в каталоге пользователя и файл /etc/bashrc.

mv – удаление файлов

mv перемещает или переименовывает файлы или каталоги. Синтаксис команды в общем случае такой

# mv "файл источник" "файл назначения"

Пример работы mv

В приведенном ниже примере файл с именем file1 получает новое имя file2

# mv file1 file2

В случае если файл file2 существует, то его старое содержимое затрется, для того чтобы избежать случайной потери важных данных в Red Hat Linux команда mv это алиас на команду mv -i которая просит подтверждения на перезапись существующего файла, подробнее смотрите файл .bashrc в каталоге пользователя и файл /etc/bashrc.

grep – поиск строк

Утилита grep осуществляет поиск ключевой фразы в файле. В общем случае синтаксис команды такой

# grep образец файл

в качестве образца может выступать регулярное выражение. На выходе из команды grep пользователь получит строки содержацие искомый образец.

Пример работы grep

В приведенном ниже примере осуществляется поиск фразы clamav в файле /var/log/maillog

$ grep clamav messages
May 18 04:52:37 ws8 freshclam[15385]: Database updated (289446 signatures) from db.ru.clamav.net (IP: 217.20.175.83)
May 18 04:52:37 ws8 clamd[15451]: Reading databases from /var/clamav
May 18 08:52:38 ws8 freshclam[15385]: Database updated (290186 signatures) from db.ru.clamav.net (IP: 62.181.41.8)
May 18 08:52:38 ws8 clamd[15451]: Reading databases from /var/clamav
May 18 22:52:39 ws8 freshclam[15385]: Database updated (290189 signatures) from db.ru.clamav.net (IP: 81.19.68.130)
May 18 22:52:39 ws8 clamd[15451]: Reading databases from /var/clamav
May 19 02:52:42 ws8 freshclam[15385]: Database updated (290485 signatures) from db.ru.clamav.net (IP: 213.219.244.126)
May 19 02:52:42 ws8 clamd[15451]: Reading databases from /var/clamav
May 19 06:52:43 ws8 freshclam[15385]: Database updated (290485 signatures) from db.ru.clamav.net (IP: 217.147.29.149)
May 19 06:52:43 ws8 clamd[15451]: Reading databases from /var/clamav
May 19 08:52:44 ws8 freshclam[15385]: Database updated (292574 signatures) from db.ru.clamav.net (IP: 62.181.41.8)
May 19 08:52:44 ws8 clamd[15451]: Reading databases from /var/clamav

head – вывод начальных строк файла

Утилита head по умолчанию выводит первые десять строк файла переданного ей в качестве аргумента.

Пример 1 работы head

В приведенном ниже примере выводятся первые 10 строк файла /var/log/dmesg

$ head /var/log/dmesg
Linux version 2.6.9-67.0.4.EL (mockbuild@builder6.centos.org) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-9)) #1 Sun Feb 3 06:53:29 EST 2008
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009ec00 (usable)
 BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003ffec000 (usable)
 BIOS-e820: 000000003ffec000 - 000000003ffef000 (ACPI data)
 BIOS-e820: 000000003ffef000 - 000000003ffff000 (reserved)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)

Изменить количество выводимых строк файла можно с помошью параметра -n после которого необходимо указать количество выводимых строк.

Пример 2 работы head

Выведем первые 3 строки файла /var/log/dmesg:

$ head -n 3 /var/log/dmesg
Linux version 2.6.9-67.0.4.EL (mockbuild@builder6.centos.org) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-9)) #1 Sun Feb 3 06:53:29 EST 2008
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009ec00 (usable)

tail – вывод последних строк файла

Утилита tail по умолчанию выводит последние десять строк файла переданного ей в качестве аргумента.

Пример 1 работы tail

В приведенном ниже примере выводятся последние 10 строк файла /var/log/dmesg:

$ tail /var/log/dmesg
kjournald starting.  Commit interval 5 seconds
EXT3 FS on i2o/hda6, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on i2o/hda3, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on i2o/hda10, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Adding 1052216k swap on /dev/i2o/hda8.  Priority:-1 extents:1

Изменить количество выводимых строк файла можно с помошью параметра -n после которого необходимо указать количество выводимых строк.

Пример 2 работы tail

Выведем первые 3 строки файла /var/log/dmesg:

$ tail -n 3 /var/log/dmesg
EXT3 FS on i2o/hda10, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Adding 1052216k swap on /dev/i2o/hda8.  Priority:-1 extents:1

Пример 3 работы tail

Одна из самых полезных опций копанды tail это опция «-f» с помощью которой на экран выводятся только новые строки появляющиеся в файле.

$ tail -f /var/log/messages

sort – сортировка упорядоченного файла

Утилита sort выводит упорядоченные строки файла, но не изменяет сам файл. Утилита sort крайне полезна при сортировке списков. С помошью параметра -u можно сгенерировать список в котором нет повторяющихся строк.

uniq – удаление из файла повторяющихся строк

Утилита uniq выводит файл, пропуская смежные повторяющиеся строки, но не изменяет сам файл. То есть если файл отсортирован с помошью sort а затем передан утилите uniq, то на выходе получим список в котором отсутствуют повторяющиеся строки.

diff – сравнение двух файлов

Утилита diff сравнивает два файла и выводит список отличий между ними.

file – тестирование содержимого файла

Утилита file позволяет получить информацию о содержимом любого файла системы без открытия и просмотра содержимого самого файла.

echo – вывод текста

Утилита echo копирует на экран содержимое командной строки написанное после слова echo.

date – вывод даты

Утилита date выводит текущую дату и время.

gzip сжатие файлов

Утилита gzip сжимает файл. Утилита gzip работает хорошо для файлов с множеством повторяющейся информации, например, для текстовых данных.

Пример работы gzip

На данном примере мы убедимся в том, что утилита gzip хорошо сжимает текстовые файлы.

$ ls -la
-rw-rw-r--  1 fds fds 1155825 Май 21 15:04 island.txt
$ gzip -v island.txt
island.txt:      70.6% -- replaced with island.txt.gz
$ ls -la
-rw-rw-r--  1 fds fds 339452 Май 21 15:04 island.txt.gz

как видим размер первоначального файла был 1155825 байт, а получился файл размером 339452 байт.

gunzip распаковка файлов

Для разархивирования файла сжатого утилитой gzip можно воспользоваться утилитой gunzip.

Пример работы gunzip

$ ls -la
-rw-rw-r--  1 fds fds 339452 Май 21 15:04 island.txt.gz
$ gunzip island.txt.gz
$ ls -la
-rw-rw-r--  1 fds fds 1155825 Май 21 15:04 island.txt

bzip2 сжатие файлов

Утилита bzip2 также как и gzip предназначена для сжатия информации.

Пример работы bzip2

Сожмем файл island.txt из предыдущих примеров с помощью bzip2

$ ls -la
-rw-rw-r--  1 fds fds 1155825 Май 21 15:04 island.txt
$ bzip2 island.txt 

$ ls -la
-rw-rw-r--  1 fds fds 226281 Май 21 15:04 island.txt.bz2

Как видим утилита bzip2 сжала наш исходный файл еще эффективней, чем gzip.

bunzip2 распаковка файлов

Утилита bunzip2 предназначена для разархивирования файлов сжатых с помошью bzip2.

Пример работы bunzip2

Сожмем файл island.txtюия2 из предыдущего примера

$ ls -la
-rw-rw-r--  1 fds fds 226281 Май 21 15:04 island.txt.bz2
$ bunzip2 island.txt.bz2
$ ls -la
-rw-rw-r--  1 fds fds 1155825 Май 21 15:04 island.txt

tar упаковка и распаковка файлов

Утилита tar используется для создания одного файла из нескольких файлов или каталогов. После обработки файлов утилитой tar полученные файлы обычно сжимают с помошью bzip или gzip.

Пример 1 работы tar

В приведенной ниже примере мы создадим файл 123.tar из файлов file1, file2, file3.

$ tar -cvf 123.tar file1 file2 file3
file1
file2
file3
$ ls -la
-rw-r--r-- 1 fds  fds  10240 Май 25 16:10 123.tar
-rw-r--r-- 1 fds  fds      6 Май 25 16:10 file1
-rw-r--r-- 1 fds  fds     23 Май 25 16:10 file2
-rw-r--r-- 1 fds  fds      2 Май 25 16:10 file3

Как мы можем видеть полученный файл стал гораздо больше чем сумма размеров трех первоначальных файлов.

Пример 2 работы tar

Распакуем файл 123.tar из предыдущего примера.

$ tar -xvf 123.tar
file1
file2
file3

which – поиск утилит

Утилита which помогает найти утилиты, выводя полный путь до местонахождения данной утилиты. Команда which поизводит поиск по каталогам из переменной PATH.

Пример 1 работы which

Найдет где у нас в системе находится утилита tar.

$ which tar
/bin/tar

Пример 2 работы which

Демонстрируется вывод команды which если утилита для поиска переназдначена с помошью алиасов.

$ which cp
alias cp='cp -i'
/bin/cp

whereis – поиск утилит

Утилита whereis также как и which поизводит поиск команд, но использует для поиска несколько стандартных каталогов.

Пример работы whereis

Найдет местоположение утилиты tar в системе.

$ whereis tar
tar: /bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz

Как мы видит команда whereis нашла саму утилиту tar, заголовочный файл tar.h, и man страницу tar.1.gz.

apropos – поиск ключевого слова

Утилита apropos служит для поиска имени команды по ключевому слову в строках определения всех man страниц.

Пример работы apropos

Найдем все команды в описании которых встречается слово users.

$ apropos users
/etc/hosts.equiv [hosts] (5)  - list of hosts and users that are granted trusted r command access to your system
/etc/isdn/isdnlog.users [isdnlog] (5)  - user base isdnlog config file
Net::Netrc           (3pm)  - OO interface to users netrc file
ac                   (1)  - print statistics about users' connect time
avc_add_callback     (3)  - additional event notification for userspace object managers
avc_av_stats [avc_cache_stats] (3)  - obtain userspace AVC statistics
avc_cache_stats      (3)  - obtain userspace AVC statistics
avc_cleanup [avc_init] (3)  - userspace AVC setup and teardown
avc_destroy [avc_init] (3)  - userspace AVC setup and teardown
avc_init             (3)  - userspace AVC setup and teardown
avc_reset [avc_init] (3)  - userspace AVC setup and teardown
avc_sid_stats [avc_cache_stats] (3)  - obtain userspace AVC statistics
bluefish            (rpm) - GTK2 web development application for experienced users
console.perms [console] (5)  - permissions control file for users at the system console
consolehelper        (8)  - A wrapper that helps console users run system programs
crontab              (1)  - maintain crontab files for individual users (ISC Cron V4.1)
dkms-fuse           (rpm) - Linux kernel module for FUSE (Filesystem in USErspace)
endusershell [getusershell] (3)  - get legal user shells
ftpusers             (5)  - list of users that may not log in via the FTP daemon
fuse                (rpm) - File System in Userspace (FUSE) utilities
fuse-ntfs-3g        (rpm) - Linux NTFS userspace driver
futex                (2)  - Fast Userspace Locking system call
futex                (7)  - Fast Userspace Locking
getusershell         (3)  - get legal user shells
last                 (1)  - show listing of last logged in users
lastb [last]         (1)  - show listing of last logged in users
lastlog              (8)  - reports the most recent login of all users or of a given user
libusb              (rpm) - A library which allows userspace access to USB devices.
libvga.et4000 [svgalib] (7)  - Information for Tseng ET4000 users
lid                  (1)  - Display user's groups or group's users
lnewusers            (1)  - Create new user accounts
make                (rpm) - A GNU tool which simplifies the build process for users.
netlink              (7)  - Communication between kernel and userspace (PF_NETLINK)
newusers             (8)  - update and create new users in batch
nologin              (5)  - prevent non-root users from logging into the system
pam_console_apply    (8)  - set or revoke permissions for users at the system console
pam_localuser        (8)  - require users to be listed in /etc/passwd
pam_mkhomedir        (8)  - PAM module to create users home directory
pam_nologin          (8)  - Prevent non-root users from login
pam_xauth            (8)  - PAM module to forward xauth keys between users
quota               (rpm) - System administration tools for monitoring users' disk usage.
rtas                 (2)  - Allows userspace to call RTAS (Run Time Abstraction Services)
sasldblistusers2     (8)  - list users in sasldb
sepol_genusers       (3)  - Generate a new binary policy image with a customized user configuration
setusershell [getusershell] (3)  - get legal user shells
snmpusm              (1)  - creates and maintains SNMPv3 users on a network entity
sudo                (rpm) - Allows restricted root access for specified users.
sudoers              (5)  - list of which users may execute what
svgalib.chips [svgalib] (7)  - Information for Chips and Technologies Users
svgalib.et4000 [svgalib] (7)  - Information for Tseng ET4000 users
system-config-users  (8)  - User and Group Management tool
system-config-users (rpm) - A graphical interface for administering users and groups
udev                (rpm) - A userspace implementation of devfs
umount.cifs [umount] (8)  - for normal, non-root users, to unmount their own Common Internet File System (CIFS) mounts
userpasswd           (1)  - A graphical tool to allow users to change their passwords
users                (1)  - print the user names of users currently logged in to the current host
warnquota            (8)  - send mail to users over quota

who – получение списка пользователей в системе

Утилита who выводит информацию о том, кто из пользователей работает в системе в данный момент.

Пример работы who

$ who
gleb    pts/2        2008-05-26 16:22 (:0.0)
vlad    pts/3        2008-05-26 08:07 (:0.0)
roman    pts/5        2008-05-26 11:05 (:0.0)
admin    pts/1        2008-05-26 15:26 (:0.0)
fds    pts/6        2008-05-26 23:10 (192.168.0.2)

Если вы хотите узнать какой терминал занимаете вы в данный момент, то выполните:

$ who am i
fds    pts/6        2008-05-26 23:10 (192.168.0.2)

finger – вывод списка пользователей в системе

Утилита finger также выводит информацию о том< кто в данный момент работает в системе< но в несколько расширенном виде по сравнению с утилитой who.

Пример работы finger

$ finger
Login     Name        Tty      Idle  Login Time   Office     Office Phone
gleb     Frolov Gleb  pts/2    6:38  May 26 16:22 (:0.0)
vlad     Ivanov Vlad  pts/3    5:45  May 26 08:07 (:0.0)
roman    Zharkov Roamn pts/5    5:52  May 26 11:05 (:0.0)
admin    Administrator pts/1    7:44  May 26 15:26 (:0.0)
fds      Frolov Denis  pts/6          May 26 23:10 (192.168.0.2)

w – вывод списка пользователей в системе

Утилита w показывает список работающих пользователей в системе.

Пример работы w

$ w
 23:28:30 up 203 days, 14:48,  5 users,  load average: 0,09, 0,20, 0,19
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
fds      pts/6    192.168.0.2   23:10    0.00s  0.05s  0.00s w
admin    pts/3    192.168.0.4   11:20    0.00s  0.05s  0.00s w

Другие команды

  • lpr – печать файлов
  • chmod – установка прав доступа на файлы и каталоги
  • chattr – установка атрибутов файлов и каталогов
  • write – отправка сообщения
  • talk – разговор с пользователем

Статьи по Теме

Категории
Поиск