Командная строка притягивает многих энтузиастов 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
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 &
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
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/.