Основной синтаксис командной строки Linux

В данном посте приведен минимальный базовый список команд для уверенной работы в командной строке Linux/Ubuntu.

Простейшая программа для постраничного просмотра текста more используется с именем файла(ов) в качестве параметра или как последняя команда в цепочке перенаправлений ввода/вывода. С помощью опций +<число> или +/<образец текста> можно начать просмотр с интересующей строки.

# Просмотр файла file1 с 20-ой строки more +20 file1 # Поиск в выводе программы grep подстроки 13:00 и просмотр вывода, начиная с этого места grep ntpd /var/log/messages | more +/13:00

more умеет листать текст вперёд. Текст из файла, в принципе, можно пролистать назад, но это нетипичное использование more.

Основные интерактивные команды more похожи на команды редактора vi:

Только при просмотре файлов:

  • b – пролистать экран назад
  • v – вызвать текстовый редактор, установив курсор на текущую строку

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

Это номер рядом с владельцем процесса, который является ID процесса.

Мы будем использовать это, чтобы определить, какой процесс отменить. Для этого мы используем программу, которая соответственно называется kill .

Иногда запустив kill, процесс будет остановлен и завершен. Когда вы делаете это, kill отправляет процессу сигнал, который просит процесс завершиться. Мы всегда пробуем эту опцию в первую очередь, это лучший вариант. К сожалению, временами это не работает.

Не беспокойтесь, мы снова можем закрыть, но на этот раз подаем сигнал 9.

Блокировка рабочего стола

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

Большую часть времени мы видим только консоль которая является графическим интерфейсом, но мы можем легко добраться до остальных. Если GUI заблокирован, можно добраться до другой консоли и оттуда отменить процесс, вызывающий нарушение. Для переключения между консолями вы используете последовательность клавиш CTRL + ALT + F <Console>.

Таким образом, CTRL + ALT F2 приведет вас к консоли, где вы можете запускать команды, как указано выше, чтобы идентифицировать процессы и отменить их.

Затем CTRL + ALT F7 вернет вас в графический интерфейс, чтобы увидеть, было ли это исправлено. Общий подход заключается в том, чтобы сохранить процессы отмены, пока не будет устранена блокировка.

Создание файла и просмотр сведений о его владельце, группе и правах доступа

Сперва создадим файл file командой touch так, как описано в → этой статье. Для того, чтобы посмотреть информацию о его владельце, группе и правах доступа нужно набрать команду ls -l ИмяФайла. В итоге получим сводку по этому файлу:

Читайте также:  Занятие 9. Статические методы в Java, перегрузка методов, рекурсия

[email protected]:~# ls -l file -rw-r—r— 1 root root 0 Apr 10 21:06 file

Первый набор символов отвечает за права доступа, далее идет имя владельца, за ним группа, потом дата/время создания и потом имя файла. Этой информации достаточно для того, чтобы определить, кто и что может делать с этим файлом и, если что-то не работает по причине того, что каких-то прав не хватает, то это становится ясно.

Опции командной строки

В истории развития операционной системы UNIX программы использовали разные способы задания своих опций: ♦ односимвольные, например ls -а -l (что эквивалентно ls -l -а или ls -al или ls -la); ♦ многосимвольные, например find /var  -xdev; ♦ длинные, например ps  —help; ♦ с аргументами, например kill  -n  15 1, или kill  -n15  1, или du  -В  M, или  du -BM,

или find /etc -type d, или даже ls —sort=slze;

♦ «нестандартные», например set +x,  tar  czf ~ или dd  if=/dev/dvd  of=.

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

И еще потому, что на терминале классической UNIX набор более логичного знака «плюс» (что могло бы означать «включить»,«активировать») требовал достаточных усилий по нажатию клавиши SHIFT. В результате получилось, что, например, в команде set опция х (execution trace) в форме -х включает, а +х выключает трассировку выполнения команд.

В тех редких случаях, когда аргумент команды все же начинается с символа «минус» и тем самым похож на опцию (представим, что нужно выполнить действие над файлом с именем -=filenames=-), специальная опция — сигнализирует о конце списка опций, за которым следуют лексемы, обязанные расцениваться как аргументы, вне зависимости от их написания.

Конец списка опций

[email protected]: ~$ stat -=filename=-

stat: неверный ключ —  «=» Попробуйте «stat —help» для получения более подробного описания.

[email protected]: ~$ stat  — —  -=filename=-

Файл: «-=filename=-» Размер:  0                         Блоков: 0                     Блок B/B: 4096         пустой обычный файл Устройство: fc00h/64512d                  Inode: 26870044            Ссылки: 1 Доступ: (0600/-rw -)                      Uid: (  1000/    john)                Gid: ( 1000/     john) Доступ: 2018-08-24    01:37: +0300

Читайте также:  Где находятся конфигурационные файлы самых популярных CMS

Модифицирован: 2018-08-24 01:37: +0300

Изменён: 2018-08-24 01:37: +0300

Создан: —

Короткие, односимвольные опции (например -l -а) без своих аргументов издревле можно было объединять в группы (-lа или -al), однако их в этом случае сложно отличать от многосимвольных (-xdev) или односимвольных, склеенных со своими аргументами (-ВМ).

Поэтому позже появились длинные (в так называемом GNU-стиле) опции, обозначаемые двумя знаками «минус», позволяющие навести некоторый порядок в виде —block-size=M вместо -ВМ или, предположим,

—dont-descent вместо -xdev.

Командный интерфейс Linux

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

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

Естественные языки, которые используют люди для взаимодействия между собой, на порядок сложнее формального командного языка операционной системы. Однако использование глаголов (команд), существительных (аргументов) и наречий (опций) родного языка мало у кого вызывает чувство неудобства. Наоборот, странным покажется тот человеческий индивидуум, который попытается в обществе использовать непосредственное манипулирование, например, указывая (щелкая) пальцем в магазине на товары (значки) и мыча что-то нечленораздельное. Скорее всего, мы примем его за иностранца (или это будет ребенок), еще не в полной мере владеющего языком.

Именно командный интерфейс в современном виде — аудиоформе — больше не является уделом художественных фантастических произведений, где капитаны межгалактических кораблей командуют кораблям «включить защитное поле». Теперь мы все можем при помощи командного аудиоинтерфейса смартфона найти ближайшую пиццерию или маршрут к нужному месту. Надеюсь, что и алфавитно-цифровая форма командного интерфейса, доставшаяся «в наследство» от UNIX из 70-х годов прошлого века, вас тоже не особо испугает. Ok, Google?

Синтаксис

Рассмотрим синтаксис.

who параметры файл

Основные параметры:

  • -a — читает файл /etc/utmp, включает все основные опции;
  • -b — показывает дату и время загрузки операционной системы;
  • -d — показывает зомби-процессы.
  • -u — выводит активных пользователей.
  • -s — выводит имя, терминальную сессию и  время, данный параметр используется по умолчанию;
  • -T — информация о терминальной сессии;
  • -q — количество пользователей в системе в данный момент;
  • -r — показывает уровень процесса init.

Обычно для выполнения команды who берется информация файла: «/etc/utmp».

Альтернативные файлы: «/etc/wtmp» и «/etc/inittab».

Примеры

Если не использовать опции и аргументы, на экране появятся данные по умолчанию, включающие в себя информацию об учетных записях (тех, кто подключен к системе). Чтобы ознакомиться с данными о пользователе, который изъявил желание обратиться к терминалу прямо сейчас («спросить» у системы о самом себе), необходимо использовать команду «who am i».

Читайте также:  Apple выпустила финальные версии iOS 13.3 и iPadOS 13.3

$ who am i

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

$ who -a

Каких-либо дополнительных указаний в этом случае не потребуется. Если использовать исключительно «who», данных будет сравнительно меньше. Детализировать этот запрос или нет – решать только вам. Смотрите по ситуации.

Время загрузки системы можно посмотреть по команде:

$ who —login

Впишите её в терминале и ознакомьтесь с результатами запроса.

Чтобы посмотреть «runinit» (текущий уровень запуска), впишите в команду соответствующую опцию. Это будет выглядеть так:

$ who -r

Опция -s не имеет особого смысла, поскольку она провоцирует вывод таких стандартных значений, как «Имя пользователя», «терминальная линия», «время начала/окончания сеанса». Эта информация доступна и без добавления каких-либо опций. Едем дальше.

С помощью аргумента -T можно узнать состояние терминальной сессии. На практике это выглядит следующим образом:

$ who -T

Для чего нужна информация о состоянии терминальной сессии? От её состояния зависят некоторые нюансы в работе пользователя. Обратите внимание на название любой сессии, отображенной в окошке терминала. Если рядом с ним указан значок «+», значит, пользователь может получать сообщения от других терминалов. Если такой возможности нет, рядом с названием сессии будет указан значок «-».

При неисправности линии появится вопросительный знак.

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

$ who -q

Чтобы посмотреть, кто из пользователей активен в данный момент времени, введите команду:

$ who -u -H

При добавлении опции -d отображаются зомби-процессы:

$ who -d

Важное примечание: при использовании опции -d нельзя увидеть поле EXIT в окне терминала. Оно появляется лишь при добавлении опции -а.

Заключение

Основная задача утилиты who заключается в получении информации о пользователях, подключенных к системе. Вторичная задача – сбор данных о терминальных сессиях, благодаря которым и происходит их подключение.

Благодаря выше предоставленным примерам команд вы тоже можете ощутить простоту отслеживания данных о user системы. Всего несколько нажатий клавиш – и ответы на вопросы найдены.

Apache

Веб-сервер чуть медленнее, чем Nginx. Один из самых популярных в интернете.

Одна из ключевых особенностей — .htaccess файлы дополнительной конфигурации. Можно управлять отдельными папками. Размещаете этот файл в папке и прописываете в нём правила.

Этим хорош и плох Apache одновременно. Хорош, тем что можно гибко настраивать каждую папку, плох тем, что конфигурационные файлы разбросаны по разным местам.

service apache2 restart — перезапуск Apache

service apache2 reload — применение новых конфигов без перезапуска сервера.

service apache2 stop — остановка веб-сервера