разделяя их пробелами. Аргументы тоже отделяются друг от друга пробелами.
Имена коротких ключей, или опций, состоят из одной буквы, перед которой стоит символ «-» (дефис). У ключа может быть свой аргумент. Короткие ключи, у которых нет аргументов, можно соединять под одним дефисом: так, команда ls -l -a -d
эквивалентна команде ls - lad
.
Имена длинных ключей — это осмысленные слова, перед которыми стоят два символа «-» (дефис). Большинство команд понимают ключи --help и --usage, требующие вывести краткую справку об использовании команды. Необязательный ключ «--» сигнализирует об окончании списка ключей и начале аргументов.
Справку о ключах и аргументах команды можно получить по команде man.
Текущий каталог — это каталог, от которого отсчитываются относительные пути. В каждый момент времени с каждой работающей программой, в том числе с командной оболочкой, связан единственный такой каталог. Узнать, какой каталог сейчас является текущим, можно с помощью команды pwd
без аргументов.
Сменить текущий каталог можно командой
cd [новый_каталог]
Для смены текущего каталога на домашний каталог пользователя можно вместо имени нового каталога указать специальный символ ~
: cd ~
.Разрешается переходить также в псевдоподкаталоги «.» и «..». В первом случае ничего не изменится, а во втором текущим каталогом станет родительский.
Уже знакомая команда ls [имя_каталога]
выводит его содержимое на экран. Если не указывать имя каталога, команда выведет содержание текущего каталога.
Вместо имени каталога можно указать шаблон имен файлов: например, ls my*
покажет все файлы и подкаталоги, имена которых начинаются с «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: рекурсивно копировать каталог со всеми подкаталогами;
♦ -а: сохранять атрибуты файла;
♦ -d: копировать символические ссылки вместо файлов, на которые они указывают;
♦ -s: создавать символические ссылки вместо копирования (-l — жесткие);
♦ -u: не переписывать существующий файл, если он модифицирован позже;
♦ -х: игнорировать подкаталоги, расположенные в других файловых системах.
Кстати, команда cat с перенаправленным выводом тоже может скопировать файл:
$ cat hello.world > copy.of.hello.world
Команда mv перемещает или переименовывает файлы. Формат команды:
mv [ключи] <исходный_файл> {<файл_назначения> | <каталог_назначения>}
Ключи -i, -f имеют тот же смысл, что для команд cp и rm.
Перед тем, как просматривать файл, неплохо было бы убедиться, что он действительно является текстовым, то есть содержит только печатные ASCII-символы. Для проверки типа файла служит команда
file <имя_файла>
Если ее ответ содержит слово «text», то файл можно безопасно вывести на терминал. Вывод двоичного файла может сбить кодировку так, что вместо набираемых на клавиатуре символов вы увидите черт знает что. Если это все же случилось, введите вслепую команду