Краткий справочник команд UNIX, редактор VI.

RAAAR.RU

Доброго времени суток, дорогой гость !

Если интересно, то можете почитать что-нибудь из этого:

Философия

Художественная литература

Разное

Путешествия

Контакты

Несколько простейших команд Unix (курс молодого бойца)


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

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

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

1.4.   Для   задания  шаблона  имен  используются  символы  "*"
(произвольная  последовательность   символов)   и   "?"   (один
произвольный символ). Имя из одной точки "." обозначает текущую
директорию, имя из двух точек ".." - вышележащую  (родительский
каталог).

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

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

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

     команда -всякие разные аргументы ... &

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

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

       команда   имя_файла
(для стандартного протокола - системной диагностики).

     Пример - записать в файл содержимое текущей  директории:

        ls > infdir

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

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

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

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

TERM=vt220
HOME=/home/moshkow
PATH=:/bin/:dss/rk:/home/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 выдает содержимое текущей директории.

  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 ...
     pg   file_name ...
     less file_name ...

Все  эти  команды  позволяют  просматривать  файл,  листая  его
поэкранно.  Просмотром можно управлять с помощью клавиш.  Самое
удобное управление у команды "less", самое "дубовое" - у "pg"

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

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

    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 .*
(Хотя большинство unix'ов прощают подобную ошибку, но НЕ ВСЕ -
в SCO рискуете напороться)

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 -ef      - все, в "полном" формате (в SYSV Unix)
    ps -ax      - все, в "полном" формате (в BSD* и Linux)

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


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

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

    kill -9 1078

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

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


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

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

Для того, чтобы срабатывала команда man -k, файлы докуменации должны
быть предварительно проиндексированы. Достигается это командой

    catman -w

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



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




Очень кратко о редакторе "VI"
По  не  знаю  какой  уж  там  исторической  традиции  "честные"
(канонические, особенно коммерческие) системы Unix не имеют в
своем базовом  комплекте ни   одного   нормального   (еще  раз
подчеркну  это  слово  - НОРМАЛЬНОГО)   текстового    редактора.
Поэтому    системный администратор  должен  уметь  пользоваться
тем, что ему дают. А дают ему несравненный "Визуальный" экранный
редактор  файлов  - Редактор VI.
Редактор VI имеет три режима:
1.  Командный  -  в  этом  режиме можно перемещаться по файлу и
выполнять редактирующие команды над текстом. Команды вызываются
ОБЫЧНЫМИ ЛАТИНСКИМИ БУКВАМИ.
2. Ввода текста - в этом режиме обычные латинские  буквы  будут
вставляться в текст.
3.  Режим  строчного  редактора  ED используется для управления
файлами (типа сохранить файл, зачитать файл и т.д.)
  Прочитайте предыдущий абзац еще раз. Вы еще  не  испугались?
Хорошо. Поехали. Итак:
       vi имя_файла
VI в КОМАНДНОМ РЕЖИМЕ.
ЧТОБЫ ВЫЙТИ ИЗ ФАЙЛА БЕЗ СОХРАНЕНИЯ, нажмите:
     ESC  :  q  ! Enter
чтобы выйти из файла, сохранив изменения, нажмите:
     ESC  :  w ! Enter
     ESC  :  q   Enter
выйти из файла с сохранением, одной командой:
     ESC  :  wq  Enter
для перехода В РЕЖИМ ВВОДА нужно нажать команды типа:
   "i"   вставлять здесь
   "A"   вставлять с конца строки
   "cw"  заменять текущее слово
   ESC    для ВОЗВРАТА В КОМАНДНЫЙ РЕЖИМ
   CTRL-[ для возврата в командный режим
  для перехода В РЕЖИМ УПРАВЛЕНИЯ ФАЙЛАМИ нужно нажать
   ":"  (перейти в режим редактора ED)
Двигаться по файлу можно командами:
    h,j,k,l    влево, вниз, вверх, вправо
     Ctrl-F     На страницу вниз
     Ctrl-B     На страницу вверх
А если вам очень повезет, то можно будет двигаться стрелочками.
Чтобы перейти в режим везения, нужно описать  для  операционной
системы   ваш   терминал.   Этим  займемся  в  дальнейшем  (см.
"Описание терминалов, terminfo, termcap").
Подгоните курсор к нужному месту и нажмите
     i          перевод в режим ввода
вводите требуемый текст
     ESC        прекратить ввод, перейти в командный режим
Подгоните курсор к ненужному месту и нажмите
     x          удалить символ
     dd         удалить строчку
Еще парочка полезных команд:
     o          вставлять с новой строки (под текущей строкой)
     a          в режим ввода ЗА курсором
     5yy        запомнить 5 строчек
Подгоните курсор к нужному месту
     p          вставить запомненные строки под курсором
     P          вставить запомненные строки НАД курсором
     J          Склеить две строки
     /Шаблон поиска Enter       - поиск
     n          Повторить поиск
На этом ознакомление с редактором VI можно считать законченным.
Того, кто считает, что VI может предоставить больше  удобств  и
команд  по  редактированию,  я  отсылаю  к  прилагаемому  здесь
справочнику-памятке "наиболее употребительные команды VI",
 vibegin.txt
ну, и,  естественно (как всегда), к документации. Остальных я
отсылаю к не менее удивительному в своем роде редактору EMACS,
которым, не смотря на это, рекомендую пользоваться впредь.
Редактор VI - список команд:

РЕЖИМЫ: Ввода == ESC ====> Командный == :Q ==> Редактора ed
            ^                  |     ^                |
            +----aAiIcCrRs >] [file]   записать в file [от 1 до $ строки]
:q[!]  закончить сеанс [форсированно]
:[15]r [file] или [!komanda]   вставить после [15] стр
:e     редактировать новый файл
:n     редактировать следующий файл
:sh    выйти в Shell
:! команда  запустить на выполнение Shelloм
УСТАНОВКА РЕЖИМОВ VI
:set nu / nonu   нумеровать/ненумеровать строки
:set smd{CR}     показывать текущий режим
EXINIT="конфигурационные команды"       - переменная окружения
.exrc                           - файл с командами конфигурации


ЯРЮРХЯРХЙЮ

Рейтинг@Mail.ru