♦ :w! <имя> сохранить пол новым именем, переписав существующий файл;
♦ :q выйти;
♦ :q! принудительно выйти без сохранения;
♦ :wq сохранить и выйти.
Разное полезное:
♦ N u отменить последние N изменений;
♦ N Ctrl+r вернуть последние N отмененных изменений;
♦ U отменить изменения в последней строке;
♦ N r <символ> заменить N следующих символов на <символ>;
♦ N >> добавить отступ (Tab) в N следующих строк;
♦ N << удалить один отступ (Tab) из N следующих строк;
♦ :sh временно выйти в оболочку (вернуться — exit);
♦ :!<команда> выполнить команду оболочки.
Быстрый поиск имени программы можно выполнить прямо из командной строки: для этого введите первые буквы нужной вам команды и нажмите <Tab>. Если введенные вами буквы однозначно определяют команду или исполняемый файл, то ее имя появится в командной строке. Эта функция называется автозаполнением командной строки. Если не появилось ничего, нажмите <Tab> еще раз для вывода списка всех доступных команд, начинающихся со введенных букв. Если таких команд окажется больше сотни, у вас попросят подтверждения того, что вы действительно хотите увидеть их все.
В разных каталогах может оказаться несколько исполняемых файлов с одинаковыми именами. Какой из них будет исполнен? На этот вопрос отвечает команда which. Она просматривает каталоги, перечисленные в переменной окружения PATH, в поисках исполняемого файла с указанным именем, и выводит абсолютное имя первого встреченного из них.
Команда whereis ищет не только исполняемый файл, но и его справочные страницы и исходный код.
Команда locate ищет файл по образцу имени, опираясь на свою базу данных о файловой системе. Ее вариант с повышенной безопасностью slocate сохраняет данные о правах доступа к файлам, так что пользователь не увидит тех файлов, на которые у него нет прав. В дистрибутиве Fedora Core 3 команда locate представляет собой символическую ссылку на утилиту slocate.
Команда find ищет файл по его атрибутам в указанном каталоге и его подкаталогах на заданную глубину. Например, при установке операционной системы я отказался устанавливать файловый менеджер Midnight Commander, а теперь он мне понадобился. Для каждого из 4 компакт- дисков дистрибутива запускаю команду поиска по шаблону имени «mc*», то есть всех файлов, имена которых начинаются с mc:
$find /media -name mc*
/media/cdrecorder/Fedora/RPMS/mc-4.6.1-0.8.i386.rpm
В итоге на третьем диске найден пакет RPM. Об установке программного обеспечения из пакетов RPM будет сказано в главе 7.
Как многопользовательская операционная система, ОС Linux содержит механизм разграничения доступа к данным, позволяющий как защитить данные одного пользователя от нежелательного вмешательства других, так и разрешить другим доступ к этим данным для совместной работы.
Как уже сказано, любой ресурс компьютера под управлением ОС Linux представляется как файл, поэтому мы будем говорить только о правах доступа к файлу.
По отношению к файлу пользователь может входить в одну из трех категорий: владелец, член группы владельца, все остальные. Для каждой из этих категорий есть свой набор прав доступа.
Первым владельцем файла становится его создатель. Дальше файл можно передать другому владельцу или в другую группу командой
chown [ключи] <новый_пользователь>[:новая_группа] <файл>
или
chgrp [ключи] <новая_группа> <файл>
В некоторых реализациях Linux передать файл другому владельцу имеет право только суперпользователь, а в других — также его текущий владелец.
Набор прав доступа состоит из прав на чтение, запись и исполнение файла. В символьном представлении он выглядит как строка «rwx», где вместо любого символа может стоять дефис. Буква означает наличие права (r — чтение, w — запись, x — исполнение), дефис — его отсутствие.
Очевидно, что эти три бита могут быть записаны еще и как восьмеричное число. Так, права доступа r-x (чтение и исполнение без записи) понимаются как три двоичные цифры 101 или как восьмеричная цифра 5. Численное представление прав доступа называется абсолютным, или двоичной маской.
Полная строка прав доступа в символьном представлении устроена так:
<права_владельца><права_группы><права_остальных>
В абсолютном представлении права владельца являются старшим разрядом восьмеричного числа, права группы — вторым и права остальных — третьим. Так, права rwxr-x--x выглядят как число 111 101 001, или 751.
Команда изменения прав доступа chmod понимает как абсолютное, так и символьное указание прав.
Назначим файлу /home/den/README
права rw-r-----, то есть разрешим себе чтение и запись, группе только чтение, остальным пользователям — ничего:
$cd ~ # переход в свой домашний каталог
$chmod 640 README # 110 100 000 == 640
$ls -l README
-rw-r----- 1 den users 0 Feb 14 19:08 /home/den/README
В символьном представлении можно явно указывать, кому какое право мы хотим добавить, отнять или присвоить. Добавим право на исполнение файла README группе и всем остальным:
$chmod go+x README
$ls -l README
-rw-r-x--x 1 den users 0 Feb 14 19:08 /home/den/README
Формат символьного режима:
chmod <категория><действие><набор_прав> <файл>
Возможные значения аргументов команды представлены в таблице 2.3.
Аргументы команды chmod
в символьном режиме Таблица 2.3
Аргумент | Значение | |
---|---|---|
Категория | u | Владелец |
g | Группа владельца | |
o | Прочие | |
a | Все пользователи, то есть «a» эквивалентно «ugo» | |
Действие | + | Добавить набор прав |
- | Отменить набор прав | |
= | Назначить набор прав | |
Право | r | Право на чтение |
w | Право на запись | |
x | Право на исполнение | |
s | Право смены идентификатора пользователя или группы | |
t | Бит прилипчивости (sticky-бит) | |
u | Такие же права, как у владельца | |
g | Такие же права, как у группы | |
o | Такие же права, как у прочих |