"Серия: Заметки"
~~~~~~~~~~~~~~~~

Вы начинающий пользователь Unix и это ваш первый-второй-третий... и тд сеанс.

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

 все что вы видите на экране дисплея или графического терминала (X-terminal'а)
в самом начале сеанса, это различные формы приглашения для входа в систему:

Например:
приглашение в OS Linux

(linux4u) (ttyp6)

Debian GNU 1.3

linux4u login:

или
приглашение в OS FreeBSD

FreeBSD (unix1.jinr.dubna.su) (ttyp4)

login:

или
приглашение в OS Solaris (Sun Microsystems Unix)

UNIX(r) System V Release 4.0 (ultra)

login:

или
приглашение в OS HP-UX (Hewllet Packard Unix)

HP-UX dtserv.jinr.dubna.su B.10.20 A 9000/780 (ttyp2)

login:

или

ConvexOS, Release 10.1 (cv.jinr.dubna.su)

login:

или

Exemplar S Class () [SPP-UX Release 5.2]

login:

или
приглашение в OS AIX (IBM Unix)

AIX Version 4
(C) Copyrights by IBM and by others 1982, 1994.
login:

или
приглашение в OS OSF1 (бывший Digital Unix, ныне Compaq Tru64 Unix)

Digital UNIX (dbserv.jinr.dubna.su) (ttyp4)

login:

Все это разновидности "системного приглашения" для входа, те ввода имени
пользователя - loginname или username и затем пароля на приглашение:

Password:

Несколько отличается приглажение в CDE(Common Desktop Environment), якобы
удобная графическая среда пользователя, но и в ней не сложно понять что
система хочет сначала, получить от вас имя и затем пароль.

 Итак, входим в OS Unix, например как пользователь "lavr":

FreeBSD (unix1.jinr.dubna.su) (ttyp4)

login: lavr
Password:
Last login: Sun Oct  3 19:20:55 1999 from :0.0
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
        The Regents of the University of California.   All rights reserved.

FreeBSD 2.2.8-RELEASE (LAVRWORK) #0: Thu Feb 11 21:11:10 MSK 1999

Welcome to FreeBSD!

Handbook is in /usr/share/doc/handbook and the FAQ in /usr/share/doc/FAQ.
lynx /usr/share/doc/handbook & lynx /usr/share/doc/FAQ.

No new messages.
вс   3 окт 1999 19:47:45 MSD
unix1:/home/lavr>
                 ^^^^- при достоверном пароле мы попадаем в командную строку
операционной системы Unix или в случае графической среды, которая называется
X-Windows, у нас запускаются несколько различных приложений или desktop -
"рабочий стол", это зависит от настроек.
 Как и во всех системах защиты, вводимый нами пароль не отображается на дисплее
в целях сохранения безопасности.

 Промежуточная информация которую мы видим при входе в Unix, обычно указывает
тип и версию OS Unix, в нашем примере:
FreeBSD 2.2.8-RELEASE (LAVRWORK) #0: Thu Feb 11 21:11:10 MSK 1999

права или торговую марку:
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
        The Regents of the University of California.   All rights reserved.

время и место(имя машины) откуда был произведен предыдущий заход под вашим
именем:
Last login: Sun Oct  3 19:20:55 1999 from :0.0
                                     ^^^^^^^^^- в данном случае с локальной
машины с использованием графической системы X-Windows.

возможны иные сообщения, подготовленные системным администратором:
Welcome to FreeBSD!

Handbook is in /usr/share/doc/handbook and the FAQ in /usr/share/doc/FAQ.
lynx /usr/share/doc/handbook & lynx /usr/share/doc/FAQ.

а также осуществляется ряд действий, первоначально заданных администратором,
по настройке вашей рабочей среди - environment, эти настройки вы можете
впоследствии изменить под свои цели и нужды, после приобретения навыков и
знаний.

 Продолжим, итак, мы в командной строке:

unix1:/home/lavr>

Теперь нам доступно все что не запрещено. :)

с чего можно начать? - с команды, которая должна стать основной для пользователя
Unix, "man" - показать руководство по искомой команде, например:

unix1:/home/lavr> man man


MAN(1)                  FreeBSD General Commands Manual                 MAN(1)

NAME
     man - format and display the on-line manual pages

SYNOPSIS
     man [-adfhktw] [-m system] [-p string] [-M path] [-P pager] [-S list]
         [section] name ...

это фрагмент руководства по самой команде "man" OS Unix FreeBSD.
начало положено, вероятно встает вопрос что за командная строка, комадная
строка чего?

 При регистрации - заведении нового пользователя, ему назначается домашняя
директория - место для хранения файлов, почты, программ и другой личной
информации пользователя и назначается командный интерпретатор - SHELL, это
программа связывающая пользователя с системой.
 SHELL - обрабатывает-разбирает запросы от пользователя к системе или
отрабатывает свои собственны команды по запросу пользователя. В Unix имеется
достаточно богатый набор интерпретаторов комадной строки на настоящий момент.
 В последнее время большой популярностью пользуются bash, tcsh, но это не
означает что они самые лучшие или единственные, огромными возможностями
обладают такие shell как, ksh - KornShell или Z-Shell и др.

 Основополагающим и самым древним интерпретатором является sh - Bourne-shell,
которой идет в поставке любой OS Unix, так же как и еще один старинный
интерпретатор csh - C-Shell, с якобы схожим синтаксисом языка "Cи".
 У нас не стоит задача сравнения или обсуждения тех или иных возможностей
интерпретаторов, но коротко, стоит отметить что большинство системных scripts
- скриптов (процедур с элементами программирования) пишется на sh, csh - плохо
подходит для этих целей, равно как и его расширенный собрат - tcsh, хорошим
средством с большими возможностями, является bash, который включает в себя
возможности sh - Bourne-Shell.
 И bash, и tcsh предоставляют достаточный набор удобств для облегчения жизни
пользователя в командной строке, работа в которой с незапамятных времен, была
основополагающей в Unix.
 Дабы никого не обидеть, необходимо упомянуть EMACS - это целая среда для
облегчения жизни пользователю, разработчику. В прошлом, пользователь заходя
в Unix подразумевал emacs, заканчивая сеанс - emacs, забывая про Unix. :-)

 Если вы не заказали себе SHELL при регистрации в системе, то самое время
посмотреть что мы имеем в качестве интерпретатора:

unix1:/home/lavr> echo $SHELL
/usr/local/bin/tcsh
unix1:/home/lavr>

сие означает что наш интерпретатор - tcsh, попутно разберем введенную команду,
echo - команда системы или встроенная команда интерпретатора, выдает сообщения
на стандартный вывод(терминал) заданные ей в качестве параметров или показывает
значение переменных среды - environment. В нашем случае $SHELL означает
переменную, о чем указывает наличие символа "$" перед заданным параметром.
 Echo - оно же "эхо" и есть, пример:

unix1:/home/lavr> echo "Просто Эхо"
Просто Эхо
unix1:/home/lavr>

в данном примере ясно видно что echo полностью отвечает своему названию, а
двойные кавычки использовались нами для указания одного параметра - нужной нам
строки символов. Более подробно об "echo" - 'man echo'.

 Чтобы увлечь пользователя, хотя бы самую малость, или как-то "подогреть" его
интерес к Unix, рассмотрим еще несколько полезных команд и настроек:

командная строка, например: unix1:/home/lavr>
                            ^^^^^^^^^^^^^^^^^- интерпретаторы позволяют
пользователю использовать свои собственные настройки PROMPT - "приглашения"
командной строки, отличные от системных.
 Мы будем рассматривать только интерпретаторы tcsh и bash, перед тем как
привести некоторые примеры, сразу хочу пояснить пожалуйста не путайте
переменные среды - ENVIRONMENT, с переменными интерпретатора - SHELL.
 Продолжим, прежде чем менять будь то переменные среды ENVIRONMENT, будь то
переменные SHELL, желательно посмотреть их значения и выяснить для чего
они установлены.
 Переменные среды - ENVIRONMENT, можно посмотреть с помощью стандартной
команды "env", например:

unix1:/home/lavr> env
PORTSDIR=/m/FBSD/FreeBSD-current/ports
USER=lavr
MACHTYPE=i386
MAIL=/var/mail/lavr
SSH_AGENT_PID=4632
VENDOR=intel
SHLVL=1
HOME=/home/lavr
LESS=-ceM
XNLSPATH=/usr/X11R6/lib/X11/nls
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
PERLLIB=/usr/share/perl
PAGER=less
VISUAL=/usr/bin/vi
GROUP=dug
TMPDIR=/tmp
LOGNAME=lavr
TERM=xterm
BLOCKSIZE=K
DISTDIR=/m/FBSD/distfiles
LESSCHARSET=koi8-r
PATH=/home/lavr/bin:/usr/local/bin:/usr/local/sbin:/usr/local/audio:/bin:/usr/bi
n:/usr/X11R6/bin:/sbin:/usr/sbin
PACKAGES=/m/FBSD/packages-current
DISPLAY=:0.0
LANG=ru_SU.KOI8-R
LESSBINFMT=*u[%x]
WRKDIR=/usr/pkg/tmp
SSH_AUTH_SOCK=/tmp/ssh-lavr/agent-socket-4631
SHELL=/usr/local/bin/tcsh
HOST=unix1.jinr.dubna.su
OSTYPE=FreeBSD
PWD=/home/lavr
LC_ALL=ru_SU.KOI8-R
TERMCAP=/etc/termcap
TZ=:/etc/localtime
MANPATH=/usr/local/man:/usr/share/man:/usr/X11R6/man
HOSTTYPE=FreeBSD
EDITOR=/usr/bin/vi
WINDOWID=20971534

команду "env" можно использовать независимо от вашего SHELL-интерпретатора.
Для более полной информации - 'man env'.

 Закрепим пройденный материал на примере интерпретатора tcsh:

1. Результат первого примера, переменные среды - ENVIRONMENT, которые мы
получили используя команду системы "env", смотрите выше.

2. В tcsh имеется встроенная команда "printenv" которая предоставляет
сервис, аналогичный системной команде "env", например:

unix1:/home/lavr> printenv
PORTSDIR=/m/FBSD/FreeBSD-current/ports
USER=lavr
MACHTYPE=i386
MAIL=/var/mail/lavr
SSH_AGENT_PID=4632
VENDOR=intel
SHLVL=1
HOME=/home/lavr
LESS=-ceM
XNLSPATH=/usr/X11R6/lib/X11/nls
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
PERLLIB=/usr/share/perl
PAGER=less
VISUAL=/usr/bin/vi
GROUP=dug
TMPDIR=/tmp
LOGNAME=lavr
TERM=xterm
BLOCKSIZE=K
DISTDIR=/m/FBSD/distfiles
LESSCHARSET=koi8-r
PATH=/home/lavr/bin:/usr/local/bin:/usr/local/sbin:/usr/local/audio:/bin:/usr/bi
n:/usr/X11R6/bin:/sbin:/usr/sbin
PACKAGES=/m/FBSD/packages-current
DISPLAY=:0.0
LANG=ru_SU.KOI8-R
LESSBINFMT=*u[%x]
WRKDIR=/usr/pkg/tmp
SSH_AUTH_SOCK=/tmp/ssh-lavr/agent-socket-4631
SHELL=/usr/local/bin/tcsh
HOST=unix1.jinr.dubna.su
OSTYPE=FreeBSD
PWD=/home/lavr
LC_ALL=ru_SU.KOI8-R
TERMCAP=/etc/termcap
TZ=:/etc/localtime
MANPATH=/usr/local/man:/usr/share/man:/usr/X11R6/man
HOSTTYPE=FreeBSD
EDITOR=/usr/bin/vi
WINDOWID=20971534

результат должен быть одинаков: printenv==env

Теперь посмотрим какие у нас установленны переменные самого интерпретатора
tcsh, для этого воспользуемся его встроенной командой "set", или другой
встроенной командой "@", например:

unix1:/home/lavr> set
addsuffix
argv    ()
cdpath  (/sys /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin /usr/src/lib /usr/src/libexec /usr/src/share /usr/src/contrib /usr/src/etc /usr/src/games /usr/src/gnu /usr/src/include /usr/src/)
cpu     unix1
cwd     /home/lavr
dirstack        /home/lavr
echo_style      bsd
edit
gid     100
group   dug
history 500
home    /home/lavr
loginsh
noclobber
nonomatch
owd     /tmp
path    (/home/lavr/bin /usr/local/bin /usr/local/sbin /usr/local/audio /bin /usr/bin /usr/X11R6/bin /sbin /usr/sbin)
prompt  unix1:/home/lavr>
prompt2 %R?
prompt3 CORRECT>%R (y|n|e|a)?
savehist        500
shell   /usr/local/bin/tcsh
shlvl   1
status  0
tcsh    6.08.00
term    xterm
tt      xterm
tty     ttyp1
uid     310
user    lavr
version tcsh 6.08.00 (Astron) 1998-10-02 (i386-intel-FreeBSD) options 8b,nls,dl,al,sm,rh,color
unix1:/home/lavr>

 Теперь рассмотрим то же, но применительно к интерпретатору bash, настройки
среды - ENVIRONMENT, результат работы команды "env" :

[linux4u]~ > env
REMOTEUSER=lavr
INFOPATH=/home/lavr/info:/usr/local/info:/usr/info:/usr/X11R6/info
HISTSIZE=500
HOSTNAME=linux4u
LOGNAME=lavr
HISTFILESIZE=500
VISUAL=vi
TERMINFO=/usr/lib/terminfo
MAIL=/var/spool/mail/lavr
MACHTYPE=i586-debian-linux
PAGER=less
WWW_HOME=http://www.jinr.dubna.su
CDPATH=.:/home/lavr
CERN_ROOT=/cern/pro
TERMCAP=/etc/termcap
TERM=xterm
HOSTTYPE=i586
PATH=/home/lavr/bin:/home/lavr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/cern/pro/bin:/cern/adamo/3.3/bin:/usr/local/sbin:/usr/sbin:/sbin
CERN_LIB=/cern/pro/lib
HOME=/home/lavr
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
LESSKEY=/etc/lesskey.bin
SHELL=/bin/bash
ADAMO_LIB=/cern/adamo/3.3/lib
PS1=[\h]\w >\040
USER=lavr
TMPDIR=/tmp
_23500_GNU_nonoption_argv_flags_=000000000
MANPATH=/home/lavr/man:/usr/local/man:/usr/man:/usr/X11R6/man:/cern/pro/man:/cer
n/adamo/3.3/man
SSH_AUTH_SOCK=/tmp/ssh-lavr/agent-socket-23498
LESS=-ceMX
BLOCKSIZE=K
LESSCHARSET=koi8-r
LESSBINFMT=*u[%x]
DISPLAY=linux4u:12.0
LANG=ru_SU.KOI8-R
HOST=linux4u
SSH_CLIENT=159.93.17.121 753 22
HISTFILE=/home/lavr/.bash_history.linux4u
OSTYPE=linux
MM_CHARSET=ru_SU.KOI8-R
ADAMO_ROOT=/cern/adamo/3.3
WINDOWID=54525968
NNTPSERVER=news.jinr.dubna.su
PWD=/home/lavr
XNLSPATH=/usr/X11R6/lib/X11/nls
HISTCONTROL=ignoreboth
SHLVL=2
no_exit_on_failed_exec=1
EDITOR=vi
_=/usr/bin/env
_8576_GNU_nonoption_argv_flags_=0

переменные самого интерпретатора bash, можно посмотреть с помощью встроенной
команды самого bash - "set", например:

[linux4u]~ > set
MAILCHECK=60
REMOTEUSER=lavr
INFOPATH=/home/lavr/info:/usr/local/info:/usr/info:/usr/X11R6/info
HISTSIZE=500
UID=310
HOSTNAME=linux4u
LOGNAME=lavr
BASH_VERSINFO=([0]="2" [1]="00" [2]="0" [3]="1" [4]="release" [5]="i586-debian-l
inux")
OPTIND=1
HISTFILESIZE=500
PPID=23500
VISUAL=vi
TERMINFO=/usr/lib/terminfo
MAIL=/var/spool/mail/lavr
MACHTYPE=i586-debian-linux
DIRSTACK=()
PAGER=less
WWW_HOME=http://www.jinr.dubna.su
CDPATH=.:/home/lavr
CERN_ROOT=/cern/pro
IFS='
'
TERMCAP=/etc/termcap
TERM=xterm
EUID=310
HOSTTYPE=i586
PATH=/home/lavr/bin:/home/lavr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/cern/pro/bin:/cern/adamo/3.3/bin:/usr/local/sbin:/usr/sbin:/sbin
CERN_LIB=/cern/pro/lib
OLDPWD=/home/ftp
HOME=/home/lavr
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
LESSKEY=/etc/lesskey.bin
SHELL=/bin/bash
ADAMO_LIB=/cern/adamo/3.3/lib
LINES=40
PS1='[\h]\w >\040'
PS2='> '
PS4='+ '
USER=lavr
TMPDIR=/tmp
_23500_GNU_nonoption_argv_flags_=000000000
MANPATH=/home/lavr/man:/usr/local/man:/usr/man:/usr/X11R6/man:/cern/pro/man:/cer
n/adamo/3.3/man
SSH_AUTH_SOCK=/tmp/ssh-lavr/agent-socket-23498
LESS=-ceMX
BLOCKSIZE=K
LESSCHARSET=koi8-r
LESSBINFMT='*u[%x]'
COLUMNS=80
SHELLOPTS=braceexpand:hashall:histexpand:monitor:history:interactive-comments:em
acs
DISPLAY=linux4u:12.0
PIPESTATUS=([0]="0")
RANDOM=28471
LANG=ru_SU.KOI8-R
HOST=linux4u
SSH_CLIENT='159.93.17.121 753 22'
HISTFILE=/home/lavr/.bash_history.linux4u
OSTYPE=linux
MM_CHARSET=ru_SU.KOI8-R
ADAMO_ROOT=/cern/adamo/3.3
WINDOWID=54525968
NNTPSERVER=news.jinr.dubna.su
OPTERR=1
PWD=/home/lavr
XNLSPATH=/usr/X11R6/lib/X11/nls
_=clear
HISTCONTROL=ignoreboth
SHLVL=2
BASH_VERSION='2.00.0(1)-release'
no_exit_on_failed_exec=1
BASH=/bin/bash
EDITOR=vi
mc=()
{
    MC=/tmp/mc$$-"$RANDOM";
    /usr/bin/mc -U -P "$@" >"$MC";
    cd `cat "$MC"`;
    /bin/rm "$MC";
    unset MC
}
emacs=()
{
    if [ -z "$DISPLAY" ]; then
        /usr/bin/emacs "$@";
    else
        /usr/bin/emacs "$@" &
    fi
}
pp=()
{
    ps auxwww | egrep "(PID|${*:-.*})"
}
ff=()
{
    if [ $# -eq 0 ]; then
        echo "Usage: ff pattern";
    else
        find . \( -name \*$*\* -o -name $*\* -o -name \*$* \) -print;
    fi
}
setenv=()
{
    if [ $# -eq 0 ]; then
        set;
    else
        export $1="$2";
    fi
}
unsetenv=()
{
    export -n $*;
    unset $*
}

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

 Сделайте свой выбор и постарайтесь освоить хотя бы малую часть возможностей
интерпретатора, поверьте, это очень пригодится.

 Самое время хотя бы мельком прочитать руководство:

unix1:/home/lavr> man tcsh
или
unix1:/home/lavr> man bash

и вероятно не помешает,

unix1:/home/lavr> man environ

 Вернемся к некоторым важным переменным среды и интерпретатора, приглашение
командной строки - PROMPT, вид командной строки можно установить через
переменные интерпретаторов "prompt" для tcsh и "PS1" для bash, например:

в случае tcsh:

unix1:/home/lavr> set prompt="%m:%/[%T]%#"

и в результате, меняяем вид на:

unix1:/home/lavr[16:04]>

последовательности символов %m,%/,%T и %# - это только малый набор готовых
директив характерных только для задания "prompt" конкретно в tcsh, для
обзора возможных смотрите 'man tcsh'.

в случае bash:

[linux4u]~ > PS1="\h\w[\@] >"
linux4u~[05:28pm] >

сответственно последовательность \h,\w,\@ - характерна для bash, для полного
обзора смотрите 'man bash'.

 Если по какой-то причине, у вас не работают команды операционной системы,
например "env" или другие, возможно что неудачно установлена переменная
PATH среды или переменные path для tcsh и PATH для bash.
 PATH - путь, он есть путь, последовательность директорий которые система
будет просматривать на предмет запуска той или иной программы-команды.
 Пример задания переменной PATH:

в tcsh,

unix1:/home/lavr[17:45]>setenv PATH ${HOME}:/usr/local/bin:/usr/local/sbin:/bin:/usr/bin:/usr/X11R6/bin:/sbin:/usr/sbin

это пример задания переменной среды PATH, используя команду для установки
переменный среды в tcsh - setenv.

unix1:/home/lavr[17:51]>set path=( ~/bin /usr/local/bin /usr/local/sbin /bin /usr/bin /usr/X11R6/bin /sbin /usr/sbin )

это пример задания переменой path интерпретатора tcsh, однако некоторые
свои переменные tcsh синхронизирует с переменными среды, path одна из таких
переменных.

в bash,

linux4u~[05:28pm] >PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/sbin:/sbin

пример задания переменной PATH в bash, для того чтобы экспортировать ее
в среду, достаточно выполнить:

linux4u~[05:54pm] >export PATH

либо сразу выполнить 'export PATH=параметры'.

Не используйте мое ЗНАЧЕНИЕ переменной пути - PATH из примера, оно зависимо
от системы, ниже я постараюсь отразить общую структуру дерева Unix.

 В общем случае, установить переменные среды можно так:

tcsh, 'setenv ИМЯ значение'
bash, 'export ИМЯ=значение'

посмотреть, echo $ИМЯ (напоминаю, символ "$" указывает что нужно показать
ЗНАЧЕНИЕ переменной, иначе просто получим результат "эха")

переменные интерпретаторов:

tcsh, 'set имя=значение'
bash, 'ИМЯ=значение'

 Некоторые полезные переменные среды: HOME,USER,LOGNAME,MAIL,EDITOR,PAGER,LANG
TERM,TERMCAP.

Переменная среды PATH нам уже знакома, переменная HOME указывает на домашнюю
директорию пользователя, как нетрудно догадаться.

рассмотрим некоторые переменные на примерах:

unix1:/home/lavr[18:39]>echo $HOME
/home/lavr
unix1:/home/lavr[18:41]>

unix1:/home/lavr[18:41]>echo $USER
lavr
unix1:/home/lavr[18:42]>echo $LOGNAME
lavr
unix1:/home/lavr[18:42]>

в данный момент переменные среды USER и LOGNAME совпадают и соответствуют
имени - login, вошедшего в сеанс пользователя.

unix1:/home/lavr[18:42]>echo $MAIL
/var/mail/lavr
unix1:/home/lavr[18:44]>

переменная MAIL указывает полный путь к вашему почтовому ящику в системе,
о работе с почтой будет описано в другой _заметке_.

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

unix1:/home/lavr[18:44]>echo $EDITOR
/usr/bin/vi
unix1:/home/lavr[18:48]>

Сразу хочу заметить, в стандартной конфигурации разных Unix, основные редакторы
, которые приходят с системой это:
ed - строчный текстовый редактор "Эд";
vi,view,ex - что суть, одно и тоже, полноэкранный текстовый редактор "Ви-ай".

Базовый набор команд редактора "Vi" полностью включает команды строчного
редактора "ed", который очень удобно использовать для мелких и быстрых
правок текста.
 Предупреждаю, не торопитесь запускать любой из этих редакторов если ранее
вы не сталкивались с редакторами у которых имеется режим "командной строки"
и режим "редактирование".
 Для освоения этих редакторов советую использовать две открытые сессии
терминалов(виртуальные консоли или xterm, или два физических терминала - это
зависит от ваших возможностей), в одном сеансе - 'man vi[ed]', а в другом -
'vi [test]' или 'ed [test]'.
 Если у вас все-таки возникли проблемы с выходом из редакторов, то:

- в случае ed, необходимо выйти в командный режим используя сочетание клавиш
  CTRL-C (те послать сигнал INTR-прервать, ASCII DEL или BREAK), и получить
  в строке первым символом - "?", что означает переход в "командный режим"
  и затем выдать комадну "Q" - выйти из редактора.

- в случае vi, в комадный режим можно выйти через нажатие "escape" или CTRL-C,
  переход в командный режим обычно сопровождается звуковым сигналом и затем
  задать команду ":q" или ":q!".

Не трудно заметить, что самое замечательное свойство редакторов ed/vi, это то
что они есть во всех Unix, других качеств, как положительных, так и
отрицательных(?), тоже достаточно, но об этом отдельно в других заметках или
разделах FAQ'ов.
 Несколько наиболее распространненых в Unix редакторов:
- joe, jove, emacs(это целая среда), vile,vim,nvi (разнообразие vi-подобных)
- xemacs, nedit - редакторы ориентированные для работы в графическом режиме
  X-Windows.

переменная PAGER указывает какая программа будет вызываться для просмотра
файлов в текстовом формате, например команда "man" в разных OS Unix, зачастую
проверяет эту переменную для использования в дальнейшем заданной там программы
просмотра.
 Например:
unix1:/home/lavr> echo $PAGER
less
unix1:/home/lavr>
или
1.lavr@sunhe:/home/sunhe/lavr>echo $PAGER
more
2.lavr@sunhe:/home/sunhe/lavr>

Где, less и more - самые распространенные и продвинутые утилиты для просмотра
текстовых файлов.

 Переменные среды TERM и TERMCAP указывают тип используемого терминала и базу
данных с описаниями различных терминалов соответственно. Возможно, в следующих
заметках суть этих терминов и их использование будет объяснено подробнее,
сейчас же упомяну что все экранно-ориентированные программы используют одну
из двух баз, старую - termcap или более современную, продвинутую - terminfo для
операций с курсором, цветом, функциональными клавишами и тд и тп, тс операций
ввода-вывода, в зависимости от типа терминала определенного в переменной TERM.
 Назначение этих переменных зависит от типа терминала(hardware), косвенно от
OS Unix, режима терминала - текстовая консоль (виртуальная - богатая возможность
использования переключения страниц видео-памяти в Intel-based Unix) или
графический режим X-Windows.
 В широко известных Intel-based OS Unix: Linux, FreeBSD, Solaris-x86, SCO,
Xenix, переменная TERM часто имеет следующие значения(в случае текстовой
консоли):

Linux    : TERM=linux
FreeBSD  : TERM=cons25 или pc3[x] (cons25r и pc3r с koi8-support)
Solaris  : TERM=at386
SCO/Xenix: TERM=[не помню] (подойдет at386 или измененный на его основе)

SUN/HP/OSF: TERM=sun/hp/sx

и разнообразные модификации на базе указанных значений TERM, смотрите
файл /etc/termcap, например 'more /etc/termcap'.

 В случае использования X-Windows, переменная TERM чаще всего имеет значения
взависимости от используемой программы a-la "xterm":
xterm,color-xterm,kxterm и тд и тп.
 Если вы используете эмуляторы терминала в различных программах дозвонки(bbs)
или эмуляторов терминала в пакетах для работы с Unix из Windows9x/NT, не
забудьте привести в соответствие или выбрать наиболее подходящий для вас
режим эмуляции удаленного терминала, например в bbs'ках:

kermit,telix,telemate и многих других: ansi/vt52/100/200/220/...

тот же принцип и в пакетах "эмуляторы удаленного терминала" для Windows9x/NT.
(Разнообразные NetTERM/TerraTERM и тд)
 Проверить, настроить или видоизменить "эмуляторы терминалов" можно после
входа в систему, изменив переменные TERM/TERMCAP/TERMINFO, например:

unix1:/home/lavr> echo $TERM
xterm
unix1:/home/lavr> echo $TERMCAP
/etc/termcap
unix1:/home/lavr>

что говорит об использовании грфической среды X-Windows, для нее эмулятора
терминала - xterm (TERM=xterm) и базы описания терминалов, файл /etc/termcap,
который определен через переменную TERMCAP.
 Как упоминалось выше, в качестве базы описания терминалов можно использовать
как TERMCAP, так и TERMINFO, в моих примерах я опираюсь на базу TERMCAP, в
силу старой привычки.
 Нужно отемтить, использование баз TERMCAP/TERMINFO, часто зависит от того
как ваш администратор собирает те или иные экранно-ориентированные программы.

примеры текстовых консолей,

FreeBSD:

unix1:/home/lavr> echo $TERM
pc3r
unix1:/home/lavr> echo $TERMCAP
/etc/termcap
unix1:/home/lavr>

Linux:

[linux4u]~ > echo $TERM
linux
[linux4u]~ > echo $TERMCAP
/etc/termcap
[linux4u]~ >

Sun(Sparc):

ultra:/home/lavr> echo $TERM
sun
ultra:/home/lavr> echo $TERMCAP
/etc/termcap
ultra:/home/lavr>

 В программах удаленного доступа, например через модем - режим online, в
старых-добрых telix/telemate, я использую эмуляцию терминалов vt52/ansi,
тогда при входе на Unix машину имеет смысл проверить и при необходимости
переопределить переменные TERM/TERMCAP.
 Например в telix, я выбираю эмуляцию vt52, а при входе через модем на
машину с OS Unix, устанавливаю переменную TERM=vt100, в случае telemate
- выбираю эмуляцию ansi-терминала и затем в Unix использую TERM=ansi или
pcansi (и разнообразные модификации ansi или pcansi).
 Кстати, можно сделать разбор и установку переменной TERM при входе -
те отработке "login", а в случае неизвестного терминала попросить задать
переменную TERM интерактивно, как это сделать - личное дело администратора
или пользователя, а вот где - ниже, мы коротко разберем процедуру входа
в систему для пользователей с интерпретаторами bash/tcsh[sh/csh].

 Последняя, упомянутая нами переменная среды - LANG. Эта переменная имеет
отношение к локализации операционной системы, в нашем случае, руссификации -
кириллизации.
 Спора о выборе кодировки(866-ALT,1251-Windows,ISO-8859-5,KOI8-R) не будет,
гласный или негласный, зарегистрированный или нет, для русскоязычной части
сети Интернет стандартом принято считать KOI8-R(точка). И в этом отношении
правильную политику ведет сеть FIDO. В любом случае, имеется много
руководств или FAQ-ЧАВО, написанных еще во времена Релкомовской _монархии_ :-),
о сетевом этикете, терминах, ресурсах И КОДИРОВКЕ.
 На настоящий момент, наиболее удачно локализованная OS Unix - FreeBSD и
вероятно Net[Open]BSD, Linux - те открытые системы. Что-то в этом плане
сделал Sun в Solaris2.7, я не видел и не пробовал и утверждать не берусь.
 Во всем что касается локализации, как здесь, так и в дальнейшем будет
подразумеваться кодировка KOI8-R.
 Возможно у нас будет раздел о локализации, пока же будем считать что
система "как-то" локализована или по-крайней мере, имеет необходимые
загруженные фонты и "клавиатурный переключатель" между разными раскладками
клавиатуры(кодовыми таблицами).
 В этом документе мы попробуем дать лишь несколько советов как можно попытаться
использовать 8-ой бит для чтения и написания кириллицы.
 Не хотелось бы "пудрить мозги начинающим", но следует уточнить такие моменты:

- в качестве рабочего места машина с OS Unix или X-Terminal, в этом случае
  ваш администратор должен позаботиться о локализации, а при использовании
  графической среды X-Windows вы можете загружать необходимые фонты и
  и "клавиатурный переключатель" самостоятельно;

- в качестве рабочего места машина с MS-DOS или Windows9x/NT, в этом случае
  у вас наверняка кодировки 866 и 1251 соответственно, тогда при использовании
  программ "удаленного доступа" вам следует позаботиться о переключении в
  MS-DOS/Windows в KOI8-R или использовать в качестве фонтов в программах
  "удаленного доступа" - фонты KOI8-R и переопредилить раскладку клавиатуры
  (если позволяют программы удаленного доступа)

 Рассмотрим несколько примеров,

 Допустим что локально мы можем смотреть и/или переключаться в KOI8-R.

1. Проверка характиристик устройства стандартного вывода.

- сначала проверим характеристики устройства стандартного вывода, по-русски
  установленный размер отображения символа 5,6,7 или 8 bit и чтобы не
  происходило обрезание последнего (8bit) в процессе ввода, воспользуемся
  командой "stty" (man stty), например:

unix1:/home/lavr> stty -a
speed 9600 baud; 40 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc
iflags: istrip icrnl -inlcr -igncr ixon -ixoff -ixany imaxbel -ignbrk
        brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs
cflags: cread cs7 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
        -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ;
        eol2 = ; erase = ^H; intr = ^C; kill = ^U; lnext = ^V;
        min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
        stop = ^S; susp = ^Z; time = 0; werase = ^W;
unix1:/home/lavr>

ищите две компоненты в управляющих флагах(cflags) и входных(iflags):
наличие cflags - наличие режима "cs8"(размер символа 8bit) и в iflags -
"-istrip"(запретить обрезание входных символов до 7bit).
 В верхнем примере видим что установлены режимы cs7 и istrip, в то время
как нам нужно cs8 и -istrip, посмотрите каков будет результат при переключении
в KOI8-R:
unix1:/home/lavr> MAMA MYLA RAMU

попробуем исправить, установив нужные нам режимы:

unix1:/home/lavr> stty cs8 -istrip

и снова наберем ту же фразу:

unix1:/home/lavr> мама мыла раму

 Возможны варианты команды stty с параметрами, попробуйте следующие и если
помогло, установите что именно:

unix1:/home/lavr> stty pass8

работает в разных версия BSD, Linux, OSF1, не работает в Solaris/HP-UX/AIX.
или
unix1:/home/lavr> stty -parity -evenp -oddp cs8 -istrip
или
unix1:/home/lavr> stty -parenb -istrip cs8

2. Проверка интерпретаторов на предмет работы с 8-ым битом.

- возможно ваш SHELL не пропускает 8-ой bit(и это по-большому счету
  несущественно, ибо главное чтобы можно было использовать кириллицу
  в редакторах и программах просмотра текста - less/more), можно указать
  на это системному администратору и попросить разобраться.
   Как проверить с какими возможностями скомпилированы tcsh/bash,

tcsh:

unix1:/home/lavr> set
или
unix1:/home/lavr> @
unix1:/home/lavr> set
addsuffix
argv    ()
cdpath  (/sys /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin /usr/src/lib /usr/src/libexec /usr/src/share /usr/src/contrib /usr/src/etc /usr/src/games /usr/src/gnu /usr/src/include /usr/src/)
cpu     unix1
cwd     /home/lavr
...
version tcsh 6.08.00 (Astron) 1998-10-02 (i386-intel-FreeBSD) options 8b,nls,dl,al,sm,rh,color
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- это
интересующая нас строка и в ней необходимо наличие параметров 8b - 8bit и
nls - при отсутствии локализации.

bash:

если я не ошибаюсь, bash не сообщает параметры компиляции, но если возникли
проблемы, то попробуйте создать в домашней директории файл .inputrc
такого вида:

------------------------- begin .inputrc ----------------------------------
set convert-meta off
set meta-flag on
set output-meta on
------------------------- end of .inputrc ---------------------------------

затем запустить второй shell: 'bash --login' или выйти из сеанса и снова войти
или задать эти параметры ввода и отображения входной строки так:

[linux4u]~ > bind 'set convert-meta off' 'set meta-flag on' 'set output-meta on'
3. Отображение кириллицы в редакторах.

 При настроенной локализации, при этом неважно как ее определили, те для
пользователей это возможность использования русских символов, ВСЕ ДОЛЖНО
работать.

_правильное_ значение переменной LANG=ru_SU.KOI8-R , однако можно встретить
достаточно большое разнообразие, например:

nusun:~>echo $LANG
koi8
nusun:~>

или

lavr@decimal 101 -> echo $LANG
ru.koi_8
lavr@decimal 102 ->

или ru,RU,su,SU и тд и тп, пользователям "фиолетово" - лишь бы работало.

 При ненастроенной локализации, попробуйте такие варианты:

 запустите ваш редактор, переключите клавиитуру в русскую раскладку и
попробуйте напечатать, например "мама мала раму", если набранный текст
не соответствует отображаемому, то:

- вы видите кириллицу, но она не соответствует введенному тексту, тогда
у вас проблема с раскладкой клавиатуры;

- если вы видите восмиричные, шестнадцатиричные или "\код", ваш редактор
требует настройки локализации, как этого избежать:

 1. попробуйте отменить установку переменной LANG или задать ей пустое
   значение и посмотреть как это отразилось на работе редактора;
 2. попробуйте установить переменную LANG в любое значение, найденное
   в вашей OS Unix, отличное от "C","Latin-1","en_US", лишь бы имелась
   возможность отображения 8-ого бита, например,

 Solaris:

 если у вас имеется директория /usr/lib/locale с локализацией для de,fr,es
 можете воспользоваться ими:

 tcsh:

 ultra:/home/lavr> setenv LANG de
 или
 ultra:/home/lavr> setenv LC_CTYPE de

 bash:

 ultra:/home/lavr> export LANG=de
 или
 ultra:/home/lavr> export LC_CTYPE=de

 теперь редактор должен показывать русские буквы.

 HP-UX:

 если у вас имеется директория /usr/lib/nls с локализацией для german -
 de_DE.roman8 или других стран отличных от en_US (USA), вполне можете
 воспользоваться ими:

  tcsh:

 ultra:/home/lavr> setenv LANG de_DE.roman8
 или
 ultra:/home/lavr> setenv LC_CTYPE de_DE.roman8

 bash:

 ultra:/home/lavr> export LANG=de_DE.roman8
 или
 ultra:/home/lavr> export LC_CTYPE=de_DE.roman8

 теперь редактор должен показывать русские буквы.

 Это не есть верное решение проблемы, а всего лишь выход из положения
который может не сработать для старых OS Unix и для sh/csh.

Коротко о том какие файлы для tcsh/bash нужно создать-модифицировать для
настройки среды в OS Unix. При входе на машину с OS Unix у вас отрабатыает
сценарий "login", подробно - читайте 'man login'.
 Если ваш интерпретатор - tcsh, то при входе в систему он пытается выполнить
команды сначала из системных файлов-настроек: /etc/csh.cshrc и /etc/csh.login
(порядок выполнения мб установлен во время компиляции tcsh), а затем из
домашней директории пользователя: .tcshrc, .cshrc, .login (порядок мб изменен)
 Более полную информацию см. 'man tcsh'. Свои настройки вы можете сделать
в файлах домашней директории: .tcshrc, .cshrc, .login.
 Если ваш интерпретатор - bash, то при входе в систему он пытается выполнить
команды сначала из системных файлов-настроек: /etc/profile и после этого
из файло в домашней директории пользователя: .bash_profile, .bash_login,
.profile и .bashrc (порядок мб изменен при компиляции).
 Более полную информацию см. 'man bash'. Свои настройки вы можете сделать
в файлах домашней директории: .bash_profile, .bash_login, .profile и .bashrc.

 В большинстве разных OS Unix имеется директория содержащая заготовки для
настройки пользовательской среды, sh/csh/tcsh/bash - /etc/skel, из нее
копируются настроечные файлы в домашнюю директорию пользователя при
регистрации. Часто бывает что администратор либо изменяет изначальные системные
наситройки или добавляет что-то специфичное, либо заменяет эту диреторию на
/usr/local/etc , возможно на иную, характерную для локальных целей.
 Например:

Solaris,

ultra:/tmp> ls -la /etc/skel
total 24
drwxr-xr-x   2 root     sys          512 Sep  2  1997 .
drwxrwxr-x  28 root     sys         3584 Oct  1 14:47 ..
-rwxr-xr-x   1 vvm      dug            6 Apr  4  1996 .bash_logout
-rw-r--r--   1 vvm      dug           27 Mar  6  1996 .bash_profile
-rw-r--r--   1 vvm      dug           21 Mar  6  1996 .bashrc
-rw-r--r--   1 root     other         25 Sep  2  1997 .cshrc
-rw-r--r--   1 root     other         25 Sep  2  1997 .login
-rw-r--r--   1 root     other          6 Sep  2  1997 .logout
-rw-r--r--   1 root     other        144 Jul  9  1997 .profile
ultra:/tmp>

HP-UX,

[dtserv]~ > ls -la /etc/skel
total 40
drwxrwxr-x   7 root       sys           1024 Jan 30  1998 .
dr-xr-xr-x  25 bin        bin           5120 Oct 16 09:20 ..
-rwxr-xr-x   1 root       sys              6 Jan 29  1998 .bash_logout
-rw-r--r--   1 root       sys             31 Jan 29  1998 .bash_profile
-rw-r--r--   1 root       sys             25 Jan 29  1998 .bashrc
-r--r--r--   1 root       sys            814 Jun 10  1996 .cshrc
-r--r--r--   1 root       sys            347 Jan 28  1998 .exrc
-r--r--r--   1 root       sys            347 May 30  1996 .exrc.orig
-r--r--r--   1 root       sys            341 Jun 10  1996 .login
drwxr-xr-x   2 root       sys           1024 Jan 30  1998 .mc
-rw-r--r--   1 root       sys            677 Jan 29  1998 .profile
-r--r--r--   1 root       sys            446 Jun 10  1996 .profile.orig
drwxr-xr-x   2 root       sys           1024 Jan 30  1998 .ssh
drwxr-xr-x   2 root       sys             24 Jan 30  1998 Mail
drwxr-xr-x   2 root       sys           1024 Apr 21  1998 bin
drwxr-xr-x   2 root       sys           1024 Apr 21  1998 sbin
[dtserv]~ >

Теперь попробуем рассмотреть повседневный набор команд в OS Unix:

Примечание: в качестве примера использовалась система FreeBSD, но базовые
команды не сильно отличаются от системы к системе, некоторым дополнительным
набором ключей, не более того.

1. uname - посмотреть под управлением какой OS и на какой платформе мы работаем:

`man uname`

Пример:

[unix1]~ > uname -a
FreeBSD unix1.jinr.dubna.su 4.2-STABLE FreeBSD 4.2-STABLE #0: Tue Mar 13 17:31:28 MSK 2001     [email protected]:/usr/src/sys/compile/LAVR  i386
[unix1]~ >

ultra:/home/lavr> uname -a
SunOS ultra 5.5.1 Generic_103640-32 sun4u sparc SUNW,Ultra-1
ultra:/home/lavr>

обычно команда `uname` сообщает версию OS и платформу.

2. date - текущие дата и время:

`man date`

ultra:/home/lavr> date
Fri Jun 15 18:19:01 MSK/MSD 2001
ultra:/home/lavr>

3. who[w] - посмотреть среднюю загрузку и кто еще работает на машине и чем
            в текущий момент занят:

Примечание: команды who/w похожи и на разных систем имеют небольшие различия,

`man who`
`man w`

[unix1]~ > who
lavr             ttyp1   14 июн 15:05   (unix1.jinr.dubna)
lavr             ttyp2   10 июн 15:10   (unix1.jinr.dubna)
lavr             ttyp3   15 июн 17:06   (unix1.jinr.dubna)
lavr             ttyp4   15 июн 18:10   (unix1.jinr.dubna)
lavr             ttyp5   15 июн 18:10   (unix1.jinr.dubna)
pin              ttyp6   15 июн 18:21   (dezcom.mephi.ru)
lavr             ttyp7   15 июн 18:28   (unix1.jinr.dubna)
[unix1]~ >

ultra:/home/lavr> who
palichik   pts/3        Jun 14 17:53    (sunct2)
tanyusha   pts/5        Jun 15 16:05    (159.93.25.75)
tanyusha   pts/0        Jun 15 17:41    (159.93.25.75)
lavr       pts/2        Jun 15 18:17    (unix1.jinr.dubna.su)
ultra:/home/lavr>

Примечание: если запущен демон rwhod, то команда rwho покажет всех работающих
пользователей на остальных компьютерах сети под управлением OS Unix, в случае
если на них тоже запущен демон rwhod:

cv:/local2/home/lavr> rwho
asp      cv:ttyp9     Jun 15 18:09 :08
eat      cv:ttyp1     Jun 13 18:28 :01
eat      cv:ttyp7     Jun 13 19:38 :01
karlov   cv:ttypc     Jun 15 18:03
lavr     lxit00:pts/0 Jun 15 14:05 :08
minaev   alice:pts/1  Jun 15 10:47 :25
popovla  cv:ttyp6     Jun 15 17:44 :34
root     dtmain:1     Jun 14 11:53
skachkov cv:ttyp5     Jun 15 17:19 :08
taratin  bcv:ttyp3    Jun 15 14:46 :18
toor     dtmain:0     Jun  6 13:51
zemlya   cv:ttyp8     Jun 15 18:00 :19
cv:/local2/home/lavr>

в верхнем примере мы видим что на машине cv работают пользователи:

asp
eat
karlov
popovla
skachkov
zemlya

на машине dtmain:

root
toor

на машине lxit00:

lavr

на машине alice:

minaev

на машине bcv:

taratin

пример команды `w`:

[unix1]~ > w
 6:28пп  up 12 days,  6:48, 7 users, load averages: 1.47, 1.31, 1.18
USER             TTY      FROM              LOGIN@  IDLE WHAT
lavr             p1       unix1.jinr.dubna чт 03пп     5 ftp ftp://lizard/video
lavr             p2       unix1.jinr.dubna вс 03пп    13 slogin lx000h
lavr             p3       unix1.jinr.dubna  5:06пп     - /usr/local/bin/mc -U -
lavr             p4       unix1.jinr.dubna  6:10пп     5 lynx ftp://lizard/vide
lavr             p5       unix1.jinr.dubna  6:10пп     3 slogin cv
pin              p6       dezcom.mephi.ru   6:21пп     - pine
lavr             p7       unix1.jinr.dubna  6:28пп     - w
[unix1]~ >

cv:/local2/home/lavr> w
  6:25pm  up 22 days, 23:37,  12 users,  load average: 1.39, 1.95, 3.59
User     tty       login@  idle   JCPU   PCPU  what
vkc      tty03     6:22pm     1                -csh[vkc]
lavr     ttyp0     6:21pm                      w
eat      ttyp1     6:28pm     6   3:39      1  -csh
toor     ttyp2     8:05pm191:42  11:42     23  -bash
ayrjan   ttyp3     5:15pm  3:22     10      9  pine
pokorny  ttyp4     6:22pm     3                sleep 30
skachkov ttyp5     5:19pm           40         -csh[skachkov]
popovla  ttyp6     5:44pm    40      1         -bash[popovla]
eat      ttyp7     7:38pm     6   2:34      8  pine
asp      ttyp9     6:09pm           17      2  -csh[asp]
kon      ttypb     1:48pm  1:39     25     13  -csh[kon]
karlov   ttypc     6:03pm     1      9         -csh[karlov]
cv:/local2/home/lavr>

ultra:/home/lavr> w
  6:39pm  3 users,  load average: 0.04, 0.03, 0.06
User     tty           login@  idle   JCPU   PCPU  what
palichik pts/3        Thu 5pm            4      4  mc -U
palichik pts/0         6:35pm                      mc -U
lavr     pts/1         6:38pm                      w
ultra:/home/lavr>

4. tty - посмотреть на каком терминале вы работаете:

`man tty`

ultra:/home/lavr> tty
/dev/pts/1
ultra:/home/lavr>

[unix1]~ > tty
/dev/ttyp7
[unix1]~ >

в примерах выше - pts и ttyp указывают что это сетевые терминальные сессии

[unix1]~ > tty
/dev/console
[unix1]~ >

[unix1]~ > tty
/dev/ttyv3
[unix1]~ >

в прмерах выше - console и ttyv3 указывают на то что это консольные терминалы,
а ttyv3 - 3'ий виртуальный терминал консоли.

5. more|less - команды просмотра содержимого текстовых файлов, часто
               используются как фильтры в pipe'ах:

`man more`
`man less`

ultra:/home/lavr> more koi8.txt
ultra:/home/lavr> less koi8.txt

ultra:/home/lavr> who | less
ultra:/home/lavr> who | more

6. cat - программа слияния и распечатки файлов:

`man cat`

[unix1]~ > cat koi8.txt
верхний регистр:                   winkeys
----------------

цифровой ряд: Ё!"'*:,.;()_+|   Ё!"#;%:?*()_+|

ЙЦУКЕНГШЩЗХЪ
ФЫВАПРОЛДЖЭ
ЯЧСМИТЬБЮ?

нижний регистр:
---------------

цифровой ряд: ё1234567890-=\  ё1234567890-=/

йцукенгшщзхъ
фывапролджэ
ячсмитьбю/

[unix1]~ >

[unix1]~ > cat koi8.txt koi8.txt > 2koi8

в примере выше мы использовали команду cat для слияния файла koi8.txt,
дважды в один файл 2koi8 с использованием перенаправления вывода в файл 2koi8.

7. ls - показать содержимое директории:

[unix1]~ > ls
[unix1]~ > ls -la
[unix1]~ > ls /usr/bin
[unix1]~ > ls -la /usr/bin | more
[unix1]~ > ls -la /usr/bin | less

8. cd - перейти в указанную директорию или файловую систему:

`man cd` - это встроенная команда вашего интерпретатора SHELL

[unix1]~ > cd /tmp
[unix1]/tmp >

[unix1]/tmp > cd /usr/local
[unix1]/usr/local >

[unix1]/usr/local > cd ..
[unix1]/usr >

[unix1]/usr > cd ../home
[unix1]/home >

9. pwd - посмотреть в каком текущем месте, директории мы находимся:

[unix1]~ > pwd
/home/lavr
[unix1]~ >

10. mkdir - создать директорию:

[unix1]~ > mkdir testdir
[unix1]~ > ls -la testdir
total 9
drwxr-xr-x   2 lavr  dug   512 15 июн 18:57 .
drwxr-xr-x  68 lavr  dug  7680 15 июн 18:57 ..
[unix1]~ > mkdir /tmp/testdir
[unix1]~ > ls -la /tmp/testdir
total 5
drwxr-xr-x   2 lavr  wheel   512 15 июн 18:57 .
drwxrwxrwt  37 root  wheel  4096 15 июн 18:57 ..
[unix1]~ >

11. ed,ex,vi - редакторы для создания и работы с файлами,
    touch,cat,copy - команды, в частности позволяющие создавать файлы:

ed - строчный редактор (распространяется в любом дистрибутиве OS Unix)
ex,vi - полноэкранные редакторы (распространяется в любом дистрибутиве OS Unix)

указанные редакторы присутствуют в любом дистрибутиве любой OS Unix

`man ed`
`man ex`
`man vi`

примеры создания небольших файлов с помощью команд touch,cat,copy:

[unix1]~ > cat > testfile
This is example
Easy file creator
 - CTRL-D
[unix1]~ >

нажатие CTRL-D мы использовали как посылку сигнала EOF (End Of File)

[unix1]~ > ls -la testfile
-rw-r--r--  1 lavr  dug  34 15 июн 19:07 testfile
[unix1]~ >

примечание: комбинационную связку клавиши-сигнал можно посмотреть командой
`stty -a`:

[unix1]~ > stty -a
speed 9600 baud; 40 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
        -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff -ixany -imaxbel -ignbrk
        -brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs
cflags: cread cs8 parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
        -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ; eol2 = ^@;
        erase = ^H; intr = ^C; kill = ^U; lnext = ^V; min = 1; quit = ^\;
        reprint = ^R; start = ^Q; status = ; stop = ^S; susp = ^Z;
        time = 0; werase = ^W;
[unix1]~ >

примечание: stty - команда установки настроек терминальных устройств.

[unix1]~ > touch createfile
[unix1]~ > ls -la createfile
-rw-r--r--  1 lavr  dug  0 15 июн 19:18 createfile
[unix1]~ >

с помощью команды `touch` можно создать пустой файл.

[unix1]~ > cp /dev/stdin newfile
Once again to create new file
Hello, World.
[unix1]~ > ls -la newfile
-rw-r--r--  1 lavr  dug  44 15 июн 19:22 newfile
[unix1]~ >

с помощью достаточного большого набора команд, которые работают с устройством
стандартного ввода, можно быстро создавать простые файлы.

[unix1]~ > echo "Just add one string to file newfile" >> newfile
[unix1]~ > cat newfile
Once again to create new file
Hello, World.
Just add one string to file newfile
[unix1]~ >

в данном случае ">>" означает добавить к уже существующему файлу.

Вариантов быстрого создания маленьких фалов много, но для реальной работы
необходимо осваивать существующие в OS Unix редакторы, их много и поэтому
рекоммендации такие:

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

  ed/vi[vim] - обязаны знать, по-скольку это базовые редакторы всех OS Unix

- во всех остальных случаях:

  ed/vi[vim]
  emacs/xemacs
  joe
  jove
  nedit - X11 редактор
  и тд и тп

12. rm - удалить файл, директорию:

`man rm`

удалить созданные ранее файлы:

[unix1]~ > rm 2koi8
remove 2koi8? y
[unix1]~ >

удалить созданные ранее директории:

[unix1]~ > rm -r testdir
remove testdir? y
[unix1]~ >

[unix1]~ > rm -r /tmp/testdir
remove /tmp/testdir? y
[unix1]~ >

13. cp - команда копирования файлов, директорий:

копирование файла:

ultra:/home/lavr> cp
cp: Insufficient arguments (0)
Usage: cp [-f] [-i] [-p] f1 f2
       cp [-f] [-i] [-p] f1 ... fn d1
       cp -r|R [-f] [-i] [-p] d1 ... dn-1 dn
ultra:/home/lavr>

ultra:/home/lavr> cp koi8.txt copy_koi8.txt
ultra:/home/lavr> ls -la copy_koi8.txt
-rw-------   1 lavr     dug         1125 Jun 16 15:43 copy_koi8.txt
ultra:/home/lavr>

копирование директории:

ultra:/home/lavr> ls -la Mail
total 150
drwx------   2 lavr     dug          512 Jan 22 13:14 .
drwxr-xr-x  39 lavr     dug         3584 Jun 16 15:45 ..
-rw-------   1 lavr     dug         1407 Oct 29  1998 anarbay
-rw-------   1 lavr     dug         1409 Aug  1  1998 andrew
-rw-------   1 lavr     dug         3974 Jun 17  1999 iris
-rw-------   1 lavr     dug         2704 Dec  3  1999 lavr
-rw-------   1 lavr     dug         5568 Aug 13  1999 mailer-daemon
-rw-r--r--   1 lavr     dug        43384 May  2  2000 posted
-rw-------   1 lavr     dug            0 May 14  1998 saved-messages
-rw-------   1 lavr     dug          381 Nov 16  2000 sent-mail
-rw-------   1 lavr     dug         2763 Jan 22 13:14 virtaliro.com
-rw-------   1 lavr     dug         6027 Jul  9  1999 vmitsyn
ultra:/home/lavr>

ultra:/home/lavr> cp -R Mail AltMail
ultra:/home/lavr> ls -la AltMail
total 150
drwx------   2 lavr     dug          512 Jun 16 15:45 .
drwxr-xr-x  40 lavr     dug         3584 Jun 16 15:45 ..
-rw-------   1 lavr     dug         1407 Jun 16 15:45 anarbay
-rw-------   1 lavr     dug         1409 Jun 16 15:45 andrew
-rw-------   1 lavr     dug         3974 Jun 16 15:45 iris
-rw-------   1 lavr     dug         2704 Jun 16 15:45 lavr
-rw-------   1 lavr     dug         5568 Jun 16 15:45 mailer-daemon
-rw-r--r--   1 lavr     dug        43384 Jun 16 15:45 posted
-rw-------   1 lavr     dug            0 Jun 16 15:45 saved-messages
-rw-------   1 lavr     dug          381 Jun 16 15:45 sent-mail
-rw-------   1 lavr     dug         2763 Jun 16 15:45 virtaliro.com
-rw-------   1 lavr     dug         6027 Jun 16 15:45 vmitsyn
ultra:/home/lavr>
ultra:/home/lavr> rm -rf AltMail
ultra:/home/lavr>

14. mv - перенос файлов и директорий с одного места в другое:

ultra:/home/lavr> mv
mv: Insufficient arguments (0)
Usage: mv [-f] [-i] f1 f2
       mv [-f] [-i] f1 ... fn d1
       mv [-f] [-i] d1 d2
ultra:/home/lavr>

ultra:/home/lavr> mv koi8.txt lavr
ultra:/home/lavr> ls -la koi8.txt
koi8.txt: No such file or directory
ultra:/home/lavr> ls -la lavr
-rw-------   1 lavr     dug         1125 Oct 28  1998 lavr
ultra:/home/lavr> mv lavr koi8.txt
ultra:/home/lavr> ls -la koi8.txt
-rw-------   1 lavr     dug         1125 Oct 28  1998 koi8.txt
ultra:/home/lavr>

15. cut - команда позволяющая вырезать из заданного файла куски по полям
          или заданному формату:

`man cut`

ultra:/home/lavr> cut -f 1 -d: /etc/passwd
результат вывода опущен

данный пример вырезает первое поле из файла /etc/passwd используя в качестве
разделителя символ ":".

16 tr - перевод, замена символов по заданному шаблону:

`man tr`

ultra:/home/lavr> echo AGHKGAHKGHK | tr '[:upper:]' '[:lower:]'
aghkgahkghk
ultra:/home/lavr>

используя pipe[канал] подаем входную строку на вход команды `tr` с шаблоном
перевести все символы в верхнего регистра в нижний.

17. grep - команда поиска данных в файле по образцу, можно использовать
           регулярные выражения:

ultra:/home/lavr> ls -la /tmp | grep lavr
drwx------   2 lavr     dug          120 Jun 15 18:38 ssh-lavr
ultra:/home/lavr>

в результате вывода команды `ls -la` найти все вхождения строки "lavr"

[unix1]~ >grep "~lavr" /var/log/apache/unix1-access.log | grep -v "159.93" | grep -v "194.87.162.86" | less

результаты вывода опущены, в данной команде в файле /var/log/apache/unix1-access.log ищется строка "~lavr" с исключением строк: "159.93" и "194.87.162.86",
для исключения используетсяя опция "-v".

18. sed - потоковый редактор:

`man sed` - включая регулярные выражения - regexp, это целая жизнь:

ultra:/home/lavr> echo "asdjfh livr asdfjhjk" | sed s/livr/lavr/g
asdjfh lavr asdfjhjk
ultra:/home/lavr>

19. dmesg - в большинстве OS Unix, данная команда позволяет посмотреть
            сообщения процедуры загрузки, с важными системными сообщениями,
тип системы, платформы, прерывания, обнаруженные устройства, диагностика,
неполадки, сбои и тд и тп:

ultra:/home/lavr> dmesg | less
Jun 16 16:09
cpu0: SUNW,UltraSPARC (upaid 0 impl 0x10 ver 0x22 clock 143 MHz)
^MSunOS Release 5.5.1 Version Generic_103640-32 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1996, Sun Microsystems, Inc.
mem = 131072K (0x8000000)
avail mem = 127664128
Ethernet address = 8:0:20:83:4f:e8
root nexus = Sun Ultra 1 SBus (UltraSPARC 143MHz)
sbus0 at root: UPA 0x1f 0x0 ...
espdma0 at sbus0: SBus0 slot 0xe offset 0x8400000
esp0 at espdma0: SBus0 slot 0xe offset 0x8800000 Onboard device sparc9 ipl 4
sd0 at esp0: target 0 lun 0
sd0 is /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@0,0
        
sd1 at esp0: target 1 lun 0
sd1 is /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@1,0
        
sd2 at esp0: target 2 lun 0
sd2 is /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@2,0
        
sd3 at esp0: target 3 lun 0
sd3 is /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@3,0
        
sd6 at esp0: target 6 lun 0
sd6 is /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@6,0
root on /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@0,0:a fstype ufs
zs0 at sbus0: SBus0 slot 0xf offset 0x1100000 Onboard device sparc9 ipl 12
zs0 is /sbus@1f,0/zs@f,1100000
zs1 at sbus0: SBus0 slot 0xf offset 0x1000000 Onboard device sparc9 ipl 12
zs1 is /sbus@1f,0/zs@f,1000000
keyboard is  major <29> minor <2>
mouse is  major <29> minor <3>
stdin is  major <29> minor <2>
cgsix0 at sbus0: SBus0 slot 0x2 offset 0x0 SBus level 5 sparc9 ipl 9
cgsix0 is /sbus@1f,0/cgsix@2,0
cgsix0: screen 1152x900, single buffered, 1M mappable, rev 11
stdout is  major <39> minor <0>
boot cpu (0) initialization complete - online
...

[unix1]~ > dmesg | less
> tcp
pid 10141 (communicator-4.7), uid 310: exited on signal 10 (core dumped)
fxp0: promiscuous mode enabled
fxp0: promiscuous mode disabled
fxp0: promiscuous mode enabled
fxp0: promiscuous mode disabled
arp: 159.93.17.1 moved from 00:d0:97:c0:98:00 to 00:30:94:9f:cd:80 on fxp0
arp: 159.93.17.1 moved from 00:30:94:9f:cd:80 to 00:d0:97:c0:98:00 on fxp0
arp: 159.93.17.1 moved from 00:d0:97:c0:98:00 to 00:30:94:9f:cd:80 on fxp0
arp: 159.93.17.1 moved from 00:30:94:9f:cd:80 to 00:d0:97:c0:98:00 on fxp0
arp: 159.93.17.1 moved from 00:d0:97:c0:98:00 to 00:30:94:9f:cd:80 on fxp0
arp: 159.93.17.1 moved from 00:30:94:9f:cd:80 to 00:d0:97:c0:98:00 on fxp0
nfs server lx000h:/xpt/arch/private/lavr: not responding
nfs server lx000h:/xpt/arch/private/lavr: is alive again
pid 50336 (ftpd), uid 14 on /pub: file system full
...

[unix1]~ > dmesg | less
> tcp
pid 10141 (communicator-4.7), uid 310: exited on signal 10 (core dumped)
fxp0: promiscuous mode enabled
fxp0: promiscuous mode disabled
fxp0: promiscuous mode enabled
fxp0: promiscuous mode disabled
arp: 159.93.17.1 moved from 00:d0:97:c0:98:00 to 00:30:94:9f:cd:80 on fxp0
arp: 159.93.17.1 moved from 00:30:94:9f:cd:80 to 00:d0:97:c0:98:00 on fxp0
arp: 159.93.17.1 moved from 00:d0:97:c0:98:00 to 00:30:94:9f:cd:80 on fxp0
arp: 159.93.17.1 moved from 00:30:94:9f:cd:80 to 00:d0:97:c0:98:00 on fxp0
arp: 159.93.17.1 moved from 00:d0:97:c0:98:00 to 00:30:94:9f:cd:80 on fxp0
arp: 159.93.17.1 moved from 00:30:94:9f:cd:80 to 00:d0:97:c0:98:00 on fxp0
nfs server lx000h:/xpt/arch/private/lavr: not responding
nfs server lx000h:/xpt/arch/private/lavr: is alive again
pid 50336 (ftpd), uid 14 on /pub: file system full

20. netstat - отобразить статус сети.сетевых ресурсов на машине:

`man netstat`

[unix1]~ > netstat -rn | less
Routing tables

Internet:
Destination        Gateway            Flags     Refs     Use     Netif Expire
default            159.93.17.1        UGSc       26     7070     fxp0
127.0.0.1          127.0.0.1          UH         14  2839577      lo0
159.93.16/20       link#1             UC          0        0     fxp0 =>
159.93.17.1        0:d0:97:c0:98:0    UHLW       23        0     fxp0   1197
159.93.17.2        0:30:94:9f:cd:80   UHLW        0        0     fxp0    713
159.93.17.7        8:0:20:a6:bc:dd    UHLW        0      630     fxp0   1160
159.93.17.8        8:0:20:22:c9:e5    UHLW        0    11090     fxp0   1165
159.93.17.13       0:80:29:20:8:27    UHLW        0    35868     fxp0   1183
159.93.17.32       0:0:f8:3:e9:7e     UHLW        0     8877     fxp0   1177
159.93.17.51       0:80:ad:85:f5:4d   UHLW        1  1240802     fxp0   1024
159.93.17.75       8:0:20:83:4f:e8    UHLW        1     1788     fxp0   1082
159.93.17.93       0:d0:b7:d5:d5:a6   UHLW        0     2414     fxp0   1117
159.93.17.106      0:80:ad:50:d1:92   UHLW        1  1442633     fxp0   1165
159.93.17.110      0:50:da:35:96:16   UHLW        0  2011262     fxp0   1017
159.93.17.112      0:60:52:5:a0:3c    UHLW        0  3527994     fxp0   1145
159.93.17.121      0:50:8b:5b:ae:6    UHLW        1     1593      lo0
159.93.17.129/32   link#1             UC          0        0     fxp0 =>
159.93.17.130      8:0:20:13:4:ff     UHLW        0      201     fxp0   11
...

с ключами "-rn" мы можем посмотреть таблицу маршрутизации на нашей машине.

[unix1]~ > netstat | less
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp4       0  17520  xnc.http               delta.radio.tsu..64577 ESTABLISHED
tcp4       0      0  unix1.1794             h100.n166.cust.d.1228  ESTABLISHED
tcp4       0      0  unix1.1793             h100.n166.cust.d.ftp   ESTABLISHED
tcp4       0  17520  xnc.http               delta.radio.tsu..64552 ESTABLISHED
tcp4       0  16060  xnc.http               delta.radio.tsu..64551 ESTABLISHED
tcp4       0      0  unix1.1786             spleen.demos.su.49177  ESTABLISHED
tcp4       0      0  unix1.1784             spleen.demos.su.ftp    ESTABLISHED
tcp4       0      0  unix1.4034             ultra.ssh              ESTABLISHED
tcp4       0      0  localhost.6016         localhost.4032         ESTABLISHED
tcp4       0      0  localhost.4032         localhost.6016         ESTABLISHED
tcp4       0      0  unix1.down             alone.dubna.ru.2232    ESTABLISHED
tcp4       0      0  localhost.6015         localhost.4014         ESTABLISHED
tcp4       0      0  localhost.4014         localhost.6015         ESTABLISHED
tcp4       0      0  unix1.down             alone.dubna.ru.2231    ESTABLISHED
tcp4       0      0  localhost.6010         localhost.3977         ESTABLISHED
tcp4       0      0  localhost.3977         localhost.6010         ESTABLISHED
tcp4       0      0  unix1.down             alone.dubna.ru.2117    ESTABLISHED
tcp4       0      0  unix1.netbios-ssn      dct058.4054            ESTABLISHED
tcp4       0      0  localhost.6011         localhost.3606         ESTABLISHED
tcp4       0      0  localhost.3606         localhost.6011         ESTABLISHED
tcp4       0      0  unix1.down             alone.dubna.ru.4950    ESTABLISHED
...

в данном случае посмотреть активные сетевые соединения.

[unix1]~ > netstat -I fxp0 -w 2
            input         (fxp0)           output
   packets  errs      bytes    packets  errs      bytes colls
       143     0     219287         66     0       6590     0
       155     0     175309         77     0       5886     0
       128     0     167191         61     0       5754     0
       128     0     180442         61     0       4492     0
       129     0     129614         63     0       3466     0

смотрим входящие и исходящие пакеты на сетевом интерфейсе fxp0 каждые 2 секунды
и наличие коллизий.

21. ifconfig - посмотреть, изменить, сконфигурировать сетевые интерфейсы:

`man ifconfig`

ultra:/home/lavr> ifconfig -a
lo0: flags=849 mtu 8232
        inet 127.0.0.1 netmask ff000000
le0: flags=863 mtu 1500
        inet 159.93.17.75 netmask fffff000 broadcast 159.93.31.255
ultra:/home/lavr>

[unix1]~ > ifconfig
fxp0: flags=8843 mtu 1500
        inet 159.93.17.121 netmask 0xfffff000 broadcast 159.93.31.255
        inet6 fe80::250:8bff:fe5b:ae06%fxp0 prefixlen 64 scopeid 0x1
        inet 159.93.25.88 netmask 0xffffffff broadcast 159.93.25.88
        inet 159.93.17.129 netmask 0xffffffff broadcast 159.93.17.129
        inet 193.124.144.1 netmask 0xffffff00 broadcast 193.124.144.255
        ether 00:50:8b:5b:ae:06
        media: 100baseTX  status: active
        supported media: autoselect 100baseTX  100baseTX 10baseT/UTP  10baseT/UTP
lp0: flags=8810 mtu 1500
faith0: flags=8000 mtu 1500
gif0: flags=8010 mtu 1280
gif1: flags=8010 mtu 1280
gif2: flags=8010 mtu 1280
gif3: flags=8010 mtu 1280
lo0: flags=8049 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010 mtu 1500
ppp1: flags=8010 mtu 1500
ppp2: flags=8010 mtu 1500
ppp3: flags=8010 mtu 1500
[unix1]~ >

22. du - посмотреть дисковую статистику на предмет сколько блоков занимает
         тот или иной файл, директория, файловая система:

`man du`

[unix1]~ > du koi8.txt
1       koi8.txt
[unix1]~ >

[unix1]~ > du koi8.txt
1       koi8.txt
[unix1]~ > du -s /tmp
du: /tmp/ssh-2vvlLjiH: Permission denied
du: /tmp/ssh-rib6JdrI: Permission denied
du: /tmp/ssh-SPFlXG4J: Permission denied
du: /tmp/ssh-HKVnOass: Permission denied
du: /tmp/ssh-4q1VOPlz: Permission denied
du: /tmp/ssh-1rTOGbiD: Permission denied
du: /tmp/screens/S-kev: Permission denied
du: /tmp/kfm-cache-0: Permission denied
12906   /tmp
[unix1]~ >

23. df - показать свободное дисковое пространство:

`man df`

[unix1]~ > df
Filesystem                    1K-blocks     Used    Avail Capacity  Mounted on
/dev/ad4s2a                       79359    45477    27534    62%    /
/dev/ad4s2g                       99183    12951    78298    14%    /tmp
/dev/ad4s1e                      988591   642023   267481    71%    /pub
/dev/ad4s2f                     2977230  2433724   305328    89%    /usr
/dev/ad4s2e                      793983   240049   490416    33%    /var
/dev/ad4s2h                    14086242 11159515  1799828    86%    /pub/ftp/1
/dev/ad5s1e                      793983   459880   270585    63%    /home
/dev/ad5s1f                    18230608 15289542  1482618    91%    /pub/ftp/2
/dev/ad0s1e                    19396603 14413862  3431013    81%    /pub/ftp/3
/dev/ad6s1c                     9598123  8076441   753833    91%    /pub/ftp/4
/dev/ad7s1e                    19399910 13561354  4286564    76%    /pub/ftp/incoming/moviez
procfs                                4        4        0   100%    /proc
lx000h:/xpt/arch/private/lavr  16513960 12538704  3136396    80%    /pub/ftp/incoming/raid
[unix1]~ >

24. Как самостоятельно изменить свой пароль:

`man passwd`

[unix1]~ > passwd
Changing local password for lavr.
Old password: <вводим своий текущий пароль> (если правильно набран, идем далее)
New password: <вводим новый пароль>
Retype new password: <повторно вводим новый пароль> (для проверки на совпадение)
[unix1]~ >

Теперь у нас новый пароль.

25. Как самостоятельно изменить себе SHELL:

`man chsh`

1) посмотрите какие shell-интерпретаторы доступны на вашей системе:

[unix1]~ > less /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/sh
/bin/csh
/bin/tcsh
/bin/bash
/usr/local/bin/bash
/sbin/nologin
/usr/bin/false
/nonexistent

2) из этого списка: sh/csh/tcsh/bash с помощью команды chsh, установите
наиболее удобный для вас.

Стартовые файлы настройки среды и переменных интерпретатора:

sh   - .profile, иногда .shrc
csh  - .login, .cshrc
tcsh - .login, .tcshrc
bash - .bash_rc, .bash_profile

В соответствии с выбранным вами SHELL, вы можете редактировать указанные выше
файлы в вашей домашней директории, создавая, настройки под себя и для себя.

--
Andrey Lavrentyev/lavr | JINR, Dubna, Russia | [email protected]