Linux командная строка — что это такое, как вызвать

Кома́ндная оболо́чка Unix (англ. Unix shell , часто просто «шелл» или «sh») — командный интерпретатор, используемый в операционных системах семейства Unix, в котором пользователь может либо давать команды операционной системе по отдельности, либо запускать скрипты, состоящие из списка команд. В первую очередь, под shell понимаются POSIX-совместимые оболочки, восходящие к Bourne shell (шелл Борна), появившемуся в Unix Version 7.

Использование Bash и ch

Название bash является аббревиатурой от Bourne Again SHell. Эта аббревиатура указывает на то, что bash наследует интерпретатор Bourneshell (команда sh), созданный Стивом Борном (Steve Bourne) из AT&TBell Labs. Брайан Фокс (Brian Fox) из Free Software Foundation создал bash в составе проекта GNU. В дальнейшем разработка перешла в руки Чета Рами (Chet Ramey) в Case Western Reserve University.

Интерпретатор bash содержит возможности, которые разрабатывались для интерпретаторов sh и ksh во времена ранних версий UNIX, а также ряд возможностей интерпретатора csh.

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

Большинство примеров в этой

Что такое в Linux командная строка

Открывать терминал крайне просто

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

В отличие от консоли в виндовс, которая появилась там от MS DOS (виндовс изначально являлась лишь графической оболочкой этой старой операционной системы), терминал в линуксе обладает куда более мощными и серьезными возможностями. Он находится в ОС изначально. Так было и в Unix, поэтому здесь он более развит, что позволяет экономить множество времени.

Что такое в Linux командная строка

Современные консоли в Unix-подобных системах могут автоматически дополнять прописываемые имена команд или файлов, выполнять поиск и повторное выполнение действий, обладают историей выполненных команд.

Читайте также:  Steam для Linux научился запускать игры «только для Windows»

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

Ядро и initramfs

Получив управление, ядро начинает первичную инициализацию: запускается подсистема управления памятью, настраивается обработчик прерываний, инициализируются необходимые для дальнейшей работы ядра структуры данных. Когда эта работа будет закончена, ядро распаковывает архив initramfs (обычно он имеет имя вида /boot/ и представляет собой архив cpio, сжатый с помощью gzip) в файловую систему в оперативной памяти (tmpfs), делает ее корневой файловой системой и запускает скрипт /init (в различных дистрибутивах имя может отличаться).

Initramfs включает в себя базовый набор компонентов Linux-дистрибутива: стандартные системные каталоги /bin, /lib, /etc и так далее, простейший командный интерпретатор (обычно ash), набор команд BusyBox, несколько вспомогательных библиотек и набор модулей ядра (драйверов), предназначенных для работы с различными накопителями и файловыми системами.

Ядро и initramfs

Содержимое initramfs

Смысл существования initramfs в том, чтобы решить проблему курицы и яйца: загрузить драйверы для подключения реальной корневой файловой системы до того, как она будет подключена. Именно это и происходит, когда система запускает скрипт /init. Он определяет установленные в систему накопители, загружает в ядро драйверы для работы с ними, а затем подключает нужный раздел нужного накопителя (о том, какой именно, ядро узнает благодаря переданному при загрузке параметру root) к корню, перекрывая таким образом содержимое initramfs. Затем скрипт запускает /sbin/init, с которого и начинается следующий шаг загрузки ОС.

Скрипт init из initramfs

Ядро и initramfs

Продолжение доступно только участникам Вариант 1. Присоединись к сообществу «», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

1 год

9300 р.

1 месяц

870 р.

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Читайте также:  9 советов по исправлению напоминаний iPhone, не работающих в iOS 13

Я уже участник «»

Чтобы программы работали

Многие программы, описанные мной в обзоре Kali Linux, требуют для своей работы запущенных демонов (в Windows это называется сервисами), так вот в Kali они по умолчанию остановленны и запустить их можно из меню Kali Linux → System Service

Не забудте подключиться к сети, благо в Kali это делается при помощи Network manager, который привычно расположен на панели задач.

Чтобы программы работали

Дополнительные программы можно установить используя «Add/Remove Software», она находится в меню System Tools.

Оболочки, Bash, echo Linux

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

Доступны различные оболочки, но самая распространенная из них называется bash, что означает «Bourne again shell». В этом руководстве предполагается, что вы используете bash в качестве оболочки.

Если вы хотите узнать, какую оболочку вы используете, вы можете использовать команду echo, чтобы отобразить системную переменную с указанием вашей текущей оболочки. echo — это команда, которая используется для отображения сообщений.

Какие задачи разумно решать шеллом?

  • интерактивная работа в терминале:
    • выполнение компиляции, запуск заданий через make;
    • сравнение текстовых файлов;
    • быстрый ad-hoc анализ данных (количество уникальных ip в логе, распределение записей по часам/минутам и т.п.);
    • разовые массовые действия (прибить много процессов; если работаете с системой контроля версий — ревертнуть или зарезолвить кучу файлов);
    • диагностика происходящего в системе (семафоры, локи, процессы, дескрипторы, место на диске и т.п.);
  • скриптование:
    • установочные скрипты, для выполнения которых нельзя рассчитывать на наличие других интерпретаторов — это не для новичков;
    • функции для кастомизации интерактивного шелла (влияющие на приглашение, меняющие каталог, устанавливающие переменные окружения) — тоже не совсем для новичков;
    • одноразовые скрипты типа массового перекодирования файлов;
    • makefile-ы.

Рабочие компоненты LXDE

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

Читайте также:  Как преобразовать djvu в формат pdf: онлайн, программы и приложения

Использование памяти: около 85 мегабайт.

Запуск из командной строки:

  • Открыть терминал и ввести: sudo apt-get install lxde. Нажать System → Quit и затем нажать Log Out, чтобы выйти из Ubuntu.
  • На появившемся экране входа в систему нажать Options → Select Session.
  • Выбрать опцию LXDE и нажать Change Session.
  • Ввести свое имя пользователя и пароль (как обычно). LXDE должен начать установку.

$ — выражения переменных

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

Вы можете использовать, echo, чтобы увидеть значение, которое содержит переменная, — просто перед именем переменной следует знак доллара ($), как показано ниже:

echo $ USER

echo $ HOME

echo $ PATH

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

ThisDistro=Ubuntu

MyNumber=2001

echo $ThisDistro

echo $MyNumber

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

Это создает переменную, которая содержит строку символов, как показано ниже:

MyString = 123456qwerty

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

echo $ {MyString}

Чтобы вернуть подстроку, начиная с позиции 6 всей строки, используйте следующую команду (смещение нуля, поэтому первая позиция равна нулю):

echo $ {myString: 6}

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

echo $ {myString: 0: 6}

Используйте следующую команду, чтобы отобразить подстроку, которая начинается с четвертой позиции и содержит следующие четыре символа:

echo $ {myString: 4: 4}