Архивы автора: Пользователь Slax

Командная строка (консоль)

Командная строка (консоль)

В начале существования у UNIX не было графического интерфейса – использовалась только командная строка, или консоль. Для консоли было написано много утилит, которые сохранили актуальность до сих пор. Многие профессионалы, в зависимости от задачи, вообще игнорируют графические интерфейсы и работают в консоли. Используя командную строку, вы получаете больше опыта и знаний, чем пользователи, работающие в графических оболочках. Однако это не обязывает вас использовать только консоль – выбирайте между ней и графическим интерфейсом в зависимости от целей.

В отличие от других операционных систем, после загрузки Linux в большинстве случаев предоставляет не только один рабочий стол или консоль, а сразу несколько устройств ввода-вывода (обычно это шесть консолей и одно устройство с запущенным графическим менеджером). Переключаться между ними можно с помощью сочетаний клавиш Alt+1, Alt+2 и т. д. (цифра обозначает номер устройства). Находясь в графическом режиме, аналогичную операцию можно выполнить с помощью сочетания Ctrl+Alt+1, Ctrl+Alt+2 и т. д.

андная строка (консоль)

Командные оболочки в Linux

Командные оболочки в Linux

Для работы в консоли Linux имеет не одну программу. Такие приложения называют также командными оболочками. Оболочки позволяют пользователю взаимодействовать с системой посредством ввода команд. К их числу можно отнести программы sh и bash, исполняемые файлы которых находятся в каталоге /bin. Практически всегда по умолчанию ставится оболочка bash – будем использовать ее в примерах. Если вы используете другую оболочку, это не имеет значения, так как ее возможности, скорее всего, не уступают bash.

Команды, которые вводятся в строку консоли, – это чаще всего названия программ или ссылок на них. После загрузки системы устанавливается системная переменная PATH (англ. путь), описывающая все пути, по которым можно найти определенную программу. Если в каталоге, в котором вы находитесь, нет нужной программы, она ищется по всем путям, и исполняется первая найденная. После загрузки доступны программы из «обязательного набора», который находится в каталоге /bin. При осуществлении базовых операций (создание каталога, файла, установка даты и времени) всегда используются программы из этой папки.

Что такое аргументы в Linux

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

Представьте, что вас попросили сходить в магазин, который находится через дорогу от вашего дома, и купить там молоко, яйца и сыр. В данном случае просьба сходить в магазин является программой, список покупок – обязательным аргументом (вас не будут просить сходить в магазин без необходимости), а указание конкретного магазина и времени – необязательным аргументом (требуемый набор продуктов имеется не в одном магазине, но нужны продукты именно из этого; сходить в магазин вы можете не немедленно, а через некоторое время).

Аргументы, как вы уже поняли, делятся на две группы – обязательные и необязательные. Обязательные аргументы указывают программе необходимую для работы информацию; без указания какого-то из обязательных аргументов приложение попросит ввести их отдельно либо выдаст ошибку. Необязательные аргументы часто только уточняют ход работы программы. Все аргументы вводятся после имени программы. Если аргумент содержит пробел, то весь аргумент следует заключить в кавычки.

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

Пример использования аргументов в Linux

Развивая предыдущий пример с магазином, рассмотрим гипотетическую программу go_shop, которая выполняет «поход в магазин»:

go_shop -goods=молоко,яйца,сыр –shop=через_дорогу -now

Программой здесь является goshop; для нее указывается обязательный аргумент goods, значением которого является список покупок, и два необязательных – shop, обозначающий месторасположение требуемого магазина, и now, который сообщает, что сходить нужно прямо сейчас.

Следует иметь в виду, что практически каждая консольная (и не только консольная) утилита имеет следующие стандартные аргументы:

––help либо -h – эти аргументы указывают программе не выполнять свои характерные действия, а вывести справку, в которой отображается назначение программы и/или ее аргументы;

––version – предписывает программе не выполнять никаких действий, кроме вывода на экран номера своей версии.

Перенаправление ввода/вывода в Linux

Перенаправление ввода/вывода в Linux

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

foo < textfile

Практически так же реализуется перенаправление вывода. Если программа foo выводит на экран информацию, а вы хотите, чтобы программа направляла ее в файл (назовем его outfile), то следует выполнить такую операцию:

foo > outfile

Таким образом можно решить некоторые проблемы, например когда программа выводит на экран длинный текст, который не помещается в консоли, что нередко случается при вызове программы с параметром –help с целью получения справки по использованию (впрочем, есть лучший метод решения данной проблемы). При необходимости можно также направить вывод в файл /dev/null, чтобы приложение не выводило на экран вообще ничего.

Никогда не перенаправляйте вывод на файлы устройств – такие, как, например, /dev/hda, /dev/hdb и т. д. Этим вы повредите данные на носителе информации. Есть еще один способ перенаправления вывода:

foo >> outfile

В данном случае конечный файл не перезаписывается, а дополняется новыми данными.