Name already in use
lor / md / Что-такое-командная-строка-и-как-в-ней-работать.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Многие начинающие пользователи GNU/Linux, переходящие с других операционных систем могут не знать, что такое «консоль», «терминал», «shell» и так далее. Однако, к сожалению, с очень большой вероятностью при работе в Linux вам придется воспользоваться консолью. Хотя производители дистрибутивов Linux стремятся избавить пользователей от необходимости использования консоли вообще, пока что никому не удавалось полностью решить эту задачу. Кроме того, если вы будете обращаться за помощью к другим пользователям, они могут не знать, какой у вас дистрибутив и как пользоваться его средствами для диагностики вашей проблемы, и предложат вам выполнить какие-либо команды (общие для всех дистрибутивов) и представить результат их выполнения.
Конечно, быть «гуру» написания скриптов совершенно необязательно. Даже знать наизусть основные команды необязательно. Но в ответ на «Приведите вывод cat /proc/scsi/scsi» отвечать «А что это такое, где это вводить?» не следует: многие пользователи не захотят после этого тратить на вас время.
Цели этой статьи таковы:
- Объяснить, что такое «консоль», как ее запустить и как вводить туда команды.
- Объяснить, как устроены команды и как получить информацию по отдельным командам.
- Объяснить, почему команду sudo rm -rf /* вводить не следует.
Что такое «консоль»
Не будем углубляться в историю и скажем просто: в данной статье под консолью (она же «терминал», «shell») понимается программное обеспечение, реализующее общение с компьютером при помощи текстовых команд (Command-line interface, CLI). Аналог в Windows: cmd. Понятие виртуальная консоль вводится отдельно.
В Linux имеется несколько реализаций командной строки. Самая ранняя из популярных реализаций, появившаяся еще в операционных системах-предках Linux, называлась Bourne shell (sh). На сегодняшний день самой популярной и поставляемой в составе большинства дистрибутивов является Bourne-Again shell (bash).
Существуют и другие реализации, такие как Korn shell (ksh), Z shell (zsh), Almquist shell (ash), Debian Almquist shell (dash) и другие.
Обычно на одной машине установлено несколько реализаций командной строки, но только одна используется по умолчанию. Чтобы узнать, какая работает у вас, введите команду:
Если вы еще не знаете, куда ее ввести, читайте дальше.
Большинство реализаций совместимы с sh, но не обязательно совместимы между собой. Например, скрипты и команды для bash не всегда работают на dash. Есть и такие интерпретаторы команд, которые не совместимы с sh (например, C Shell [csh]). Такие интерпретаторы не рекомендуется (скорее всего, вообще невозможно) использовать как интерпретаторы по умолчанию.
Как запустить консоль
Существует два способа получить доступ к консоли: виртуальные консоли и эмуляторы терминала.
Виртуальные консоли доступны практически в любом дистрибутиве Linux для настольных компьютеров и серверов.
Каждая виртуальная консоль позволяет вести отдельный сеанс работы с компьютером. Если у вас есть, скажем, семь виртуальных консолей, то семь пользователей могут совершить вход в систему и работать с ней (правда, по очереди, поскольку монитор и клавиатура у вас одна). Один пользователь может работать в нескольких консолях одновременно.
Чтобы открыть виртуальную консоль, используйте сочетание клавиш Ctrl+Alt+FN, где N — номер консоли. Например, Ctrl+Alt+F1 — первая консоль, Ctrl+Alt+F2 — вторая, и так далее. Если вы уже находитесь в виртуальной консоли, то на другую можно переключиться этой же комбинацией но без Ctrl: Alt+F1, Alt+F2, и т.д.
Обычно настраивают шесть виртуальных консолей, а X-сервер, графическая система GNU/Linux, работает в седьмой.
Здесь приведены настройки по умолчанию, они могут быть изменены.
Когда вы переключаетесь между виртуальными консолями, сеансы не сбрасываются: вы в любой момент можете вернуться к любой консоли, где вы выполнили вход, и продолжить работу.
Консоли называются виртуальными, поскольку изначально консолью назывался терминал, с помощью которого подключались к мощному компьютеру-серверу и работали. Таким образом, на одном сервере работало сразу несколько пользователей. Виртуальные консоли симулируют работу таких терминалов.
Эмулятор терминала — это почти то же, что виртуальная консоль, только в графическом режиме. Кроме того, обычно для работы в нем не требуется выполнять вход. Консоль отображается в отдельном окне.
В большинстве случаев при работе в графическом режиме не требуется обращаться к виртуальным консолям, консольные команды выполнятся с помощью эмулятора терминала.
Существует много реализаций эмуляторов. Наиболее часто используемыми являются: gnome-terminal (в среде Gnome), Konsole (в среде KDE), xterm, rxvt. Для работы можно пользоваться любым из установленных.
Если вы считаете, что эмулятор терминала у вас не установлен, то вам либо следует поискать еще раз, либо ваш дистрибутив очень странный. Во втором случае можете воспользоваться пакетным менеджером и установить его (для этого может потребоваться знание вашего пароля/пароля супер-пользователя »root«).
Внимание! Эмулятор терминала (например, Konsole) и интерпретатор команд (например, bash) — разные программы.
Интерпретатор команд (он же shell) — это та программа, с которой вы работаете в консоли, она исполняет ваши команды и запускает другие программы.
Эмулятор терминала выводит окно для работы в консоли, подготавливает сеанс работы и запускает интерпретатор команд.
Как работать в консоли
Подсказка появляется, когда интерпретатор команд ждёт команду. Подсказка может быть настроена как угодно, но обычно так:
- user — имя пользователя
- computer — имя компьютера
- /current/directory — текущий каталог. Обычно если текущий каталог — домашний каталог пользователя, то он сокращенно обозначается тильдой (
Кроме того, интерпретатор может выводить особую подсказку, если он ждет продолжения предыдущей команды, а не новую команду. Обычно это просто символ >.
Внешний вид подсказки можно настроить под себя.
Как устроена команда
Команда устроена так:
- <команда> — одно из следующих:
- Встроенная команда интерпретатора (например, export или alias). Такую команду интерпретатор выполняет сам.
- Имя исполнимого файла, находящегося в известных директориях. Список известных директорий содержится в переменной среды PATH, разделенный двоеточием (а не точкой с запятой, как в Windows). Интерпретатор найдет и запустит этот исполнимый файл, передав ему параметры для обработки. Например, awk.
- Путь к исполнимому файлу (прямой или относительно текущего каталога). Интерпретатор запустит этой файл, передав ему параметры для обработки. Например, /usr/bin/gcc.
- [параметры] зависят от команды.
Продвинутые интерпретаторы, такие как bash, ради высокой скорости исполнения поддерживают многие встроенные команды, которые обычно реализуются при помощи внешних программ (например, pwd, echo, test). Но это иногда может привести к неожиданным результатам, если пользователь пытается вызвать известную ему программу, а вместо этого интерпретатор сам обрабатывает команду.
Обращаем внимание пользователей DOS и Windows. Возможно, вы знаете, что интерпретаторы команд command.com и cmd.exe при вводе имени исполняемого файла ищут его не только в каталогах из переменной PATH, но также в текущей директории. Кроме того, они автоматически присоединяют расширение к имени исполняемого файла, если оно не указано. Интерпретаторы команд в Linux не делают ни того, ни другого. Если вам нужно запустить файл в текущей директории, можно это сделать, например, так:
Это будет уже относительный путь к файлу, т.е. пункт 3.
Примеры простых команд
Команда echo выводит указанную строку на экран
Команда cp (от copy) копирует файл или несколько файлов в указанный каталог. Например, файлы /boot/grub/menu.lst /etc/inittab и /etc/mtab в каталог /tmp:
. а также может поменять имя файла (/boot/grub/menu.lst -> /boot/grub/menu.lst.bak:
Команда cat (от catenate, ‘соединять’) используется для вывода содержимого файла или нескольких файлов:
Тильда обозначает домашний каталог пользователя.
Текущий каталог и относительные пути
Скорее всего, вам уже понятно, как указать путь к файлу от корня (например /boot/grub/menu.lst — в корневой директории папка[1] boot, в ней папка grub, в ней файл menu.lst). Такой путь называется абсолютным путем. В нем указана вся цепочка каталогов, которую надо пройти, чтобы дойти до нужного файла или каталога.
Некоторые пути в этой статье начинаются с «
«. Это тоже абсолютные пути, просто «
» заменятся на абсолютный путь домашнего каталога пользователя. Например:
Но пользоваться только абсолютными путями было бы неудобно. Поэтому существуют также относительные пути. Они указывают, как дойти до каталога или файла X из каталога Y. Например:
Подняться на одну директорию вверх[2], оттуда пойти в директорию «Музыка», там будет файл justin_bieber.ogg:
Или: найти директорию subdir в текущем каталоге, там файл text.txt:
Пути указываются относительно текущего каталога. При работе в консоли текущий каталог обычно отображается в подсказке, но его всегда можно узнать простой командой:
Можно легко сменить текущий каталог (обычно говорят: «перейти в другой каталог») командой:
cd «Другой каталог»
Перейти в свой домашний каталог можно командой cd без параметров:
Внимание, пользователи DOS/Windows! Если вы привыкли пользоваться командной строкой в этих системах, то обратите внимание: команда cd без параметров значит «перейти в домашний каталог», а не что-либо другое.
Вот так можно скопировать файл file1 в текущем каталоге в file2:
А так можно переместить file1 на каталог вверх, т.е. в родительский каталог текущего каталога:
Еще можно перейти в родительский каталог и переместить файл после этого. Допустим, мы находимся в каталоге mydir:
cd ..
mv mydir/file1 .
Отметим два специальных символа, использующихся в путях:
- . (точка) — текущий каталог
- .. (две точки) — родительский каталог
А где мой диск C:?
В ОС Windows имеется несколько корневых каталогов, по одному на каждый диск: C:, D:, E: и так далее.
В Linux используется только один корневой каталог (/). В нём «находится» содержимое одного из разделов жёсткого диска. Все прочие файловые системы, в т.ч. другие разделы на жёстких дисках, CD/DVD-диски, флешки и прочие сменные накопители монтируются (т.е. подключаются) в подкаталоги. В этих подкаталогах и будет отображаться их содержимое.
О монтировании вручную см. команду .
В современных десктопных дистрибутивах сменные диски монтируются автоматически, обычно в каталоги /media/имя_пользователя/название_диска или /var/media/имя_пользователя/название_диска. Например, если вставить флешку с названием TOSHIBA TransMemory[3] в компьютер с Ubuntu и ваше имя пользователя — vasya, файлы на ней будут в каталоге «/media/vasya/TOSHIBA TransMemory». Это вовсе не значит, что они автоматически скопируются на жёсткий диск, они будут на флешке, но доступны по этому пути.
Обратите внимание, что автомонтирование дисков может быть настроено так, что диски будут определяться автоматически, но не монтироваться. В этом случае откройте менеджер файлов, кликните по нужному диску, и он примонтируется. Скорее всего, директория, куда он примонтировался, автоматически откроется.
Более того, в Linux существует ряд виртуальных файловых систем, которые вообще не связаны с файлами на дисках. Это позволяет программам получать доступ к устройствам или к каким-либо другим данным так же, как к файлам. Например, в директории /dev находятся дескрипторы для доступа к устройствам, а в директории /proc — для получения информации от ядра ОС и управления им.
Кроме того, в консоли существует такая вещь, как автодополнение. Она полезна в тех случаях, когда необходимо набрать длинную команду или написать имя файла, содержащее много символов, которые необходимо экранировать. Работает она очень просто. При наборе части команды необходимо нажать [TAB] один или два раза и консоль либо дополнит команду/имя файла, либо выдаст список для уточнения.
Однократное нажатие [TAB] дополнит имя программы/файла в том случае, если его уже можно определить однозначно. Двойное нажатие выведет список возможных «продолжений» команды:
Специальные символы и их экранирование
Ряд символов в командах являются специальными символами. Это значит, что они не передаются запускаемой программе или обработчику внутренней команды shell’а, а обрабатываются ДО ТОГО, как команда будет выполнена. То есть специальные символы управляют самим shell’ом.
Если вы хотите, чтобы shell не обрабатывал по-особому специальный символ, а обрабатывал его как обычный символ, то его нужно экранировать. Есть три способа это сделать:
- Поставить обратный слэш (\) перед специальным символом (по-английски этот метод называется escape). Сам обратный слэш, соответственно, тоже является специальным символом, и его можно так же экранировать (т.е. поставить два слэша: \\). Например:
grep lucky\*star my\ file #Ищем строку lucky*star в файле my« «file
- Обратный слэш перед обычным, не специальным символом будет просто проигнорирован.
- Заключить команду или часть команды со специальными символами в двойные кавычки («). По-английски этот метод называется quote. Двойные кавычки экранируют большинство специальных символов, но не все. Остальные спец. символы внутри двойных кавычек можно экранировать обратным слэшем. Пример:
grep «lucky*star» «my file» #Аналогично предыдущей команде
- Обратный слэш внутри двойных кавычек перед обычным символом или символом, который и без него экранируется в двойных кавычках, будет обработан как экранированный слэш. Но его можно и эксплицитно экранировать. Это значит, что команды echo «hello, \slash» и echo «hello, \\slash» выведут на экран одно и то же: hello, \slash.
- Заключить команду или часть команды в одинарные кавычки (по-английски этот метод тоже называется quote). Они экранируют все специальные символы. Пример:
#Найти строку $1000 в файле my« «income
grep ‘$1000’ «my income» #Символ ‘$’ не экранируется двойными кавычками, а одинарными — экранируется.
- Обратный слэш внутри двойных кавычек всегда считается экранированным. Команда »’echo ‘hello, \\slash’ »’ выведет на экран hello, \\slash. Это также означает, что нет никакой возможности экранировать одинарную кавычку внутри одинарных кавычек.
Список специальных символов
По замыслу одного из участников. э-э. хорошо бы было здесь написать таблицу спец. символов с указанием символа, экранируется ли в двойных кавычках, в каких средах считается специальным, краткое описание, что делает.
Вывод в файл и ввод из файла
Вывод результата работы в файл
Скорее всего, вам когда-нибудь придется записать весь вывод команды в файл. Сделать это просто:
#Найти все строки, содержащие подстроку «loruser» в файле /etc/passwd
#и записать их в файл «myfile» в директории «Документы» в домашней директории.
grep loruser /etc/passwd >
При этом учтите, что каждая программа имеет два потока вывода: стандартный поток вывода и поток ошибок. Программа сама определяет, какие сообщения в какой поток выводить. Если вы перенаправите только поток вывода, то ошибки не будут записаны в файл, а будут показаны на экране (и наоборот). Для перенаправления потока ошибок используйте такой синтаксис:
Можно направить в файлы оба потока:
команда > файл_для_вывода 2> файл_для_ошибок
grep loruser /etc/passwd >
При перенаправлении вывода или ошибок в файл файл будет полностью перезаписан (или создан, если его нет). Даже если ничего не будет выведено, файл будет перезаписан и заменен пустым.
Чтобы дописать вывод в конец файла, сохранив предыдущее содержимое, используйте двойной знак «больше» вместо одинарного. То есть:
Возможно, у вас возникнет и другой вопрос: как заставить программу считать данные из файла, как если бы их вводили с клавиатуры?
Ответ на этот вопрос такой. Практически все популярные программы, для которых это имеет смысл, сами умеют читать данные из файла. Узнайте, как использовать эту функцию в нужной вам программе и пользуйтесь ею.
Но если вы уверены, что такой функции нет, вы все же можете направить данные из файла в поток ввода программы:
Да, можно комбинировать перенаправление ввода и вывода:
команда < файл_для_ввода > файл_для_вывода
Еще раз повторим, что если программа сама умеет читать данные из файла, то лучше пусть читает сама. Это, скорее всего, более надежно и эффективно.
Пользуйтесь функциями эмулятора терминала
Если вы пользуетесь эмулятором терминала, то он, вполне возможно, сам умеет копировать текст текущего сеанса в буфер, сохранять в файл или имеет другие подобные функции, которые могут облегчить вам работу. Чтобы узнать о них, посмотрите в меню в нем или прочитайте руководство пользователя.
То, что написано в этом разделе статьи — это частные случаи перенаправления потоков ввода и вывода. Вообще эта тема довольно глубокая и если вы хотите эффективно работать в командной строке или писать скрипты, вам нужно освоить ее лучше.
Собственно, именно эта функция и делает shell тем гибким инструментом, которым он является. Вы можете сооружать цепочки команд (англ. pipeline), в которых каждая программа будет обрабатывать данные и результат подавать на вход следующей программе. Используя программы, каждая из которых предназначена для конкретной простой операции, вы сможете писать скрипты для решения любой стоящей перед вами задачи.
Получение справки по командам
Практически в любой unix-подобной ОС (за исключением встраиваемых) есть руководства по командам (manual) и команда man, служащая для просмотра этих руководств. Если набрать, например, команду:
то на экране откроется справка по команде man (описание, какие параметры она принимает и т.п.).
Так же существуют мануалы в формате »Info«. Этот формат поддерживает разбивку на главы и своего рода (гипер)ссылки.
Если вам в ответ на ваш вопрос пишут: «RTFM», «кури маны», то весьма вероятно ответ на вопрос может быть легко найден с помощью приведённых выше команд.
Разделение прав и о работе под рутом
Основная статья о root: Суперпользователь (root)
Основная статья о правах: Права доступа к файлам
Суперпользователь (root) — это пользователь, для которого не проверяются права на доступ к файлам. Для входа под именем суперпользователя воспользуйтесь командой su без параметров. Для исполнения одной команды от имени суперпользователя воспользуйтесь sudo <команда>. Скорее всего, система попросит вас ввести пароль — либо пароль суперпользователя, либо пароль от вашего аккаунта, в зависимости от настроек.
Настоятельно не рекомендуется входить под именем root, а только исполнять команды с использованием sudo в случае необходимости. Разумеется, не рекомендуется запускать программы, полученные из сомнительных источников, с правами суперпользователя. Не рекомендуется также выполнять от имени root команды, которых вы не понимаете. Вообще говоря, программы из сомнительных источников и непонятные команды вообще выполнять не рекомендуется.
Иногда нехорошие люди «шутят» над новичками, рекомендуя им выполнить команду «sudo rm -rf /» или «sudo rm -rf /*». Как можно понять, прочитав «man rm», эта команда удалит все файлы на жёстком диске. Впрочем, в современных дистрибутивах либо сам shell, либо rm может спросить подтверждение. Поэтому теперь обычно советуют выполнить «rm -rf
/*», которая удалит все файлы в домашнем каталоге пользователя.
После чтения этой статьи вы должны знать, что такое командная строка, как получить к ней доступ на вашем компьютере, какие бывают команды и как их вводить, как сохранить данные в файл и как дать программе на обработку данные из файла.
Большинство утилит командной строки работают одинаково во всех дистрибутивах, в отличие от графических утилит. Поэтому не удивляйтесь, если в ответ на вопрос на форуме вас попросят ввести какую-либо команду: скорее всего, вам предлагают наиболее универсальное решение.
Если вам хочется узнать больше о возможностях командной строки, о том, как комбинировать команды и так далее, прочтите руководство к вашему интерпретатору команд. В случае bash рекомендуем прочитать Advanced Bash Scripting Guide, он есть и в переводе на русский. Надеемся также, что и в этой Вики появятся статьи об использовании командной строки.
Astra linux команды терминала. Основы работы в командной оболочке Linux
Все новички Linux уже, наверное, слышали про терминал, или как его еще называют командную строку. Ведь присутствие и сложность терминала — это один из основных аргументов оппонентов Linux. Возможно, вы уже сталкивались с командной строкой в Windows на практике и уже знаете что это такое.
Действительно, в операционной системе Linux есть терминал, где вы можете выполнять нужные вам команды, чтобы очень эффективно управлять своей системой. Но это вовсе не обязательно, многим вполне достаточно графического интерфейса. Сейчас использование терминала отошло на второй план, но он остается основным средством для доступа к удаленным серверам и инструментом для профессионалов.
Терминал Linux намного интереснее, чем командная строка Windows и в этой статье будет подробно рассмотрена работа в терминале Linux для начинающих, а также что такое терминал Linux и собственно, что он из себя представляет.
Применение терминала началось очень давно. Еще до того как была создана DOS и не существовало никакого графического интерфейса. В далеких восьмидесятых годах операционная система Unix только начинала развиваться. Пользователям нужно каким-то образом взаимодействовать с системой и самый простой способ — это использование команд. Вы вводите команду, система вам возвращает ответ.
С тех пор, такой способ ввода использовался во многих системах, в том числе DOS и OS/2 от Apple, пока не был придуман графический интерфейс. Затем текстовый режим терминала был успешно вытеснен, но его до сих пор продолжают использовать там, где это нужно.
Выше, под терминалом мы понимали то место, где можно вводить команды и получать на них ответ от компьютера. Это может быть текстовый режим Linux или же открытое в графическом режиме окно терминала. В Linux часто встречаются слова: консоль, терминал, командная строка, командная оболочка, tty, эмулятор терминала. Все они относятся к терминалу, но означают немного разные вещи. Перед тем как перейти дальше давайте разберемся с терминами, чтобы называть все своими именами.
Под терминалом принято понимать окружение, где можно вводить команды и получать на них ответ, это может быть физический терминал или терминал на компьютере.
Консоль — это физическое оборудование для управления сервером. Когда к серверу нет доступа из сети, для управления им можно использовать только консоль.
TTY — это файл устройства, который создается ядром и предоставляет доступ к терминалу для программ. Это могут быть файлы /dev/tty для постоянных текстовых терминалов и /dev/pts/* для эмуляторов терминалов. Вы можете выполнить команду или отправить сообщение просто записав данные в этот файл, и также получить результат, прочитав данные из этого файла.
Эмулятор терминала — это графическая программа, которая предоставляет вам доступ к tty или pts терминалу. Например, Gnome Terminal, Konsole, Terminix, Xterm и многие другие.
Командная оболочка — устройство tty занимается только передачей и приемом данных, но все эти данные должен еще кто-то обрабатывать, выполнять команды, интерпретировать их синтаксис. Командных оболочек достаточно много, это bash, sh, zsh, ksh и другие, но чаще всего применяется Bash.
Ну и командная строка — это то место куда вы будете вводить свои команды, приглашение терминала для ввода.
Теперь, когда мы разобрались что такое терминал Linux и знаем все основные принципы, перейдем к практике работы с ним.
Как открыть терминал Linux?
Есть несколько способов получить доступ к терминалу. Ваша система инициализации по умолчанию создает 12 виртуальных терминалов. В одном из них — обычно седьмом, запущена ваша графическая оболочка, но все другие могут быть свободно использованы. Для переключения между терминалами можно использовать сочетания Ctrl+Alt+F1-F12. Для авторизации нужно будет ввести логин и пароль.
Это текстовые терминалы без графического интерфейса, в них может быть не совсем удобно работать, но, зато такие терминалы будут полезны, если графический интерфейс не работает.
Второй способ позволяет открыть виртуальный терминал прямо в графическом интерфейсе с помощью эмулятора терминала. Эмулятор терминала linux работает с файлами в каталоге /dev/pts/* и еще называется псевдотерминалом, потому что не использует tty.
В Ubuntu вы можете запустить терминал linux нажав сочетание клавиш Ctrl+Alt+T :
Также его можно найти в меню приложений Dash:

Как видите, открыть командную строку в linux очень просто.
Выполнение команд в терминале
Рассмотрим более подробно терминал Linux для начинающих. Как я уже говорил, терминал и файлы устройств tty отвечают только за передачу данных. За обработку команд отвечает командная оболочка, которой и передаются полученные от пользователя данные.
Вы можете набрать что-либо и убедиться, что это работает:

Чтобы выполнить команду достаточно написать ее и нажать Enter.

Более того, командная оболочка Bash поддерживает автодополнение, поэтому вы можете написать половину команды, нажать TAB и если на такие символы начинается только одна команда, то она будет автоматически дополнена, если же нет, то вы можете нажать два раза TAB, чтобы посмотреть возможные варианты.

Точно такая же схема работает для путей к файлам и параметров команд:


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

По умолчанию работа в командной строке linux может выполняться с помощью большого количества команд, многие из них, например, для перемещения по каталогам, просмотра содержимого, установки ПО поставляются вместе с системой.
Экземпляр запущенной команды называется процесс. Когда в терминале Linux выполняется одна команда нам нужно подождать ее завершения, чтобы выполнить следующую.
Команды могут выполняться без параметров, что мы видели выше, или же с параметрами, которые позволяют указать данные, с которыми будет работать программа, также есть опции, с помощью которых можно настроить поведение. Большинство стандартных утилит придерживаются такого синтаксиса:
$ команда опции параметр1 параметр2.
Опции часто необязательны и уточняют тот или иной аспект работы программы. Они записываются в форме черточка и символ или двойная черточка и слово. Например -o или —output. Приведем пример для команды ls. Без опций и параметров:

С параметром, указывающим какую папку посмотреть:

С опцией -l, вывести в виде списка:

В с опцией и параметром:

Можно комбинировать две опции:

В основном, это все, что нужно знать про команды, чтобы продуктивно их использовать. Еще можно было бы рассказать про объединение команд и перенаправление вывода одной команды в другую, но это уже отдельная тема.
Выводы
В этой статье была рассмотрена работа в терминале linux для начинающих. Командная строка Linux может показаться сначала очень сложной, но это совсем не так, она намного проще в использовании чем в Windows и позволяет управлять системой более эффективно. Надеюсь, эта статья пролила немного света на эту очень большую тему.
Об авторе
Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.
Здесь перечислены основные команды Linux, разбитые на категории. В конце приведены особенности работы с командной строкой и эмуляторами терминалов в Linux.
Получение справки о командах
Команды работы с файлами
или просто cd всегда переходит в домашний каталог текущего пользователя. Пример: cd /etc ls Выводит список файлов и каталогов. В отличие от dir подсвечивает файлы по типу. С параметром -l выводить дополнительную информацию о файлах: права, владельца, дату создания и т.д. ls без параметров выводит содержимое текущего каталога. ls /proc выводит все работающие процессы. mv Перенос файла. cp Копирование. rm Удаление файла. С ключем -R удаляет в подкаталогах. Пример: rm -R
/killme mkdir Создание каталога. rmdir Удаление пустого каталога.
Права доступа к файлам и каталогам
Просмотр файлов
Редактирование файлов
nano и pico — наиболее вменяемые редакторы, работающие в текстовом режиме прямо в терминале. Чтоб изменить файл /etc/fstab, например, надо набрать nano /etc/fstab . Выход из редактора CTRL+X. Редакторы vi и vim предназначены для работы слепым десятипальцевым методом.
Монтирование и отмонтирование дисков
Команды работы с драйверами устройств (модулями ядра Linux)
Другие полезные консольные программы и команды Linux
Суперпользователь root
Обладает неограниченными правами. Использование прав суперпользователя необходимо при установке драйверов, смене важных параметров Linux. Пароль пользователя root обычно запрашивается при установке дистрибутива. Тогда сразу после установки в систему можно войти с указанным паролем и логином root .
Если вход в систему выполнен под обычным пользователем, то получить права суперпользователя в конкретном экземпляре терминала можно командой su , после ввода которой необходимо ввести пароль суперпользователя. Вернуться к сессии обычного пользователя можно командой exit .
Однако такие дистрибутивы как Ubuntu и Kubuntu не создают суперпользователя при установке. Войти под пользователем root или использовать su не удастся. Права суперпользователя в этих дистрибутивах можно получить командой sudo . Ее необходимо писать перед каждой командой, для которой требуются права суперпользователя. Например sudo nano /etc/fstab . После первой команды sudo необходимо ввести пароль текущего пользователя. Использовать sudo могут пользователи, состоящие в группе sudo или admin (в зависимости от дистрибутива Linux), что для первого пользователя Ubuntu и Kubuntu выполняется автоматически при установке дистрибутива.
Особенности работы терминалов Linux
Записанные в файл команды выполняются командой sh имя_файла .
Стандартные команды в Linux отличаются от команд DOS и Windows — обычно они короче. При работе с командной строкой как обычно мигающий курсор обозначает позицию ввода текста, командная строка начинается с текущего пути и имени компьютера, за которым следует символ $, % или #. Последний означает, что команды будут выполняться от имени суперпользователя root. Символ
означает путь к текущей домашней директории пользователя.
Большинство команд в Linux, не требующих вывода информации пользователю, в случае успешного завершения вообще ничего не выводят на экран. Выводятся только ошибки и предупреждения в случае нарушения нормального выполнения команды. Т.е. в Linux действует общий принцип «молчит, значит работает».
В любом терминале Linux стрелками вверх/вниз на клавиатуре можно листать историю команд, которая сохраняется между сеансами работы и различается для разных пользователей и хостов (в случае подключения из командной строки к другому компьютеру по ssh). Набранное частично команда или имя файла или каталога в текущей директории может быть автоматически дописано клавишей TAB. Если найдено более одного варианта и однозначно продолжить команду по TAB невозможно, то выводятся все подходящие варианты.
При работе в графической среде удобны эмуляторы терминала. Как правило они поддерживают закладки — несколько терминалов в одном окне, поддерживают цветовые схемы. Наиболее распространены эмуляторы терминала Gnome Terminal, Konsole, XFCE Terminal.
Сегодня для выполнения операций в ОС Linux разработано множество графических утилит, упрощающих настройку системы и работу с ней.
Несомненно, это очень удобно и полезно, особенно для людей, которые только начинают осваивать Linux.
Тем не менее, знание основных команд терминала необходимо любому, кто имеет дело с ОС.
Синтаксис команд терминала Linux и команды помощи
Команда [опции] [файлы/папки]
где в качестве опций (часто называют ключами) указываются параметры, влияющие на выполнение команды, а файлы и папки являются объектами, на которые направлено действие команды.
Т.к. для разных команд один и тот же ключ может означать разные действия, описать все ключи не представляется возможным. Для получения информации о команде можно воспользоваться ключом —help, который является универсальным для большинства команд.
Для получения расширенной справки о команде можно воспользоваться командой man или info.
С помощью опции –version можно узнать номер версии команды. Примеры получения справки для основной команды терминала Linux — ls:
Ls —help ls —verison man ls infols
Таким образом, можно легко получить необходимую информацию о синтаксисе, ключах и действиях команды.
Обычные пользователи имеют ограниченные возможности при выполнении команд терминала Linux.
По умолчанию пользователи могут производить операции над объектами, владельцами которых они являются. Пользователю, для совершения операций над чужими объектами, а также операций, которые вносят изменения в систему, касающиеся всех пользователей, необходимо получить соответствующие права на объект операций или выполнять их от имени суперпользователя (root), обладающего неограниченными правами при выполнении команды терминала.
Чтобы получить права суперпользователя не выходя из системы надо выполнить команду терминала su и ввести пароль root.
Стоит отменить, что все пользователи, знающие root-пароль, по сути, обладают всеми правами в системе. Если существует необходимость дать пользователям возможность выполнять операции от имени суперпользователя и при этом ограничить свободу действий, можно воспользоваться командой sudo, предварительно настроив список разрешенных операций и доступных файлов, для каждого пользователя.
Точную информацию о работе sudo лучше всего просмотреть смотреть в каждом отдельном дистрибутиве, вызвав ее справку.
При выполнении sudo пользователю нужно ввести свой пароль. Настройки возможностей, доступных пользователям по команде sudo хранятся в /etc/sudoers (подробнее man/etc/sudoers).
Работа с файлами и доступ — основные команды терминала
- pwd– вывод текущей рабочей папки;
- ls– вывод список файлов и папок;
- cd– выбор рабочей папки;
- locate– поиск файлов;
- chmod– настройка прав доступа;
- rpm–qa– показывает установленные пакеты в rpm-linux;
- dpkg -l |more – показывает установленные пакеты в deb-linux;
- rpm–i(rpm -e) – установка (удаление) rpm-пакета;
- apt-get install (apt-get remove) – установка (удаление) deb-пакета;
- mount (umount) – монтирование (размонтирование) носителей информации;
- fdisk –l – просмотр списка всех подключенных носителей;
- mkfs– форматирование дисков и разделов.
Команды терминала Linux для настройки сети и управление процессами
- ifconfig– отображение настроек сетевых интерфейсов, настройка параметров сети (IP, маска и т.д.), запуск сети;
- ping– проверка доступности узлов сети;
- route– просмотр и настройка таблицы маршрутизации;
- nameserver– настройка DNS-серверов;
- psaxjf– показать запущенные процессы;
- pgrep -l– показать IDпроцесса;
- kill– команда терминала Linux чтобы завершить процесс;
- clear– очистка окна терминала;
- export– назначение принтера по умолчанию;
- lpr– вывод на печать.
Возможно последовательное выполнение основных команд Linux или выполнение при соблюдении определенных условий. Командный процессор вместе со знанием команд терминала является важным инструментом этой ОС.
Основные команды Linux дают представление о работе с терминалом. За подробной информацией всегда можно обратить к справочной системе, которая есть в каждом дистрибутиве.
С самого создания операционной системы Linux основным приёмом работы в ней был Интерфейс командной строки. Уже позже к этому универсальному инструменту добавились графические детали, осовременив систему и сделав её более удобной для новых пользователей. Несмотря на дружественную среду многих дистрибутивов Линукс, пользование CLI (Командной строкой) всё так же оправдано. Команды терминала Ubuntu — это возможность для комплексного управления ресурсами ПК с помощью указаний различной длины и сложности. Поэтому освоить Терминал так важно.
Основные текстовые команды для выполнения задач через терминал.
Команды могут состоять из самых разных символов — в них легко сосуществуют цифры, буквы, дефисы и тире. Они вводятся построчно. Выполнение каждой инструкции начинается по нажатии на клавишу Enter или другим похожим способом. Интерфейс Терминала полезен тем, что будет доступен даже при отказе графической части. Он напрямую взаимодействует с ядром ОС.
Такой метод ввода инструкций необычно гибок, он не требует много аппаратных и программных ресурсов. Поддерживается также автозапуск команд.
Если говорить точнее, то Терминал — это эмулятор Консоли. Он поддерживает те же функции, предлагая некоторые дополнительные. Запустить его можно сочетанием клавиш «Ctrl + Alt + T».

Инструкции для Терминала — это заранее созданный перечень символов, после набора и подтверждения которых ПК выполнит заранее заданную команду. При этом могут быть учтены и дополнительные параметры.
Как правило, команда (инструкция) состоит из трёх частей:
- Название приложения. Это имя исполняемого файла, который уже записан в систему в виде переменной.
- Ключ. Ключи используются для более точных указаний. Они позволяют выполнить конкретное действие или алгоритм.
- Значение. Это некоторая переменная, параметр для ключа.
Именно так формируются инструкции для компьютера под Linux . Основные команды Ubuntu служат для работы с файлами и директориями, запуска программ и администрирования системы, а также для многого другого. Поговорим о них подробнее.

Работа с файлами и директориями
Если нужно внести изменения в дату и время создания, поможет такая команда:
rm имя_файла
Форсированное удаление файла:
Создать копию файла в другом файле:
Показать содержимое файла:
Так можно вывести 10 строк файла с начала…:
…а так — с конца:
rsync -rogpav -e ssh –delete /home ip_address:/tmp

А вот так можно создать копию локального диска в файле на удалённом компьютере (пример синтаксиса):
Так можно выполнить поиск в папке всех файлов с расширением «.txt» и скопировать их в директорию под другим адресом:
find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents
Управление пользователями и группами
Теперь поговорим об инструкциях, которые помогают управлять правами пользователей. Без этих инструкций основные команды Ubuntu были бы неполными. Как правило, они нужны для смены пароля, создания и удаления групп и отдельных лиц, использующих ОС.
Создать новую группу с заданным именем:
Удалить группу с заданным именем:
Сменить имя группы:
groupmod -n new_group_name old_group_name
Создать нового пользователя:

Стереть данные пользователя, включая его личную директорию:
Установить новые атрибуты для пользователя:
usermod -c «User FTP» -g system -d /ftp/user1 -s /bin/nologin user1
Установить новый пароль текущей учётной записи:
Редактировать пароль указанного пользователя. Применяется только с правами root:
Другие полезные команды
В операционной системе Ubuntu команда перезагрузки через Терминал может быть применена, даже если графический интерфейс не работает. Вот она:

А также могут быть использованы другие команды:
Чтобы выключить ПК, вы можете использовать такие инструкции:
sudo poweroff
sudo telinit 0
sudo halt
sudo shutdown -h now
Завершить текущую сессию:
В завершение
Нами была рассмотрена команда выключения Ubuntu и различные синтаксические конструкции, способы запуска операций с пакетами и приёмы работы с архивами… Надеемся, все инструменты, описанные здесь, серьёзно помогут вам в получении яркого и полезного пользовательского опыта.
Введение в терминал
Среди всех элементов системы Linux самым важным, пожалуй, является командная строка (bash —B ourne A gain Sh ell) или Терминал :
Начинающим пользователям кажется, что они ни когда не прибегнут к помощи командной строки, а некоторые её просто боятся. Однако чем больший опыт они приобретают, тем чаще обращаются к терминалу.
С помощью командной строки можно выполнять действия, которые были бы не мыслимы при работе с графическим пользовательским интерфейсом. Оказывается, что многие действия гораздо быстрее и эффективнее выполнять, пользуясь командной строкой.
Командная строка используется во всех OS : Windows, MacOS X и Linux .
Многие начинающие пользователи могут возразить: «Так ведь в Windows мы не пользуемся командной строкой» . И будут не правы , т.к. все действия по установке/удалению программ или другие системные изменения незримо протекают в терминале, не говоря уже о системных администраторах, которые очень часто прибегают к услугам командной строки.
Изначально окно терминала было отображено в первых мониторах компьютеров, ещё до того, как появились графические программы (GUI) и пока в обозримом будущем не видно чтобы его могло заменить что-то другое.
Терминальные команды
В системе Linux используются тысячи команд, которые совсем не обязательно знать простому пользователю, но иметь общее представление и знать некоторые, часто используемые, просто необходимо, т.к. волей — неволей вы с ними столкнётесь при настройке системы или установке нужной программы, отсутствующей в Центре приложений и т.д.
Я использую системы Ubuntu/Linux Mint и на их основе будут задействованы примеры, но думаю, что кроме команды sudo , остальное применительно и к другим системам Linux .
В Ubuntu/Linux Mint окно терминала открывается нажатием клавиш Ctrl+Alt+T .
Многие пользователи, наверное, выполняли не раз такие команды в терминале:
sudo apt-get update
sudo apt-get upgrade
Давайте разберём их более детально, чтобы понять что они собой представляют.
Прежде всего хотелось бы заметить, что все команды написаны на английском языке и не просто «от фонаря», а в каждой заложен определённый смысл для её применения. И то что командная строка Linux очень чувствительна к регистру. Иными словами, данные команды написаны в нижнем регистре (строчными буквами), но если вы введёте идентичную команду, но в верхнем регистре (прописными буквами), то выполнить её не получится. Это нужно запомнить.
Команда sudo , это по сути аббривеатура, состоящая из следующих слов: s uper u ser do , что в переводе с английского буквально означает следующее: s uper u ser — суперпользователь (администратор), do — делает . Т.е. когда данная команда присутствует в общей команде, то командной строке даётся понять, что выполнять её может суперпользователь (администратор), тот пользователь, который при установке системы был зарегистрирован и ввёл свой пароль:

Команда apt-get , которая следует после sudo ипробела, состоит из двух слов через чёрточку, которая объединяет эти два слова в одну команду и буквально означает в переводе: склонен-выполнить .
Команда update , в переводе — обновление .
Итак sudo apt-get update в преводе буквально — суперпользователь склонен-выполнить обновление .
После ввода данной команды и нажатия клавиши Enter , терминал запрашивает пароль. После ввода пароля и вновь нажатия Enter , начнётся процесс обновления списка пакетов.
Примечание. У терминала есть особенности после ввода команды с sudo , а именно когда вы вводите пароль, то он не отображается ни буквами, ни символами, поэтому нужно всегда обращать внимание на раскладку клавиатуры, в которой вы вводите пароль и другая, это после выполнения первой команды с присутствием sudo , последующие команды (даже если в них есть sudo ), больше не требует ввода пароля в течении определённого времени (сохраняет открытой sudo-сессию) в этом же окне терминала , т.е подразумевая, что терминалом продолжает пользоваться суперпользователь (администратор).
Команда sudo apt-get upgrade очень похожа на предыдущую команду, где upgrade — модернизировать, усовершенствовать (систему). Данная команда, как правило выполняется после команды обновления. После того как команда выполнена, она выдаёт в терминале возможные пакеты для установки, т.е. модернизации, усовершенствования системы. Пользователю остаётся согласиться или нет с установкой данных пакетов.
Установка, удаление программ
sudo apt-get install chromium-browser
sudo apt-get remove chromium-browser
Как видно команды очень похожи между собой, за исключением одного слова выделенного красным. В первой команде install — установить chromium-browser , а во второй remove — удалить chromium-browser
Таким образом устанавливаются и удаляются приложения (программы) и др. файлы в системе.
Если вы нашли на одном из сайтов похожую команду на установку программы и установили её, но программа вам не подошла и вы хотите удалить, достаточно в команде на установку изменить install на remove и выполнить в терминале, как программа удалится.
Установка программ из стороннего репозитория
Теперь рассмотрим команды на установку и удаление программ с добавлением стороннего репозитория (пример):
sudo add -apt-repository ppa:upubuntu-com/gtk+3.6
sudo apt-get update
sudo apt-get install flatstudiodark-gtk
Прежде всего давайте выясним зачем подключать сторонний репозиторий? Репозиторий, это хранилище файлов на сайте разработчика. В данном случае, третьей командой мы хотим установить тему оформления, но её нет в Центре приложений , а значит нам нужно прежде подключить хранилище (репозиторий) с темой (первая команда), где add — добавить , ppa:upubuntu-com/gtk+3.6 — название репозитория, затем второй командой обновить список пакетов и уже третьей — установить сам пакет с темой.
Если данное приложение (в конкретном случае тема оформления) вам не понравилось и вы решили удалить его, то вы можете изменить команды на установку, чтобы они выглядели командами на удаление:
sudo apt-get remove flatstudiodark-gtk
sudo add-apt-repository —remove ppa:upubuntu-com/gtk+3.6
sudo apt-get update
Прежде нужно выполнить команду на удаление пакета с программой, где меняем install на remove , затем удаляем хранилище (репозиторий), добавив в команду —remove — удалить , т.к. хранилище теперь без надобности и обновляем систему последней командой.
Запуск графических программ с правами администратора.
Допустим, нам необходимо запустить файловый менеджер Nautilus с правами администратора, чтобы через графический интерфейс как-то изменить содержимое системных папок. Для этого необходимо ввести следующую команду:
gksudo nautilus
gksu nautilus
Где ввод пароля, в данном случае, будет происходить в графическом окне, а не в терминале.
Но вы можете указать дополнительно необходимый путь в команде, непосредственно к нужной папке:
gksu nautilus /usr/share/themes
В данной команде косой чертой (/) — слешем указывается терминалу, что нужно перейти в следующую за ним папку.
Запуск программ из терминала командой
В системе Linux вы можете запустить любую программу из терминала установленную в вашей системе, главное знать её правильное название. Многие программы состоят из одного слова-названия, а некоторые из двух или трёх слов. Например: Nautilus; Ubuntu Tweak; Gnome Tweak Tool . Если мы введём в терминал название команд так, как они написаны, то не сможем открыть ни одно из приложений. Ещё раз повторюсь, что терминал очень чувствителен к регистру, т.е. команду нужно вводить только в нижнем регистре (строчными буквами) и обязательно монолитной, через чёрточку, если она состоит из нескольких слов(примеры):
ubuntu-tweak
gnome-tweak-tool
Таким образом вы сможете открыть приложения, но если вы закроете терминал, то закроется и программа вместе с ним. Чтобы этого не происходило, необходимо дописать команду exit на закрытие терминала после открытия программы через пробелы и разделительный знак & :
nautilus & exit
ubuntu-tweak & exit
gnome-tweak-tool & exit
Через разделительный знак & можно включать несколько команд на выполнение (открытие), объединив их в одну команду:
nautilus & ubuntu-tweak & gnome-tweak-tool & exit
Создание каталогов (папок) и размещение в них файлов
Многие из вас устанавливали флажки для отображения в трее раскладки клавиатуры посредством терминальных команд:
Теперь давайте детально разберём каждую из приведённых команд.
Командаmkdir
/.icons — создаёт скрытый каталог (папку) в Домашней папке под названием icons .
mk — сокращённо от make — сделать, создать . dir — сокращённо directoria — каталог, папка .
— знак тильда всегда обозначает Домашнюю папку пользователя. / — обозначение папки. .icons — обозначает название создаваемой папки, а точка впереди всегда указывает на то, что данная папка скрытая.
Команда mkdir
/.icons/flags также создаёт папку под названием /flags в скрытойпапке /.icons и Домашней папке —
/.icons/flags делает переход в папку /flags , которая в свою очередь находится в Домашней папке —
cd — c — обозначение перехода, d — directoria — каталог (папка) .
Команда wget http://suservice.net/icons/flags2/
wget — сокращённо от w — web — сеть , get — получать , т.е получить файлы из сети и ставится всегда перед URL адресом через пробел. В данном случае перед http://suservice.net/icons/flags2/
Убить процесс командой
Прежде всего давайте выясним, что такое процесс?
При запуске системы запускается множество процессов, о которых пользователь зачастую даже и не подозревает. Но многие процессы мы видим на экране монитора, сами их запускаем и управляем ими, это открытые программы. Лучше всего нам об этом раскажет программа top , запущенная в терминале:
Иногда так случается, что какой-то процесс в системе дал сбой или попросту «зависла» какая-то программа и кнопка закрытия не реагирует, либо кнонопка закрытия отсутствует вовсе (виджет conky). На этот случай в Linux есть очень хорошая команда — «убийца»:
p — сокращённо от process (процесс), kill — убивать .
Но сама по себе эта команда не работает, ей нужен аргумент, т.е. либо номер процесса, который отображён в колонке PID (см. снимок терминала) после выполнения команды top , либо название процесса в колонке COMMAND . Не переживайте, команда не убьёт саму программу, она только остановит процесс выполнения. Если это графическая программа, то она просто закроется. Для эксперимента я выбрал самый безобидный процесс, который при закрытии ни чему не повредит. Итак выполните следующую команду:
pkill gnome-terminal
Окно терминала исчезло, т.е. был «убит» (остановлен) процесс, отображающий программу на экране монитора.
xkill — убивает видимый процесс и работает сама по себе, т.е. после выполнения команды кликните образовавшимся крестиком вместо курсора на любой видимой программе (окне), как оно закроется.
Мною были подобраны команды для разбора, с которыми обычно сталкивается простой пользователь при настройке системы.
Если кто-то хочет глубже узнать о терминальных командах, я вам рекомендую скачать бесплатный справочник Скотта Граннемана «Linux. Карманный справочник» . Просто наберите в Google Скотт Граннеман и дайте поиск.
Как заработать реальные деньги с помощью специальных программ на компьютере?
Лучшие почтовики для заработка
Как проверить звонки и СМС-сообщения мужа?
Talklog—программа, позволяющая следить за женой через телефон
Как открыть консоль в Linux?
Все они доступны с помощью комбинации клавиш Ctrl + Alt + FN # Console. Например, доступ к Консоли №3 можно получить, нажав Ctrl + Alt + F3. Примечание. Консоль № 7 обычно выделяется графической среде (Xorg и т. Д.). Если вы используете среду рабочего стола, вы можете вместо этого использовать эмулятор терминала.
Как открыть консоль в Терминале?
Как открыть терминал:
- Откройте Dash (Супер ключ) или Приложения и введите терминал.
- Используйте сочетание клавиш, нажав Ctrl + Alt + T.
- Для более старых версий или версий Ubuntu: (Подробнее) Приложения → Стандартные → Терминал.
Что такое режим консоли в Linux?
Консоль Linux позволяет ядру и другим процессам выводить текстовые сообщения пользователю и получать текстовый ввод от пользователя. В Linux в качестве системной консоли можно использовать несколько устройств: виртуальный терминал, последовательный порт, последовательный порт USB, VGA в текстовом режиме, буфер кадра.
Как открыть консоль в Ubuntu?
Откройте Dash, щелкнув значок Ubuntu в верхнем левом углу, введите «терминал» и выберите приложение «Терминал» из появившихся результатов. Нажмите сочетание клавиш Ctrl — Alt + T.
Что такое команда оболочки?
Оболочка — это компьютерная программа, которая представляет интерфейс командной строки, который позволяет вам управлять вашим компьютером с помощью команд, вводимых с клавиатуры, вместо управления графическими пользовательскими интерфейсами (GUI) с помощью комбинации мыши / клавиатуры. … Оболочка делает вашу работу менее подверженной ошибкам.
CMD — это терминал?
Итак, cmd.exe не является эмулятором терминала, потому что это приложение Windows, работающее на машине Windows. … Cmd.exe — это консольная программа, а их очень много. Например, telnet и python — это консольные программы. Это означает, что у них есть окно консоли, это монохромный прямоугольник, который вы видите.
В чем разница между терминалом и консолью?
Консоль обычно является основным интерфейсом для управления компьютером, например, когда он все еще загружается. Терминал — это сеанс, который может принимать и отправлять ввод и вывод для программ командной строки. Консоль — частный случай из них. Оболочка — это программа, которая используется для управления программами и их запуска.
Что такое консольный вход?
Консоль — это устройство вывода текста для сообщений системного администратора. … Обычно можно войти в систему с консоли. Сеанс входа в систему с консоли рассматривается многими частями операционной системы как более надежный, чем сеанс входа в систему из других источников.
Как работает Linux-терминал?
Терминал находится под управлением компьютера. Компьютер не только отправляет текст терминала для отображения на экране, но также отправляет команды терминала, которые выполняются. Это управляющие коды (байты) и escape-последовательности.
Кем я командую в Linux?
Команда whoami используется как в операционной системе Unix, так и в операционной системе Windows. По сути, это конкатенация строк «who», «am», «i» как whoami. Он отображает имя текущего пользователя при вызове этой команды. Это похоже на запуск команды id с параметрами -un.
Как мне изучить команды Linux?
- ls — используйте команду «ls», чтобы узнать, какие файлы находятся в каталоге, в котором вы находитесь.…
- cd — Используйте команду «cd», чтобы перейти в каталог. …
- mkdir & rmdir — используйте команду mkdir, когда вам нужно создать папку или каталог. …
- rm — используйте команду rm для удаления файлов и каталогов.
Для чего используется Ubuntu?
Ubuntu включает тысячи программных продуктов, начиная с версии ядра Linux 5.4 и GNOME 3.28 и охватывая все стандартные настольные приложения от текстовых редакторов и приложений для работы с электронными таблицами до приложений для доступа в Интернет, программного обеспечения веб-сервера, программного обеспечения электронной почты, языков программирования и инструментов, а также…
Как открыть командную оболочку?
Windows: в Windows 10 откройте меню «Пуск» и перейдите в папку ярлыков под названием «Система Windows». При нажатии раскрывающегося меню должен появиться ярлык для открытия приложения командной строки. Щелкните правой кнопкой мыши ярлык, нажмите «Еще» и нажмите «Запуск от имени администратора».
Как запустить сценарий оболочки?
Шаги по написанию и выполнению скрипта
- Откройте терминал. Перейдите в каталог, в котором вы хотите создать свой скрипт.
- Создайте файл с расширением. sh расширение.
- Запишите сценарий в файл с помощью редактора.
- Сделайте скрипт исполняемым с помощью команды chmod + x .
- Запустите скрипт с помощью ./ .
Терминал — это оболочка?
Терминал — это программа, запускающая оболочку, в прошлом это было физическое устройство (раньше терминалы были мониторами с клавиатурой, они были телетайпами), а затем ее концепция была перенесена в программное обеспечение, такое как Gnome-Terminal.
Как открыть консоль в астра линукс
Linux командная строка — что это такое, как вызвать
Эффективная работа в операционных системах Linux невозможна без использования командной строки. Если в виндовс практически все действия и настройки можно выполнить через интерфейс пользователя, то в некоторых дистрибутивах линукса интерфейса просто нет, и все взаимодействие основано на использовании консоли. Далеко не все знают, что такое терминал Linux и зачем он вообще нужен. Необходимо разобраться с этим более подробно. Материал будет интересен для тех, кто хочет перейти с виндовс на Unix, но все еще сомневается.
Что такое в Linux командная строка

Открывать терминал крайне просто
Командная строка, или консоль — это специальная программа, которая выполняет и обрабатывает команды, введенные пользователем с клавиатуры. Она способна создавать файлы и редактировать их, управлять системными ресурсами и предоставлять множество полезных для пользователя данных, назначать те или иные права доступа к файлам и папкам, а также проделывать массу других операций.
В отличие от консоли в виндовс, которая появилась там от MS DOS (виндовс изначально являлась лишь графической оболочкой этой старой операционной системы), терминал в линуксе обладает куда более мощными и серьезными возможностями. Он находится в ОС изначально. Так было и в Unix, поэтому здесь он более развит, что позволяет экономить множество времени.
Современные консоли в Unix-подобных системах могут автоматически дополнять прописываемые имена команд или файлов, выполнять поиск и повторное выполнение действий, обладают историей выполненных команд.
Обратите внимание! Преимущество командной работы по сравнению с использованием графического интерфейса проявляется при выполнении множества однотипных действий. Иногда для решения задачи нужно переходить от окна к окну и делать десятки нажатий на мышь, в то время когда пусть даже длинная команда сделает всю работу за секунду.
Как открыть терминал в линукс
Каждый дистрибутив может обладать своими особенностями и командами, не говоря уже об оболочке командной строки, а их на данный момент немало. Наиболее популярными являются bash, pdkdh, sash, tcsh и новая zsh. Как открыть Linux Terminal, рассказано на примере Ubuntu, одной из последних версий.
В первую очередь следует воспользоваться горячими сочетаниями клавиш. Особенность убунту состоит в том, что, используя любое графическое окружение, открыть командную строку можно с помощью нажатия сочетания «Ctrl + Alt + T».
Если сочетание клавиш пользователю не по душе, то его всегда можно заменить на другое. Для этого переходят в настройки и находят раздел «Устройства», где следует выбрать пункт «Клавиатура». Остается определить, какое сочетание будет задействовано при активации окна терминала.
Обратите внимание! Практически любое окружение обладает утилитой «Выполнить», которая похожа на одноименное окно виндовс. Вызывается оно так же по горячему сочетанию клавиш «Alt + F2». Далее все зависит от оболочки: для Gnome применяют команду «$ gnome-terminal», а для KDE — «$ console».
Если пользователь не знает, какая команда запускает консоль линукс в его дистрибутиве, то необходимо воспользоваться следующим способом, основанным на использовании главного меню системы. Открывается оно по нажатию клавиши «Win» («Super»). Далее остается выбрать пункт «Терминал» или начать прописывать его в поисковом окне до момента его вывода.
Еще один метод основан на переходе в папку с файлами. Для этого находят стандартный предустановленный файловый менеджер, выбирают каталог с тем или иным файлом, а затем нажимают ПКМ по свободному месту директории и выбирают «Открыть в терминале».

Поиск Linux Console
Как выйти из консоли Linux
Выйти из терминала еще проще. Любая оболочка имеет кнопки окна, которые аналогичны соответствующим клавишам в виндовс. Окно можно свернуть, развернуть на полный экран и закрыть его. Последнее действие осуществляется по нажатию на кнопку со значком крестика.
Обратите внимание! Выполнить выход можно и с помощью команды «exit», которую прописывают в самом окне терминала и выполняют ее, нажав на кнопку «Ввод» («Enter»).
Использование горячих клавиш в терминале Linux
Список горячих клавиш зависит от конкретного дистрибутива и оболочки консоли, но в общем случае он выглядит следующим образом:
- «Ctrl + Alt + T» — запуск терминала;
- «Ctrl + S» — остановка вывода в оболочке bash;
- «Ctrl + Q» — возврат вывода данных;
- «Ctrl + L» — очистка экрана ото всех записей;
- «Ctrl + W» — вырезание слова перед курсором;
- «Ctrl + K» — вырезание строки после курсора;
- «Ctrl + U» — вырезание строки перед курсором.
Важно! Существует еще множество других действий, выполняемых с помощью горячих клавиш. Просмотреть их все можно в мануалах к дистрибутиву и оболочке командной строки.
Дополнительные возможности командной строки
Существует ряд дополнительных возможностей, позволяющих облегчить работу с консольными программами Linux. Их основной список представлен ниже:
- автозавершение команд с использованием клавиши «Tab». Нажатие на клавишу «Tab» позволяет показать список возможных вариантов завершения еще не написанной команды;
- как перейти в последнюю рабочую директорию. Если работа происходит между двумя папками, расположенными в разных местах жесткого диска, то для возврата в предыдущую директорию используют команду «cd -»;
- как вернуться в домашнюю директорию. Практически аналогичная команда, которая выглядит так «cd

Эмулятор терминала Linux
Какие существуют руководства для управления командной строкой
Всех полезных функций консоли этой операционной системы не счесть. Необходимо самостоятельно изучить их по материалам из руководств пользователей или книг от опытных людей. В качестве примера книга У. Шоттса «Командная строка Linux: полное руководство». Она лучше всех остальных знакомит читателя с философией линукса и основами работы в консоли.
Важно! Также следует обратить внимание на материал Е. Немета «Руководство системного администратора», которая не только познакомит с линукс, но и поможет освоиться в нелегком деле системного администрирования.

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

Консоль — основной инструмент дистрибутивов, основанных на ядре Linux. Через него пользователи выполняют множество полезных команд, которые позволяют взаимодействовать с операционной системой. Большинство юзеров придерживается одной методики запуска «Терминала», хотя на самом деле вариаций гораздо больше. Мы предлагаем ознакомиться со всеми доступными вариантами осуществления поставленной задачи, чтобы вы смогли найти оптимальный для себя или хотя бы узнали о наличии альтернативных способов, которые могут когда-то пригодиться.
Запускаем «Терминал» в Linux
Абсолютно каждый метод запуска «Терминала» в любом из дистрибутивов Linux не занимает много времени, а чаще всего выполняется буквально в несколько кликов. Сегодня в качестве примера мы рассмотрим Ubuntu. Если вы обладаете другой ОС, не беспокойтесь, поскольку почти нигде нет каких-либо различий, а если они и имеются, то самые минимальные, и о них мы обязательно расскажем в методах.
Способ 1: Стандартная комбинация клавиш
В Linux, как и во всех операционных системах, имеется ряд горячих клавиш, отвечающих за быстрый вызов определенных опций. Сюда входит и запуск установленной по умолчанию консоли. Однако некоторые пользователи могут столкнуться с тем, что стандартные комбинации по какой-то причине не работают или сбились. Тогда мы сначала советуем произвести следующие действия:
- Откройте главное меню на панели задач и перейдите в раздел «Настройки».

- Здесь вас интересует категория «Клавиатура», которая находится в списке на левой панели.

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

Теперь вы знаете о том, как с помощью всего лишь одной комбинации запустить консоль. При этом будьте внимательны во время переназначения сочетаний, ведь некоторые сочетания уже заняты, о чем вы будете уведомлены. Таким способом вы можете открыть неограниченное количество новых окон классического «Терминала».
Способ 2: Утилита «Выполнить»
Способность применить этот метод зависит от установленного окружения. Практически во всех привычных графических оболочках он функционирует корректно, поэтому его обязательно следует попробовать. Принцип заключается в вызове утилиты «Выполнить», что производится зажатием комбинации Alt + F2.

В появившейся строке достаточно будет вписать gnome-terminal или konsole, что зависит от типа используемой оболочки.


После этого вы увидите, как сразу же отобразится новое окно «Терминала».

Недостаток этого метода заключается в том, что вам придется запоминать специальную команду или каждый раз копировать ее для вызова. Однако, как видите, ничего сложного в этом нет, поэтому уже буквально через пару вводов вы легко запомните необходимую фразу.
Способ 3: Контекстное меню директорий
Большинство графических оболочек имеют контекстное меню, которое вызывается путем нажатия ПКМ по свободному месту в любой директории. Одним из пунктов называется «Открыть в терминале» или «Открыть терминал». Именно это мы и рекомендуем использовать в качестве отдельного способа запуска консоли. Особенно актуально это в тех случаях, когда вы хотите запустить новую консоль в необходимом расположении.

Способ 4: Главное меню ОС
Строение практически всех окружений гарантирует наличие главного меню приложений, откуда можно запускать установленные и стандартные программы, включая консоль. Откройте главное меню удобным для вас образом и отыщите там «Терминал». Если просто найти его не получается, воспользуйтесь строкой поиска. Щелкните ЛКМ для запуска, и теперь вы можете смело приступать к вписыванию команд. Если потребуется создать новую сессию, вернитесь в главное меню и проделайте те же самые действия.

Способ 5: Виртуальная консоль
Этот вариант подойдет далеко не всем юзерам, поскольку он используется исключительно для перехода между виртуальными системными консолями. Дело в том, что при запуске операционной системы создается целых семь таких командных строк, последняя из них реализует графическую оболочку, поэтому пользователь видит только ее. При необходимости можно переключаться к другим терминалам, используя горячие клавиши Ctrl + Alt + F1/Ctrl + Alt + F6.

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

Вы будете уведомлены о том, что авторизация в Ubuntu произведена успешно. Отобразится несколько важных строк, где имеется общее описание и ссылки на официальную документацию и страницы поддержи. Теперь можете использовать команды для управления консолью. По завершении введите exit, чтобы выйти, а затем переключитесь на графическую оболочку через Ctrl + Alt + F7 .
Уточним, что существует огромное количество вспомогательных команд, а также определенных особенностей, которые следует знать о виртуальных консолях. Ознакомиться с этой всей информацией мы рекомендуем, прочитав официальную документацию Ubuntu, воспользовавшись указанной ниже ссылкой.
Способ 6: Строка «Избранное»
Пользователи Windows предпочитают закреплять важные приложения на панели задач, чтобы в необходимый момент быстро их запускать. В графических оболочках Linux эта функция тоже реализована, но сама строка называется «Избранное». Если «Терминал» изначально там отсутствует, предлагаем добавить его следующим образом:
- Откройте главное меню и отыщите там консоль. Кликните по ней правой кнопкой мыши.

- В появившемся контекстном меню используйте строку «Добавить в избранное».

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

Это были все возможные методы запуска стандартной консоли в Linux. Ознакомьтесь с инструкциями, чтобы подобрать оптимальный для себя вариант. Учтите, что если вы задействуете пользовательский терминал, установленный отдельно, метод открытия может быть другим. Обязательно читайте эту информацию в официальной документации.
Основы пользовательской работы в ОССН Astra Linux
После включения питания компьютера запускается процедура самотестирования (Power On Self Test, POST), проверяющая основные компоненты системы: видеокарту, оперативную память, жесткие диски и т. д. Затем начинается загрузка операционной системы. Компьютер ищет на жестком диске (и других носителях) программу-загрузчик операционной системы. Если такая программа найдена, то ей передается управление, если же такая программа не найдена ни на одном из носителей, выдается сообщение с просьбой вставить загрузочный диск.
Задача загрузчика — предоставить пользователю возможность выбрать нужную операционную систему (ведь кроме Linux на компьютере может стоять и другая операционная система) и передать ей управление. В случае с Linux загрузчик загружает ядро операционной системы и передает управление ему. Все последующие действия по загрузке системы (монтирование корневой файловой системы, запуск программы инициализации) выполняет ядро Linux.
В настоящее время популярны два загрузчика Linux: LILO и GRUB. GRUB является более современным и используется по умолчанию в большинстве дистрибутивов. Так что после установки Linux начальным загрузчиком будет именно GRUB (если вы самостоятельно не выберете другой загрузчик). Некоторые дистрибутивы имеют собственные загрузчики — например, ASPLinux использует загрузчик ASPLoader.
Кроме обычного GRUB существует и его более современная версия — GRUB-PC (GRUB2). Особенности этой версии: возможность загружать Linux с раздела ext4 и другой, более гибкий, файл конфигурации.
При включении питания компьютера с установленной на нем ОССН Astra Linux после этапа процедуры POST системы BIOS/EFI отображается экран начального загрузчика GRUB2.
Рисунок . Экран загрузчика GNU GRUB OCCH Astra Linux.
По умолчанию ОССН может быть загружена в двух основных режимах, каждый из которых может быть осуществлён в двух вариантах (рис. 1):
1. Режим РаХ: загрузка ядра ОССН с включённым модулем РаХ, обеспечивающим возможность настройки прав доступа приложений к страницам памяти.
2. Режим Generic: загрузка ядра ОССН без модуля РаХ.
В компьютерной безопасности PaX (произн. «Пакс») — это патч к ядру Linux, который предоставляет возможность настроить минимальные права доступа приложений к страницам памяти. Таким образом обеспечивается достаточно тонкая настройка, с помощью которой программам разрешается выполнять только те действия, которые необходимы, исходя из предоставляемой ими функциональности, но не более того. PaX был впервые выпущен в 2000 году.

PaX помечает сегмент данных программ в памяти как недоступный для исполнения (так как он по определению не может содержать программных директив, которые необходимо выполнить), а сегмент кода — как не перезаписываемый, и, в придачу, при каждом запросе выделяет память программе из произвольных мест (рандомизация страниц памяти). Эта методика эффективна против применения различных эксплойтов, использующих, например, уязвимость, основанную на переполнении буфера памяти. Такая защита изначально полностью предотвращает прямое выполнение кода из памяти, и одновременно, с прикладной точки зрения, делает, так называемые, return-to-libc (ret2libc) атаки сложными для выполнения (они становятся выполняемыми скорее наудачу, без заранее предсказуемого результата). Однако, вместе с тем, PaX не предотвращает ошибки, приводящие к возможности переопределения переменных и значений указателей.
PaX был написан одноимённой командой разработчиков. Основатель PaX в настоящее время предпочитает оставаться анонимным по неизвестным общественности причинам.
Логотип PaX: пингвин Такс (символ Linux) имеющий демонический вид.
В режиме РаХ и Generic возможно выбрать вариант загрузки Recovery Mode (режим восстановления), в котором выполняется сценарий загрузки с проверкой ошибок доступа к корневой файловой системе или остановки процесса загрузки из-за ошибок в каком-либо сервисе.
При этом режим Recovery Mode предоставляет администратору ОССН (в данном случае пользователь от имени учётной записи root) интерфейс CLI для запуска утилит диагностики и восстановления (рис. 2).

Рисунок 2. CLI-интерфейс OCCH Recovery Mode.
Завершение функционирования в режиме Recovery Mode выполняется командами reboot (перезагрузка) или halt (останов).
После окончания процесса загрузки в режимах РаХ или Generic пользователю предоставляется возможность работы с ОССН в графическом режиме (интерфейс GUI) или в режиме командной строки (интерфейс CLI).
В соответствии со сценарием инициализации системы Debian GNU /Linux, на базе которой разработан дистрибутив ОССН, пользователю по умолчанию предоставляется возможность работы:
- с интерфейсом CLI в шести терминалах (консоли ttyl-tty6);
- с интерфейсом GUI в седьмом терминале (консоль tty7).
Переключение между указанными терминалами осуществляется комбинацией клавиш Ctrl+Alt+FN, где N — номер консоли (устройства tty), в котором пользователь будет регистрировать свою сессию. Например, для перехода в консоль tty1 нужно нажать Ctrl+Alt+F1. Первые шесть виртуальных консолей работают как терминал с приглашением ввода логина и пароля.
Выход из текстового терминала (консоли) осуществляется комбинацией Ctrl + Alt + F7. Консоль tty7 по сути также является виртуальным терминалом, который по умолчанию всегда выделен под графическую среду (Xorg, etc.). Переключение между виртуальными консолями выполняется комбинацией Alt + LeftArrow или Alt + RightArrow.
Вид терминала на примере консоли ttyl представлен на рис. 3.

Рисунок . CLI-интерфейс терминала в консоли tty1
Интерфейс командной строки (англ. Command line interface, CLI) — разновидность текстового интерфейса (CUI) между человеком и компьютером, в котором инструкции компьютеру даются в основном путём ввода с клавиатуры текстовых строк (команд), в UNIX-системах возможно применение мыши. Также известен под названием консоль.
Текстовый пользовательский интерфейс, ТПИ (англ. Text user interface, TUI; также Character User Interface, CUI) — разновидность интерфейса пользователя, использующая при вводе-выводе и представлении информации исключительно набор буквенно-цифровых символов и символов псевдографики. Характеризуется малой требовательностью к ресурсам аппаратуры ввода-вывода (в частности, памяти) и высокой скоростью отображения информации. Появился на одном из начальных этапов развития вычислительной техники, при развитии возможностей аппаратуры, нацеленной на реализацию появившегося ранее интерфейса командной строки, который, в свою очередь, является наследником использования телетайпов в качестве интерфейса вычислительной техники. Интерфейс командной строки имеет ряд преимуществ в юзабилити перед графическим интерфейсом, поэтому программы с текстовым интерфейсом создаются и используются по сей день, особенно в специфических сферах и на маломощном оборудовании.
Недостатком подобного типа интерфейса является ограниченность изобразительных средств по причине ограниченности количества символов, включённых в состав шрифта, предоставляемого аппаратурой.
В терминале консоли tty7 по умолчанию загружается GUI-интерфейс, представленный первоначально экраном графического входа в систему. Управляющие элементы этого экрана показаны на рис. 4.
Рассмотрим элементы экрана входа в систему подробнее.
Рисунок . Элементы экрана входа в систему.
1. Тип сессии
Этот элемент управления обеспечивает пользователю выбор среды пользовательской сессии ОССН. При этом пользователю предоставляется возможность переключиться между следующими средами пользовательской сессии:
- Десктоп;
- Мобильный;
- Планшетный
- Безопасный

Рисунок . Мобильный графический интерфейс Astra Linux.
Во время самостоятельной подготовки изучите особенности мобильного интерфейса. При отказе работы графической оболочки перейдите в консоль tty1 и выполните команду sudo reboot.
Безопасная сессия предназначена для работы в ОССН с интерфейсом CLI (реализуемым после запуска графического сервера X.Org утилитой fly-term) с использованием консольных команд. Часто используемые консольные команды в утилите fly-term заданы в виде выпадающего списка. Выбранная из него команда переносится в командную строку, после чего достаточно ввести её аргументы и (при необходимости) опции. Также этот список можно изменить с помощью соответствующего элемента меню «Настройка» утилиты fly-term.
Рисунок . Графический интерфейс для планшета.
Выход из безопасной сессии выполняется с помощью элемента «Выход» меню «Файл» утилиты fly-term или командой exit в командной строке. При этом в случае, если открыто две или более вкладки виртуальных терминалов, потребуется подтверждение завершения сессии.

Рисунок . Безопасная сессия с интерфейсом CLI.
2. Меню
Меню пользовательского входа в ОССН позволяет реализовать следующие возможности.
Консольный вход (комбинация клавиш Alt+N) — позволяет работать с интерфейсом CLI в терминале консоли ttyl. При выборе этого пункта меню пользователю предварительно отображается окно с сообщением о том, что переключение в консольный режим приведёт к невозможности работы в графическом режиме, который станет возможным снова через 10 секунд после окончания последнего успешного консольного входа или через 40 секунд, если ни один консольный вход не будет осуществлён.
Удаленный вход (комбинация клавиш Alt+R) — позволяет пользователю зарегистрироваться в ОССН другого компьютера (удалённой ОССН) с использованием процесса rlogin. Выбор этого пункта меню отображает окно с перечнем доступных для удалённой регистрации ОССН. При этом имеется возможность добавить новую удалённую ОССН, введя сетевой путь к ней. Также имеется возможность (кнопка «Меню») вызвать меню пользовательского входа для локальной GUI или локальной CLI регистрации в ней.
• Перезапуск X сервера (комбинация клавиш Alt+E) — позволяет передать текущему сеансу X.Org сервера сигнал принудительного перезапуска.
• Вызов виртуальной клавиатуры (комбинация клавиш Alt+K) — позволяет вывести на экран регистрации виртуальную клавиатуру. Применяется в случае невозможности использования аппаратной клавиатуры на традиционных рабочих станциях или же при установке ОССН на устройствах с сенсорным экраном.
• Сменить пользователя (комбинация клавиш Alt+I) — позволяет отобразить список открытых пользовательских сессий с указанием номеров виртуальных терминалов, на которых они выполняются и типов пользовательских сессий (fly, default (по умолчанию), twm или console).
• Выключение (комбинация клавиш Alt+S) — выводит на экран окно завершения работы с ОССН. Используя это окно, пользователь может произвести выключение или перезагрузку ОССН без выполнения входа какого-либо пользователя, а также спланировать их по истечении заданного интервала времени (режим планирования доступен только администратору системы и требует ввода его пароля).
2. Администрирование параметров графического входа в систему
Рассмотренные в предыдущем параграфе настройки графического входа в систему заданы по умолчанию. Однако администратор ОССН имеет возможность изменить их с использованием графической утилиты fly-admin-dm. Её запуск можно осуществить двумя способами:
• с использованием элемента «Вход в систему» меню «Настройки» главного меню защищённой графической подсистемы Fly (рис. 8);

Рисунок . Элемент «Вход в систему» меню «Настройки.
• через ввод команды fly-admin-dm в командной строке утилиты fly-term .
Первые три меню fly-admin-dm («Основное», «Диалог» и «Тема») предназначены для оформления окна графического входа в систему с использованием тем оформления. Вкладки «Выключение», «Пользователи» и «Дополнительно» предназначены для конфигурирования работы окна графического входа в систему.

Рисунок . Интерфейс графической утилиты fly-admin-dm.
3. Основные приёмы работы с защищённой графической подсистемой Fly.
В графической сессии по умолчанию используется защищённая графическая подсистема Fly, при функционировании которой используются:
• сервер X. Org — реализации сервера X Window System с открытым исходным кодом;
• рабочий стол Fly, который, в свою очередь, состоит из менеджера окон Fly Window Manager (утилита flу-wm) и набора fly-утилит для пользователей и администраторов с графическим интерфейсом GUI.
Менеджер окон Fly Window Manager организует работу графической оконной среды ОССН и загружает рабочий стол Fly и его окружение (заданный набор fly-утилит). Интегрированный в среду рабочего стола менеджер рабочих столов обеспечивает поддержку одновременной работы с несколькими рабочими столами (по умолчанию, с четырьмя).
Рабочий стол Fly загружается после регистрации пользователя в графической сессии. Он содержит пространство рабочего стола с фоновым изображением, панель задач и элементы интерфейса пользователя (рис. 10).
Главное пользовательское меню (вызывается при нажатии на экране кнопки «Пуск») оптимизировано для работы как на традиционных компьютерах, так и на устройствах (планшетах) с сенсорным экраном (используя настройки рабочего стола Fly, его можно преобразовать к классическому виду), и состоит из следующих элементов меню (рис. 11):
• доступные программы и утилиты (левая верхняя область);
• пользовательские каталоги (правая верхняя область);
• режимы работы (левая нижняя область);
• управление файлами (правая нижняя область);
• пользовательские программы и настройки (центральная область).
Рисунок 0. Элементы интерфейса рабочего стола Fly.
Рисунок 1. Элементы главного пользовательского меню (кнопка «Пуск»).
Каждый пользователь ОССН имеет возможность индивидуально настроить рабочий стол Fly (внешний вид, расположение элементов, особенности работы с клавиатурой и мышью).
Часть таких настроек жёстко определяется администратором и недоступна непривилегированному пользователю. Доступные пользователю настройки могут быть заданы с использованием утилиты «Панель управления» (fly-admin-center), вызываемой последовательно из основного меню «Пуск» — «Настройка» — «Панель управления» — «Рабочий стол». Эта утилита позволяет централизовано использовать некоторые административные и пользовательские утилиты рабочего стола Fly, которые для удобства разделены на несколько категорий. Например, категория «Рабочий стол» объединяет fly-утилиты, большинство из которых может быть применено пользователем для настройки своего индивидуального рабочего стола.
Настройки рабочего стола Fly также могут быть сконфигурированы в режиме, оптимизированном для работы на устройствах с сенсорными экранами. Общим названием таких настроек является режим «Планшет». Для перехода в него используется утилита «Переключатель планшетного режима Fly» (fly-admin-tablet-switch), находящаяся в элементе Настройки» меню «Пуск». Основные визуальные отличия режима «Планшет»:
• приложения запускаются в полноэкранном режиме;
• окна приложений не имеют стандартных для режима «Настольный компьютер» элементов интерфейса (свернуть, развернуть, закрыть окно);
• на панели задач добавлены новые кнопки (например, закрытия активного окна, поворота изображения на 90 градусов, вызова экранной клавиатуры).
Дополнительной настройкой является увеличение иконок приложений, файлов и каталогов, а также областей прокрутки открытого окна. Вид рабочего стола в режиме «Планшет» представлен на рис. 6.
Важной особенностью защищённой графической подсистемы Fly является интегрированная поддержка средств защиты информации (СЗИ) ОССН. По умолчанию пользователю доступны её следующие функции:
• изменение пароля своей учётной записи с помощью консольной команды passwd, утилиты flу-passwd или графической утилиты «Центр обеспечения безопасности»;
• изменение владельца или группы, владеющей объектом файловой системы, созданного пользователем, с помощью консольных команд chown и chgrp, файловых менеджеров Midnight Commander и fly-fm;
• изменение прав доступа в рамках модели minimal ACL (дискреционное управление доступом) к сущности файловой системы, созданной пользователем, с помощью консольной команды chmod, файловых менеджеров Midnight Commander и fly-fm;
• установка уровней доступа (включая неиерархические категории) и целостности при создании новой пользовательской сессии (субъект-сессии);
• получение для текущей пользовательской сессии информации о её уровнях доступа и целостности с помощью консольной команды pdp-id или визуально в области уведомлений на панели задач.
Таким образом, пользователю, для которого администратором ОССН установлены несколько допустимых мандатных уровней доступа или целостности, на экране графического входа в систему (рис. 12) отобразится меню установки их конкретных значений. В дальнейшем выбранные уровни отображаются в виде индикатора в области уведомлений на панели задач.
Для большей наглядности при обработке информации конкретными оконными приложениями (субъект-сессиями) с GUI-интерфейсом значение их уровня доступа дублируется цветовым кодированием:
- «Уровень 0» — голубой;
- «Уровень 1» — желтый;
- «Уровень 2» — оранжевый;
- «Уровень 3» — темно-розовый;
- «Уровень 4» — красный;
- «Уровень 5» — коричневый;
- «Уровень 6» — пурпурный;
- «Уровень 7» — темно-фиолетовый.

Рисунок . Меню установки уровней доступа и целостности пользовательской.
Переключимся с основной темы на рассмотрение моделей управления доступа.
Базовые модели управления доступом.
Общим подходом для всех моделей управления доступом является разделение множества сущностей, составляющих систему, на множества объектов и субъектов.
При этом определения понятий «объект» и «субъект» могут существенно различаться. Мы будем подразумевать, что объекты являются некоторыми контейнерами с информацией, а субъекты – пользователи, которые выполняют различные операции над этими объектами.
Безопасность обработки информации обеспечивается путем решения задачи управления доступом субъектов к объектам в соответствии с заданным набором правил и ограничений, которые образуют политику безопасности.
Можно выделить три основные модели управления доступом к объектам: мандатную, дискреционную и ролевую.
1. Мандатная модель
Классической мандатной моделью считается модель Белла-ЛаПадулы . Она базируется на правилах секретного документооборота, использующегося в правительственных учреждениях. В этой модели каждому объекту и субъекту (пользователю) системы назначается свой уровень допуска. Все возможные уровни допуска системы четко определены и упорядочены по возрастанию секретности. Действуют два основных правила:
1. Пользователь может читать только объекты с уровнем допуска не выше его собственного.
2. Пользователь может изменять только те объекты, уровень допуска которых не ниже его собственного.
Цель первого правила очевидна каждому, второе может вызвать недоумение. Смысл же его в том, чтобы воспрепятствовать пользователю с высоким уровнем доступа, даже случайно, раскрыть какие-то известные ему тайны.
Одной из проблем этой модели считается беспрепятственность обмена информацией между пользователями одного уровня, так как эти пользователи могут выполнять в организации разные функции, и то, что имеет право делать пользователь А, может быть запрещено для Б. Поэтому в практике мандатную модель обычно используют совместно с какой-нибудь другой .
Из этих двух правил можно вынести несколько интересных наблюдений, указывающих на проблемы, которые могут проявиться в процессе адаптации модели к реальному приложению:
• Пользователи «снизу» могут попытаться передать информацию наверх, выложив ее на своем уровне. При этом они никогда не узнают, читал ли ее кто-либо «сверху» или нет, так как документ будет защищен от редактирования вышестоящими лицами.
• Еще пользователи могут попробовать «закинуть» данные на уровень выше. В этом случае верха будут иметь возможность вставить в полученный документ свои комментарии, но отправитель об этом также не узнает. Вообще, о существовании верхних уровней он может узнать только из документации к системе.
• У пользователей с высоким уровнем допуска нет никаких возможностей коммуникации с нижними уровнями. Возможно, наверху сидят очень умные люди, советы которых были бы просто бесценны, но мы об этом никогда не узнаем.

В основе мандатного управления доступом лежит мандатная модель безопасности Белла–ЛаПадулы. Эта модель основывается на правилах секретного документооборота применяемых во многих странах. В отличие от дискреционного управления, в котором пользователям непосредственно прописываются права на чтение, запись и выполнение, в мандатной модели управление доступом происходит неявным образом. Всем пользователям (субъектам) и файлам (объектам) назначаются уровни доступа. Например, «секретно», «совершенно секретно». Пример иерархии уровней доступа:

Уровни доступа упорядочиваются по доминированию одного уровня над другим. Затем доступ к защищённым файлам осуществляется по двум простым правилам: 1. Пользователь имеет право читать только те документы, уровень безопасности которых не превышает его собственный уровень безопасности. Это правило обеспечивает защиту информации, обрабатываемой более высокоуровневыми пользователями, от доступа со стороны низкоуровневых пользователей. 2. Пользователь имеет право заносить информацию только в те документы, уровень безопасности которых не ниже его собственного уровня безопасности. Это правило предотвращает нарушение режима доступа со стороны высокоуровневых участников процесса обработки информации к низкоуровневым пользователям. Проиллюстрируем оба правила рисунком:
На рисунке изображены отношения пользователя с уровнем «секретно» с субъектами в трехуровневой мандатной модели. Причем, «совершенно секретно» > «секретно» > «не секретно»
2. Дискреционная модель
В дискреционной модели безопасности управление доступом осуществляется путем явной выдачи полномочий на проведение действий с каждым из объектов системы. Например, в модели Харрисона-Руззо-Ульмана для этого служит матрица доступа, в которой определены права доступа субъектов системы к объектам. Строки матрицы соответствуют субъектам, а столбцы –объектам. Каждая ячейка матрицы содержит набор прав, которые соответствующий субъект имеет по отношению к соответствующему объекту.
Как правило, создатель объекта обладает на него полными правами и может делегировать часть прав другим субъектам. Дискреционный подход позволяет создать гораздо более гибкую схему безопасности, чем мандатный, но при этом он и гораздо более сложен в администрировании. С программной точки зрения его реализация очень проста, но при достаточно большом количестве объектов и субъектов система становится практически неуправляемой.
Для решения этой проблемы применяется, например, группировка пользователей. В этом случае права раздаются группам пользователей, а не каждому пользователю в отдельности. Для того чтобы пользователь получил соответствующие разрешения, нужно просто добавить его в одну или несколько групп. Также можно использовать типизацию объектов. Каждому объекту назначается тип, а для каждого типа определяется свой набор прав (схема доступа). В этом случае столбцы матрицы доступа соответствуют не объектам, а типам объектов. Комбинирование этого подхода с группировкой пользователей позволяют существенно уменьшить матрицу доступа, а значит, и упростить ее администрирование.
В сущности, набор прав – это не что иное, как список известных системе операций, снабженных разрешением или запретом на выполнение данной операции. В крупном приложении количество известных операций может быть весьма большим. При этом большая часть операций имеет смысл только для определенных типов объектов, а многие типовые процессы, осуществляемые пользователем в приложении, включают в себя выполнение нескольких элементарных операций над различными объектами. Поэтому, даже с уменьшенной матрицей доступа, продумать политику безопасности приложения, т.е. грамотно разделить полномочия между различными пользователями системы, достаточно сложно.
3. Ролевая модель
В ролевой модели операции, которые необходимо выполнять в рамках какой-либо служебной обязанности пользователя системы, группируются в набор, называемый «ролью».
Например, операции по регистрации документов могут быть сгруппированы в роль «регистратор». Для того чтобы множества операций, связанных с различными ролями, не пересекались, вводится иерархическая зависимость между ролями. К примеру, роль «секретарь» может включать в себя роль «регистратор» и, плюс к тому, еще несколько дополнительных операций.
Каждый пользователь системы играет в ней одну или несколько ролей. Выполнение пользователем определенного действия разрешено, если в наборе его ролей есть нужная, и запрещено, если есть нежелательная.
В этой модели у объектов нет определенных хозяев. Вся информация расценивается как принадлежащая организации, владеющей системой. Соответственно, и роли пользователя внутри системы – это роли, которые он играет в данной организации. Как следствие, пользователю невозможно делегировать права на какой-то определенный объект. Либо у него есть доступ ко всем подобным объектам системы, либо нет. Таким образом, преимуществом ролевой модели перед дискреционной является простота администрирования: назначение пользователей на роли и создание новых ролей не составляют никаких трудностей. В то же время она не позволяет управлять разными частями системы по отдельности, и тем более – делегировать какому-либо пользователю такие полномочия.
Возвращаемся к основной теме лекции.
Цветовое кодирование применяется как в качестве индикатора значений уровня доступа в области уведомлений, так и к рамке, обрамляющей окно приложения. На рис. 1.17 показан пример цветового кодирования окна файлового менеджера fly-fm для пользовательской сессии со значением уровня доступа равным 1 (как правило, в реальных ОССН этому значению соответствует уровень доступа «Для служебного пользования»).
Детальное описание теоретических основ реализуемого в ОССН на основе мандатной сущностно-ролевой ДП-модели (МРОСЛ ДП-модели) мандатных управления доступом и контроля. целостности будет приведено в следующих лекциях.
Рисунок . Пример цветового кодирования значения уровня доступа субъект-сессии, соответствующей оконному приложению.
4. Завершение пользовательского сеанса и завершение работы
Для выхода пользователя из сеанса работы и/или завершения работы ОССН используется утилита «Диалог выхода из Fly» (утилита fly-shutdown- dialog), вызываемая из элемента «Системные» главного пользовательского меню (кнопка «Пуск»), интерфейс которой приведён на рис. .

Рисунок . Интерфейс утилиты выхода из сессии и/или завершения работы.
Управляющие кнопки интерфейса сгруппированы по трём позициям:
• прерыванием работы системы — кнопки «Блокировка», «Сон», «Гибернация»;
• выход из пользовательской сессии или выключение (перезагрузка) ОССН — кнопки «Выход», «Перезагрузка», «Выключение»;
• планирование выполнения перечисленных функций или смена типа сессии пользователя — кнопки «Планирование», «Сессия», «Закрыть».
Интерфейс диалога смены типа сессии включает следующие элементы:
1. Отдельная — позволяет запустить пользовательскую сессию в новом виртуальном терминале. При этом сессия текущего пользователя останется открытой и в дальнейшем к ней можно будет вернуться в любой момент. Запуск новой пользовательской сессии возвращает пользователя к экрану регистрации в системе. При вводе данных учётной записи нового пользователя она будет открыта в новом виртуальном терминале. При этом в элементе «Меню» экрана регистрации в системе в подпункте «Сменить пользователя» появятся записи открытых пользовательских сессий с указанием номеров виртуальных терминалов, на которых они выполняются и типов пользовательских сессий (fly, default или console). В случае смены пользовательской сессии в защищённой графической подсистеме Fly при уже выполняющейся другой (других) пользовательской сессии в элементе меню «Тип новой графической сессии» появится дополнительный подпункт, указывающий, какой пользователь, на каком терминале и какого типа открыл эту сессию.
2. Вложенная — позволяет запустить новую пользовательскую сессию в текущей пользовательской сессии Fly в отдельном окне менеджера XDM (X Display Manager), который является составной частью сервера X.Org позволяет запускать графические сессии локально или удалённо. Для взаимодействия с программами Х-клиентами менеджер XDM использует протокол XDMCP (XDM Control Protocol). При этом пользовательская сессия запускается локально, и сервер X.Org взаимодействует с Х-клиентами через IP-адрес 127.0.0.1 узла localhost. Результатом этого является появление новой пользовательской сессии в окне менеджера XDM. Таким образом, в рамках одной пользовательской сессии Fly может функционировать другая пользовательская сессия Fly.
3. Удалённая — позволяет запустить новую пользовательскую сессию на удалённом компьютере. Здесь также используется менеджер XDM, только вместо IP-адреса 127.0.0.1 узла localhost используется IP-адрес удалённого компьютера под управлением ОССН. В остальном режим работы в удалённой пользовательской сессией ничем не отличается от локальной, за исключением того, что её пользователь получает доступ к своему домашнему каталогу на удалённом компьютере.
Name already in use
pasta / soft / cli.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
Copy raw contents
Copy raw contents
Как начать пользоваться командной строкой
Командная строка — это способ взаимодействия с компьютером, когда ты печатаешь команды, а он их исполняет. Она может использоваться для запуска программ (например на языке PHP) и для настройки некоторых программ.
Для начала, надо знать что командная строка реализована немного по-разному в разных ОС: в линуксе и маке один вариант, в windows другой. На андроиде и iOS тоже есть линуксоподобная командная строка, но чтобы в нее попасть, тебе надо установить какую-нибудь программу-терминал.
Краткий мануал чайника по командной строке:
Как попасть в командную строку?
- Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
- Windows7: Пуск — набрать cmd — нажать [enter]
- MacOS: Запустить приложение Терминал (его можно найти поиском в той штуке которая справа вверху экрана)
- Ubuntu: Запустить приложение Терминал или нажать Alt + Ctrl + F1 (вернуться назад в графический режим — Alt + Ctrl + F7)
- Другие дистрибутивы Linux: если ты линуксоид, ты и так знаешь
Клавиши, работающие во всех операционных системах
↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется.
[tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько).
[ctrl+c] — прерывает выполнение команды, например, если она долго тупит
Важно: клавиша Esc, как и многие привычные клавиши, не работает в командной строке. Клавиши Ctrl + C, V, X обычно не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift + Ins). Клавиша Ctrl + Q не работает как «выход».
Особенности линукса и мака
В линуксе и маке, [ctrl+l] очищает экран, [ctrl+k] и [ctrl+u] удаляют все перед или после курсора, [ctrl+w] удаляет слово перед курсором, [ctrl+r] делает поиск по истории команд (для отмены поиска нажми [ctrl+c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl+d] завершает работу и закрывает консоль.
Еще в линуксе и маке иногда не работают Home и End, используй [ctrl+a], чтобы перейти в начало строки и [ctrl+e], чтобы в конец. [alt + b] (back) и [alt + f] (forward) двигают курсор на 1 слово назад/вперед.
В линуксовой и маковской файловой системе нет букв дисков. Пути к файлам там начинаются из единого корня, и используют прямой слеш (например /home/ivan/file.txt ), а дополнительные диски (например USB-носители) монтируются в одну из папок внутри файловой системы (например /mnt/flash ). В линуксе регистр букв в имени файла имеет значение.
По умолчанию в Windows в консоли очень маленький и нечитаемый шрифт. Нажми правой кнопкой мыши на заголовок, зайди в настройки и поставь нормальный размер шрифта.
Пути к файлу в Windows используют бекслеш (например d:\tmp\file.txt ), а регистр букв в них не имеет значения.
В командной строке обычно не работает ctrl+v,c,x для вставки, копирования и вырезания текста. Иногда (зависит от настроек системы) вставить текст можно через [shift+ins], иногда правой кнопкой мыши. Погугли, как это делается в твоей ОС.
Скопировать текст обычно можно, выделив мышью (в Windows надо разрешить выделение текста, нажав правой кнопкой на заголовок, зайдя в настройки окна, и также нажать Enter после выделения).
В командной строке результат выполнения команд часто зависит от того, в каком каталоге и на каком диске ты находишься. Также, когда ты указываешь в команде относительное имя файла (без полного пути и имени диска), оно ищется в текущем каталоге.
Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой pwd (print working directory)
Чтобы перейти в другой каталог, в линуксе используют команду cd :
В Windows, сначала надо перейти на нужный диск командой c: , d: , e: и так далее. Потом использовать cd или chdir :
Обрати внимание, windows и linux используют разные виды слешей. Обрати внимание, .. обозначает «родительский каталог». Обрати внимание, только в линукс и мак
обозначает «домашний каталог» (это /home/username или /Users/username ). . (одна точка) обозначает текущий каталог и cd . никуда не перейдет. / (линукс) или \ (Windows) обозначает корневой каталог.
В Windows 7 и выше можно открыть окно консоли с заданной текущей папкой. Есть 2 способа, как это сделать:
- зажав shift, щелкнуть правой кнопкой по пустому месту в открытом окне папки, из появившегося меню выбрать пункт «command line here» («открыть командную строку»)
- поставить курсор в адресную строку в окне папки, ввести cmd и нажать Enter
Если тебе часто в windows приходится открывать консоль в какой-то папке (например папке с твоими программами), ты можешь создать на рабочем столе ярлык (правой кнопкой на рабочем столе → создать ярлык → ввести cmd, нажать «Далее» → ввести название, нажать «Готово» → зайти в свойства ярлыка → указать рабочую папку, нажать «ОК»). При запуске ярлыка будет открываться командная строка с выбранной текущей папкой.
В линуксе/маке, чтобы быстро перейти в нужную папку, можно набрать cd и перетащить в консоль иконку папки — должен вставиться полный путь к ней. Не гарантирую что это работает во всех дистрибутивах линукса, на маке работает.
В linux — команда clear или клавиша [ctrl+L], в windows — команда cls (clear screen).
Посмотреть, какие файлы есть в текущем каталоге, можно командой dir в Windows и командой ls в линуксе ( ls -a — показывает все файлы, включая скрытые, ls -l — показывает не только имена, но и размер, дату создания файла, права на него).
Посмотреть права на файл в Линукс можно либо командой ls -l , либо stat file.txt
Команды и оболочка
Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:
Подсказка и получение помощи
Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр ( —help или /? ):
В линукс: ls —help — выведет справку по команде ls
В линукс: man bash — выведет подробную длинную справку по команде bash (для выхода жми q, для прокрутки используй стрелки и PgUp/PgDn). Также, man bash можно набирать в поисковой системе (Гугл, Яндекс) — скорее всего она покажет ссылку на тот же самый мануал.
Также, для Линукса есть прекрасный сайт https://explainshell.com/ , который умеет для введенной команды находить мануал по ней и выводить объяснения каждого аргумента. Он полезен, когда ты видишь где-то в статье команду и хочешь понять, что делает каждая опция в ней. Пример объяснения для команды ls -la /tmp. В Хроме и ФФ также можно нажать правой кнопкой мыши в поле поиска, выбрать там пункт вроде «Добавить как поисковую систему», задать для него ключевое слово (например, exp) и тогда запрос можно будет писать прямо в адресной строке браузера как exp ls -la /tmp .
В Windows: dir /? — выведет справку по команде dir
В Windows: help выведет подсказку по основным командам
Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, cd в линукс или exit в Windows. Их мало.
Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH. Просмотреть эту переменную можно так:
В линуксе: echo $PATH
В windows: echo %PATH%
В linux PATH — это папки /bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, именно в них в Линуксе хранятся почти все программы. В текущем каталоге программы не ищутся, если это не указать явно, набрав ./command .
В Windows PATH — это всякие системные папки вроде c:\windows, c:\windows\system32 и так далее + текущий каталог, в котором ты находишься. Заметь, что папки вроде c:\program files\autocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы, установленные в Program Files, не запустить. Только то, что положено в системные папки.
Таким образом: если ты под линуксом, и ты набираешь команду php , то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если ты под Windows установил php допустим в c:\php, и не прописал этот путь в PATH, то набрав php , оболочка не найдет файл php.exe и ничего не запустит. И ты скажешь «что за кривой мануал, ничего не работает».
Что же делать? Есть 2 варианта:
- добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему
- писать вместо php полный путь c:\php\php.exe
Продолжаем. Допустим, ты хочешь запустить в командной строке файл my.php , который находится в текущем каталоге:
Допустим, ты хочешь запустить php-файл не из текущего каталога. Тогда надо написать путь к нему:
В общем, проще запускать файлы из текущего каталога, чем мучаться с путями.
Больше команд — linux
Попрактиковаться в линукс в командной строке можно на таких командах:
- Создать текстовый файл: cat > file.txt [enter] ввести текст [enter][ctrl+d] — и файл создан
- Создать текстовый файл содержащий данную строку: echo Hello World > file.txt
- Просмотреть текстовый файл: cat file.txt
- Просмотреть огромный текстовый файл, который не влезает на экран: cat file.txt | less или less file.txt . В просмотрщике работают стрелки и q для выхода (escape не работает).
- Удалить файл: rm file.txt
- Скопировать файл: cp file.txt copy.txt
- Переместить/переименовать файл: mv file.txt copy.txt
- Скопировать в другую папку: cp file.txt /some/other/directory
- Запустить команду и сохранить ее вывод в файл, не выводя на экран: ls -la > file.txt (эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно).
- Запустить команду, вывести результат на экран и сохранить в файл: ls | tee -a file.txt
- Вывести файл, но не весь, а только первые 10 строк: cat file.txt | head -10
- Вывести последние 10 строк файла: cat file.txt | tail -10
- Следить за обновлением файлов и выводить в консоль новые строки, которые в них дописывают: tail -f file1.txt file2.txt (удобно так мониторить логи)
- Вывести только строки файла, содержащие слово «dog»: cat file.txt | grep -i dog ( -i значит игнорировать регистр букв)
- Найти файлы, в имени которых есть «dog», в каталоге /tmp: find /tmp -iname ‘*dog*’
- Узнать текущее время: date
- Создать папку: mkdir folder
- Удалить папку: rm -r folder
- Померять, сколько времени выполнялась команда: time [команда]
- Узнать свой id пользователя: id
- Показать список запущенных процессов: ps -lax
- Показать что-то вроде диспетчера задач: top (для выхода q)
- Запустить редактор, из которого хрен выйдешь, так как никакие привычные кнопки не работают: vi (попробуй :q! если все-таки в него попал)
- Запустить нормальный редактор файла: nano file.txt
Подробнее о работе команд можно узнать с помощью параметра —help , дописанного после команды.
Больше команд — Windows
Попрактиковаться в командной строке в Windows можно так:
- help — выводит список полезных команд
- dir — выводит файлы в каталоге
- Создать текстовый файл: copy con file.txt [enter]ввести текст[enter][ctrl+z][enter] — файл создан
- Просмотреть текстовый файл: type file.txt
- Просмотреть огромный текстовый файл: type file.txt | more (enter — прокрутка, q — выход)
- Удалить файл: del file.txt
- Скопировать файл: copy /b file.txt copy.txt
- Переименовать файл: ren file.txt copy.txt
- Запустить команду и сохранить вывод в файл: dir /? > file.txt
- Создать текстовый файл с одной строкой текста: echo lalala lololo > file.txt
- Дописать строчку в конец файла: echo boom >> file.txt
- Создать папку: mkdir folder
- Удалить папку: rmdir folder
- Узнать текущее время: time и date (ctrl+с для выхода)
Подробнее о работе команд можно узнать с помощью параметра /? , дописанного после команды.
Команды для работы с сетью Интернет
В линукс: показать информацию о настройке сети: ifconfig (или /sbin/ifconfig если у тебя в PATH нет /sbin)
В Windows показать информацию о сети: ipconfig
Пропинговать (проверить связь) с сервером: ping google.com
Узнать IP по имени домена: nslookup yandex.ru
Показать список открытых с компьютера сетевых соединений: netstat -an (в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение).
Проверить путь до какого-то сервера или узла сети:
- в Windows: tracert google.com
- в linux: traceroute google.com (не работает? пиши /usr/sbin/traceroute или пропиши уже себе sbin в PATH)
Используй ключи —help и /?
Гугли мануал по командной строке windows/linux в интернете.
Продвинутые возможности командной строки линукса
Этот раздел читать необязательно, но если ты хочешь знать больше, то пожалуйста.
- версию php можно узнать либо добавив ключ —version, либо -v: php —version
- список установленных модулей: php -m
- вывести конфигурацию (список текущих настроек) PHP: php -i
Потоки и перенаправления.
В мире Линукс (да и в Windows тоже) у каждой программы обычно есть 3 потока (они имеют номера):
#0 — стандартный ввод — это поток из которого программа читает данные. По умолчанию в него поступает то, что ты набираешь на клавиатуре в консоли. Т.е. по умолчанию программы читают данные с клавиатуры.
#1 — стандартный вывод. В этот поток программа выводит результат работы, по умолчанию он подключен к консоли (т.е. результаты пишутся в консоль). Например, команда ls выводит список файлов в текущем каталоге на стандартный вывод
#2 — поток ошибок. Сюда правильно написанная программа пишет сообщения об ошибках, о ходе выполнения задачи. Для них специально предусмотрен отдельный поток (чтобы при сохранении результатов работы в файл в него не записывались сообщения о ходе работы), но по умолчанию так же как и #1 он подключен к консоли.
Эти потоки можно легко перенаправить в файл или даже другую программу (для чего они и придуманы). Вот как можно перенаправить стандартный ввод, чтобы команда читала данные не с клавиатуры а из файла:
Пайп (вертикальная черта) позволяет перенаправить выход одной программы на вход другой. Программа ls выводит список файлов в каталоге. Программа head -10 читает строки с стандартного ввода и выводит только первые 10 из них. Объединив эти команды, можно вывести имена первых 10 файлов:
В линуксе есть и другие команды фильтры, которые можно применять вместе с пайпом. Это sort (сортирует результаты и позволяет удалять дубликаты), grep слово (отбирает строки, в которых встречается заданное слово), head -N (выводит первые N строк), tail -N (выводит последние N строк) и другие.
Перенаправить стандартный вывод в файл можно так:
В этом случае результат работы ls запишется в файл. При этом поток ошибок останется неперенаправленным и они будут выводиться в консоль — именно для этого эти потоки разделены.
Перенаправить поток ошибок в файл можно так:
команда 2> file.txt
Перенаправить и вывод, и ошибки в файл можно так:
команда 2>&1 > file.txt
Когда вывод перенаправлен в файл, ты не видишь ничего в консоли. Для борьбы с этим есть команда tee , которая расщепляет поток: одна копия идет в файл. другая выводится в консоль:
команда 2>&1 | tee file.txt
Команда tee по умолчанию при запуске очищает файл, если там что-то было, можно добавить параметр -a , чтобы она этого не делала, а дописывала строки в конец файла.
Все эти программы берут данные со стандартного ввода, обрабатывают и выдают результат на выход. Они предназначены для совместного использования с перенаправлением потоков ввода/вывода.
- grep , egrep — отбирает только строки, соответствующие (или не соответствующие) регулярному
- sort — сортирует поданные на вход строки
- cat -n — нумерует поданные на вход строки
- head , tail — берут первые или последние строки
- tac — читает строки с входа, переворачивает их и выдает в обратном порядке
- tr — заменяет указанные символы
- sed — позволяет делать более сложные замены, например sed -rn ‘s!value=(\d+)!\1\n!gp’ найдет во входном тексте строки вида value=123, выделит из них числа и выведет их каждое на своей строке
- gzip / gunzip — архивируют/разархивируют данные
- wc — считает число строк, слов и символов во входном файле
- cut — разбивает каждую строку на куски по символу-разделителю и вырезает указанные куски
Команда diff file1 file2 сравнивает 2 файла и выдает список различий в них. Она также умеет сравнивать папки с вложенными в них файлами рекурсивно.
Если установить команду pv то можно выводить шкалу прогресса. Допустим мы подаем огромный файл на вход команды и хотим следить сколько байт уже передано. Команда pv перекачивает данные со своего входа на выход, при этом считая их и выводя полоску прогресса:
cat file.txt | pv | другая команда
Скачать файл можно командой wget: wget -O file.txt ‘http://example.com/download/file’ Кавычки нужны.
Можно отправлять POST- и GET-запросы, например, для тестирования твоего приложения, командой curl:
curl -F name=Username -F ‘comment=Hello World’ ‘http://example.com/post/comment’
С помощью программы gzip / gunzip можно сжимать файлы. По умолчанию она берет данные, поступающие на стандартный вход, сжимает и выдает на выход. Степень сжатия задается параметрами от -1 (минимальная) до -9 (максимальная).
- сжать файл на диске: cat file.txt | gzip -9 > file.txt.gz
- разжать файл и вывести на экран: cat file.txt.gz | gunzip
- выполнить команду, сжать и сохранить в файл ее результат: команда | gzip -9 > file.txt.gz
Если команда выводит очень много данных, удобно направить ее вывод в программу-пейджер less. Она позволяет прокручивать результат стрелками, искать по регулярке командой / (n — перейти к следующему результату). Для выхода жми q, escape не работает. Во как направить вывод в less:
Если надо туда же направить и поток ошибок то пиши так:
Некоторые настройки хранятся в переменных окружения. Например, путь к домашнему каталогу хранится в $HOME и вывести ее можно так:
Поменять переменную можно так: export VAR=value . Обрати внимание, у каждого процесса свой набор переменных, и они наследуются от родителя при создании процесса так что поменять переменные ты можешь только у программ, которые будут запускаться в этой консоли в дальнейшем, а у уже запущенных не поменяешь. Также, можно поменять переменную только для одной запускаемой команды, так:
VAR=value команда , например SOME_VAR=1 OTHER_VAR=2 php file.php
Cmd- и bash-скрипты
Мощь командной строки заключается в том, что если нам надо выполнить последовательность каких-то команд, то не требуется каждый раз вводить их вручную. Вместо этого, можно поместить их в файл (скрипт) и запустить этот файл. То есть, мы можем написать что-то вроде программы, составленной из отдельных команд.
В Windows скрипты для командной строки (пакетные скрипты) должны иметь расширение .bat или .cmd . В них пишутся команды, которые надо выполнить, каждая на новой строке, например:
Как видно, кроме полезных команд, тут есть несколько дополнительных строк. Команда echo off отключает вывод команд в консоль перед их выполнением, а знак @ отключает вывод самой команды echo off . Команда REM позволяет добавить комментарии в текст скрипта. Запускается скрипт просто указанием его имени (с указанием пути, если скрипт не находится в текущей папке или PATH ). При этом будет неявно запущен интерпретатор cmd.exe и он будет выполнять команды из указанного файла:
В скриптах также можно использовать переменные окружения, создавать ветвления ( IF ) и циклы ( FOR ).
Подробнее про скрипты CMD в Windows:
Возможности bat-скриптов очень ограниченны, потому на смену им Microsoft разработала мощный интерпретатор Powershell и язык скриптов для него.
В linux (и mac) любой текстовый файл можно сделать исполняемым, если поставить ему флаг execute (признак, что файл исполняемый) командой chmod +x file.xyz и в первой строке файла указать специальную конструкцию под названием shebang ( #! ), за которой указан полный путь к программе-интерпретатору. Ну например, если у нас есть PHP-файл, мы можем сделать его исполняемым и написать в начале строку (обратите внимание, если файл сохранен в кодировке utf-8, в нем не должно быть BOM):
И этот файл станет исполняемым, мы сможем запускать его, просто написав его имя:
Если в качестве интерпретатора прописать путь к оболочке bash, то получится bash-скрипт. В нем указываются команды, которые надо выполнить, каждая на новой строчке, например:
Здесь использованы дополнительные конструкции: set -e — говорит, что при ошибке выполнения любой команды скрипт завершается (без этого скрипт бы продолжил выполняться), символ # обозначает комментарий. Язык bash довольно мощный, в нем есть ветвления ( if ), циклы ( for , while ), функции и переменные.
Для bash-скриптов обычно либо указывают расширение .sh , либо никакого расширения. В linux, как было написано выше, интерпретатор для файла определяется первой строчкой в нем, а не расширением.
Пакетный менеджер в Дебиан/Убунту
Линуксоиды — суровые занятые люди и меньше всего им хочется ради установки программы что-то искать, скачивать, проверять на вирусы, запускать, жать далее, обнаружить что надо сначала поставить NET framework и так далее, а потом отвечать на вопросы типа «Не хотите ли проверить обновления?». Они придумали другой способ: на сервере создается репозиторий пакетов с программами, а пользователь несколькими командами может найти и установить нужный. В Debian используются пакеты формата deb и программа apt-get .
Для начала надо скачать свежий список пакетов:
sudo apt-get update
Эту команду стоит делать если ты давно ее не делал. Теперь список пакетов скачан и можно воспользоваться поиском. попробуем найти Апач:
apt-cache search apache | sort
Заметь, этой команде права рута не нужны. Команда sort сортирует результаты. Среди кучи результатов видим:
apache2 — Apache HTTP Server metapackage
Попробуем его установить. Это делается командой apt-get install (имена пакетов):
sudo apt-get install apache2
Готово! При этом команда install автоматически обновит имеющиеся у тебя программы и библиотеки, если для них вышла более новая версия. Заметь, что ты можешь указать много пакетов сразу:
sudo apt-get install apache2 php5-common php5-curl
С помощью apt-get и заготовленного списка пакетов можно одной командой установить на сервер весь нужный софт. Так-то! Просмотреть установленные пакеты можно командой dpkg-query -l
Все пакеты подписаны цифровой подписью и она проверяется при установке, так что вирусов можно не бояться, если только ты не установил в систему ключи из других источников, в этом случае ты должен доверять автору ключа так как он может установить тебе в систему что угодно и выполнить любой код. По умолчанию установлены только официальные дебиановские ключи.
Пакеты, которые стоит установить сразу:
apache2 apache2-mpm-prefork php5 php5-cli php5-curl php5-dev php5-gd php5-gmp php5-imap php5-intl php5-mcrypt php5-mysqlnd php5-xdebug php5-xsl — думаю понятно что это.
- git — система управления версиями, она тебе понадобится чтобы коммитить код на гитхаб.
- htop (линуксовый цветной диспетчер задач, попробуй его запустить, q = выход)
- iftop (показывает какая программа куда соединяется и сколько трафика качает)
- iotop (показывает кто мучает диск)
- mc (файловый менеджер и редактор mcedit)
- nano (простой текстовый редактор)
- sysv-rc-conf (включает и выключает службы в автозапуск)
Чем править конфиги
Удобно использовать редактор nano, который часто предустановлен в линуксе. Горячие клавиши в нем подписаны внизу экрана.
Или же mcedit, который входит в состав файлового менеджера mc. Пиши например sudo mcedit /etc/apache2/httpd.conf и редактируй. Кнопки: F2 — сохранить, F10 — выйти, F7 − искать, Shift + F7 — искать еще, Esc + Tab — автодополнение. Escape как «отмена» работает, но надо жать 2 раза.
sudo less /var/log/apache2/error.log sudo tail /var/log/messages
Отслеживать лог в реальном времени (попробуй): sudo tail -f /var/log/error.log
Поиск в логе через grep:
cat /var/log/messages | grep -i word
Для доступа к логам не нужны будут права админа если ты добавишь себя в группу adm.
Управление службами (апач. mysql): sudo service mysql действие
Где действие — это:
- start = запустить
- stop = остановить
- restart = перезапустить
- reload = обновить настройки из конфига (если ты его правил например) без остановки работы службы. То есть сайт ни на секунду не перестанет работать (в случае с restart — перестанет на несколько секунд). Не все службы это умеют, но если умеют то это удобно.
Выбор какие службы будут запускаться при загрузке: sudo sysc-rc-conf , для выхода жми q.