Полезная информация


        НЕСКОЛЬКО ПРОСТЕЙШИХ КОМАНД UNIX

                          Первоначальная версия этого текста
                          подготовлена НПО "КЛОТО"

1.1. Система  UNIX различает БОЛЬШИЕ и  малые буквы, и  к этому
нужно привыкнуть.

1.2. Если вы уничтожили какой-нибудь файл, то никаких проблем с
его восстановлением у вас не  будет.  Потому  что  восстановить
уничтоженный файл в системе Unix НЕВОЗМОЖНО. В Unix отсутствует
команда unerase, и к этому тоже нужно привыкнуть.  Вирусы и ан-
тивирусы в Unix тоже отсутствуют. Так что, пока хоть этой проб-
лемы у администратора машины не будет.

1.3. В имени  файла  директории отделяются от последующей части
символом "/" Если имя начинается со слэша -  значит, это полное
маршрутное имя. Простое  имя файла может состоять из ЛЮБЫХ сим-
волов. Длина простого имени не более 256 символов. Длина полно-
го маршрутного имени файла не более 1024 символов.  Для задания
шаблона имен  используются  символы  * (произвольная последова-
тельность символов) и  ?  (один произвольный символ). Два имени
являются выделенными. Имя из одной точки "." обозначает текущую
директорию, имя из двух точек ".." - вышележащую.

1.4. Чтобы  запустить  программу на выполнение, достаточно наб-
рать ее имя и,  если  нужно, другие аргументы командной строки.
Имя программы  - это маршрутное  имя файла, в котором эта прог-
рамма находится.  Аргументы  разделяются  одним или несколькими
пробелами.  Ключи  команды обычно (но необязательно) выделяются
знаком  "-".  Если  командная  строка   кончается   знаком   &,
происходит  запуск  параллельного  процесса,  в рамках которого
будет выполняться команда, сообщается его  номер,  после   чего
можно продолжать работу не дожидаясь завершения фоновой задачи.

     команда -ключи -ключи ...  прочие разные аргументы ...

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

       команда  > имя_файла
(для стандартного вывода),

       команда  < имя_файла
(для переназначения стандартного ввода),

       команда  2> имя_файла
(для стандартного протокола - системной диагностики).
     Пример - записать в файл infdir содержимое текущей  дирек-
тории:

        ls > infdir

     Если вывод назначен в файл, то  перед  началом  выполнения
команды создается пустой файл с  соответствующим  именем  (если
файл уже существовал, он опустошается), а затем в него  помеща-
ется информация. Если информацию нужно дописать в конец сущест-
вующего файла, следует воспользоваться конструкцией

        команда  >> имя файла
        команда 2>> имя файла

1.6. Пользователи системы UNIX объединяются в  группы, и каждая
из групп может обладать определенным набором привилегий.

1.7. Программы могут распознавать  значения  переменных окруже-
ния, значения которых были заданы перед их запуском.

TERM=vt220
HOME=/home/moshkow
PATH=:/bin/:dss/rk:/udd/moshkow/bin

1.8. Выдачу одной команды можно перенаправлять на вход
другой команды. Для этого используется "|" - конвейер.

Например: посчитать суммарный размер и число  строк всех файлов
в каталоге /tmp, имена которых начинаются с символов "text" ...

    cat /tmp/text* | wc -c

# Команда cat сливает вместе все файлы вида /tmp/text*,
# wc -c -l считает количество символов и число строк во входном
# потоке.

Или просмотреть с листанием длинную выдачу команды:

   ps -ef  |  more

Того же результата можно достичь и без конвейера таким образом:

  ps -ef > temp-file
  more temp-file
  rm temp-file

        2. Некоторые наиболее употребительные команды.

pwd   - получить имя текущей директории
cd    - изменить текущую директорию
ls    - распечатать информацию о файлах или директориях
cat   - слить или вывести файлы-аргументы на стандартный вывод
cp    - копировать файлы
mv    - переместить (переименовать) файлы
ln    - создать ссылку на файл
rm    - удалить файлы
rmdir - удалить директорию
mkdir - создать директорию
echo  - вывести аргументы командной строки на стандартный вывод
ps    - узнать номера выполняемых процессов
kill  - "убить" выполняемый процес по его номеру
man   - выдать справку об использовании и ключах команды

        2.1 pwd    Выдать имя текущей директории.

  pwd

        2.2 cd     Сменить текущую директорию.

  cd [ директория]

  cd /usr/spool/lp/adm

  cd ..

Если директория не  указана, Вы попадаете в свой "домашний" ка-
талог $HOME

        2.3 ls     Распечатать каталог.

Формат команды :  ls [ключи] [имена]

имена - имена файлов или директорий; для директорий  распечаты-
        вается список входящих в нее файлов, для файлов -  пов-
        торяется имя файла и дополнительная информация в  соот-
        ветствии с ключами. Имена файлов выводятся в алфавитном
        порядке. Если имена не заданы, выдается содержимое  те-
        кущей директории.
ключи:  по умолчанию выдаются только имена файлов, в  одну  ко-
        лонку и в алфавитном порядке.

  ls -al  - вывод в длинном полном формате:

          число   владелец            время модификации
          линков        группа                        имя файла
          (имен)                  размер
-rwxr-xr-x   1 moshkow  sys         17 Oct 18 16:13 ../jean
drwxr-xr-x   1 moshkow  sys         12 Oct 18 16:11 ../jelly
-rwxr-xr-x   1 moshkow  sys          0 Oct 13 14:14 ../j.bu.txt
^^  ^  ^
||  |  |
||  |  +----- права всех "прочих" по отношению к файлу
||  +-------- права одной с ним группы
|+----------- права "владельца" файла
+------------ "-" - значит файл,  "d" - директория
        Права:
                r - файл доступен для чтения,
                w - файл доступен для записи,
                x - файл является выполнимым,
                - - данное право доступа отсутствует.

       -a - вывести все файлы (даже те, имена которых начинают-
            ся с точки);
       -x - вывод в 4 колонки;
       -t - имена файлов сортируются не по алфавиту, а по  вре-
            мени  последнего изменения (сначала идут самые све-
            жие, только что измененные файлы);
       -R - рекурсивно пройти по всем подкаталогам

  ls -CF  - оглавление каталога в несколько столбиков
  ls -al  - оглавление в полном формате

        2.4 cat    Слить и вывести файлы на стандартный вывод.

Формат команды :  cat файл1 [файл2... ]

Cat читает каждый из указанных файлов и выводит  их  содержимое
на стандартный вывод. Пример:

     cat файл

распечатывает содержимое файла, а

     cat файл1 файл2 > файл3

сливает первые два файла  и  помещает результат в третий. Чтобы
добавить файл1 к файлу2, надо выполнить команду

     cat файл1 >> файл2

        2.5 more, pg Просмотреть файл постранично.

     more file_name ...

more  позволяет  просматривать  файл, делая остановку на каждой
границе экрана. Просмотром можно управлять с помощью клавиш:

q      - завершить просмотр
ПРОБЕЛ - показать следующую страницу
ENTER  - сдвинуться на одну строку
b      - показать предыдущую страницу
/      - поиск
h      - Help - посмотреть список всех возможных команд

more  используют,  чтобы  посмотреть "длинную" выдачу  команды,
ставя его конвейером "ей на хвост"

    ls -al | more   - просмотреть оглавление
    ps -e  | pg     - просмотреть список работающих процессов

        2.6 cp     Копировать файлы.

Формат команды :  cp файл1            файл2
                  cp файл1 файл2 [...] каталог

Эта команда копирует файл1, ... , в ФАЙЛ. Если ФАЙЛ -  это  ди-
ректория, то файл1 и др. копируются в нее под  своими  именами.
Если ФАЙЛ не существовал, то он  создается,  если  существовал,
его старое содержимое теряется.

        2.7 mv     Переместить (переименовать) файлы.

Формат команды :  mv файл1             файл2
                  mv файл1 [файл2 ...] каталог

Команда аналогична команде cp, но не сохраняет исходного файла.
Ее основная роль - переименование файлов и  перенос  файлов  из
одной директории в другую). Пример.

    mv /dss/*/rk_*.help /dss/delo


        2.8 ln     Связать файлы.

Формат команды :  ln файл1 файл2
                            # создается "жесткий" линк
                  ln -s файл1 файл2
                            # создается "символический" линк

Эта команда  создает файлу файл1 еще одно имя.  В итоге файл1 и
файл2 на  самом деле физически  являются одним и тем же файлом.
Если вы  создаете так называемый "символический линк", (исполь-
зуя ключ "-s"), то файл file1 при этом  не обязан существовать.
Имя "файл2" при этом все равно будет создано.

        2.9 rm     Удалить файл или директорию.

Формат команды :  rm [-fri]  файл ...
        -i      - просить подтверждения на каждое удаление
        -r      - рекурсивно удалить вместе с подкаталогами
        -f      - не просить подтверждения, а сразу удалють

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

     rmdir директория ...

Чтоб удалить непустую директорию нужно выполнить команду

    rm -r директория

ВНИМАНИЕ: Ввиду того, что под шаблон ".*" подходит каталог ".."
НИКОГДА НЕ ДЕЛАЙТЕ КОМАНДЫ                # rm -r .*

        2.10 mkdir  Создать директорию.

Для создания директории применяется команда mkdir.

Формат команды :  mkdir  имя_директории ...

        2.11 chmod  Изменение прав доступа к файлам.

Команда chmod меняет атрибуты (права доступа) файла.
Проставить файлам право на выполнение:

    chmod u+x file1

Разрешить остальным пользователям исправлять файл

    chmod a+w file1

        2.12 echo   Эхо.

echo Команда выводит на стандартный вывод свои аргументы

    echo "\017"

Вывести на терминал символ Ctrl-O, Он же 017 восьмеричное. Вос-
станавливает латиницу на терминалах типа vt220 и at386

        2.13        Создать файл.

Для создания файла можно воспользоваться следующими способами:

    touch primer  создает файл primer;
    cat > primer  создает  файл  primer и пишет в него из стан-
                  дартного ввода. Запись в файл закончится пос-
                  ле нажатия CTRL+D.

        2.14 ps     Какие программы выполняются.

Сообщает  номера  процессов, которые  выполняются в системе.

    ps          - запущенные только с этого терминала
    ps -e       - все
    ps -f       - в "полном" формате

        2.15 kill   Прервать процесс.

Команда  kill  посылает  указанному процессу сигнал немедленной
остановки.

Прервать процесс номер 1078 (номер можно узнать командой ps -e)

    kill -9 1078

Прервать  программу на вашем терминале, запущенную НЕ в фоновом
режиме, можно нажатием клавиши CTRL-C, или клавиши CTRL-\

        2.16 man    Если вы забыли как пользоваться командой.

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

    man    имя_интересующей_вас_команды
    man -k ключевое_слово   - список команд, относящихся к ...

        2.17 who    Кто работает в системе.


    who           - этими командами можно узнать кто вы такой,
    who am i        и кто еще работает в системе
    finger
    last | more
    id

    man -k who   - сообщит все возможные команды, которыми можно
                   узнать, кто и что делает в системе.