КаталогИндекс раздела
НазадОглавлениеВперед


4. КАТАЛОГИ И ФАЙЛЫ

При регистрации пользователя ему назначается администратором собственный каталог пользователя (Home directory).

4.1. Печать рабочего каталога

Узнать его имя можно так:

   $ pwd                          (print working directory)
   /users/mary

Выводится полное имя рабочего (текущего) каталога /users/mary, где users - имя охватывающего каталога в иерархии каталогов ФС. Еще один охватывающий каталог root подразумевается по умолчанию (корневой главный каталог):

   root/users/mary = /users/mary.

Изменение текущего каталога можно сделать командой cd, рассматриваемой позже.

4.2. Печать содержимого каталога

   $ ls                - печать текущего каталога;
   $ ls -al            -a(all) - все файлы и подкаталоги;
                       -l(long) - полную информацию;
   $ ls /              - печать каталога root;
   $ ls -l /           - печать каталога root полная.

4.3. Структура корневого каталога

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

Каталоги можно посмотреть командой ls:

   $ ls -l /bin         - часто используемые команды;
   $ ls -l /bin/bin     - редко используемые команды;
   $ ls /dev            - драйверы устройств;
   $ ls /users          - каталоги пользователей.

4.4. Изменение рабочего каталога

Изменение рабочего каталога производится командой (cd - change directory).

   $ cd /etc
   $ ls -l     - печать команд администратора
   $ cd /usr
   $ ls -l bin - редко используемые команды
   $ cd        - без параметров - возврат к собственному
                 (home) каталогу.

4.5. Соглашения по наименованию каталогов и файлов

Малые и большие буквы считаются различными. Символы . и _ разрешены только внутри имени. Тип файла указывается окончанием имени точкой с символом (основные):

   .c - программа на C (например, program.c);
   .h - текст на C, включаемый в программу на C (header);
   .f - программа на языке ФОРТРАН;
   .p - программа на языке ПАСКАЛЬ;
   .o - объектный код, полученный транслятором с любого языка;
   .a - библиотечный (архивный) файл.

4.6. Печать содержимого файла

Команда cat (от concatenate) - сцепить несколько (или один) файлов и направить результат на стандартный вывод (Standart Output), обычно на экран дисплея.

Пример:

   $ cat /etc/motd - посмотреть файл (message of today)
   The system will down at 17:00.

Этот файл, создаваемый администратором для текущих объявлений, обычно печатается автоматически при входе в систему (login). Если Вы забыли его содержание, можно напечатать еще раз как в примере.

4.7. Просмотр конца файла

Команда tail печатает конец файла. По умолчанию - 10 последних строк:

   $ tail /usr/pub/greek
   .
   .
   .
   .

Явно можно задать количество (со знаком -) или номер строки, от которой печатать до конца (со знаком +):

   $ tail -3 /usr/greek  - три последние строки;
   $ tail +6 /usr/greek  - последние строки, начиная с 6-й.

4.8. Определение типа файла

Применяется команда file:

   $ file /bin/ls /usr/bin etc/passwd usr/include/stdio.h
   /bin/ls: pure executable             - исполняемый;
   /usr/bin: directory                  - каталог;
   /etc/passwd: ascii text              - текст в коде ASCII;
   /usr/include/stdio.h:C program text  - текст C-программы.

4.9. Создание каталога пользователем

Ваш рабочий каталог, являющийся корнем вашей ветви ФС, создается администратором. Вы можете создать нижележащие каталоги командой mkdir (make directory).

Типичная структура каталогов пользователей (с учетом групп):

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

   $ cd                          - вернуться "домой" (home);
   $ mkdir progs texts           - создать каталоги в home;
   $ cd progs                    - перейти в каталог progs;
   $ mkdir c p f                 - создать каталоги в progs

и так далее.

4.10. Копирование файлов командой cp

Это простейший способ создать файл:

   $ cp /etc/motd message.

Полагая, что текущий каталог progs/c, мы создали файл progs/c/message.

Можно копировать файл в текущий или другой каталог, не меняя его имени:

   $ cp /etc/motd progs/c.

Будет создан файл progs/c/motd.

Если текущий каталог progs/c, того же эффекта достигает команда:

   $ cp /ets/motd . (с точкой в качестве параметра).

Если второй аргумент каталог, то в качестве первого можно указывать несколько файлов:

   $ cp /etc/motd /usr/include/stdio.h progs/c

Режим доступа файла - копии совпадает с режимом доступа исходного файла (см. раздел 4.16).

4.11. Перенос и переименование файлов командой mv

Эта команда переносит файл или каталог из одного места файловой системы в другое. Побочный эффект - переименование (если исходный и конечный каталоги совпадают).

Отличие от копирования: исходный файл пропадает.

Пример:

   $ mv message mesg
   $ ls
   mesg ....

Если файл назначения защищен от записи, то система печатает режим доступа и спрашивает подтверждение переноса.

Пример:

   $ cp message mesg
   $ chmod 444 message - только чтение
   $ mv mesg message
   message: mode 444? y

Второй аргумент может быть каталогом, тогда файл переносится под тем же именем:

   $ mv message progs/c
   $ cd progs.c
   $ ls
   message ....

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

4.12. Удаление файлов командой rm

rm удаляет файл из каталога и уничтожает его:
   $ cd progs/c
   $ rm motd
   $ ls
   message (нет motd)

Можно удалить одной командой rm несколько файлов. Есть интерактивный вариант, требующий подтверждения на каждый файл (ключ -i):

   $ rm -i file1 file2
   file1 : n (no - нет)
   file2 : y (yes - да)

Можно форсировать уничтожение ключом -f (даже если файл защищен по записи): -f и -i взаимно исключают друг друга.

   $ rm -f stdio.h.

Однако этими средствами нельзя уничтожить каталог, пока не уничтожены все файлы. Это можно сделать рекурсивно: ключ -r (уничтожить все поддиректории)

   $ rm -r progs.

Вариант:

   $ rm -r *     - уничтожить все поддерево.

4.13. Уничтожение пустого каталога: rmdir

Пустой каталог удаляется (remove directory):

   $ rmdir progs
   [rmdir:progs not empty] - сообщение, если каталог не пуст.

4.14. Использование метасимволов *, ?, []

Метасимволы служат для подстановки любых строк и символов. В именах файлов в командах языка заданий Shell:

   *         - представляет произвольную строку (возможно, пустую);
   ?         - любой одиночный знак;
   [C1 - C2] - любая литера из диапазона C1 - C2 (в стандарте ASCII).

Примеры:

  1.       $ ls c?
          c1 c2 c3 cs cz
    
  2.       $ ls c*
          c1 c12 c2 c23 c3 cs cs1 cxy cz
    
  3.       $ ls ?1*
          c1 c12
    
  4.       $ ls *1*
          c1 c12 cs1
    
  5.       $ ls c [12 x y z]
          c1 c2 cz
    
  6.       ls c [12 x y z *]
          c1 c2 c12 c25 cz cxy
    

4.15. Непечатные символы в именах файлов

Символы со знаком Ctrl: ^A, ^[ (escape) и т.п., полученные одновременным нажатием клавиши Ctrl и указанной после символа ^ клавиши, не видны на печати. Команда ls может показать файл, а rm и другие команды могут не принять имя этого файла (т.к. часть символов не видна). Выход - в использовании * в именах (или использование режима rm -i):

   $ ls
   arron circle square triangle
   $ rm square
   rm: square non-existent (если вместо q в имени ^q)
   $ ls s*
   square
   $ rm s*
   $

Теперь файл удален.

4.16. Владелец файла и защита файла

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

Каждый файл имеет 3 вида разрешения на доступ:

Все комбинации трех видов разрешения доступа для трех классов пользователей (9 комбинаций) записываются в формате (если все права есть)

     rwx               rwx                 rwx     или 777
      ▀                 ▀                   ▀
   Владелец             ▀                   ▀
                      Группа                ▀
                                          Остальные

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

    r--r--r-  или  444

Пример:

    $ ls -l /bin
    -r-xr-xr-x     1bin  1986  Nov.26    12:00 ar
    ...

Эта команда показывает режимы доступа.

4.17. Установка и изменение режима доступа к файлу: chmod

Формат команды chmod (change mode) для установки режима:

   chmod <режим> <файлы>

Пример:

   $ chmod 644 f1 f2 f3

где 644 соответствует rw-r--r--

Формат команды chmod для изменения режима:

   chmod <изменения> <файлы>

В изменениях используются обозначения:

   u - user             r - read
   g - group            w - write
   o - other            x - execute
   a - all
   = - назначить
   + - добавить
   - - отнять

Пример:

   $ ls -l
   -r-------- ... f1
   -r-------- ... f2
   -r-------- ... f3
      $ chmod  a = r, u + w    f1 f2 f3
      или (эквивалентный вариант изменения прав доступа)
      $ chmod  u = rw, go = r  f1 f2 f3
   $ ls -l
   -rw-r--r-- ... f1
   -rw-r--r-- ... f2
   -rw-r--r-- ... f3
   $ chmod o-r f1 f2 f3
   $ ls -l
   -rw-r----- ... f1
   -rw-r----- ... f2
   -rw-r----- ... f3,

Другие пользователи, не входящие в группу, потеряли право читать файлы.


НазадОглавлениеВперед
КаталогИндекс раздела