Добавить в корзинуПозвонить
Найти в Дзене

Малоизвестные, но полезные команды в Linux

Командная строка притягивает многих энтузиастов Linux. Обычный пользователь обычно оперирует 50 - 60 командами. Но есть некоторые команды, которые мало известны среди обычных пользователей, но очень полезны и могут существенно облегчить выполнение повседневных задач. Давайте рассмотрим кратко такие команды. 1. Команда sudo !! Предположим, вы ввели какую-либо команду, требующую привилегий администратора, без sudo, и получили в ответ сообщение об ошибке доступа. Вам не нужно вводить команду заново, просто поставьте символы "!!" после sudo, и последняя команда будет подставлена автоматически. $ apt-get update E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied) E: Unable to lock directory /var/lib/apt/lists/ E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? $ sudo !! sudo apt-get update [sudo] password for server: ... .. Fetched 474 kB in 16s (28.0 kB/s)
Оглавление

Командная строка притягивает многих энтузиастов Linux. Обычный пользователь обычно оперирует 50 - 60 командами. Но есть некоторые команды, которые мало известны среди обычных пользователей, но очень полезны и могут существенно облегчить выполнение повседневных задач. Давайте рассмотрим кратко такие команды.

1. Команда sudo !!

Предположим, вы ввели какую-либо команду, требующую привилегий администратора, без sudo, и получили в ответ сообщение об ошибке доступа. Вам не нужно вводить команду заново, просто поставьте символы "!!" после sudo, и последняя команда будет подставлена автоматически.

$ apt-get update

E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)

E: Unable to lock directory /var/lib/apt/lists/

E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)

E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

$ sudo !!

sudo apt-get update

[sudo] password for server:

...

..

Fetched 474 kB in 16s (28.0 kB/s)

Reading package lists... Done

server@localhost:~$

2. Команда python

Приведенная ниже команда генерирует простую веб-страницу для древа структуры директорий, которую можно просмотреть в браузере, используя порт 8000, пока не будет отправлен сигнал прерывания.

# python -m SimpleHTTPServer

3. Команда mtr

Большинство из нас хорошо знакомы с ping и traceroute. А как насчет объединения их функциональности в одной команде mtr? Если эта программа у вас не установлена, это можно сделать с помощью apt или yum.

Для систем на базе Debian:

$ sudo apt-get install mtr

Для систем на базе Red Hat:

# yum install mtr

Теперь запустите команду mtr, чтобы исследовать сетевые соединения между вашим хостом и google.com.

# mtr google.com

-2

4. Команда Ctrl+x+e

Эта команда очень полезна для администраторов и разработчиков. Для автоматизации повседневных задач администратору требуется редактор, например vi, vim, nano и т.д. Нажав "Ctrl-x-e", вы сразу запустите текстовый редактор, установленный в вашей системе в качестве редактора по умолчанию.

5. Команда nl

Команда nl нумерует строки файла. Например, у нас есть файл "one.txt". Сначала выведем его на экран с помощью команды "cat":

# cat one.txt

fedora

debian

arch

slack

suse

Теперь запустим "nl", чтобы вывести его в пронумерованном виде:

# nl one.txt

1 fedora

2 debian

3 arch

4 slack

5 suse

6. Команда shuf

Команда "shuf" случайным образом выбирает строки/файлы/папки из файла/папки. Выведем содержимое домашней директории с помощью команды ls, а затем применим к выводу команду shuf:

# ls

Desktop Documents Downloads Music Pictures Public Templates Videos

# ls | shuf (shuffle Input)

Music

Documents

Templates

Pictures

Public

Desktop

Downloads

Videos

# ls | shuf -n1

Public

# ls | shuf -n1

Videos

# ls | shuf -n1

Templates

# ls | shuf -n1

Downloads

Примечание: вы можете всегда заменить "n1" на "n2", чтобы выбрать два случайных результата, или любое другое количество, используя n3, n4...

7. Команда ss

Эта команда выводит информацию о сокетах. Она исследует сокет и показывает подробную информацию о его параметрах и статистике использования (похоже на команду netstat), более полную, чем у других аналогичных утилит.

# ss

State Recv-Q Send-Q Local Address:Port Peer Address:Port

ESTAB 0 0 192.168.1.198:41250 *.*.*.*:http

CLOSE-WAIT 1 0 127.0.0.1:8000 127.0.0.1:41393

ESTAB 0 0 192.168.1.198:36239 *.*.*.*:http

ESTAB 310 0 127.0.0.1:8000 127.0.0.1:41384

ESTAB 0 0 192.168.1.198:41002 *.*.*.*:http

ESTAB 0 0 127.0.0.1:41384 127.0.0.1:8000

8. Команда last

Команда "last" выводит сведения о пользователях, входивших в систему. Она производит поиск в файле "/var/log/wtmp" и выводит список пользователей, входивших и выходивших из системы, а также дополнительную информацию (время, номер виртуальной консоли и т.д.).

# last

server pts/0 :0 Tue Oct 22 12:03 still logged in

server tty8 :0 Tue Oct 22 12:02 still logged in

...

...

(unknown tty8 :0 Tue Oct 22 12:02 - 12:02 (00:00)

server pts/0 :0 Tue Oct 22 10:33 - 12:02 (01:29)

server tty7 :0 Tue Oct 22 10:05 - 12:02 (01:56)

(unknown tty7 :0 Tue Oct 22 10:04 - 10:05 (00:00)

reboot system boot 3.2.0-4-686-pae Tue Oct 22 10:04 - 12:44 (02:39)

wtmp begins Fri Oct 4 14:43:17 2007

9. curl ifconfig.me

Как узнать свой внешний IP-адрес? Приведенная ниже команда выводит в терминале ваш внешний IP-адрес.

# curl ifconfig.me

Примечание: если у вас не установлен пакет curl, необходимо установить его с помощью apt или yum.

10. Команда tree

Выводит структуру директорий в в формате древа.

# tree

.

|-- Desktop

|-- Documents

| `-- 37.odt

|-- Downloads

| |-- attachments.zip

| |-- ttf-indic-fonts_0.5.11_all.deb

| |-- ttf-indic-fonts_1.1_all.deb

| `-- wheezy-nv-install.sh

|-- Music

|-- Pictures

| |-- Screenshot from 2013-10-22 12:03:49.png

| `-- Screenshot from 2013-10-22 12:12:38.png

|-- Public

|-- Templates

`-- Videos

10 directories, 23 files

11. pstree

Эта команда выводит все запущенные процессы, вместе с соответствующими дочерними процессами, в формате древа, как и команда tree.

# pstree

init─┬─NetworkManager───{NetworkManager}

├─accounts-daemon───{accounts-daemon}

├─acpi_fakekeyd

├─acpid

├─apache2───10*[apache2]

├─at-spi-bus-laun───2*[{at-spi-bus-laun}]

├─atd

├─avahi-daemon───avahi-daemon

├─bluetoothd

├─colord───{colord}

├─colord-sane───2*[{colord-sane}]

├─console-kit-dae───64*[{console-kit-dae}]

├─cron

├─cupsd

├─2*[dbus-daemon]

├─dbus-launch

├─dconf-service───2*[{dconf-service}]

├─dovecot─┬─anvil

│ ├─config

│ └─log

├─exim4

├─gconfd-2

├─gdm3─┬─gdm-simple-slav─┬─Xorg

│ │ ├─gdm-session-wor─┬─x-session-manag─┬─evolution-a+

│ │ │ │ ├─gdu-notific+

│ │ │ │ ├─gnome-scree+

│ │ │ │ ├─gnome-setti+

│ │ │ │ ├─gnome-shell+++

│ │ │ │ ├─nm-applet──+++

│ │ │ │ ├─ssh-agent

│ │ │ │ ├─tracker-min+

│ │ │ │ ├─tracker-sto+

│ │ │ │ └─3*[{x-sessi+

│ │ │ └─2*[{gdm-session-wor}]

│ │ └─{gdm-simple-slav}

│ └─{gdm3}

├─6*[getty]

├─gnome-keyring-d───9*[{gnome-keyring-d}]

├─gnome-shell-cal───2*[{gnome-shell-cal}]

├─goa-daemon───{goa-daemon}

├─gsd-printer───{gsd-printer}

├─gvfs-afc-volume───{gvfs-afc-volume}

12. Команда <space>

Все команды, которые вы вводите в терминале, записываются в истории, и затем могут быть запрошены с помощью команды history. Но есть ли способ обмануть команду history? Да, вы можете сделать это, и очень просто. Просто вставьте один или несколько пробелов перед вводом команды в терминале, и она не будет записана.
Давайте попробуем ввести в терминале пять часто используемых команд Linux (ls, pwd, uname, echo "hi" и who), поставив перед ними пробел, и проверим, будут ли эти команды сохранены в истории.

avi@localhost:~$ ls

avi@localhost:~$ pwd

avi@localhost:~$ uname

avi@localhost:~$ echo "hi"

avi@localhost:~$ who

Теперь запустим команду "history", чтобы проверить, зафиксированы ли вышеприведенные команды.

avi@localhost:~$ history

40 cd /dev/

41 ls

42 dd if=/dev/cdrom1 of=/home/avi/Desktop/squeeze.iso

43 ping www.google.com

44 su

Вы видите, что наши последние команды не записаны в логе. Обмануть команду "history" также можно с помощью сочетания "cat | bash".

13. Команда stat

Команда stat в Linux выводит подробную информацию о файле или файловой системе, включая размер, количество блоков, дату последнего доступа, модификации и т.д.

avi@localhost:~$ stat 34.odt

File: `34.odt'

Size: 28822 Blocks: 64 IO Block: 4096 regular file

Device: 801h/2049d Inode: 5030293 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 1000/ avi) Gid: ( 1000/ avi)

Access: 2013-10-14 00:17:40.000000000 +0530

Modify: 2013-10-01 15:20:17.000000000 +0530

Change: 2013-10-01 15:20:17.000000000 +0530

14. <alt>. и<esc>.

Приведенные выше сочетания клавиш на самом деле являются не командами, а твиком, подставляющим в командную строку последнюю введенную команду. Просто нажмите "Alt" или "Esc", и, продолжая удерживать клавишу, нажимайте ".".

15. Команда pv

В фильмах вы можете увидеть симулированный ввод текста, когда он появляется на экране, как будто вводится пользователем. Вы можете направить на вывод в таком режиме любой текст с помощью команды "pv". Если эта команда у вас не установлена, вы можете сделать это с помощью apt или yum.

root@localhost:# echo "Tecmint [dot] com is the world's best website for qualitative Linux article" | pv -qL 20

Tecmint [dot] com is the world's best website for qualitative Linux article

16. mount | column -t

Приведенная выше команда выводит список всех смонтированных файловых систем в форматированном виде с подробностями.

avi@localhost:~$ mount | column -t

/dev/sda1 on / type ext3 (rw,errors=remount-ro)

tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)

proc on /proc type proc (rw,noexec,nosuid,nodev)

sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)

udev on /dev type tmpfs (rw,mode=0755)

tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)

devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)

fusectl on /sys/fs/fuse/connections type fusectl (rw)

binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

nfsd on /proc/fs/nfsd type nfsd (rw)

17. Команда Ctr+l

Перед тем, как пойти дальше, позвольте напомнить вам, как бысто очистить терминал. Обычно это делается с помощью команды "clear", но тот же эффект достигается с помощью клавиатурного сочетания "Ctr+l".

18. Команда curl

Как насчет проверки непрочитанных почтовых сообщений из командной строки? Эта команда очень полезна для всех, кто работает на сервере. Она запрашивает пароль непосредственно в процессе работы, поэтому вам не нужно вводить его в теле команды, повышая тем самым вероятность его компроментирования.

avi@localhost:~$ curl -u avishek1210@gmail.com --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print "\t" if //; print "$2\n" if /<(title|name)>(.*)<\/\1>/;'

Enter host password for user 'avishek1210@gmail.com':

Gmail - Inbox for avishek1210@gmail.com

People offering cars in Delhi - Oct 26

Quikr Alerts

another dependency question

Chris Bannister

Ralf Mardorf

Reco

Brian

Franсois Patte

Curt

Siard

berenger.morel

Hi Avishek - Download your Free MBA Brochure Now...

Diya

*Top Best Sellers Of The Week, Take Your Pick*

Timesdeal

aptitude misconfigure?

Glenn English

Choosing Debian version or derivative to run Wine when resource poor

Chris Bannister

Zenaan Harkness

Curt

Tom H

Richard Owlett

Ralf Mardorf

Rob Owens

19. Команда screen

Команда screen дает возможность отключать от текущей сессии долго работающий запущенный процесс, чтобы он выполнялся в фоне, а затем вновь подключить его к текущей сессии.
Для запуска процесса мы обычно используем команду:

avi@localhost:~$ ./long-unix-script.sh

При этом пользователь должен держать данную сессию открытой до завершения работы процесса, однако мы можем также запустить вышеприведенную команду следующим образом:

avi@localhost:~$ screen ./long-unix-script.sh

После запуска команды нажмите "Ctrl + A" и затем "d", чтобы отключить процесс от текущей сессии. Он будет продолжать работать в фоновом режиме. Для того, чтобы снова подключить процесс, введите:

avi@localhost:~$ screen -r 4980.pts-0.localhost

Замечание: последняя часть команды здесь - это id скрина, который можно узнать с помощью команды "screen -ls".

20. file

"file" - это команда, с помощью которой можно получить информацию о типе файла.

avi@localhost:~$ file 34.odt

34.odt: OpenDocument Text

21. id

Эта команда выводит реальные и эффективные id пользователя и группы.

avi@localhost:~$ id

uid=1000(avi) gid=1000(avi)

groups=1000(avi),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),111(bluetooth),117(scanner)

22. Команда ^foo^bar

Возможность запуска последней введенной команды с корректировкой. Предположим, я хочу просмотреть содержимое директории с помощью команды "ls -l". Вместо этого я случайно ввел "lls -l". Теперь мне нужно ввести команду заново, или отредактировать ее. В случае длинной команды это может быть утомительно.

avi@localhost:~/Desktop$ lls -l

bash: lls: command not found

avi@localhost:~/Desktop$ ^lls^ls

ls -l

total 7489440

drwxr-xr-x 2 avi avi 36864 Nov 13 2012 101MSDCF

-rw-r--r-- 1 avi avi 206833 Nov 5 15:27 1.jpg

-rw-r--r-- 1 avi avi 158951 Nov 5 15:27 2.jpg

-rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc

В приведенном выше примере мы используем первый знак "^" для того, чтобы показать, какую часть команды мы хотим заменить, а второй - чтобы показать, чем мы хотим его заменить. Обратите внимание, что эта команда может быть очень опасна при использовании с некоторыми системными командами.

23. Команда > file.txt

Эта команда очищает содержимое файла без необходимости его удаления. Она очень полезна в скриптовых языках, когда требуется снова и снова записывать содержимое лога в один и тот же файл.
У меня есть файл "test.txt" в директории "Desktop", содержащий большое количество текста.

avi@localhost:~/Desktop$ cat test.txt

Linux

GNU

Debian

Fedora

kali

ubuntu

git

Linus

Torvalds

avi@localhost:~/Desktop$ > test.txt

avi@localhost:~/Desktop$ cat test.txt

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

24. Команда at

Команда at похожа на cron, и также может использоваться для планирования задач или выполнения команд в заданное время.

avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 14:012

или

avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 2:12 PM

-rw-r--r-- 1 avi avi 220492 Nov 1 13:49 Screenshot-1.png

-rw-r--r-- 1 root root 358 Oct 17 10:11 sources.list

-rw-r--r-- 1 avi avi 4695982080 Oct 10 20:29 squeeze.iso

..

..

-rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc

-rw-r--r-- 1 avi avi 96206 Nov 5 12:56 Untitled 1.odt

-rw-r--r-- 1 avi avi 9405 Nov 12 23:22 Untitled.png

Примечание: команда echo "ls -l" направляет вывод команды (здесь ls -l) на стандартный терминал. Вы можете заменить ее на ту команду, которая вам нужна.
Символ ">" перенаправляет вывод команды.
/dev/pts/0 - это устройство или файл для вывода. Здесь вывод производится на терминал, в моем случае это /dev/pts/0. Проверить, какому устройству соответствует ваш терминал, можно с помощью команды:

avi@localhost:~/Desktop$ tty

/dev/pts/0

25. Команда du -h -max-depth=1

Приведенная ниже команда выводит размер поддиректорий в текущей директории, в понятном человеку формате.

avi@localhost:/home/avi/Desktop# du -h --max-depth=1

38M ./test

1.1G ./shivji

42M ./drupal

6.9G ./101MSDCF

16G .

Эта команда может быть очень полезна, когда нужно проверить, какая директория занимает больше всего места на диске.

26. Команда expr

О команде "expr" мало кто знает, но она может быть очень полезна при выполнении простых математических вычислений в терминале.

avi@localhost:/home/avi/Desktop# expr 2 + 3

5

avi@localhost:/home/avi/Desktop# expr 6 - 3

3

avi@localhost:/home/avi/Desktop# expr 12 / 3

4

avi@localhost:/home/avi/Desktop# expr 2 \* 9

18

27. Команда look

С помощью этой команды вы можете проверить, как правильно пишется слово, воспользовавшись встроенным английским словарем. Например, я забыл как пишется правильно: carrier или carieer.

Cara

Cara's

...

carps

carpus

carpus's

carrel

carrel's

carrels

carriage

carriage's

carriages

carriageway

carriageway's

carried

carrier

carrier's

carriers

carries

...

caryatids

Команда выводит все слова, начинающиеся с "car".

28. Команда yes

Еще одна команда, которая не часто используется, но очень полезна при использовании в скриптах и для системных администраторов. Она выводит на экран заданную строку до тех пор, пока вы не прервете этот процесс.

Пример вставки короткого отрезка кода или отдельной команды:

Tecmint is one of the best site dedicated to Linux, how to

Tecmint is one of the best site dedicated to Linux, how to

Tecmint is one of the best site dedicated to Linux, how to

Tecmint is one of the best site dedicated to Linux, how to

...

Tecmint is one of the best site dedicated to Linux, how to

Tecmint is one of the best site dedicated to Linux, how to

Tecmint is one of the best site dedicated to Linux, how to

29. Команда factor

Это команда математического происхождения. Она выводит все множители заданного числа.

avi@localhost:~/Desktop$ factor 22

22: 2 11

avi@localhost:~/Desktop$ factor 21

21: 3 7

avi@localhost:~/Desktop$ factor 11

11: 11

30. ping -i 60 -a IP_address

Все из нас пользовались командой ping, чтобы проверить доступность сервера. Для того, чтобы проверить соединение с интернетом, я обычно использую google. Но иногда приходится ждать, пока команда ping вернет ответ сервера, или сообщит, что он недоступен. Это не очень удобно. Вместо этого можно получать звуковой сигнал при получении ответа от сервера.

avi@localhost:~/Desktop$ ping -i 60 -a www.google.com

PING www.google.com (74.125.200.103) 56(84) bytes of data.

64 bytes from www.google.com (74.125.200.103): icmp_req=1 ttl=44 time=105 ms

64 bytes from 74.125.200.103: icmp_req=2 ttl=44 time=281 ms

Если вы не услышали никакого звука, убедитесь, что звук в вашей системе включен, активирована звуковая тема, и отмечен флажок "Enable window and window sound".

31. Команда tac

Эта команда печатает содержимое текстового файла в обратном порядке, то есть с последней строки до первой.
У меня в директории Documents есть текстовый файл file 35.txt. Просмотрим его содержимое с использованием команды cat.

avi@localhost:~/Documents$ cat 35.txt

1. Linux is built with certain powerful tools, which are unavailable in windows.

2. One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it's Linux Counterpart.

3.Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.

А теперь сделаем то же самое с командной tac.

avi@localhost:~/Documents$ tac 35.txt

3.Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.

2. One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it's Linux Counterpart.

1. Linux is built with certain powerful tools, which are unavailable in windows.

32. Команда strace

strace - это отладочная утилита, которая используется в основном для устанения неполадок. Она может не быть установлена в системе по умолчанию.
Трассировка исполнения команды с помощью strace:

root@tecmint [~]# strace pwd

execve("/bin/pwd", ["pwd"], [/* 29 vars */]) = 0

brk(0)                                  = 0x728000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0df2000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

open("/etc/ld.so.cache", O_RDONLY)      = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=38427, ...}) = 0

mmap(NULL, 38427, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f29b0de8000

close(3)                                = 0

open("/lib64/libc.so.6", O_RDONLY)      = 3

read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\355\1I;\0\0\0"..., 832) = 832

fstat(3, {st_mode=S_IFREG|0755, st_size=1922152, ...}) = 0

mmap(0x3b49000000, 3745960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3b49000000

mprotect(0x3b4918a000, 2093056, PROT_NONE) = 0

mmap(0x3b49389000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x189000) = 0x3b49389000

mmap(0x3b4938e000, 18600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3b4938e000

close(3)                                = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de7000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de6000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de5000

....

Команда strace имеет множество аргументов и опций. Более подробную информацию о ней можно получить, изучив man-страницу.

33. Команда disown -a && exit

Большинство системных администраторов для контроля выполняемых в фоне процессов используют команду screen. Предположим, вам нужно запустить команду, которая будет выполняться в течение длительного времени, и переместить ее в фон. Если вы не знаете, как пользоваться screen, то в качестве альтернативы можете попробовать команду disown.
Команда disown используется для непрерывного фонового выполнения задач даже после закрытия сессии терминала. Синтаксис команды:

root@tecmint [~]# Command; disown -a && exit

Для того, чтобы снова вывести задачу на терминал, с помощью команды jobs найдите номер задачи, а затем выполните disown %n, где n - номер задачи. Чтобы проверить, работает ли еще запущенная команда, воспользуйтесь утилитами ps или top. Альтернативой disown является команда nohup.

34. Команда getconf LONG_BIT

Приведенная выше команда позволяет проверить, является ли ваша машина 32-битной, или 64-битной.

root@tecmint [~]# getconf LONG_BIT

32

35. Отображение даты и времени в терминале

Приведенная ниже команда является комбинацией нескольких команд, или, лучше сказать, скриптом. Человеку, работающему в терминале без графического инферфейса, для того, чтобы посмотреть системное время и дату, необходимо ввести команду "date". Вместо этого можно просто ввести приведенную ниже команду, и у вас в верхнем правом углу теминала будут отображаться текущая дата и время.

root@tecmint [~]# while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &

-3

36. Команда convert

При написании этого руководства мне часто требовалось сохранять вывод команд в виде изображений. Я делал это следующим образом. Предположим, мне нужно сохранить вывод команды tree (для директории /etc/x11) в графическом формате:

root@tecmint:/etc/X11# tree | convert label:@- /home/avi/tree.png

Вывод заданной команды будет сохранен в указанной директории (в данном случае в моей домашней директории) в файле tree.png.

37. watch -t -n1 "date +%T|figlet"

Есть забавное приложение командной строки Figlet, которое может использоваться для создания простой ASCII-графики. Объединив его с командами watch и date, мы можем вывести анимированные цифровые часы.

root@tecmint [~]# watch -t -n1 "date +%T|figlet"

GMT

_  ___    ____   ___    _____ _  _                                                 Fri Nov 29 10:29:34

/ |/ _ \ _|___ \ / _ \ _|___ /| || |

| | | | (_) __) | (_) (_) |_ \| || |_

| | |_| |_ / __/ \__, |_ ___) |__   _|

|_|\___/(_)_____|  /_/(_)____/   |_|

38. Команды host и dig

Хотя команды "host" и "dig" нельзя назвать совсем малоизвестными, но применяются они не очень часто. Команда host используется для просмотра данных DNS.

root@tecmint [~]# host www.google.com

www.google.com has address 173.194.66.147

www.google.com has address 173.194.66.105

www.google.com has address 173.194.66.99

www.google.com has address 173.194.66.104

www.google.com has address 173.194.66.106

www.google.com has address 173.194.66.103

www.google.com has IPv6 address 2a00:1450:400c:c03::68

root@tecmint [~]# dig www.google.com

; <>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <>> www.google.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<

39. Команда dstat

dstat является универсальной утилитой, генерирующей данные, касающиеся системных ресурсов. По умолчанию она не устанавливается, поэтому ее необходимо инсталлировать с помощью apt или yum.

root@tecmint [~]# dstat

-4

40. Команда bind -p

Команда "bind -p" показывает все клавиатурные сочетания, доступные в BASH shell.

root@tecmint [~]# bind -p

"\C-g": abort

"\C-x\C-g": abort

"\e\C-g": abort

"\C-j": accept-line

"\C-m": accept-line

# alias-expand-line (not bound)

# arrow-key-prefix (not bound)

# backward-byte (not bound)

"\C-b": backward-char

"\eOD": backward-char

"\e[D": backward-char

"\e!": complete-command

"\e/": complete-filename

"\e@": complete-hostname

"\e{": complete-into-braces

"\e~": complete-username

"\e$": complete-variable

# copy-backward-word (not bound)

# copy-forward-word (not bound)

# copy-region-as-kill (not bound)

....

....

41. touch /forcefsck

Приведенная выше команда создает пустую папку "forcefsck" в директории root. Это заставит систему Linux проверять файловую систему при каждой перезагрузке.

root@tecmint [~]# touch /forcefsck

42. lsb_release

Команда "lsb_release" выводит подробную информацию о вашем дистрибутиве. Установить ее можно с помощью apt в Debian (пакет "lsb-core") или yum (пакет "redhat-lsb") в Red Hat.

# lsb_release -a

LSB Version:    :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:

Distributor ID: CentOS

Description:    CentOS release 6.3 (Final)

Release:        6.3

Codename:       Final

Примечание: опция "-a" показывает всю доступную информацию, относящуюся к версии, описанию, релизу и кодовому названию.

43. nc -zv localhost 80

Проверяет, открыт ли порт 80. Номер порта может быть любым.

$ nc -zv localhost 80

Connection to localhost 80 port [tcp/http] succeeded!

Проверим, открыт ли порт 8080.

$ nc -zv localhost 8080

nc: connect to localhost port 8080 (tcp) failed: Connection refused

44. curl ipinfo.io

Приведенная ниже команда выводит географическое расположение заданного IP-адреса.

$ curl ipinfo.io

"ip": "xx.xx.xx.xx",

"hostname": "triband-del-aa.bbb.cc.ddd.bol.net.in",

"city": null,

"region": null,

"country": "IN",

"loc": "20,77",

"org": "AS17813 Mahanagar Telephone Nigam Ltd."

45. find . -user root

Приведенная ниже команда выводит список всех файлов в текущей директории, принадлежащих пользователю (root).

# find . -user root

./.recently-used.xbel

./.mysql_history

./.aptitude

./.aptitude/config

./.aptitude/cache

./.bluefish

./.bluefish/session-2.0

./.bluefish/autosave

./.bash_history

Все файлы в текущей директории, принадлежащие пользователю "avi":

# find . -user avi

./.cache/chromium/Cache/f_002b66

./.cache/chromium/Cache/f_001719

./.cache/chromium/Cache/f_001262

./.cache/chromium/Cache/f_000544

./.cache/chromium/Cache/f_002e40

./.cache/chromium/Cache/f_00119a

./.cache/chromium/Cache/f_0014fc

./.cache/chromium/Cache/f_001b52

./.cache/chromium/Cache/f_00198d

./.cache/chromium/Cache/f_003680

46. sudo apt-get build-dep ffmpeg

Приведенная ниже команда строит зависимости автоматически непосредственно во время инсталляции пакета, что значительно упрощает процесс установки.

# apt-get build-dep ffmpeg

libxinerama-dev libxml-namespacesupport-perl libxml-sax-expat-perl

libxml-sax-perl libxml-simple-perl libxrandr-dev libxrender-dev

x11proto-render-dev x11proto-xinerama-dev xulrunner-dev

The following packages will be upgraded:

libpixman-1-0

1 upgraded, 143 newly installed, 0 to remove and 6 not upgraded.

Need to get 205 MB of archives.

After this operation, 448 MB of additional disk space will be used.

Do you want to continue [Y/n]?

47. lsof -iTCP:80 -sTCP:LISTEN

Эта команда выводит имена процессов/служб, использующих заданный порт 80.

root@localhost:/home/avi# lsof -iTCP:80 -sTCP:LISTEN

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

apache2 1566 root 5u IPv6 5805 0t0 TCP *:www (LISTEN)

apache2 1664 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)

apache2 1665 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)

apache2 1666 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)

apache2 1667 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)

apache2 1668 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)

Таким же образом вы можете проверить службы, использующие порт 52.

root@localhost:/home/avi# lsof -iTCP:22 -sTCP:LISTEN

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

sshd 2261 root 3u IPv4 8366 0t0 TCP *:ssh (LISTEN)

sshd 2261 root 4u IPv6 8369 0t0 TCP *:ssh (LISTEN)

48. find -size +100M

Команда рекурсивно выводит список всех файлов в текущей директории, размер которых превышает заданную величину.

# find -size +100M

./.local/share/Trash/files/linuxmint-15-cinnamon-dvd-32bit.iso

./Downloads/Fedora-Live-Desktop-i686-19-1.iso

./Downloads/Ant Videos/shakira 2.avi

./Downloads/Deewar.avi

./Desktop/101MSDCF/MOV02224.AVI

./Desktop/101MSDCF/MOV02020.AVI

./Desktop/101MSDCF/MOV00406.MP4

./Desktop/squeeze.iso

Список всех файлов в текущей директории, чей размер превышает 1000 Мб.

root@localhost:/home/avi# find -size +1000M

./Downloads/The Dark Knight 2008 hindi BRRip 720p/The Dark Knight.mkv.part

./Downloads/Saudagar - (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR]/Saudagar

- (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR].mkv

./Downloads/Deewar.avi

./Desktop/squeeze.iso

49. pdftk

Команда pdftk объединяет несколько pdf-файлов в один. У вас должна быть установлена программа pdftk

$ pdftk 1.pdf 2.pdf 3.pdf ... 10.pdf cat output merged.pdf

50. ps -LF -u user_name

Приведенная ниже команда выводит процессы и потоки заданного пользователя. Дополнительные опции: "-L" (выводить потоки) и "-F" (список полного формата).

$ ps -LF -u avi

avi 21645 3717 21766 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/

avi 21645 3717 21768 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/

avi 22314 3717 22314 0 2 42797 50332 0 19:00 ? 00:00:40 /usr/

avi 22314 3717 22316 0 2 42797 50332 1 19:00 ? 00:00:00 /usr/

avi 22678 24621 22678 0 1 969 1060 1 21:05 pts/1 00:00:00 ps -L

avi 23051 3717 23051 0 2 37583 45444 1 19:03 ? 00:00:52 /usr/

avi 23051 3717 23053 0 2 37583 45444 0 19:03 ? 00:00:03 /usr/

avi 23652 1 23652 0 2 22092 12520 0 19:06 ? 00:00:22 gnome

avi 23652 1 23655 0 2 22092 12520 0 19:06 ? 00:00:00 gnome

51. Startx - :1

Совместное использование сессии x-сервера подразумевает частые выходы и повторные авторизации, и здесь на помощь приходит команда Startx. Она создает новый сеанс таким образом, что нет необходимости часто входить и выходить из сеанса. Для переключения между двумя X-сессиями используются клавиши "ctrl+Alt+F7" и "ctrl+Alt+F8".
Примечание: Клавиши "ctrl+Alt+F1" - "ctrl+Alt+F6" используются для консольных сессий, а "ctrl+Alt+F7" - "ctrl+Alt+F12" для X-сессий. Таким образом, у нас есть 6 консолей и 6 X-сессий. Приведенные выше сочетания клавиш работают в большинстве дистрибутивов, хотя реализация в некоторых из них может отличаться. Я проверял в Debian, и у меня все работало прекрасно.

Если вы хотите получить полноценный IT-аудит с разбором состояния вашей инфраструктуры и нашими рекомендациями, то запишитесь на бесплатную диагностическую встречу по ссылке https://ininsys.ru/audit-it-infrastruktury/.