Команда chage в Линукс — синтаксис и примеры

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

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

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

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

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

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

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

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

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

$ kill -signal pid

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

$ kill -1 1001

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

$ kill -9 1001

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

Программа для смены оболочки пользователя — chsh

chsh — измените оболочку входа пользователя на постоянной основе.

Если вы временно хотите изменить шелл, то установите его и запустите. Примеры команд запуска различных оболочек:

sh bash pwsh dash zsh

chsh используется для изменения оболочки входа в систему. Если оболочка не указана в командной строке, chsh запрашивает её.

chsh поддерживает нелокальные записи (kerberos, LDAP и т.д.), если они связаны с libuser, в противном случае используйте ypchsh, lchsh или любую другую реализацию для нелокальных записей.

Синтаксис команды:

sudo chsh -s ОБОЛОЧКА

В качестве ОБОЛОЧКИ нужно указать одну из оболочек, как они перечислены в файле /etc/shells.

chsh примет полный путь к любому исполняемому файлу в системе.

Поведение по умолчанию для пользователей без полномочий root — принимать только оболочки, перечисленные в файле /etc/shells, и выдавать предупреждение для пользователя root. Его также можно настроить во время компиляции, чтобы выдавать предупреждение только для всех пользователей.

Читайте также:  Mandriva Linux: Полное руководство пользователя. 2-е издание

Связанные статьи:

  • Как создать нового пользователя в Linux (58.5%)
  • Как вывести список пользователей в Linux (58.5%)
  • Как удалить пользователя в Linux (и удалить все его «хвосты») (58.5%)
  • Как найти дубликаты файлов на Linux с помощью dupeGuru (50%)
  • Как записать терминальную сессию (50%)
  • Как посмотреть ошибки при чёрном экране в Linux (RANDOM — 50%)

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

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