15 Примеров использования в linux команды top

В этой главе мы подробно обсудим сигналы и ловушки в Unix.

Список ключей для команды ls.

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

  • -l — вывод подробной информации о содержимом каталога в виде списка;
  • -a (—all) — вывод информации о всех имеющихся объектах явных и скрытых;
  • -A (—allmost-all) — вывод информации о всех имеющихся явных и скрытых объектах (за исключением объектов «.» и «..»);
  • -d (—directory) — вывод информации о директории без вывода его содержимого;
  • -F — к объектам являющимся каталогами добавит в конце символ слеш «/», к объектам являющимися исполняемыми файлами добавляется «*», к объектам являющимися символьными ссылками — «@»;
  • -r (—reverse) — данные ключи меняют сортировку на обратную;
  • -i — отображение номера индексных дескрипторов объектов;
  • -S — сортировка объектов по размеру от большого к меньшему;
  • -Sr — сортировка объектов по размеру от меньшего;
  • -t — сортировка объектов по времени модификации файлов;
  • -R (—recursive) — вывод информации об имеющихся объектах в том числе и объектах во вложенных каталогах.

Способы работы с командой ls и ее ключи, упоминаемые в статье это далеко не весь список. Если вы желаете использовать всю мощь этой на первый взгляд простой команды, то как уже упоминалось ранее, более подробную информацию можно получить при вызове встроенного мануала $ man ls .

Книга «Команды LINUX «от A до Z» — с примерами и разъяснениями

Безусловно, из всех навыков сферы ИТ знания по Линукс являются наиболее универсальными для успешного трудоустройства. Потому что эта операционная система сегодня окружает нас со всех сторон, независимо от направления деятельности. Однако, что определяет наличие квалификации системного администратора или хотя бы опытного пользователя или ее отсутствие? Прежде всего, навыки работы с консолью — интерфейсом командной строки Линукс (command line interface). В результате становится как никогда актуальной книга с примерами необходимых команд, которая всегда под рукой. Например, «Команды LINUX «от A до Z» — настольная книга с примерами.

Почему нет смысла заучивать все команды Линукс наизусть

К сожалению, все еще многие люди считают, что для работы в ИТ нужно выучить энциклопедию. Однако на практике совсем не нужно зубрить учебник по администрированию Линукс для получения технической специальности. Более того, у дословного запоминания есть несколько крайне важных недостатков, критических для данной отрасли:

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

Скорее всего, более правильным вариантом освоения профессии является изучение базовых принципов работы с GNU/Linux. В то время как конкретные команды и их синтаксис всегда можно подсмотреть в учебнике. А именно — в книге «Команды LINUX «от A до Z», которая упростит вашу работу.

Для чего каждому нужна книга по командам Линукс

Список команд с примерами точно нужно иметь под рукой как профессионалу, так и энтузиасту Линукс. В принципе, сделать это можно и в интернете, но это не всегда удобно сделать. Потому что у специалиста иногда просто нет доступа к сети или времени искать нужный пример. Кроме того, по отдельным видам команд и вовсе сложно найти информацию с подробным описанием возможностей. В такой ситуации поможет наличие книги в формате PDF на любом удобном гаджете.

Читайте также:  Команда запуска bash в фоновом режиме

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

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

Помимо всего прочего, «Команды LINUX «от A до Z» — отличный способ расширить границы компетентности для других специалистов ИТ. Например, для сетевых инженеров Cisco, специалистов по кибербезопасности, разработчиков и даже специалистов DevOps / DevNet. Для последних такой учебник гарантированно станет хорошим подспорьем в повседневной работе. Потому обзавестись книгой стоит в обязательном порядке всем, кто хочет быть успешным в ИТ.

Команда SEDICOMM University: Академия Cisco, Linux Professional Institute, Python Institute.

Примеры использования команды sudo

sudo –l — отобразить список команд, доступных для выполнения текущему пользователю. Кроме списка команд отображаются параметры среды, которые будут применяться при их выполнении.

sudo –ll — отобразить список команд, доступных для выполнения текущему пользователю в длинном (расширенном) формате.

В данном формате вместо краткого синтаксиса для списка разрешенных команд в виде (ALL : ALL) ALL отображается подробное описание прав пользователя:

Sudoers entry:

RunAsUsers: ALL

RunAsGroups: ALL

Команды: ALL

sudo lshw -C network — отобразить информацию о сетевом оборудовании с правами суперпользователя root

sudo –l –U user1 — увидеть список команд, доступных для выполнения пользователю user1. Для выполнения данной команды юзер должен быть root или иметь право на выполнение команды sudo -l, что обеспечивается настройками утилиты sudo в файле /etc/sudoers

sudo ipmitool sensor — выполнить команду ipmitool sensor с правами root .

sudo su — выполнить команду su, т.е. создать сеанс суперпользователя root

sudo -i — запустить командную оболочку с правами суперпользователя root. Для выполнения данной команды юзер должен иметь право на выполнение программы оболочки в среде sudo, к примеру — /bin/bash

sudo ls /usr/local/protected — получить список файлов каталога, доступного только root

sudo -u user2 ls ~ — получить список файлов домашнего каталога пользователя user2

sudo -u www vi ~www/htdocs/ — редактировать файлик ~www/htdocs/ от имени пользователя www

sudo -g adm view /var/log/syslog — просмотреть файлик системного журнала, доступного только суперпользователю root и членам группы adm

sudo -u user1 -g users2 vi /home/users2/ — редактировать текстовый файлик как юзер user1, с принадлежностью к первичной группе users2

sudo -E /usr/bin/firefox — запустить браузер firefox от имени суперпользователя root, сохранив параметры среды текущего пользователя. Должно бытьсть выполнения команд с сохранением среды пользователя должна быть разрешена параметром SETENV в настройках файла конфигурации sudo

Читайте также:  Как установить файлы (пакеты) RPM в CentOS Linux

Как узнать, какие оболочки установлены в системе

Чтобы изменить оболочку по умолчанию для пользователя, нужно знать, какие оболочки доступны и как они правильно называются.

Один из способов узнать правильные названия оболочек и пути до исполнимых файлов — это запустить следующую команду:

chsh -l

Но предыдущая команда срабатывает не на всех дистрибутивах (работает на Arch Linux, но не работает на производных Debian).

Поэтому можно воспользоваться универсальным методом — посмотреть содержимое файла /etc/shells:

cat /etc/shells

В файле shells собраны пути к действующим оболочкам входа.

/etc/shells — это текстовый файл, который содержит полные пути к действующим оболочкам входа. Этот файл просматривается программой chsh и доступен для запроса другими программами.

Имейте в виду, что есть программы, которые обращаются к этому файлу, чтобы узнать, является ли пользователь обычным пользователем; например, демоны FTP традиционно запрещают доступ пользователям с оболочками, не включёнными в этот файл.

Отправка сигналов

Существует несколько способов доставки сигналов в программу или скрипт. Одним из наиболее распространенных для пользователя является ввод CONTROL-C или клавиши INTERRUPT во время выполнения скрипта.

Когда вы нажимаете клавишу Ctrl + C , SIGINT отправляется в сценарий и в соответствии с определенным сценарием действия по умолчанию завершается.

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

$ kill -signal pid

Здесь сигнал — это либо номер, либо имя сигнала для доставки, а pid — идентификатор процесса, на который должен быть отправлен сигнал. Например —

$ kill -1 1001

Приведенная выше команда отправляет HUP или сигнал зависания программе, которая выполняется с идентификатором процесса 1001 . Чтобы отправить сигнал уничтожения тому же процессу, используйте следующую команду —

$ kill -9 1001

Это убивает процесс, запущенный с идентификатором процесса 1001 .

Дерево процессов

Про­цес­сы, попар­но свя­зан­ные дочер­не‑родитель­ски­ми отно­шени­ями, фор­миру­ют дерево про­цес­сов опе­раци­онной сис­темы. Пер­вый про­цесс 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 отли­чает их от прик­ладных про­цес­сов.

Читайте также:  3 способа установить deb файлы на Ubuntu Linux

Про­цес­сы ядра, демоны, прик­ладные про­цес­сы

[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.

Обновление по требованию выходных данных команды 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

Как создать новую папку

Вы можете создать новый каталог, используя  команду  MKDIR (Make Directory). Синтаксис этой команды MKDIR имя каталога . Скажем, мы должны создать новую папку с именем 7tutorials_v1 , которая будет размещена в папке  d:7tutorials .

Чтобы проверить, работает это или нет, мы будем использовать снова  команду  dir  . Вновь созданную папку в списке.

Примечание: Не забывайте, что все эти команды , зависят от текущего местоположения в командной строке . Так что если вы находитесь в  C: и тип   MKDIR тест, новая папка будет создана на диске C: .

Еще один способ создать каталог, который не предполагает быть в нужной папке, это ввести полный путь к папке. Например, вы работаете на диске  D: , и вы хотите создать новую папку на диске C: ,которая будет  называтся other_stuff . Просто введите MkDir C:other_stuff  и  нажмите   Enter  -Ввод .

Если вам необходимо одновременно создать папку с подпапками ,вы можете использовать команды  имя_папки MKDIR подпапка . Например, если мы введем MkDir testsbetatest1 , будут созданы три папки : 7tutorials_tests, бета-, test1 , с  древовидной структурой.