Введение в системное администрирование Unix

Включение Unix-компьютера

Разбить на страницы
Показывать лекцию целиком

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

Console login:

а на всех остальных терминалах - просто:

Login:

Введите свой входной login и пароль. Если таковых не существует, войдите под login'ом root - "суперпользователь" - изначально он не имеет пароля.

Console login: root

SUN: Перехват загрузки в ручной режим

Процесс нормальной работы Sun SPARCstation в любой момент времени можно перехватить и передать управление на boot-prompt. Для этого на системной клавиатуре нажмите STOP+A. (STOP - левая верхняя клавиша на левой дополнительной клавиатуре). Появится

boot-prom prompt Ok:

Ok _

Теперь можно вводить команды для boot-монитора. Пожалуй, наиболее популярными командами являются:

  • go - выйти из монитора, вернуться в нормальный режим
  • help
  • boot [параметры] - загрузиться
  • eject - вытолкнуть "застрявший" флоппи-диск или CD-ROM
  • probe-scsi - опросить опознанные SCSI-устройства (после этой команды возвращаться к нормальной работе командой "GO" НЕЛЬЗЯ. Перезагрузитесь.)
  • Если у вас "безголовый" Sun - сервер, то к нему в качестве консоли подключается алфавитно-цифровой терминал. Подключать можно к любому последовательному порту - A или B. Sun, заметив отсутствие системной клавиатуры, опрашивает все порты по очереди и, обнаружив на одном из них терминал, делает его консольным (со всеми вытекающими из этого последствиями).

    Чтобы вызвать boot-монитор с алфавитной консоли, нажмите на нем клавишу BREAK (На терминале vt220 BREAK - это клавиша F5).

    Выключать алфавитно-цифровую консоль на Sun-сервере нельзя - при этом терминал генерит сигнал BREAK, и Sun переходит в останов в boot-мониторе. Как отключить эту интересную особенность безголовых Sun-серверов, мне не известно.

    На самом деле у этой проблемы существует аж три решения: Одно из них - новый TTY-дравер "CONSULT-ZSBRK", который игнорирует BREAK.

    HP 9000: Перехват загрузки в ручной режим

    Процесс нормальной загрузки HP 9000 можно перехватить и передать управление на boot-prompt PDC (Processor Depended code). Для этого посмотрите на консоль в первые секунды загрузки - там пишется клавиша, которую нужно нажать для перехвата. На рабочих станциях это ESCAPE, на серверах - Ctrl-K (или Break, или еще какая-нибудь) Появится PDC-prompt

    BOOT-ADMIN>

    Теперь можно вводить команды для boot-монитора. Пожалуй, наиболее популярными командами являются:

  • help
  • search - найти загрузочные SCSI-устройства
  • boot [параметры] - загрузиться
  • secure on - запрет перехвата начальной загрузки (чтобы потом сделать secure off, придется вынуть из компьютера диск и перезагрузиться)
  • Если у вас "безголовый" сервер, то к нему в качестве консоли подключается алфавитно-цифровой терминал. Подключают его к консольному порту.

    ALPHA Tru64: переход в boot-prompt

    По умолчанию система грузится в многопользовательский режим. Для перехода в boot-prompt перед очередной загрузкой - нажать кнопку "boot" на лицевой панели. (Их там две похожих - одна - нужный нам "boot", вторая - "reset", с одной или двух попыток не сложно определить нужную.)

    Появится boot-prompt

    >>>

    Теперь можно вводить команды для boot-монитора. Пожалуй, наиболее популярными командами являются:

  • show devices
  • show boot*
  • set boot-file vmunix
  • set boot-flag a
  • set boot-auto on
  • set boot-dev dka100
  • boot
  • Регистрация нового пользователя

    Если вам в руки попалась свежеустановленная машина, то на ней еще не зарегистрировано никаких пользователей за исключением суперпользователя "root" - системного администратора. Пароля у него нет. Входите в него.

    В суперпользователя можно превратиться. Для этого выполните команду

    su # Super User

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

  • logname входной логин пользователя
  • passwd пароль (пароль вводят дважды)
  • UID User Identification Descriptor
  • GID Group Identification Descriptor
  • Comment Familiq Imya Otchestwo
  • $HOME Домашний каталог
  • shell Командный интерпретатор
  • Бывают такие командные интерпретаторы:

  • /usr/local/bin/bash Самый удобный
  • /usr/bin/ksh Чуть похуже, но тоже ничего
  • /usr/local/bin/tcsh Удобный, но "неправильный" и медленный
  • /bin/sh Самый "правильный" и самый неудобный
  • /bin/csh "Неправильный" и чуть более удобный
  • /etc/passwd - Вся информация о пользователе хранится здесь.
  • /etc/shadow - Здесь хранятся закодированные пароли.
  • Закодированные пароли могут лежать и в других местах. Зависит от вида Unix.

    В любом уважающем себя Unix имеется "головная" утилита оператора (условно называемая sysadm) - диалоговая программа, с меню и окнами для выполнения насущных задач по системному администрированию. В том числе позволяет регистрировать новых пользователей. Запускать ее может только "суперпользователь" root. При запуске "sysadm" может спросить тип терминала, на котором ему предстоит работать. Ответьте:

    vt100

    Примечание. В различных операционных системах эта утилита может называться по-разному:

  • sam HP-UX
  • sysman Tru64
  • admintool Solaris 2
  • adminsuite Solaris 2.7
  • sysadmsh SCO UNIX 4
  • scoadmin SCO OpenServer 5
  • smit, msmit AIX
  • control-panel Linux RedHat
  • sysadm UnixWare, ISC, SVR4
  • Команда регистрации нового пользователя.

  • adduser Linux
  • useradd SunOS 4.1
  • vipw BSD/OS, FreeBSD
  • Как зарегистрировать нового пользователя "вручную"

  • Вставляем в /etc/passwd еще одну строчку:
    moshkow:x:555:1:Maksim E. Moshkow:/home/moshkow:/bin/ksh
  • (Только FreeBSD) для редактирования /etc/passwd использовать команду
    vipw
  • (только в Linux) Приводим в соответствие файл /etc/shadow
    pwconv
  • Создаем пользовательский каталог
    mkdir /home/moshkow
     chown moshkow /home/moshkow
  • Задаем пароль новому пользователю
    passwd moshkow
  • Вот и все.
  • Начало работы в системе. Вход в себя

    На экране терминала появляется приглашение

    login:

    Введите имя, под которым вы зарегистрированы в системе, если нужно, пароль. Если Вы ошиблись при вводе имени, нажмите CTRL+U, или DEL, или CTRL-D (для отмены), или несколько раз нажмите на Return, потерпите немного и повторите ввод. На экране появится приглашение командного интерпретатора.

    sunsite:~/$ _

    Чтобы выйти из системы, наберите команду exit или просто нажмите Ctrl-D на пустой строчке.

    Переменные окружения.

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

    env            # Распечатать экспортированные переменные окружения
    
    LOGNAME=moshkow        # имя пользователя
    HOME=/home/moshkow     # его домашний каталог
    SHELL=/bin/ksh         # его командный интерпретатор
    MAIL=/usr/mail/moshkow # файл, в который складывается
                           # приходящая ему почта
    PS1=host1:$PWD/$       # формат приглашения
    PATH=:/usr/local/bin:/bin:/usr/bin:/usr/X11/bin:/usr/informix/bin:
                     # список поиска, по которому ищутся выполнимые файлы
    TERM=vt100             # устанавливает тип терминала, на
                           # котором работает пользователь

    Чтобы задать значение переменной окружения, выполните команду:

    Imya_Pereemennoj=znachenie export Imya_Pereemennoj

    например

    abc=Kalosha export abc

    просмотреть значение переменной можно командой echo в такой форме:

    echo $abc

    Пользовательский профайл

    Перед входом в систему сперва выполняется общесистемный профайл /etc/profile

    Затем выполняется пользовательский файл ".profile" (если он есть) - в них можно устанавливать переменные окружения и делать установки режимов терминала. Просмотреть установленные переменные окружения можно командой env

    ##### Пример файла .profile ##################################
    
     # Добавить к списку поиска каталоги с нужными программами
    PATH=:$HOME/bin:$PATH:/usr/sbin:/usr/local/bin:/usr/informix/bin
     # Разрешить редактирование командной строки в ksh
    EDITOR=emacs
    export PATH EDITOR
    LC_CTYPE=iso_8859_1 export LC_CTYPE # русские буквы - "буквы"
    
     # Характеристики терминала
     # Забой=BackSpace СтеретьСтроку=Ctrl-U
     # ПрерватьПрограмму=Ctrl-C "Жестокое_прерывание"=Ctrl-|
    stty erase "^h" echoe kill "^u" quit "^|" intr "^c"
    stty cs8 -parenb -istrip
     # 8-битные символы, noparity, не усекать 8-й бит
     # при вводе
    
    case "$0" in # В зависимости от командного интерпретатора
    *ksh) # В Korn Shellе
     # Редактироваться стрелочками
     alias __A=`echo "\020"` # ^P = восьмеричный 020
     alias __B=`echo "\016"` # ^N
     alias __C=`echo "\006"` # ^F
     alias __D=`echo "\002"` # ^B
     # В приглашение ставить текущий pwd
     PS1=$LOGNAME@`uname -n`:'$PWD/$ ' export PS1
     ;;
    *bash) # В bash'е в приглашение ставить host:pwd
     PS1='\h:\w/\$ ' export PS1
     ulimit -Sc 0 # чтоб программы core не роняла
     ;;
    *sh) # для posix-shell и HP-UX
     PATH=$PATH:/usr/sbin
     PS1=$LOGNAME@`uname -n`:'$PWD/$ '
     HISTFILE=$HOME/.sh_history
     ENV=$HOME/.kshrc
     export PATH ENV HISTFILE PS1
    # и не забыть в файл .kshrc вписать set -o emacs
     ;;
    esac
    # обратите внимание: в некоторых местах ПРОСТАЯ кавычка _'_
    # а в других - ОБРАТНАЯ _`_ - будьте внимательны, это важно.

    Клавиши для редактирования командной строки

    Если вы работаете в командном интерпретаторе Korn-Shell /bin/ksh, и у вас установлена переменная EDITOR=emacs, то вы сможете редактировать командную строку с помощью стрелок и Ctrl-клавиш:

  • ^P / ^N PREVIOUS / NEXT команда
  • ^F / ^B FORWARD / BACK на позицию
  • ^A / ^E в НАЧАЛО / КОНЕЦ строки
  • ^D / ^K Удалить СИМВОЛ / Удалить КОНЕЦ СТРОКИ
  • ^Y Вспомнить удаленное
  • ^R Поиск предыдущей команды
  • ESC ESC Добить имя файла
  • ESC = Распечатать похожие имена файлов
  • а если командный интерпретатор bash, то обе эти команды сидят на клавише TAB

    Выключение системы

    Чтобы провести выключение системы, следует, будучи пользователем root и находясь в корневом каталоге, выполнить команду shutdown (ключи команды зависят от вашей операционной системы)

    cd /
    shutdown -yh 0 # HPUX
    shutdown -h now # Tru64, FreeBSD, Linux
    shutdown -y -g0 -i0 # Solaris, SVR4

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

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

    reboot # Linux
    shutdown -y -r 0 # HPUX
    shutdown -y -g0 -i6 # Solaris, SVR4

    Перезагрузить или разгрузить систему можно также и из меню системного администратора команды sysadm.

    В некоторых реализациях Unix (в частности, в BSD, SunOS, Linux, HP- UX) команда shutdown использует другие ключи. Попробуйте в этом случае:

    shutdown -y -h now # для остановки
    shutdown -y -r 60 # для перезагрузки через 60 секунд

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

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

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

    1.3. В имени файла директории отделяются от последующей части символом "/". (Билл Гейтс тоже хотел, чтоб у него в MSDOS все как в Unix было, вот и взял символ "\" - перепутал - с кем не бывает.)

    Если имя начинается с "/" ("слэша") - значит, это полное маршрутное имя.

    Простое имя файла может состоять из ЛЮБЫХ символов (за исключением "/" и NUL). Длина простого имени не более 256 символов. Длина полного маршрутного имени файла не более 32000 символов (в некоторых Unix - не более 1024 символов.)

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

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

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

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

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

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

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

    (для стандартного вывода),

    команда < имя_файла

    (для переназначения стандартного ввода),

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

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

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

    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"), то файл файл1 при этом не обязан существовать. Имя "файл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 am i - этими командами можно узнать, кто вы такой
  • who и кто еще работает в системе
  • finger
  • last | more
  • id
  • man -k who - сообщит все возможные команды, которыми можно узнать, кто и что делает в системе.
  • Очень кратко о редакторе "VI"

    По не знаю какой уж там исторической традиции "честные" (канонические, особенно коммерческие) системы Unix не имеют в своем базовом комплекте ни одного нормального (еще раз подчеркну это слово - НОРМАЛЬНОГО) текстового редактора. Поэтому системный администратор должен уметь пользоваться тем, что ему дают. А дают ему несравненный "Визуальный" экранный редактор файлов - Редактор VI.

    Редактор VI имеет три режима:

  • Командный - в этом режиме можно перемещаться по файлу и выполнять редактирующие команды над текстом. Команды вызываются ОБЫЧНЫМИ ЛАТИНСКИМИ БУКВАМИ.
  • Ввода текста - в этом режиме обычные латинские буквы будут вставляться в текст.
  • Режим строчного редактора 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 <---+ +----- vi -------+

    ПЕРЕМЕЩЕНИЕ ПО ФАЙЛУ

  • {стрелки},hjkl
  • ^U/^D табуляция вверх/вниз
  • ^F/^B страницу вниз/вверх
  • ^E/^Y подвинуться на строку вниз/вверх
  • w/b/e вперед/назад на слово/в конец слова
  • W/B/E вперед/назад на слово/в конец опробеленного слова
  • (/) назад/вперед на предложение
  • {/} назад/вперед на абзац
  • [[/]] назад/вперед на функцию или секцию
  • % найти парную скобку ( или {
  • {n}G на строку {n}
  • {n}| в колонку {n}
  • H/M/L в начало/середину/конец экрана
  • z/z./z- текущую строку в начало/середину/конец экрана
  • ^/$/0 начало/конец строки
  • РЕДАКТИРОВАНИЕ ТЕКСТА

  • x уничтожить символ
  • X забой
  • J склеить строки
  • В РЕЖИМЫ ВВОДА

  • a/i / A/I вставка за/перед _ / концом/началом строки
  • R режим замены
  • r буква на букву
  • s буква на буквы
  • o/O вставить строку под/над _
  • C$ Заменить конец строки
  • ИНФОРМАЦИЯ

  • ^G о текущем файле и строке
  • ОТКАТКА

  • u откатка (одна)
  • ^L/^R перерисовать
  • РЕДАКТИРОВАНИЕ В РЕЖИМЕ ВВОДА

  • ESC вернуться в командный режим
  • Забой Забой
  • ^W/^U Убрать слово/Убрать строку
  • ^V Вставить CRTL-символ[ы]
  • ОПЕРАТОРЫ С ПОЗИЦИОНИРОВАНИЕМ

  • p/P вспомнить фрагмент за/перед _
  • {n} ["буква_буфер] "команда" {m}"команда позиционирования" весь фрагмент запоминается! или повтор команды для строки
  • d уничтожать фрагмент
  • y запоминать фраг
  • c заменить фрагмент (==> в режим ввода )
  • </> сдвинуть влево/вправо
  • ! команда пропустить фрагмент через фильтр
  • ПРИМЕРЫ

  • 7yy запомнить 7 строк в неименованном буфере
  • "aAd{ добавить к буф a с удалением от _ до начала абзаца
  • !G sort отсортировать строки от курсора и до конца
  • "МАКРОКОМАНДЫ"

  • :map клавиша_имя_макро тело_макрокоманды {CR}
  • :map! клавиша_имя_макро тело_макрокоманды {CR} - в режиме ввода
  • :ab сокращение сокращаемый_текст {CR} - в режиме ввода
  • ПОИСК

  • ?строка искать вверх
  • /строка искать вниз
  • n повторить поиск
  • N вернуться на последнюю найденную строку
  • ПОИСК_С_ЗАМЕНОЙ

  • :s/рег_выраж/замена/gc - глобальный с подтверждением
  • :Q/vi вход / выход в режим ed
  • :g/строка - поставить визуальный фильтр
  • :+5 движение по файлу
  • РЕДАКТОР_ED. Вход ":" (надолго "Q") Выход "CR" / (VI)

  • ^^ Перейти в альтернативное окно
  • :[1,$] w [>>] [file] записать в file [от 1 до $ строки]
  • :q[!] закончить сеанс [форсированно]
  • :[15]r [file] или [!komanda] вставить после [15] стр
  • :e редактировать новый файл
  • :n редактировать следующий файл
  • :sh выйти в Shell
  • :! команда запустить на выполнение Shelloм
  • УСТАНОВКА РЕЖИМОВ VI

  • :set nu / nonu нумеровать/не нумеровать строки
  • :set smd{CR} показывать текущий режим
  • EXINIT="конфигурационные команды" - переменная окружения
  • .exrc - файл с командами конфигурации
  • Страницы:

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

    Console login:

    а на всех остальных терминалах - просто:

    Login:

    Введите свой входной login и пароль. Если таковых не существует, войдите под login'ом root - "суперпользователь" - изначально он не имеет пароля.

    Console login: root

    SUN: Перехват загрузки в ручной режим

    Процесс нормальной работы Sun SPARCstation в любой момент времени можно перехватить и передать управление на boot-prompt. Для этого на системной клавиатуре нажмите STOP+A. (STOP - левая верхняя клавиша на левой дополнительной клавиатуре). Появится

    boot-prom prompt Ok:
    
    Ok _

    Теперь можно вводить команды для boot-монитора. Пожалуй, наиболее популярными командами являются:

  • go - выйти из монитора, вернуться в нормальный режим
  • help
  • boot [параметры] - загрузиться
  • eject - вытолкнуть "застрявший" флоппи-диск или CD-ROM
  • probe-scsi - опросить опознанные SCSI-устройства (после этой команды возвращаться к нормальной работе командой "GO" НЕЛЬЗЯ. Перезагрузитесь.)
  • Если у вас "безголовый" Sun - сервер, то к нему в качестве консоли подключается алфавитно-цифровой терминал. Подключать можно к любому последовательному порту - A или B. Sun, заметив отсутствие системной клавиатуры, опрашивает все порты по очереди и, обнаружив на одном из них терминал, делает его консольным (со всеми вытекающими из этого последствиями).

    Чтобы вызвать boot-монитор с алфавитной консоли, нажмите на нем клавишу BREAK (На терминале vt220 BREAK - это клавиша F5).

    Выключать алфавитно-цифровую консоль на Sun-сервере нельзя - при этом терминал генерит сигнал BREAK, и Sun переходит в останов в boot-мониторе. Как отключить эту интересную особенность безголовых Sun-серверов, мне не известно.

    На самом деле у этой проблемы существует аж три решения: Одно из них - новый TTY-дравер "CONSULT-ZSBRK", который игнорирует BREAK.

    HP 9000: Перехват загрузки в ручной режим

    Процесс нормальной загрузки HP 9000 можно перехватить и передать управление на boot-prompt PDC (Processor Depended code). Для этого посмотрите на консоль в первые секунды загрузки - там пишется клавиша, которую нужно нажать для перехвата. На рабочих станциях это ESCAPE, на серверах - Ctrl-K (или Break, или еще какая-нибудь) Появится PDC-prompt

    BOOT-ADMIN>

    Теперь можно вводить команды для boot-монитора. Пожалуй, наиболее популярными командами являются:

  • help
  • search - найти загрузочные SCSI-устройства
  • boot [параметры] - загрузиться
  • secure on - запрет перехвата начальной загрузки (чтобы потом сделать secure off, придется вынуть из компьютера диск и перезагрузиться)
  • Если у вас "безголовый" сервер, то к нему в качестве консоли подключается алфавитно-цифровой терминал. Подключают его к консольному порту.

    ALPHA Tru64: переход в boot-prompt

    По умолчанию система грузится в многопользовательский режим. Для перехода в boot-prompt перед очередной загрузкой - нажать кнопку "boot" на лицевой панели. (Их там две похожих - одна - нужный нам "boot", вторая - "reset", с одной или двух попыток не сложно определить нужную.)

    Появится boot-prompt

    >>>

    Теперь можно вводить команды для boot-монитора. Пожалуй, наиболее популярными командами являются:

  • show devices
  • show boot*
  • set boot-file vmunix
  • set boot-flag a
  • set boot-auto on
  • set boot-dev dka100
  • boot
  • Регистрация нового пользователя

    Если вам в руки попалась свежеустановленная машина, то на ней еще не зарегистрировано никаких пользователей за исключением суперпользователя "root" - системного администратора. Пароля у него нет. Входите в него.

    В суперпользователя можно превратиться. Для этого выполните команду

    su # Super User

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

  • logname входной логин пользователя
  • passwd пароль (пароль вводят дважды)
  • UID User Identification Descriptor
  • GID Group Identification Descriptor
  • Comment Familiq Imya Otchestwo
  • $HOME Домашний каталог
  • shell Командный интерпретатор
  • Бывают такие командные интерпретаторы:

  • /usr/local/bin/bash Самый удобный
  • /usr/bin/ksh Чуть похуже, но тоже ничего
  • /usr/local/bin/tcsh Удобный, но "неправильный" и медленный
  • /bin/sh Самый "правильный" и самый неудобный
  • /bin/csh "Неправильный" и чуть более удобный
  • /etc/passwd - Вся информация о пользователе хранится здесь.
  • /etc/shadow - Здесь хранятся закодированные пароли.
  • Закодированные пароли могут лежать и в других местах. Зависит от вида Unix.

    В любом уважающем себя Unix имеется "головная" утилита оператора (условно называемая sysadm) - диалоговая программа, с меню и окнами для выполнения насущных задач по системному администрированию. В том числе позволяет регистрировать новых пользователей. Запускать ее может только "суперпользователь" root. При запуске "sysadm" может спросить тип терминала, на котором ему предстоит работать. Ответьте:

    vt100

    Примечание. В различных операционных системах эта утилита может называться по-разному:

  • sam HP-UX
  • sysman Tru64
  • admintool Solaris 2
  • adminsuite Solaris 2.7
  • sysadmsh SCO UNIX 4
  • scoadmin SCO OpenServer 5
  • smit, msmit AIX
  • control-panel Linux RedHat
  • sysadm UnixWare, ISC, SVR4
  • Команда регистрации нового пользователя.

  • adduser Linux
  • useradd SunOS 4.1
  • vipw BSD/OS, FreeBSD
  • Как зарегистрировать нового пользователя "вручную"

  • Вставляем в /etc/passwd еще одну строчку:
    moshkow:x:555:1:Maksim E. Moshkow:/home/moshkow:/bin/ksh
  • (Только FreeBSD) для редактирования /etc/passwd использовать команду
    vipw
  • (только в Linux) Приводим в соответствие файл /etc/shadow
    pwconv
  • Создаем пользовательский каталог
    mkdir /home/moshkow
     chown moshkow /home/moshkow
  • Задаем пароль новому пользователю
    passwd moshkow
  • Вот и все.
  • Начало работы в системе. Вход в себя

    На экране терминала появляется приглашение

    login:

    Введите имя, под которым вы зарегистрированы в системе, если нужно, пароль. Если Вы ошиблись при вводе имени, нажмите CTRL+U, или DEL, или CTRL-D (для отмены), или несколько раз нажмите на Return, потерпите немного и повторите ввод. На экране появится приглашение командного интерпретатора.

    sunsite:~/$ _

    Чтобы выйти из системы, наберите команду exit или просто нажмите Ctrl-D на пустой строчке.

    Переменные окружения.

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

    env            # Распечатать экспортированные переменные окружения
    
    LOGNAME=moshkow        # имя пользователя
    HOME=/home/moshkow     # его домашний каталог
    SHELL=/bin/ksh         # его командный интерпретатор
    MAIL=/usr/mail/moshkow # файл, в который складывается
                           # приходящая ему почта
    PS1=host1:$PWD/$       # формат приглашения
    PATH=:/usr/local/bin:/bin:/usr/bin:/usr/X11/bin:/usr/informix/bin:
                     # список поиска, по которому ищутся выполнимые файлы
    TERM=vt100             # устанавливает тип терминала, на
                           # котором работает пользователь

    Чтобы задать значение переменной окружения, выполните команду:

    Imya_Pereemennoj=znachenie export Imya_Pereemennoj

    например

    abc=Kalosha export abc

    просмотреть значение переменной можно командой echo в такой форме:

    echo $abc

    Пользовательский профайл

    Перед входом в систему сперва выполняется общесистемный профайл /etc/profile

    Затем выполняется пользовательский файл ".profile" (если он есть) - в них можно устанавливать переменные окружения и делать установки режимов терминала. Просмотреть установленные переменные окружения можно командой env

    ##### Пример файла .profile ##################################
    
     # Добавить к списку поиска каталоги с нужными программами
    PATH=:$HOME/bin:$PATH:/usr/sbin:/usr/local/bin:/usr/informix/bin
     # Разрешить редактирование командной строки в ksh
    EDITOR=emacs
    export PATH EDITOR
    LC_CTYPE=iso_8859_1 export LC_CTYPE # русские буквы - "буквы"
    
     # Характеристики терминала
     # Забой=BackSpace СтеретьСтроку=Ctrl-U
     # ПрерватьПрограмму=Ctrl-C "Жестокое_прерывание"=Ctrl-|
    stty erase "^h" echoe kill "^u" quit "^|" intr "^c"
    stty cs8 -parenb -istrip
     # 8-битные символы, noparity, не усекать 8-й бит
     # при вводе
    
    case "$0" in # В зависимости от командного интерпретатора
    *ksh) # В Korn Shellе
     # Редактироваться стрелочками
     alias __A=`echo "\020"` # ^P = восьмеричный 020
     alias __B=`echo "\016"` # ^N
     alias __C=`echo "\006"` # ^F
     alias __D=`echo "\002"` # ^B
     # В приглашение ставить текущий pwd
     PS1=$LOGNAME@`uname -n`:'$PWD/$ ' export PS1
     ;;
    *bash) # В bash'е в приглашение ставить host:pwd
     PS1='\h:\w/\$ ' export PS1
     ulimit -Sc 0 # чтоб программы core не роняла
     ;;
    *sh) # для posix-shell и HP-UX
     PATH=$PATH:/usr/sbin
     PS1=$LOGNAME@`uname -n`:'$PWD/$ '
     HISTFILE=$HOME/.sh_history
     ENV=$HOME/.kshrc
     export PATH ENV HISTFILE PS1
    # и не забыть в файл .kshrc вписать set -o emacs
     ;;
    esac
    # обратите внимание: в некоторых местах ПРОСТАЯ кавычка _'_
    # а в других - ОБРАТНАЯ _`_ - будьте внимательны, это важно.

    Клавиши для редактирования командной строки

    Если вы работаете в командном интерпретаторе Korn-Shell /bin/ksh, и у вас установлена переменная EDITOR=emacs, то вы сможете редактировать командную строку с помощью стрелок и Ctrl-клавиш:

  • ^P / ^N PREVIOUS / NEXT команда
  • ^F / ^B FORWARD / BACK на позицию
  • ^A / ^E в НАЧАЛО / КОНЕЦ строки
  • ^D / ^K Удалить СИМВОЛ / Удалить КОНЕЦ СТРОКИ
  • ^Y Вспомнить удаленное
  • ^R Поиск предыдущей команды
  • ESC ESC Добить имя файла
  • ESC = Распечатать похожие имена файлов
  • а если командный интерпретатор bash, то обе эти команды сидят на клавише TAB

    Выключение системы

    Чтобы провести выключение системы, следует, будучи пользователем root и находясь в корневом каталоге, выполнить команду shutdown (ключи команды зависят от вашей операционной системы)

    cd /
    shutdown -yh 0 # HPUX
    shutdown -h now # Tru64, FreeBSD, Linux
    shutdown -y -g0 -i0 # Solaris, SVR4

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

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

    reboot # Linux
    shutdown -y -r 0 # HPUX
    shutdown -y -g0 -i6 # Solaris, SVR4

    Перезагрузить или разгрузить систему можно также и из меню системного администратора команды sysadm.

    В некоторых реализациях Unix (в частности, в BSD, SunOS, Linux, HP- UX) команда shutdown использует другие ключи. Попробуйте в этом случае:

    shutdown -y -h now # для остановки
    shutdown -y -r 60 # для перезагрузки через 60 секунд

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

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

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

    1.3. В имени файла директории отделяются от последующей части символом "/". (Билл Гейтс тоже хотел, чтоб у него в MSDOS все как в Unix было, вот и взял символ "\" - перепутал - с кем не бывает.)

    Если имя начинается с "/" ("слэша") - значит, это полное маршрутное имя.

    Простое имя файла может состоять из ЛЮБЫХ символов (за исключением "/" и NUL). Длина простого имени не более 256 символов. Длина полного маршрутного имени файла не более 32000 символов (в некоторых Unix - не более 1024 символов.)

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

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

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

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

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

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

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

    (для стандартного вывода),

    команда < имя_файла

    (для переназначения стандартного ввода),

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

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

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

    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"), то файл файл1 при этом не обязан существовать. Имя "файл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 am i - этими командами можно узнать, кто вы такой
  • who и кто еще работает в системе
  • finger
  • last | more
  • id
  • man -k who - сообщит все возможные команды, которыми можно узнать, кто и что делает в системе.
  • Очень кратко о редакторе "VI"

    По не знаю какой уж там исторической традиции "честные" (канонические, особенно коммерческие) системы Unix не имеют в своем базовом комплекте ни одного нормального (еще раз подчеркну это слово - НОРМАЛЬНОГО) текстового редактора. Поэтому системный администратор должен уметь пользоваться тем, что ему дают. А дают ему несравненный "Визуальный" экранный редактор файлов - Редактор VI.

    Редактор VI имеет три режима:

  • Командный - в этом режиме можно перемещаться по файлу и выполнять редактирующие команды над текстом. Команды вызываются ОБЫЧНЫМИ ЛАТИНСКИМИ БУКВАМИ.
  • Ввода текста - в этом режиме обычные латинские буквы будут вставляться в текст.
  • Режим строчного редактора 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 <---+ +----- vi -------+

    ПЕРЕМЕЩЕНИЕ ПО ФАЙЛУ

  • {стрелки},hjkl
  • ^U/^D табуляция вверх/вниз
  • ^F/^B страницу вниз/вверх
  • ^E/^Y подвинуться на строку вниз/вверх
  • w/b/e вперед/назад на слово/в конец слова
  • W/B/E вперед/назад на слово/в конец опробеленного слова
  • (/) назад/вперед на предложение
  • {/} назад/вперед на абзац
  • [[/]] назад/вперед на функцию или секцию
  • % найти парную скобку ( или {
  • {n}G на строку {n}
  • {n}| в колонку {n}
  • H/M/L в начало/середину/конец экрана
  • z/z./z- текущую строку в начало/середину/конец экрана
  • ^/$/0 начало/конец строки
  • РЕДАКТИРОВАНИЕ ТЕКСТА

  • x уничтожить символ
  • X забой
  • J склеить строки
  • В РЕЖИМЫ ВВОДА

  • a/i / A/I вставка за/перед _ / концом/началом строки
  • R режим замены
  • r буква на букву
  • s буква на буквы
  • o/O вставить строку под/над _
  • C$ Заменить конец строки
  • ИНФОРМАЦИЯ

  • ^G о текущем файле и строке
  • ОТКАТКА

  • u откатка (одна)
  • ^L/^R перерисовать
  • РЕДАКТИРОВАНИЕ В РЕЖИМЕ ВВОДА

  • ESC вернуться в командный режим
  • Забой Забой
  • ^W/^U Убрать слово/Убрать строку
  • ^V Вставить CRTL-символ[ы]
  • ОПЕРАТОРЫ С ПОЗИЦИОНИРОВАНИЕМ

  • p/P вспомнить фрагмент за/перед _
  • {n} ["буква_буфер] "команда" {m}"команда позиционирования" весь фрагмент запоминается! или повтор команды для строки
  • d уничтожать фрагмент
  • y запоминать фраг
  • c заменить фрагмент (==> в режим ввода )
  • </> сдвинуть влево/вправо
  • ! команда пропустить фрагмент через фильтр
  • ПРИМЕРЫ

  • 7yy запомнить 7 строк в неименованном буфере
  • "aAd{ добавить к буф a с удалением от _ до начала абзаца
  • !G sort отсортировать строки от курсора и до конца
  • "МАКРОКОМАНДЫ"

  • :map клавиша_имя_макро тело_макрокоманды {CR}
  • :map! клавиша_имя_макро тело_макрокоманды {CR} - в режиме ввода
  • :ab сокращение сокращаемый_текст {CR} - в режиме ввода
  • ПОИСК

  • ?строка искать вверх
  • /строка искать вниз
  • n повторить поиск
  • N вернуться на последнюю найденную строку
  • ПОИСК_С_ЗАМЕНОЙ

  • :s/рег_выраж/замена/gc - глобальный с подтверждением
  • :Q/vi вход / выход в режим ed
  • :g/строка - поставить визуальный фильтр
  • :+5 движение по файлу
  • РЕДАКТОР_ED. Вход ":" (надолго "Q") Выход "CR" / (VI)

  • ^^ Перейти в альтернативное окно
  • :[1,$] w [>>] [file] записать в file [от 1 до $ строки]
  • :q[!] закончить сеанс [форсированно]
  • :[15]r [file] или [!komanda] вставить после [15] стр
  • :e редактировать новый файл
  • :n редактировать следующий файл
  • :sh выйти в Shell
  • :! команда запустить на выполнение Shelloм
  • УСТАНОВКА РЕЖИМОВ VI

  • :set nu / nonu нумеровать/не нумеровать строки
  • :set smd{CR} показывать текущий режим
  • EXINIT="конфигурационные команды" - переменная окружения
  • .exrc - файл с командами конфигурации
  • Вернуться к учебному плану