Предварительно замечу, что командой в ОС Linux называется все, что может быть выполнено: исполняемый файл, встроенная команда текущей программы и даже формируемая на ходу последовательность символов. Синтаксис обычной команды:
имя_команды [короткие_ключи] [длинные_ключи] [аргументы]
где в квадратные скобки взяты необязательные данные. Ключи можно указывать в любом порядке, разделяя их пробелами. Аргументы тоже отделяются друг от друга пробелами.
Имена коротких ключей, или опций, состоят из одной буквы, перед которой стоит символ «-» (дефис). У ключа может быть свой аргумент. Короткие ключи, у которых нет аргументов, можно соединять под одним дефисом: так, команда ls -l -a -d
ls -lad
.Имена длинных ключей — это осмысленные слова, перед которыми стоят два символа «-» (дефис). Большинство команд понимают ключи --help
и --usage, требующие вывести краткую справку об использовании команды. Необязательный ключ «--» сигнализирует об окончании списка ключей и начале аргументов.Справку о ключах и аргументах команды можно получить по команде man
.Текущий каталог — это каталог, от которого отсчитываются относительные пути. В каждый момент времени с каждой работающей программой, в том числе с командной оболочкой, связан единственный такой каталог. Узнать, какой каталог сейчас является текущим, можно с помощью команды pwd
Сменить текущий каталог можно командой
cd [новый_каталог]
Для смены текущего каталога на домашний каталог пользователя можно вместо имени нового каталога указать специальный символ ~
cd ~
.Разрешается переходить также в псевдоподкаталоги «.» и «..». В первом случае ничего не изменится, а во втором текущим каталогом станет родительский.Уже знакомая команда ls [имя_каталога]
Вместо имени каталога можно указать шаблон имен файлов: например, ls my*
Подробнее об аргументах и ключах команды ls
(как, впрочем, и любой другой команды) можно узнать у справочной системы, набрав командуman ls
.Создать пустой файл можно командой
touch <имя_файла>
Вообще-то она предназначена для того, чтобы для всех заинтересованных программ (например, утилиты сборки проекта make
) файл выглядел новее, чем на самом деле: она меняет время последнего изменения файла на текущее время. Но если файла с таким именем не существует, то она его создаст.Текстовые файлы можно создавать, вводя текст с консоли:
$ cat > hello.world
Привет!
Оказывается, команду cat
можно заставить не только выводить файл на консоль, но и вводить с нее. Это достигается перенаправлением ввода-вывода, о котором подробнее будет сказано в главе 8. В таком режиме команда cat считает своими входными данными поток байтов, поступающий с клавиатуры, и выводит его в указанный файл. Иными словами, в файл записывается все, что вы после этой команды введете с клавиатуры. Чтобы закончить ввод, нажмите Ctrl+D.Если файл с указанным именем существует, то команда cat
>>
:$ cat >> hello.world
Каталог создается командой
mkdir <имя_каталога>
Чтобы операция создания файла или подкаталога прошла успешно, вы должны иметь право записи в каталог, в котором вы его создаете.
Удалить пустой каталог можно командой
rmdir <имя_каталога>
Удаляется файл командой
rm <имя_файла>
При этом наличие прав на запись и даже чтение этого файла не требуется: достаточно иметь право на запись в каталог, где находится этот файл. Ключи команды rm
:♦ -i
: требует подтверждения удаления для каждого удаляемого файла. Если вы заказали удаление группы файлов (например, по шаблону имениrm chernovik*
), то среди них может оказаться файл, который вам еще нужен: безопаснее применить ключ -i. Подтвердите удаление каждого файла или откажитесь от него, введя символ Y или N соответственно;♦ -f
: не запрашивать подтверждения, не выводить сообщений об ошибках. Если указаны оба ключа -i и -f, то срабатывает последний указанный;♦ -r
: рекурсивное удаление каталога со всеми его подкаталогами. Непустой каталог можно удалить только так.Файл копируется командой cp
. Формат этой команды:cp [ключи] <исходный_файл> {<файл_назначения> | <каталог_назначения>}
Полезные ключи команды cp
:♦ -i
: требовать подтверждения перед перезаписью существующего файла;♦ -f
: не требовать подтверждения;♦ -r
: рекурсивно копировать каталог со всеми подкаталогами;♦ -а
: сохранять атрибуты файла;