9 полезных примеров команды Touch в Linux

Под GNU/Linux-дистрибутивы создано огромное количество полезных и удобных инструментов и приложений для обычных пользователей и разработчиков. Далеко не всё из этого доступно на Windows, но, к счастью, для ОС от Microsoft есть решения, исправляющие эту проблему.

Общие команды 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

И добавляем в него следуюшие строки:

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» имеет интерактивный интерфейс.

Читайте также:  Мануалы в Linux: как их вызвать с помощью команды man

Необходимо отметить, что данная команда выводит на экран монитора лишь краткие данные о самой системе и перечень процессов, которые обрабатываются с помощью ядра в ОС «Линукс». Запустив утилиту, вы сможете и изучить полезные данные о процессах.

Особенности выводимых данных

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

Первая строка

Синтаксис

На второй строке вам представлена информация о процессах. Здесь указано их общее количество, число запущенных процессов на данный момент, число «спящих» процессов и ранее завершенных программ.

Рассмотрим их подробнее:

  1. total — Общее количество задач.
  2. running — данный показатель показывает количество процессов, которые запущены в настоящее время.
  3. sleepping — показывает  количество спящих (ждущих) процессов. То есть эти процессы выполняются, однако не являются активными. К ним можно отнести различные драйвера.
  4. stopped — остановленные процессы, как правило этот параметр равен 0.
  5. 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) это первые два значения:

Читайте также:  Какого объема памяти iPhone 12 достаточно: 64, 128, 256, 512 ГБ?

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 — состояние процесса:

S — завершен D — ожидание R — выполняется T — остановлен Z — зависCPU — использование ресурсов центральным процессором MEM — использование оперативной памяти сервера TIME+ — время работы процесса COMMAND — название процесса

Клавиша «С» отобразит в строке 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.012092 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-адресов, с которыми приходится сталкиваться чаще всего:

  1. Внешний IP-адрес — адрес нашего устройства в глобальной сети.
  2. Локальной IP-адрес — адрес в локальной сети устройств.
  3. Внутренний IP-адрес — используется в основном утилитами для взаимодействия между собой. Всегда 127.0.0.1 или localhost
Читайте также:  Обзор iOS 14: что нового и как установить

Разберем способы узнать внешний и локальный 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 (проще)

Второй способ — использовать 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