Владение командной строкой в 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