Несколько команд и приемов командной строки.

Владение командной строкой в Linux — это очень полезный навык, как для новых пользователей, так и для тех кто уже давно использует эту ОС в своих целях.»Словарь» команд обычного пользователя Linux составляет примерно 50-60 команд. Некоторые команды Linux, а так же их ключи и параметры являются ценным сокровищем для пользователя Linux, программиста Shell-скриптов или системного администратора. В этой статье, хотелось бы, поговорить о некоторых командах Linux, которые менее известны, но, все равно, являются очень полезными и удобными в использовании, независимо от того, к какой категории пользователей вы относитесь.

sudo !!

Бывает так, что вам необходимо ввести очень длинную команду с правами sudo. После того, как вы кропотливо напечатали каждую буковку такой команды и нажали enter, то получаете сообщение о том, что у вас не хватает прав на запуск. Все правильно, вы забыли, поставить в начале строки, это самое преслоутовое sudo. Но что же теперь делать, не набирать же все заново. Можно, конечно, нажать стрелку вверх, переместиться в начало строки написать sudo и все запустится как положено. А можно воспользоваться способом еще проще, для этого в командной строке есть удобная команда «!!«. Два восклицательных знака заменятся автоматически на последние введеные символы. Например,

$ dnf update
Ошибка: Эту команду нужно запускать с привилегиями суперпользователя (на большинстве систем - под именем пользователя root).
$ sudo !!
sudo dnf update
[sudo] пароль для user: 
Copr repo for PyCharm owned by phracek          5.6 kB/s | 3.6 kB     00:00    
Copr repo for PyCharm owned by phracek           32 kB/s |  44 kB     00:01    
...

Маленькое удобство от python.

Следующая команда, запускает простой HTTP-сервер, после чего на локальном порту 8000 будет доступна web-страница с каталогами и файлами на вашей системе.

# python -m SimpleHTTPServer //в старых версиях
# python3 -m http.server //в 3-ей версии
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

Далее идем в браузер по адресу localhost:8000

И далее можно путешествовать по системе уже в браузере. Так же можно запустить этот серевер на любом другом порту. Достаточно в конце строки указать его номер. Например,

$ python -m http.server 9000

Запустит сервер на порту 9000.

mtr

Многие, наверняка, использовали в работе команды ping и traceroute. Но есть утилита mtr, которая объединяет в себе возможности этих команд. По умолчанию, она установлена не во всех дистрибутивах. Если у ва один из таких, то ее надо сначала установить, воспользовавшись одной из следующих команд:

# apt-get install mtr //для Debian-based систем
# yum install mtr //для RedHat-based систем

Пользоваться данной утилитой так же просто, как ping и traceroute. Например, чтобы посмотреть соединение от моего компа до yandex.ru, запустим следующую команду:

# mtr yandex.ru

Получим следующий набор данных, который к тому же, еще и динамически обновяется

Комбинация Ctrl+x+e

Это сочетание клавиш очень полезно для администраторов. Особенно, если в вашем парке обслуживания большое количество различных машин, на которых установлены разные дистрибутивы Linux. Некоторые исплользуют vi, некоторые vim, а кто-то nano или emacs. Комбинация клавиш Ctrl+x+e запустит редактор, установленный по умлолчанию. И не надо ломать голову, какой редактор установлен, да и в целом три клавиши нажать проще, чем ввести команду в терминал.

Команда nl.

Команда nl, работает аналогично команде cat, с тем лишь отличием, что при выводе нумерует строки. Иногда это бывает полезно. Например, у нас имеется следующий файл:

$ cat test.txt 
one
two
three
четыре
five

Теперь, посмотрим на этот файл с помощью команды nl:

$ nl test.txt 
     1	one
     2	two
     3	three
     4	четыре
     5	five

Как видите, все строки пронумерованы.

Команда shuf

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

 $ ls
 ISO        Видео       Загрузки      Музыка         'Рабочий стол'
 test.txt   Документы   Изображения   Общедоступные   Шаблоны

Теперь передадим вывод ls команде shuff. В результате получим тот же вывод, но в случайном порядке.

$ ls | shuf
Рабочий стол
Загрузки
Общедоступные
Музыка
Видео
Шаблоны
ISO
Документы
Изображения
test.txt

Теперь выберем случайную папку и выведем ее на экран.

$ ls | shuf -n1
Рабочий стол
$ ls | shuf -n1
Видео
$ ls | shuf -n1
Общедоступные
$ ls | shuf -n1
Шаблоны

Таким же образом можно выбирать 2,3,4 и т.д., меняя параметр -n[2,3,4,…]

Команда ss

Команда ss, аналогична команде netstat. Она так же отображает информацию по имеющимся сокетам и процессам их использующим.

$ ss
Netid State  Recv-Q  Send-Q                             Local Address:Port                         Peer Address:Port                   Process                  
u_str ESTAB  0       0                                              * 32175                                   * 28530                                           
u_str ESTAB  0       0                                              * 30752                                   * 30700                                           
u_str ESTAB  0       0                    /run/dbus/system_bus_socket 20020                                   * 23921                                           
u_str ESTAB  0       0                    /run/systemd/journal/stdout 35877                                   * 32062                                           
u_dgr ESTAB  0       0                                              * 2592                                    * 2591                                            
u_str ESTAB  0       0                             /run/user/1000/bus 35095     
...

Команда last

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

$ last
user     tty2         tty2             Tue Feb 21 21:19   still logged in
reboot   system boot  6.1.8-200.fc37.x Tue Feb 21 21:19   still running
user     tty2         tty2             Sat Feb 18 00:25 - down   (00:54)
reboot   system boot  6.1.8-200.fc37.x Sat Feb 18 00:24 - 01:19  (00:54)
user     tty2         tty2             Sun Feb 12 18:00 - down   (02:59)
reboot   system boot  6.1.8-200.fc37.x Sun Feb 12 18:00 - 20:59  (02:59)
user     tty2         tty2             Sat Feb  4 00:36 - crash (8+17:23)
reboot   system boot  6.1.8-200.fc37.x Sat Feb  4 00:35 - 20:59 (8+20:23)
user     tty2         tty2             Wed Feb  1 09:33 - down   (00:30)
reboot   system boot  6.1.8-200.fc37.x Wed Feb  1 09:33 - 10:04  (00:30)
user     tty2         tty2             Wed Feb  1 08:55 - down   (00:38)
reboot   system boot  6.0.7-301.fc37.x Wed Feb  1 16:54 - 09:33  (-7:21)
user     tty2         tty2             Sun Jan 29 00:54 - down   (00:15)
reboot   system boot  6.0.7-301.fc37.x Sun Jan 29 05:51 - 01:09  (-4:41)

curl ifconfig.me

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

$ curl ifconfig.me
xxx.xxx.xxx.xxx

Эта команда работает, благодаря сервису ifconfig.me. Так же, возможно, вам потребуется установить пакет curl, так как он, по умолчанию, установлен не во всех дистрибутивах.

tree

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

$ tree
.
├── ISO
│   ├── debian-11.6.0-amd64-netinst.iso
│   └── kali-linux-2022.4-installer-amd64.iso
├── test.txt
├── Видео
├── Документы
├── Загрузки
│   └── index.bash_history
...

В некоторых дистрибутивах, также может потребоваться дополнительная установка пакета tree,

pstree

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

$ pstree
systemd─┬─ModemManager───3*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─abrt-dbus───2*[{abrt-dbus}]
        ├─3*[abrt-dump-journ]
        ├─abrtd───2*[{abrtd}]
        ├─accounts-daemon───3*[{accounts-daemon}]
        ├─alsactl
        ├─auditd───{auditd}
        ├─avahi-daemon───avahi-daemon
        ├─bluetoothd
        ├─chronyd
        ├─colord───3*[{colord}]
...

Заключение

Для начала, я думаю, достаточно. В этой статье познакомились с некоторыми командами, которые могут быть полезными в повседневной работе с дистрибутивами Linux. В дальнейшем постараюсь осветить побольше таких полезных команд. Так что следите за обновлениями.

Was this helpful?

0 / 0

Добавить комментарий 0