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», то файл можно безопасно вывести на терминал. Вывод двоичного файла может сбить кодировку так, что вместо набираемых на клавиатуре символов вы увидите черт знает что. Если это все же случилось, введите вслепую команду
$ tput reset
(или, если вы работаете в графическом режиме в окне виртуального терминала, выберите в его меню команду Терминал|Сброс и очистка для среды GNOME или Edit|Reset & Clear Terminal для среды KDE).
Кроме уже упомянутой команды cat, для вывода файла на терминал служат команда
more <имя_файла>
и ее улучшенный вариант less.
Команда-фильтр more разбивает поток своего вывода на порции размером в экран и ожидает ввода пользователя для отображения следующей порции. Чтобы увидеть следующую строку, нажмите <Ввод>; чтобы увидеть следующий экран, нажмите <пробел>; чтобы прервать работу команды, нажмите <Q> или Ctrl+C.
Утилита less позволяет листать выводимый файл не только вперед, но и назад (клавишами PgDn и PgUp), перемещаться к указанному месту в файле, искать по образцу и дает еще много полезных возможностей. В общем, man less.
Если интересующая вас информация находится в конце файла (например, вы хотите просмотреть журнал системных сообщений messages
в каталоге /var/log
, чтобы узнать, что именно только что пошло наперекосяк), то вам поможет команда
tail [-N] [имя_файла]
где N — число выводимых строк файла, считая от последней. Командой
head [-N] [имя_файла]
можно просмотреть, наоборот, только первые N его строк. Значение N по умолчанию равно 10.
Если вы хотите просмотреть не весь файл, а только те его строки, которые содержат заданный фрагмент текста, используйте команду-фильтр grep. Например, я хочу сменить клавишу переключения раскладки клавиатуры в графическом режиме. Я знаю, что строки конфигурационного файла /etc/X11/xorg.conf
, имеющие отношение к клавиатуре, содержат фрагмент XKB… а может, Xkb или xkb? Неважно:
$ grep -in xkb /etc/X11/xorg.conf
[...]
65: Option "XkbLayout" "us,ru"
66: Option "XkbOptions" "grp:shift_toggle,grp_led:scroll"
Я указал ключи: -i, требующий игнорировать различия регистра в образце для поиска и файле, и -n, требующий выводить номера строк, в которых встречается образен xkb.
Для всех команд ключи без аргументов можно соединять: запись -in эквивалентна записи -i -n.
Вышеприведенный пример показывает, что переключением раскладки клавиатуры в графическом режиме управляет комбинация клавиш Shift + Shift. Неудобно: в консольном режиме я привык к Ctrl+Shift. Надо заменить значение shift_toggle на ctrl_shift_toggle. Такие мелкие правки конфигурационных файлов — обычное дело для администратора, поэтому средство их внесения присутствовало в UNIX-системах всегда. Это консольный редактор vi, входящий в каждый дистрибутив Linux (в дистрибутив Fedora Core 3 включен его улучшенный вариант vim, но команда vi тоже доступна: она стала псевдонимом для команды vim).
Итак, я делаю на всякий случай резервную копию конфигурационного файла /etc/X11/xorg.conf
и приступаю к его редактированию:
$ cp /etc/X11/xorg.conf /etc/X11/xorg.conf.sav
$ vi /etc/X11/xorg.conf
Перемещаюсь к строке 66 командой 66G (буква G заглавная: редактор vi различает регистры). Клавишами управления курсором перемещаюсь к началу слова shift.
Включаю режим вставки командой i (строчная буква). Набираю ctrl_. Выключаю режим вставки клавишей Esc. Сохраняю изменения командой :w. Выхожу по команде :q.
Сложно и на вид бессистемно? Да. Зато есть команда :help.
Как полноэкранный редактор, vi может находиться в одном из двух режимов. В режиме вставки вводимые символы поступают в редактируемый файл, в командном режиме они воспринимаются как команды. Перечислю коротко самые употребительные команды редактора vi:
РЕЖИМ ВСТАВКИ.
Включение режима вставки:
♦ i в текущей позиции курсора;
♦ I перед первым непробельным символом в текущей строке;
♦ w в новой строке, добавленной после текущей;
♦ W в новой строке, добавленной перед текущей.
Выключение режима вставки:
♦ <Esc>
Команды режима вставки:
♦ Ctrl+a повторить предыдущую вставку;
♦ Ctrl+у вставить символ, находящийся над курсором (в предыдущей строке);
♦ Ctrl+e вставить символ, находящийся под курсором (в следующей строке).
КОМАНДНЫЙ РЕЖИМ.
Удаление (здесь и далее N — это число):
♦ N x N символов под курсором и справа от него;
♦ N X N символов слева от курсора;
♦ N dd N строк;
♦ D до конца текущей строки;
♦ N D до конца текущей строки и еще N-1 строку.
Копирование и вставка строк:
♦ N yy взять в буфер N строк от текущей и ниже;
♦ p вставить содержимое буфера после текущей строки;
♦ P вставить содержимое буфера перед текущей строкой.
Поиск и переход:
♦ N G перейти к строке с номером N;
♦ $ G перейти к последней строке файла;
♦ /<образец> искать образец вниз от курсора;
♦ ?<образец> искать образец вверх от курсора;
♦ n повторить поиск в том же направлении;
♦ N (буквально «N»): повторить поиск в обратном направлении.
Сохранение и выход:
♦ :w сохранить текущий файл;
♦ :w <имя> сохранить под новым именем, если файл <имя> еще не существует;