Под GNU/Linux-дистрибутивы создано огромное количество полезных и удобных инструментов и приложений для обычных пользователей и разработчиков. Далеко не всё из этого доступно на Windows, но, к счастью, для ОС от Microsoft есть решения, исправляющие эту проблему.
Общие команды Linux
Тут представлен список полезных команд, которые не вошли в другие разделы.
- 15 полезных примеров использования команды touch в Linux системах
- 15 полезных примеров использования команды touch в Linux системах
- 9 полезных примеров команды Touch в Linux
sudo shutdown -h now #выключить компьютер сейчас sudo shutdown -h 90 #выключить компьютер через 90 мин. sudo reboot #перезагрузить компьютер wget —convert-links -r #копирование сайта целиком и конвертирование ссылок для автономной работы #копирование происходит на 5 уровней в глубину !! #выполнить последнюю выполненную команду history | tail -50 #показать последние 50 набранных команд passwd #меняет пароль текущего пользователя cal -3 #показывает в удобной форме предыдущий, текущий и последующий месяц (типо календарь) ctrl + r #поиск по истории набранных комманд, чтобы выполнить снова (ctrl+r — чтобы перейти к след. результату))
Список ключей для команды ls.
Для повседневной работы, одни из самых используемых ключей для команды ls:
- -l — вывод подробной информации о содержимом каталога в виде списка;
- -a (—all) — вывод информации о всех имеющихся объектах явных и скрытых;
- -A (—allmost-all) — вывод информации о всех имеющихся явных и скрытых объектах (за исключением объектов «.» и «..»);
- -d (—directory) — вывод информации о директории без вывода его содержимого;
- -F — к объектам являющимся каталогами добавит в конце символ слеш «/», к объектам являющимися исполняемыми файлами добавляется «*», к объектам являющимися символьными ссылками — «@»;
- -r (—reverse) — данные ключи меняют сортировку на обратную;
- -i — отображение номера индексных дескрипторов объектов;
- -S — сортировка объектов по размеру от большого к меньшему;
- -Sr — сортировка объектов по размеру от меньшего;
- -t — сортировка объектов по времени модификации файлов;
- -R (—recursive) — вывод информации об имеющихся объектах в том числе и объектах во вложенных каталогах.
Способы работы с командой ls и ее ключи, упоминаемые в статье это далеко не весь список. Если вы желаете использовать всю мощь этой на первый взгляд простой команды, то как уже упоминалось ранее, более подробную информацию можно получить при вызове встроенного мануала $ man ls .
Клавишами вверх/вниз
Суть настройки сводится к тому, чтобы не вводить полностью команды, которые ранее набирались. Например, вы вводите 2-3 первых символа команды и нажимаете клавишу вверх — система выводит полную команду, ранее выполненную и начинающуюся с этих 2-3 символов.
Для настройки такого автозаполнения, открываем на редактирование следующий файл:
vi /etc/inputrc
- 20 полезных команд в Linux, которые должен знать каждый | KV.by
- Команда touch в Linux
- 20 полезных команд в Linux, которые должен знать каждый | KV.by
И добавляем в него следуюшие строки:
set show-all-if-ambiguous On "\e[A": history-search-backward "\e[B": history-search-forward
Чтобы автозавершение начало работать выйдите из консоли и подключитесь к ней снова.
Синтаксис
Пользоваться утилитой весьма просто. Она понятна даже для новичка, который имеет базовые основы программирования. Чтобы запустить команду, потребуется в специальной строке ввести «top». Представленная вам форма не будет иметь опций, присутствует образ результата, который динамически изменяется через определенный промежуток времени.
Синтаксис команды «top» не отличается сложностью.
top (ОПЦИЯ) (АРГУМЕНТ)
Команда поддерживает горячие клавиши. Обычно пользователь запускает top без параметров, далее нажимает клавишу. Основные горячие клавиши:
- k — завершение процесса, посылается сигнал SIGTERM, через команду kill.
- t — включение и выключение суммарных данных.
- n — ограничить число процессов, которые показываются на экране.
- z — клавиша переключает режимы отображения. Цветной — черно-белый.
- r — клавиша позволяет редактировать приоритет процессов. Для этих целей используется команда «renice».
- P — сортировка по столбцу «%CPU» (загруженность процессора)
- u — сортировка по столбцу «USER» (имя пользователя).
- M — сортировка по столбцу %MEM (оперативная память).
- Space (пробел) — обновить данные на экране.
- q — выйти из top.
Информация, которая будет вам предоставлена, обновляется в режиме реального времени. У пользователя есть возможность конкретизировать получаемые данные как о системе, так и о процессах. Вы сами настраивает их, сохраняете для отображения при следующих запусках утилиты. Команда «top» имеет интерактивный интерфейс.
Необходимо отметить, что данная команда выводит на экран монитора лишь краткие данные о самой системе и перечень процессов, которые обрабатываются с помощью ядра в ОС «Линукс». Запустив утилиту, вы сможете и изучить полезные данные о процессах.
Особенности выводимых данных
Первоначально нужно обратить внимание на первую строку. В ней содержаться данные о текущем времени, общее время работы операционной системы с момента последнего запуска, активные сеансы определенных пользователей.
Первая строка

На второй строке вам представлена информация о процессах. Здесь указано их общее количество, число запущенных процессов на данный момент, число «спящих» процессов и ранее завершенных программ.
Рассмотрим их подробнее:
- total — Общее количество задач.
- running — данный показатель показывает количество процессов, которые запущены в настоящее время.
- sleepping — показывает количество спящих (ждущих) процессов. То есть эти процессы выполняются, однако не являются активными. К ним можно отнести различные драйвера.
- stopped — остановленные процессы, как правило этот параметр равен 0.
- zombie — процесс, которые завис.
Третья строка дает возможность изучить информацию, связанную со временем эксплуатации центрального процессора. Данные показаны в процентном соотношении. На третьей строке присутствуют определённые значения:
- «us» — время работы ОС с пользовательскими процессами. Здесь отсутствует видимый приоритет планирования, установленный «по молчанию».
- «sy» — время работы ОС с системными процессами (внутри ядра).
- «ni» — время работы ОС с пользовательскими процессами. В данном случае был назначен приоритет. Для этого использовалась команда «nice».
- «id» — промежуток времени, который был затрачен обработчиком при простое ядра.
- «wa» — промежуток времени, затраченный на ожидание при остановке ввода/вывода процессов.
- «hi» — время, которое ушло на обрабатывание аппаратного прерывания.
- «si» — время, которое ушло на обрабатывание программного прерывания.
- «st» — промежуток времени, затраченный на ожидание ответа от физического процессора.
Далее в открытом окне после введения команды «top» представлено еще две строки. Здесь прописана информация о количестве использованной оперативной памяти и свопа.
Внизу представлен список запущенных процессов. Согласно установкам «по умолчанию», на экране отображается следующая информация:
- Идентификатор процесса (PID).
- Имя пользователя, который запустил определенную задачу (USER).
- Приоритеты, прописанные согласно расписанию (PR). Если в этой рубрике будет присутствовать запись «rt», такая информация указывает на запуск задачи в режиме реального времени.
- Определение задачи nice (NI). Негативные показатели указывают на высокий приоритет, а положительные значения – на низкую значимость.
- Количество затраченной виртуальной памяти при выполнении определенной задачи (VIRT). Здесь указываются кодировки, информация о задаче и совместной библиотеке. Также отображается информация о страницах, перенесенных в рубрику подкачки, и о размеченных страницах, не эксплуатируемых системой.
- Количество применяемой виртуальной памяти (RES). Это своеобразная физическая память, которая не используется в разделе подкачки, но ее расходует запущенная задача в данный момент.
- Количество используемой совместной памяти (SHR). Такими ресурсами могут пользоваться сторонние процессы.
Установка и управление пакетами
В отличие от Windows, где нужно искать программы самому, устанавливать их, думать где скачать какую-то библиотеку или фреймворк, в *NIX подобных системах используются так называемые пакеты. В Debian-ориентированных дистрибутивах они имеют расширение *.deb (DEBian), для «Red Hat Linux» используются *.rpm пакеты (рекурсивный акроним — RPM Package Manager).
Так же, следуя основной концепции открытого ПО *NIX (его можно сформулировать так: «программа должна выполнять одну задачу, но выполнять ее на отлично»), сама программа обычно занимает несколько сотен килобайт или — пару мегабайт. Все необходимые библиотеки/зависимости будут устанавливаться отдельно, хотя и в автоматическом режиме. На каком-то этапе инсталляции нам просто предложат их установить.
Подобная тактика снижает дисковые затраты, так как нет необходимости устанавливать и хранить одни и те же библиотеки для разных программ, но, в некоторых случаях, добавляет и проблем. Для установки используются репозитории (хранилища пакетов), расположенные по всему миру, поэтому нам не нужно искать, качать и устанавливать программное обеспечение вручную, достаточно знать его название и всего одной командой оно будет установлено на наш ПК.
Для установки/обновления/удаления/чистки программ в Linux Ubuntu используется консольный менеджер пакетов apt. Например, чтобы установить что-либо, мы пишем apt-get install prog_name , где prog_name — название устанавливаемого пакета (программы). Можно устанавливать и несколько пакетов сразу. Для этого просто перечислите их через пробел.
Для удаления ненужных пакетов используется конструкция apt-get remove/purge prog_name Разница в том, что команда remove удалит сам пакет, а purge — пакет с файлами настроек. Для более подробной информации почитайте apt-get –help.
Расшифровка значений индикаторов команды top
Нагрузка на процессор (CPU) это первые два значения:
Cpu(s): 31.7%us, 4.2%sy, 0.0%ni, 54.4%id, 9.2%wa, 0.2%hi, 0.4%si, 0.0%st
Кнопка «1» выведет нагрузку по каждому из процессоров.
PID — id процесса USER — пользователь запустивший процесс PR — приоритет процесса NI — nice процесса VIRT — количество памяти, которое может использовать программа RES — потребление физической памяти SHR — размер потенциальной памяти, которая может быть задействована совместно с другими программами
S — состояние процесса:
- 15 полезных примеров использования команды touch в Linux системах
- Как создать файл в треминлале
- Полезные команды Linux Raspberry Pi/Orange Pi/Banana Pi — MicroPi
Клавиша «С» отобразит в строке COMMAND ключи с которыми запущены процессы.
Клавиша «Q» — выйти из команды Top.
Дерево процессов
Процессы, попарно связанные дочерне‑родительскими отношениями, формируют дерево процессов операционной системы. Первый процесс init, называемый прародителем процессов, порождается ядром операционной системы после инициализации и монтирования корневой файловой системы, откуда и считывается программа /sbin/init (в современных системах является символической ссылкой на актуальный /lib/systemd/systemd). Прародитель процессов всегда имеет PID = 1, а его основной задачей является запуск разнообразных системных служб, включая запуск обработчиков алфавитно‑цифрового терминального доступа getty, менеджера дисплеев графического доступа, службы дистанционного доступа SSH и прочих (см. главу 10). Кроме того, systemd назначается приемным родителем для «осиротевших» процессов, а также отслеживает аварийные завершения запускаемых им служб и перезапускает их.
В примере из следующего листинга показано дерево процессов, построенное при помощи специальной команды pstree, а в листинге “Процессы ядра, демоны, прикладные процессы” — «классическое» представление дерева процессов при помощи команды ps.
Дерево процессов
[email protected]:~$ pstree -cnAhTsystemd-+-systemd-journal ❷ |-systemd-udevd ❷ |-systemd-resolve ❷ |-rsyslogd … |-gdm3—gdm-session-wor-+-gdm-session-wor | |-gdm-x-session-+-Xorg | | -gnome-session-b … |-systemd-+-(sd-pam) … | |-gnome-terminal—+-bash—man—pager ❸ | |-bash … ❷ |-postgres-+-postgres | |-postgres | |-postgres | |-postgres | |-postgres | -postgres ❷ |-apache2-+-apache2 |-apache2 … ❷ |-sshd-+-sshd—sshd—bash | `-sshd—sshd—bash … |-agetty |-login—bash—pstree ❸ …
Процессы операционной системы принято классифицировать на системные (ядерные), демоны и прикладные, исходя из их назначения и свойств (см. листинг “Процессы ядра, демоны, прикладные процессы”).
Прикладные процессы ❸ выполняют обычные пользовательские программы (например, утилиту man), для чего им выделяют индивидуальную память, объем которой указан в столбце VSZ вывода команды ps. Такие процессы обычно интерактивно взаимодействуют с пользователем посредством управляющего терминала (за исключением графических программ), указанного в столбце TTY.
Демоны (daemons) ❷ выполняют системные программы, реализующие те или иные службы операционной системы. Например, cron реализует службу периодического выполнения заданий, atd — службу отложенного выполнения заданий, rsyslogd — службу централизованной журнализации событий, sshd — службу дистанционного доступа, systemd-udevd — службу «регистрации» подключаемых устройств, и т. д. Демоны запускаются на ранних стадиях загрузки операционной системы и взаимодействуют с пользователем не интерактивно при помощи терминала, а опосредованно — при помощи своих утилит. Таким образом, отсутствие управляющего терминала в столбце TTY отличает их от прикладных процессов.
Процессы ядра, демоны, прикладные процессы
[email protected]:~$ ps faxuUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 2 0.0 0.0 0 0 ? S ноя18 0:00 [kthreadd]root 3 0.0 0.0 0 0 ? I< ноя18 0:00 _ [rcu_gp]root 4 0.0 0.0 0 0 ? I< ноя18 0:00 _ [rcu_par_gp]root 6 0.0 0.0 0 0 ? ❶ I< ноя18 0:00 _ [kworker/0:0H…]root 8 0.0 0.0 0 0 ? I< ноя18 0:00 _ [mm_percpu_wq]root 9 0.0 0.0 0 0 ? S ноя18 0:09 _ [ksoftirqd/0] 1 0.0 0.2 168400 11684 ? Ss ноя18 0:12 /sbin/init 333 0.0 0.1 21844 5348 ? Ss ноя18 0:07 /lib/systemd/systemd-udevdsyslog 606 0.0 0.1 224360 4244 ? Ssl ноя18 0:01 /usr/sbin/rsyslogd -n – 649 0.0 0.0 20320 3036 ? ❷ Ss ноя18 0:00 /usr/sbin/cron -fdaemon 675 0.0 0.0 3736 2184 ? Ss ноя18 0:00 /usr/sbin/atd – 21545 0.0 0.0 5560 3420 tty4 Ss ноя18 0:00 /bin/login -p —fitz 28152 0.0 0.0 2600 1784 tty4 S 01:38 0:00 _ -shfitz 28162 0.0 0.0 12948 3584 tty4 S+ 01:38 0:00 _ bashfinn 12989 0.2 0.012092 3988 tty4 ❸ S+ 13:47 0:00 _ man psfinn 13000 0.0 0.0 10764 2544 tty4 S+ 13:47 0:00 _ pager
info
Зачастую демоны имеют суффикс d в конце названия, например sshd — это secure shell daemon, а rsyslogd — rocket system logging daemon, и т. д.
Системные (ядерные) ❶ процессы (gравильнее — ядерные нити, т. к. выполняются они в общей памяти ядра операционной системы) выполняют параллельные части ядра операционной системы, поэтому не обладают ни индивидуальной виртуальной памятью VSZ, ни управляющим терминалом TTY. Более того, ядерные процессы не выполняют отдельную программу, загружаемую из ELF-файла, поэтому их имена COMMAND являются условными и изображаются в квадратных скобках, а кроме того, они имеют особое состояние I в столбце STAT.
Информация о сети
Рассмотрим 3 типа IP-адресов, с которыми приходится сталкиваться чаще всего:
- Внешний IP-адрес — адрес нашего устройства в глобальной сети.
- Локальной IP-адрес — адрес в локальной сети устройств.
- Внутренний IP-адрес — используется в основном утилитами для взаимодействия между собой. Всегда 127.0.0.1 или localhost
Разберем способы узнать внешний и локальный IP-адрес.
Как узнать внешний IP-адрес
В большинстве случаев, чтобы узнать свой внешний IP-адрес требуется сторонний сервис, который скажет с какого IP вы отправили ему запрос.
Как правило, эти сервисы представляют из себя обычные веб-страницы, вот их список:
Разницы в этих сайтах особо нет, выберите тот, который именно вам отвечает быстрее всего.
Их можно открывать через браузер, но это не всегда удобно, поэтому в примерах мы будем рассматривать как обращаться к ним прямо из терминала.
Способ 1: wget
Утилита wget позволяет нам скачивать файлы и получать информацию с веб-страниц. Для начала проверим, установлена ли она, введите в терминал wget и если получите в ответ bash: wget: command not found, значит самое время ее установить
sudo apt install wget
Или вместо apt использовать yum, что зависит от вашего дистрибутива:
sudo yum install wget
Итак, утилита wget установлена, теперь попробуем узнать свой внешний IP-адрес. Для этого введем в терминал команду wget с опциями -qO, далее минус -, а затем уже один из сайтов, список которых выше. В целом шаблон команды такой:
wget -qO — адрес_веб_сайта
Например внешний IP-адрес можно узнать вот так:
wget -qO —
Или вот так:
wget -qO —
И так с любым сайтом из этого списка. Вот так это выглядит в терминале:
$ wget -qO — $ wget -qO — Способ 2: curl (проще)
- 34 Команды Linux, Которые Должен Знать Каждый Пользователь
- Основные команды Linux терминала с примерами использования
- Переход с Windows на Unix для новичков — 20 полезных команд для новичков Linux — Блог Университета SEDICOMM
Второй способ — использовать curl. Сама по себе утилита более универсальна, чем wget и заслуживает не одну отдельную статью, но в данном примере мы разберем как с ее помощью узнать свой внешний IP-адрес.
Для начала также проверим, установлена ли она, введите в терминал curl и если получите в ответ bash: curl: command not found, значит самое время ее установить
sudo apt install curl
Или вместо apt использовать yum, что зависит от вашего дистрибутива:
sudo yum install curl
Итак, утилита curl установлена, теперь попробуем узнать свой внешний IP-адрес. C «курлом» это намного проще, нужно лишь ввести curl и один из сайтов, список которых выше. В целом шаблон команды такой:
curl адрес_веб_сайта
Пробуем:
curl
И с другим сайтом:
curl
Вид из терминала:
$ curl $ curl Как узнать локальный IP-адрес
Локальный IP-адрес узнается при помощи разных утилит, мы рассмотрим наиболее популярный и актуальный инструмент для этих задач на сегодня — инструмент ip. Чтобы увидеть все сетевые интерфейсы, достаточно ввести:
ip addr show
В примере используется Debian 9 и вывод там такой:
$ ip addr show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:3d:a0:09 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet brd scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe3d:a009/64 scope link valid_lft forever preferred_lft forever
В выводе отображается очень много информации, в которой легко запутаться. Мы видим 2 интерфейса, один lo (внутренний 127.0.0.1) и проводной eth0, с локальным IP-адресом Как вы уже возможно поняли, сам IP-адрес отображается после inet.
Стоит перечислить самые распространенные интерфейсы, чтобы можно было легко ориентироваться, какой адрес кому пренадлежит.
- lo — внутренний интерфейс, всегда 127.0.0.1 или localhost
- eth — проводной интерфейс
- wlan — Wi-Fi-интерфейс
- ppp — Point-to-Point Protocol, часто используется для VPN
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Обновление по требованию выходных данных команды top системы unix (или) изменение интервала обновления данных
По умолчанию команда top системы linux обновляет выходные данные каждые 3 секунды. Если вы хотите дать запрос на обновление выходных данных, нажмите клавишу пробела.
Для того, чтобы изменить частоту обновления выходных данных, нажмите в интерективном режиме клавишу d и введите время, указываемое в секунда, так, как показано ниже:
Change delay from 3.0 to: 10 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1309 geek 23 0 2483m 27m S 0 21.8 45: gagent 1882 geek 25 0 2485m 26m S 0 21.7 22: gagent