Командная оболочка linux. Bash – командная оболочка Linux. О научном рецензенте

В большинстве дистрибутивов Linux по умолчанию установлена командная оболочка Bash. Отметим, что между всеми командными оболочками, соответствующими стандарту POSIX Unix-подобных операционных систем, разница небольшая.

Bash запускается в текстовом режиме или приложении "Терминал" и работает интерактивно. Это значит, что он ожидает ввод пользователя, далее интерпретирует введенную строку как команду, которую надо выполнить. Команды бывают разными: запуск программы, операции с файлами, выполнение скрипта на языке самого Bash и др.

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

В связи с распространением персональных компьютеров, начавшимся в 80-х годах, многопользовательские ОС оказались не востребованными массовым потребителем. Однако для серверов они стали хорошим выбором.

Представьте, что подключаетесь по протоколу SSH к веб-серверу, на котором размещаете файлы сайта. Работая в ОС GNU/Linux и запустив программу "Терминал", вы даете Bash"у команду на подключение к удаленной машине под конкретным именем пользователя. Сервер отвечает вам и требует ввести пароль этого пользователя. Все потому, что пользоваться данным компьютером-сервером может далеко не один человек.

На локальном компьютере в текстовом режиме Linux (если вы нажмете, например, Ctrl + Alt + F2) эмулируется удаленный доступ к машине через терминал. Здесь Bash первым делом предлагает вам ввести логин, после чего – пароль. При вводе пароля на экране ничего не отображается. Так сделано специально, чтобы нельзя было подсмотреть даже количество вводимых символов. Если введенная пара логин/пароль соответствуют какому-либо ранее зарегистрированному в системе пользователю, то вы увидите приглашение командной строки Bash"а на ввод команды. В случае ошибки потребуется заново вводить логин/пароль.

В графическом режиме приложение "Терминал" автоматически "берет" данные запустившего его пользователя и передает Bash"у. Таким образом, вы уже оказываетесь представленными системе и первое, что видите, – приглашение командной строки.

Приглашение командной строки имеет относительно стандартный синтаксис и выглядит примерно так: имя_пользователя@имя_компьютра:текущий_каталог знак.

На скриншоте pl – имя пользователя, comp – имя компьютера. Символ тильды ~ в Linux-системах – это сокращенное обозначение домашнего каталога пользователя (/home/user). Именно эту директорию Bash делает текущей по умолчанию. Знак доллара $ обозначает, что мы работаем под непривилегированным пользователем. Если находиться в системе под администратором, вместо доллара будет знак решетки #.

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

Существует множество команд, которые можно отдавать в Bash. В основном это команды запуска той или иной программы, которые находятся в каталогах /bin, /usr/bin и ряде других. Проверяемые каталоги записаны в переменной $PATH оболочки:

Здесь с помощью команды echo мы просим Bash выдать нам значение переменной $PATH. В выводе каталоги отделены друг от друга с помощью двоеточия.

Можно посмотреть, какие программы установлены в том или ином каталоге, после чего запустить одну из них:

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

Существуют программы с текстовым интерфейсом. Например, редактор Nano:

В данном случае Bash"у была дана команда nano, и прямо в терминале был открыт редактор GNU Nano. В нем была введена пара слов. Чтобы завершить работу редактора, надо нажать Ctrl + X, подтвердить сохранение или отказаться от него. После этого произойдет возврат к командной строке Bash.

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

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

Здесь в домашнем каталоге был создан файл test.py, содержащий код на языке программирования Python, выводящий на экран число 10. Код был написан в Nano (на скриншоте не показано). Далее мы пытаемся выполнить программу, обратившись к файлу по его адресу. Точкой обозначается текущий каталог. В данном случае он домашний, поэтому это равносильно ~/test.py или /home/pl/test.py .

При первом вызове мы получаем ошибку, так как у нас нет прав на исполнение программы. С помощью команды chmod мы добавляем такое право (параметр +x).

Существует множество команд. Знать их все как минимум затруднительно. Однако есть ряд наиболее востребованных. Это команды для совершения операций над файлами, установки программ, просмотра директорий и файлов, перемещения по дереву каталогов и т. п., то есть всего того, что мы делаем в графическом режиме операционной системы. Многие из них будут рассмотрены в данном курсе. С некоторыми мы уже немного познакомились (cd, ls, echo, chmod).

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

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

Задание

Исследуйте самостоятельно, что делают следующие команды: date, cal, pwd, who, clear, exit. С помощью команды which выясните, в каких каталогах находятся исполняемые файлы этих программ.

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

Оригинал: The Beginner’s Guide to Shell Scripting: The Basics
Автор: Yatri Trivedi
Дата публикации: 29 сентября 2015 г.
Перевод: А.Панин
Дата перевода: 4 октября 2016 г.

Тема разработки сценариев командной оболочки постоянно поднимается на форумах, посвященных операционной системе Linux, но многие пользователи все же мало знакомы с ней. Изучение этого простого и мощного метода программирования поможет сохранить ваше время, лучше узнать особенности утилит с интерфейсом командной строки и оптимизировать рутинные операции управления файлами.

Подробнее о процессе разработки сценариев командной оболочки

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

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

Сценарии командной оболочки позволяют создавать цепочки команд и исполнять их таким же образом, как и в случае batch-файлов. При этом они предоставляют в ваше распоряжение гораздо большее количество полезных функций, позволяющих выполнять такие действия, как подстановка команд. К примеру, вы можете выполнить такую команду, как date и использовать ее вывод в качестве части схемы именования файлов. Таким образом вы можете автоматизировать процесс создания резервных копий данных с добавлением к имени каждого скопированного файла текущей даты. При этом содержимое сценариев командной оболочки не должно ограничиваться вызовами команд. По своей сути эти сценарии являются полноценными программами. По этой причине вы сможете использовать в процессе разработки сценариев такие классические синтаксические конструкции языков программирования, как циклы for , условные инструкции if/then/else и так далее, непосредственно на уровне интерфейса командной строки системы. И вам не придется изучать другой язык программирования, ведь вы уже используете известный вам интерфейс: командную строку.

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

Перед тем, как начать работу

Перед тем, как мы начнем рассматривать вопросы разработки сценариев командной оболочки в рамках серии статей, следует определиться с некоторыми аспектами. Мы будем использовать командную оболочку Bash, которая по умолчанию используется практически во всех дистрибутивах Linux. При этом она также доступна и для пользователей Mac OS, и для пользователей Windows благодаря существованию набора библиотек Cygwin. Благодаря такой универсальности, вы сможете создавать сценарии командной оболочки вне зависимости от используемой программной платформы. В дополнение следует упомянуть о том, что сценарии будут запускаться без модификации или после минимальной модификации на всех упомянутых программных платформах при условии наличия всех используемых в них утилит в системе.

В рамках сценариев командной оболочки могут использоваться утилиты, требующие привилегий "администратора" или "суперпользователя", поэтому стоит тщательно тестировать каждый сценарий перед его вводом в эксплуатацию. Также в процессе разработки сценариев нужно руководствоваться здравым смыслом, к примеру, проверяя наличие резервных копий файлов, которые обрабатываются с помощью них. Очень важно использовать корректные параметры команд, например, параметр -i команды rm , принудительно активирующий интерактивный режим. Это позволит избежать некоторых неприятных ошибок. По этой же причине следует тщательно изучать загружаемые из сети сценарии и на всякий случай создавать резервные копии персональных данных.

По своей сути сценарии командной оболочки являются обычными текстовыми файлами. Вы можете использовать любой текстовый редактор для их редактирования: gedit, emacs, vim, nano… И этот список можно продолжить. Следует просто убедиться в том, что выбранный текстовый редактор может сохранять код сценариев в обычных текстовых файлах, а не файлах со специальной разметкой или файлах, используемых одним из офисных пакетов. Так как мне нравится простота текстового редактора nano, я буду использовать его.

Имена и права доступа к файлам сценариев

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

Chmod +x ~/somecrazyfolder/script1

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

Chmod u+x ~/somecrazyfolder/script1

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

Cd ~/somecrazyfolder ./script1

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

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

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

Which [имя_сценария]

Многие начинающие разработчики сценариев командной оболочки создают файлы сценариев с такими именами, как "test" , после чего пытаются запустить их из эмулятора терминала и не получают какого-либо вывода. Это происходит по причине наличия конфликта между именем файла сценария и именем системной команды test , которая не выполняет каких-либо действий при отсутствии аргументов. Всегда проверяйте, не конфликтует ли имя вашего сценария с именем одной из существующих команд, ведь в этом случае вы можете потратить достаточно времени на решение проблемы, которую достаточно просто избежать!

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

  1. Каждый сценарий должен начинаться со строки "#!/bin/bash"
  2. Каждая новая строка сценария должна содержать новую команду
  3. Строки комментариев должны начинаться с символа #
  4. Команды для подстановки должны помещаться в круглые скобки ()

Хэш-банг

При разборе содержимого текстового файла основным идентификатором сценария является его первая строка:

#!/bin/bash

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

Новая строка = новая команда

Каждая новая строка сценария должна рассматриваться как новая команда или компонент более сложной синтаксической конструкции. Инструкции if/then/else , к примеру, могут занимать по нескольку строк, но каждый из их элементов все равно будет расположен на новой строке. Вы не должны переносить команды на новые строки, так как это приведет к сокращению первой строки и выводу сообщения об ошибке после попытки исполнения второй. Если ваш текстовый редактор самостоятельно выполняет эту операцию, вы на всякий случай должны отключить функцию автоматического переноса строк. В текстовом редакторе nano функция автоматического переноса строк отключается с помощью комбинации клавиш Alt+L .

Комментарии обычно начинаются с символа #

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

Команды для подстановки помещаются в круглые скобки

Не так давно все подстановки команд осуществлялись с помощью символов обратного апострофа (` , расположен на клавиатуре на той же клавише, что и символ тильды ~). Мы пока не будем рассматривать данную тему, но ввиду того, что многие люди перечитывают статьи с вводной информацией, следует упомянуть о том, что вместо символов обратного апострофа следует использовать символы круглых скобок. Это стоит делать главным образом по той причине, что при вложении команд, то есть, размещении одних команд в рамках других команд, круглые скобки работают лучше.

Ваш первый сценарий

Давайте начнем с разработки простого сценария, позволяющего копировать файлы с добавлением даты к их именам. Назовем этот сценарий "datecp" . В первую очередь предлагаю убедиться в том, что имя сценария не конфликтует с именем какой-либо системной утилиты:

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

Теперь давайте создадим пустой файл в директории ~/bin:

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

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

Nano ~/bin/datecp

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

Далее нужно объявить переменную. Если вы когда-либо изучали алгебру, вы наверняка знаете, что это такое. Переменная позволяет сохранять информацию и осуществлять определенные манипуляции с ней. Переменные могут "раскрываться" при упоминании в каком-либо другом месте сценария. То есть, вместо вывода их имен будет осуществляться вывод сохраненных в них значений. Впоследствии вы сможете сохранить в переменной новую информацию, причем в следующих операциях с данной переменной будет использоваться уже эта новая информация. Это очень удобная сущность для хранения тех или иных данных.

Какие же данные мы будем хранить в нашей переменной? Ну, давайте сохраним в ней дату и время! Для этого нам придется вызвать команду date .

Обратите внимание на приведенный ниже снимок окна терминала с выводом команды date:

Несложно заметить, что путем добавления различных параметров форматирования, имена которых начинаются с символа % , вы можете изменять формат вывода команды по своему усмотрению. Для ознакомления с дополнительной информацией вы можете ознакомиться со страницей руководства команды date .

Давайте используем последний вариант набора параметров форматирования команды date , а именно, "date +%m_%d_%y-%H.%M.%S" , в нашем сценарии.

Если мы сохраним этот сценарий прямо сейчас и выполним его, мы получим вполне ожидаемый вывод команды date:

Но давайте поступим немного по-другому. Я предлагаю сохранить вывод данной команды в переменной с заданным именем, таким, как date_formatted . Корректный синтаксис данной операции выглядит следующим образом:

Переменная=$(команда -параметры аргументы)

В нашем случае данная синтаксическая конструкция будет выглядеть следующим образом:

Date_formatted=$(date +%m_%d_%y-%H.%M.%S)

Именно это и называется подстановкой команд. Мы сообщаем bash, что при каждом упоминании переменной "date_formatted" следует выполнять команду, помещенную в круглые скобки. После этого при упоминании переменной "date_formatted" качестве вывода вместо ее имени будет использоваться вывод команды в круглых скобках.

А это пример сценария и его вывод:

Обратите внимание на наличие двух символов пробела в выводе. Эти символы находятся в рамах команды echo перед кавычками, а также перед именем переменной. Не используйте пробелы, если вы не хотите, чтобы они присутствовали в выводе. Также следует обратить внимание на то, что при отсутствии строки с командой "echo" сценарий не будет выводить каких-либо данных.

Давайте вернемся к нашему сценарию. Добавим в него команду копирования файла:

Cp -iv $1 $2.$date_formatted

В данном случае используется команда для копирования файла с параметрами -i и -v . Первый параметр позволяет вам подтвердить свои намерения перед перезаписью файла, а второй - вывести информацию о параметрах, переданных команде.

Далее вы можете обнаружить, что я добавил параметр $1 . При разработке сценариев знак доллара ($) со следующим за ним числовым значением соответствует аргументу сценария под номером, равным этому числовому значению. Например, в следующей команде:

Cp -iv Trogdor2.mp3 ringtone.mp3

первым аргументом является "Trogdor2.mp3" , а вторым - "ringtone.mp3" .

Если вы снова посмотрите на код сценария, вы обнаружите, что мы передаем команде копирования файла два аргумента сценария:

Это означает, что при запуске сценария нам придется передавать ему два аргумента для корректной работы. Первый аргумент, $1 , является именем копируемого файла, подставляемым в качестве первого аргумента команды "cp -iv" .

Второй аргумент, $2 , выступает в качестве имени целевого файла в рамках этой же команды. Но вы также можете обнаружить его важное отличие. Я добавил к нему символ точки и упоминание рассмотренной выше переменной "date_formatted" . Вам интересно, для чего предназначена такая конструкция?

А это вывод сценария после его запуска:

Очевидно, что имя целевого файла состоит из имени файла, переданного посредством второго аргумента сценария $2 , а также находящихся после него символа точки и вывода команды date ! Все логично, не так ли?

Теперь при выполнении команды datecp будет осуществляться запуск данного сценария, позволяющего осуществить копирование файла с автоматическим добавлением к имени целевого файла информации о текущих дате и времени. Это довольно удобно в том случае, если нужно осуществлять резервное копирование файлов!

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

Вы уже имеете опыт создания собственных сценариев командной оболочки? Вам есть что сказать начинающим пользователям? Поделитесь своим опытом в разделе комментариев! Мы рассмотрим другие аспекты процесса разработки сценариев командной оболочки в следующих статьях серии!

Работа с командной строкой

Антон Бояршинов, Кирилл Маслинский

Эффективная профессиональная работа в Linux немыслима без использования командной строки . Пользователям, привыкшим работать в системах с графическим интерфейсом, работа с командной строкой может показаться неудобной: то, что можно сделать одним перетаскиванием мышью в командной строке потребует ввода с клавиатуры нескольких слов: команды с аргументами. Однако в Linux этот вид интерфейса всегда был основным, а поэтому и хорошо развитым. В командных оболочках, используемых в Linux , есть масса способов экономии усилий (нажатий на клавиши) при выполнении наиболее распространённых действий: автоматическое дополнение длинных названий команд или имён файлов, поиск и повторное выполнение команды, уже когда-то исполнявшейся раньше, подстановка списков имён файлов по некоторому шаблону и многое другое. Преимущества командной строки становятся особенно очевидны, когда требуется выполнять однотипные операции над множеством объектов. В системе с графическим интерфейсом потребуется столько перетаскиваний мышью, сколько есть объектов, в командной строке будет достаточно одной (пусть длинной и сложной) команды.

В этом разделе будут описаны основные инструменты, позволяющие при помощи командной строки решать любые задачи пользователя: от тривиальных операций с файлами и каталогами (копирование, переименование, поиск) до сложных задач, требующих массовых однотипных операций, которые возникают как в прикладной работе пользователя, при работе с большими массивами данных или текста, так и в системном администрировании. В первую очередь будут описаны инструменты, предоставляющие возможность работы с командной строкой в дистрибутиве ALT Linux 2.4 Master (командные оболочки и эмуляторы терминала), а затем основные утилиты командной строки, выполняющие важнейшие операции с файловой системой и данными.

Командные оболочки (shells)

Общая информация об оболочках

Командная оболочка (или интерпретатор команд) - это программа, задача которой состоит в том, чтобы передавать ваши команды операционной системе и прикладным программам, а их ответы - вам. По своим задачам ему соответствует command.com в MS-DOS или cmd.exe в Windows , но функционально оболочки в Linux несравненно богаче. На языке командной оболочки можно писать небольшие программы для выполнения ряда последовательных операций с файлами и содержащимися в них данными - сценарии (скрипты).

Зарегистрировавшись в системе (введя имя пользователя и пароль), вы увидите приглашение командной строки - строку, оканчивающуюся символом $ (далее этот символ будет использоваться для обозначения командной строки). В случае, если при установке был настроен запуск графического интерфейса при загрузке системы, то добраться до командной строки можно на любой виртуальной текстовой консоли (нажав Ctrl -Alt -F1 - Ctrl -Alt -F6 ) или при помощи любой программы эмуляции терминала, например xterm. Подробнее об эмуляторах терминала см. раздел Терминалы. В дистрибутиве ALT Linux 2.4 Master доступны следующие командные оболочки:


Самая распространённая оболочка под Linux . Она умеет дополнять имена команд и файлов, ведёт историю команд и предоставляет возможность их редактирования.

Клон korn shell, хорошо известной в системах UNIX командной оболочки.

Особенность этой оболочки состоит в том, что она не зависит ни от каких разделяемых библиотек и включает в себя упрощённые реализации некоторых важнейших утилит, таких какls , dd и gzip . Поэтому sash особенно полезна при восстановлении после некоторых системных сбоев или при обновлении версии важнейших разделяемых библиотек.

Улучшенная версия C shell.

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

Оболочкой по умолчанию является bash (Bourne Again Shell ). Чтобы проверить, какую оболочку вы используете, наберите команду: echo $SHELL .

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

Командная оболочка bash

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

Ввод команды завершается нажатием клавиши Enter , после чего команда передаётся оболочке на исполнение. В результате выполнения команды на терминале пользователя могут появиться сообщения о ходе выполнения команды или об ошибках, а появление очередного приглашения командной строки (оканчивающегося символом $ ) - знак того, что выполнение команды завершено и можно вводить следующую.

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

перейти на начало строки, это же можно сделать, нажав клавишу Home ;

удалить текущую строку;

Прервать выполнение текущей команды.

Вы можете использовать символ ; для того, чтобы ввести несколько команд в одну строку. bash записывает историю всех выполненных команд, поэтому несложно повторить или отредактировать одну из предыдущих команд. Для этого достаточно выбрать нужную команду из истории: клавиша вверх выводит предыдущую команду, вниз - последующую. Для того, чтобы найти конкретную команду среди уже выполненных, не пролистывая всю историю, наберите Ctrl -R и введите какое-нибудь ключевое слово, употребленное в той команде, которую вы ищете.

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

! номер команды

Если ввести !! , запустится последняя из набранных команд.

Иногда в Linux имена программ и команд слишком длинны. К счастью, bash сам может завершать имена. Нажав клавишу Tab , вы можете завершить имя команды, программы или каталога. Например, предположим, что вы хотите использовать программу декомпрессии bunzip2. Для этого наберите:

Затем нажмите Tab . Если ничего не происходит - значит, существует несколько возможных вариантов завершения команды. Нажав клавишу Tab ещё раз, вы получите список имён, начинающихся с bu .

Например, в системе есть программы buildhash, builtin, bunzip2 :

$ bu buildhash builtin bunzip2 $ bu

Наберите n > (bunzip - это единственное имя, третьей буквой которого является n ), а затем нажмите Tab . Оболочка дополнит имя и остаётся лишь нажать Enter , чтобы запустить команду!

Заметим, что программу, вызываемую из командной строки, bash ищет в каталогах, определяемых в системной переменной PATH . По умолчанию в этот перечень каталогов не входит текущий каталог, обозначаемый ./ (точка слэш). Поэтому для запуска программы prog из текущего каталога надо дать команду ./prog .

Базовые команды

Первые задачи, которые приходится решать в любой системе: работа с данными (обычно хранящимися в файлах) и управление работающими в системе программами (процессами ). Ниже перечислены команды, позволяющие выполнять наиболее важные операции по работе с файлами и процессами. Только первая из них - cd - является составляющей частью собственно командной оболочки, остальные распространяются отдельно, но всегда доступны в любой системе Linux . Все команды, приведённые ниже, могут быть запущены как в текстовой консоли, так и в графическом режиме (xterm, консоль KDE). Для получения более подробной информации по каждой из команд используйте команду man , например:

Man ls

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

Чтобы перейти в каталог /usr/bin , наберите (абсолютный путь):

Cd /usr/bin/

Некоторые варианты использования команды:

позволяет вам сделать текущим родительский каталог (обратите внимание на пробел между cd и .. ).

позволяет вам вернуться в предыдущий каталог. Команда cd без параметров возвращает оболочку в домашний каталог.

ls (list ) выдаёт список файлов в текущем каталоге. Две основные опции: -a - просмотр всех файлов, включая скрытые, -l - отображение более подробной информации.

Эта команда используется для удаления файлов. Внимание: удалив файл, вы не сможете его восстановить! . Синтаксис: rm имя_файла .

У данной программы существует ряд параметров. Самые часто используемые: -i - запрос на удаление файла, -r - рекурсивное удаление (т. е. удаление, включая подкаталоги и скрытые файлы). Пример:

Rm -i ~/html/*.html

Удаляет все файлы .html , в вашем каталоге html .

Mkdir, rmdir

Команда mkdir позволяет вам создать каталог, тогда как rmdir удаляет каталог при условии, что он пуст. Синтаксис:

Mkdir имя_каталога rmdir имя_каталога

Команда rmdir часто заменяется командой rm -rf , которая позволяет вам удалять каталоги, даже если они не пусты .

less позволяет вам постранично просматривать текст. Синтаксис:

Less имя_файла

Бывает полезно просмотреть файл перед тем, как его редактировать; основное же применение данной команды - конечное звено цепочки программ, выводящей существенное количество текста, которое не умещается на одном экране и в противном случае слишком быстро промелькнёт . Для выхода из less нажмите q (quit ).

Данная команда позволяет найти строку символов в файле. Обратите внимание, что grep осуществляет поиск по регулярному выражению , то есть предоставляет возможность задавать шаблон для поиска сразу целого класса слов. На языке регулярных выражений можно составлять шаблоны, описывающие6 например, такие классы строк: «четыре цифры подряд, окружённые пробелами». Очевидно, такое выражение можно использовать для поиска в тексте всех годов, записанных цифрами. Возможности поиска по регулярному выражению очень широки, за более подробными сведениями вы можете обратиться к экранной документации по grep (man grep ). Синтаксис:

Grep шаблон_поискафайл

Отображает список текущих процессов. Колонка команд указывает имя процесса, PID (идентификатор процесса) - номер процесса (используется для операций с процессом - например, отправки сигналов командой kill ). Синтаксис:

Ps аргументы

Аргумент u предоставляет вам больше информации, ax позволяет вам просмотреть те процессы, которые не принадлежат вам.

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

Kill PID_номер

PID_номер здесь - идентификационный номер процесса, вы можете узнать номер процесса для каждой выполняемой программы при помощи команды ps . Обычно команда kill отправляет процессу сигнал нормального завершения, однако иногда это не срабатывает и необходимо будет использовать kill -9 PID_number - в этом случае команда будет немедленно завершена системой без возможности сохранения данных (аварийное завершение). Список сигналов, которые команда kill может отправлять процессу можно получить, отдав команду kill -l .

Midnight Commander

Если вы многие годы работали в MS-DOS / Windows , то, наверное, ощущаете себя немного «не в своей тарелке». Для того, чтобы попасть в привычную среду, запустите Midnight Commanderкомандой mc . Midnight Commander - это свободный аналог Norton Commander и его популярного ныне потомка - Far. Если вы в какой-то момент сочтёте, что Midnight Commander что-то не умеет, то это, скорее всего, неверно. Ознакомьтесь с его описанием в /usr/share/doc/mc-номер_версии или дайте команду man mc .

Пакет coreutils

Антон Бояршинов

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

Эффективная работа с этими утилитами заключается именно в их комбинировании, они позволяют производить массовые однотипные операции по работе с файлами и текстовыми данными одной (пусть достаточно длинной) командой, что экономит огромное количество человеческого времени. Утилиты из этого пакета часто используются при написании сценариев командной оболочки. Далее описана большая часть утилит, входящих в пакет coreutils , для каждой утилиты приведено краткое описание ее функций. Более подробное описание по каждой утилите на русском языке вы можете получить, вызвав эту утилиту с ключом --help , а наиболее полную документацию (к сожалению, только на английском языке) - отдав команду info утилита .

Аннотация: Понятие командной оболочки. Обзор командных оболочек. Командная оболочка bash . Особенности работы (история команд, оператор "!" , действия по нажатию клавиши ). Многозадачность в консоли. Задания. Управление заданиями. Переменные среды Midnight commander

Ход занятия

1. В мире Linux и Unix работа на компьютере неразрывно связана с понятием командная оболочка (shell) – программа , позволяющая пользователю взаимодействовать с системой посредством ввода и выполнения команд. Тем не менее, командная оболочка является обычной программой. Доказать это можно, установив в качестве оболочки по умолчанию в файле passwd для пользователя другую программу. Но для того, чтобы система знала ее как оболочку, необходимо добавить абсолютное имя файла в /etc/shells .

В составе Linux идет несколько командных оболочек, их состав может меняться в зависимости от дистрибутива, но всегда вы сможете обнаружить:

Bourne Shell (sh) – самая старая и самая распространенная командная оболочка для Unix-систем. Нет ни одной системы Unix, где она бы не применялась.

Bourne Again Shell (bash) – расширенная Bourne Shell . Обладает массой приятных преимуществ, поэтому стала так популярна в последнее время. Является оболочкой " по умолчанию" практически для всех дистрибутивов Linux.

Также популярными оболочками являются:

csh – оболочка , система команд которой близка к языку программирования C

tcsh – оболочка , система команд которой близка к языку программирования Tcl .

zsh – оболочка , обладающая, наверное, самыми широкими возможностями. Является расширением sh (bourne shell) .

Поскольку в Linux " по умолчанию" используется bash , то о ней мы и поговорим.

2. Командная оболочка bash изначально являлась свободно-распространяемым аналогом Bourne Shell . В последствии, когда ее возможности выросли, тогда ее стали считать самостоятельным продуктом. Основными возможностями bash можно назвать следующие:

Таблица 1.1.
Возможность Комментарий
1 Редактирование строки Возможность отредактировать введенную команду вместо того чтобы переписывать ее заново
2 Организация каналов Возможность перенаправления ввода-вывода , организации каналов между выполняемыми задачами
3 Удобство в работе Использование псевдонимов команд, истории команд, автодополнения
4 Управление заданиями Возможность создания фоновых заданий и управления ими
5 Гибкость настройки Использование файлов-сценариев для входа для каждого пользователя отдельно, переменные среды

С перенаправлением ввода-вывода и каналами мы познакомимся позднее, на 8-м занятии. Поэтому этот пункт мы опустим. А вот об особенностях работы в bash , о предоставляемых им преимуществах поговорим подробнее.

Bash автоматически записывает все команды, набранные пользователем в файл ~/.bash_history . Для управления этим файлом служит команда history. history - это встроенная команда bash . То есть, исполняемого файла, соответствующего этой команде не существует. Сама командная оболочка выполняет все действия. Введенная без параметров, она просто выводит список всех команд, сохраненных в этом файле и идентична команде cat ~/.bash_history .

История команд существует для упрощения набора часто используемых команд. Историю команд можно перебирать по списку клавишами <вверх> и <вниз> .

Другой способ – набрать в командной строке ! и начало команды и нажать . Последняя команда из истории, первые буквы которой совпадают с набранными, будет выполнена. Например:

$ !/usr /usr/bin/perl ./ptest.pl OK $ !xfonts bash: !xfonts: event not found $

Но как ускорить ввод, если в истории еще нет необходимой нам команды? В этом случае нам поможет клавиша . Набрав несколько первых букв команды (или пути к файлу), нажмите и Bash автоматически дополнит вашу команду (или элемент пути). В случае, когда подходит несколько файлов или ни один файл не подходит, система выдаст звуковой сигнал. Если кнопку нажать повторно, то когда подходит несколько файлов – система выведет список , а когда ни одного – повторит звуковой сигнал

3. С первого занятия вы должны были помнить, что Linux – многозадачная среда. Однако, до сих пор Вы еще так и не смогли воспользоваться его многозадачностью. На первый взгляд кажется, что консоль не позволяет использовать возможности многозадачности системы, и только в графической среде можно запустить одновременно две или более программы. Но это не так! Консоль тоже многозадачная.

Во-первых, вы можете открыть несколько консолей, открыв в каждой из них по программе. Переключение между консолями будет производиться с помощью клавиш Ctrl+ , где x – номер консоли.

И даже в одной консоли с помощью команд управления заданиями Вы можете в полной мере использовать все преимущества многозадачной системы.

– комбинация клавиш, посылающая процессу неперехватываемый сигнал sigstop . Позволяет остановить выполнение процесса для передачи управления командной строке.

команда & – символ & после команды позволяет запустить ее в фоновом режиме.

jobs – выводит список текущих заданий командного интерпретатора.

bg <#j> – переводит задание #j в фоновый режим . Перед этим задание должно быть остановлено комбинацией клавиш . Если на данный момент у интерпретатора есть только одно задание, то номер можно не указывать.

fg <#j> – переводит задание #j в режим выполнения на переднем плане. Задание должно быть остановлено комбинацией клавиш или находиться в фоновом режиме. Если на данный момент у интерпретатора есть только одно задание, то номер можно не указывать.

$ man bash ^Z + Stopped man bash $ vim ^Z vim + Stopped vim $ bg 1 + man bash & $ jobs + Stopped man bash + Stopped vim $ fg 2 + vim $ fg + man bash $

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

Часто используемые пользователем переменные это:

PATH – переменная содержит пути, в которых системе следует искать исполняемые файлы, если в командной строке не набирается полный или относительный путь к ним.

PWD – переменная содержит полное имя текущей директории.

HOME – переменная содержит полный путь домашнего каталога пользователя .

HOSTNAME – переменная содержит имя компьютера.

LOGNAME – содержит имя пользователя

SHELL – содержит имя командной оболочки, запущенной в текущем сеансе.

USER - содержит имя пользователя , сеанс которого открыт сейчас.

Список переменных, установленных в системе можно увидеть с помощью команды export , введенной без параметров.

Командный интерпретатор bash имеет и свои переменные. Чтобы локальные переменные стали системными их необходимо экспортировать с помощью все той же команды export .Например:

$ export declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia" declare -x LANG="ru_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin" declare -x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM="Eterm" declare -x USER="gserg" $ EDITOR=/bin/vim $ export EDITOR $ export declare -x EDITOR="/bin/vim" declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia" declare -x LANG="ru_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" declare -x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM="Eterm" declare -x USER="gserg" $

Команда unset удаляет системную переменную. Например:

$ unset EDITOR $ export declare -x HOME="/home/gserg" declare -x HOSTNAME="WebMedia" declare -x LANG="ru_RU.KOI8-R" declare -x LOGNAME="gserg" declare -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" declare -x PWD="/home/gserg" declare -x SHELL="/bin/bash" declare -x TERM="Eterm" declare -x USER="gserg" $

5. На сегодняшнем занятии мы познакомимся с вами с еще одной, немного нестандартной, командной оболочкой Midnight commander . Это не командная оболочка в обычном понимании. Это текстовый файловый менеджер – аналог Norton Commander или Far . Midnight commander запускается командой mc . Мы поговорим о его возможностях.

Экран Midnight commander"а разделен на две части. Практически все пространство экрана занимают две панели со списком каталогов и файлов. По умолчанию, вторая снизу экрана линия представляет собой командную строку, в которой Вы можете выполнять обычные команды оболочки, а на самой нижней линии изображены подсказки для функциональных клавиш (F1-F10 ). Верхняя линия символов содержит меню , с помощью которого возможно выполнение множества функций. Для использования меню Вы можете кликнуть мышью в необходимый пункт или нажать клавишу F9 и с помощью клавиш управления курсором выбрать нужный пункт .

Панели Midnight commander обеспечивают просмотр одновременно двух каталогов. Одна из панелей является активной (в том смысле, что пользователь может выполнять те или иные действия с находящимися в ней файлами и каталогами). В активной панели подсвечено имя одного из файлов или каталога, а также выделен цветом заголовок панели в верхней строке. Имя заголовка совпадает с названием каталога, отображаемого в данный момент. Почти все операции выполняются в активной панели. Некоторые операции , такие как перенос или копирование файлов используют пассивную панель в качестве места, куда производится копирование , перенос и т.д.

Теперь поговорим об основных сочетаниях клавиш, которые помогут Вам работать с Midnight commander"ом .

для смены активной панели применяются клавиши или +

для того, чтобы отметить файл , нажмите или +

нажмите для получения справки

вызовет просмотрщик файлов

с помощью вы отредактируете файл

позволит Вам скопировать файл .

перенести или переименовать файл

создать каталог

Клавиша позволит удалить файл и/или каталог

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

– позволит выйти из Midnight commander .

переведет указатель в начало списка файлов,

- напротив – в конец списка.

и изменят положение показателя на страницу вверх и вниз соответственно.

Клавиша <*> на дополнительной клавиатуре позволит инвертировать выделение файлов (она не действует на каталоги)

Клавиша <+> на дополнительной клавиатуре позволит отметить файлы по маске, а <-> снять отметку с файлов по маске.

+ - обновить содержание директории (перечитав с диска или из сети)

+ - поменять местами правую и левую панели.

+ - убрать/вернуть панели.

Хотя сочетания быстрых клавиш являются оптимальным инструментом для того, чтобы сделать работу с Midnight commander"ом максимально быстрой и удобной, новичкам довольно тяжело выучить их сразу все. Чтобы восполнить этот пробел и добавить другие возможности, для которых отсутствуют комбинации клавиш, Midnight commander имеет меню (вызываемое по F9 ).

Меню состоит из пунктов: "Левая панель", "Файл", "Команда", "Настройки", "Правая панель" .

"Левая/правая панель" - эти пункты меню совершенно одинаковые. Различия между ними заключаются только в том, что выполняемые действия будут адресованы в левую или правую панель.

"Формат списка" - открывает диалоговое окно , в котором можно выбрать вид, в котором будет отображаться список файлов/каталогов. На выбор предлагается стандартный, укороченный и расширенный форматы. Однако пользователь в этом окне может и сам определить вид панели таким, какой его будет устраивать, выбрав переключателем "Определенный пользователем".

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

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

"Дерево" - переводит Midnight commander в режим, похожий на режим работы Проводника из OC Windows . В панели, к которой применена команда "Дерево" , строится дерево каталогов, по которому можно перемещаться с помощью стрелок управления курсором , клавиш PageUp, PageDown, Home, End . В соседней панели высвечивается содержимое каталога, подсвеченного в дереве.

"Порядок сортировки" - открывает диалоговое окно , в котором вы можете выбрать атрибут , по которому будет производиться сортировка файлов и каталогов в списке из таких как имя, расширение, время правки, время доступа , время изменения атрибутов, размер, узел (на котором расположен файл ). Также можно оставить файлы без сортировки, сортировать с учетом регистра или в обратном порядке.

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

"FTP-соединение" - с помощью этой команды Вы можете установить соединение с удаленным (или даже локальным) компьютером по протоколу ftp . Если введен только адрес удаленного сервера, то Midnight commander попытается установить анонимное соединение. Полная же строка, с помощью которой задается узел такова:

ftp:имя_пользователя:пароль@адрес_сервера:порт/каталог_на_сервере

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

"Shell-соединение" - позволяет открыть сетевое соединение по протоколу FISH (FIle transfer over SHell – передача файлов посредством оболочки). FISH использует протоколы RSH (Remote SHell – удаленная оболочка ) или SSH (Secure SHell – защищенная оболочка , аналог RSH , но с поддержкой шифрования передаваемых данных). Полная строка, с помощью которой пользователь может задать удаленный узел такова:

sh:имя_пользователя@адрес_сервера:опции/каталог_на_сервере

Параметр имя_пользователя , опции и каталог_на_сервере не обязательны. Если имя пользователя не указано, то Midnight commander будет пытаться зарегистрироваться на удаленной системе с именем пользователя, используемым на локальном компьютере.

"Пересмотреть" - аналог комбинации клавиш + - вызывает обновление списка файлов и каталогов в текущей панели, перечитав их с диска или по сети.

"Файл" - раздел меню , пункты которого обеспечивают основные функции обработки файлов и каталогов, такие как:

"Меню пользователя" - позволяет вызвать меню , которое устанавливает сам пользователь . Также вызывается клавишей .

"Просмотр файла" - аналог функции, выполняемой по нажатию . Позволяет просмотреть подсвеченный файл (или зайти в каталог). Поддерживает множество форматов, таких как текстовые форматы, архива, Winword DOC, исполняемые файлы Linux и т.д.

"Просмотр файла..." - то же, что и предыдущий пункт , но действует не на подсвеченный файл , а на тот, имя и путь к которому будет введен в диалоговом окне.

"Просмотр команды" - позволяет выполнить команду и просмотреть ее стандартный вывод в режиме просмотра файла.

"Редактирование" - открывает файл для правки. Простой встроенный текстовый редактор имеет достаточный набор встроенных функций для редактирования файлов конфигурации, исходных текстов программ и т.д., а встроенная автоматическая подсветка синтаксиса делает редактирование более удобным, а редактируемые тексты более удобочитаемыми.

"Копирование" - копирует файл из активной панели в пассивную. Аналог функции, вызываемой по . По умолчанию, копируемым считается подсвеченный в активной панели файл (или группа файлов), а местом назначения- каталог, открытый в пассивной панели. Это можно изменить, поправив значения полей, в открывающемся после вызова этой команды, диалоге.

"Права доступа" - позволяет изменить права доступа к файлу (или группе файлов) в диалоговом окне.

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

"Владелец/группа" - изменяет владельца и/или группу, к которой принадлежит файл /каталог.

"Права (расширенные)" - позволяет изменять одновременно права доступа к файлу и его владельца и/или группу. Права доступа представлены в виде трех последовательностей rwx для владельца, группы и всех пользователей.

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

"Создание каталога" - создает каталог. Аналог функции, вызываемой по . По умолчанию, каталог создается в каталоге, открытом в активной панели. Это можно изменить, если в открывшемся диалоге указать полный путь к создаваемому каталогу.

"Удаление" - удаляет файл /группу файлов/каталог. Аналог функции, вызываемой по .

"Смена каталога" - меняет текущий каталог . Аналогична команде cd командного интерпретатора Bash . Необходимый каталог вводится в диалоговом окне.

"Отметить группу" - Отмечает группу файлов по маске в каталоге, открытом в активной панели. Аналог функции, вызываемой с помощью <+> на дополнительной клавиатуре.

Loading...Loading...