Вы начинающий пользователь 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 при регистрации в системе, то самое время посмотреть что мы имеем в качестве интерпретатора:
сие означает что наш интерпретатор - 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", например:
Теперь посмотрим какие у нас установленны переменные самого интерпретатора 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" :
пусть вас не смущает количество переменных и функции, как было сказано выше интерпретатор 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:
это пример задания переменой path интерпретатора tcsh, однако некоторые свои переменные tcsh синхронизирует с переменными среды, path одна из таких переменных.
Сразу хочу заметить, в стандартной конфигурации разных 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, например:
что говорит об использовании грфической среды X-Windows, для нее эмулятора терминала - xterm (TERM=xterm) и базы описания терминалов, файл /etc/termcap, который определен через переменную TERMCAP. Как упоминалось выше, в качестве базы описания терминалов можно использовать как TERMCAP, так и TERMINFO, в моих примерах я опираюсь на базу TERMCAP, в силу старой привычки. Нужно отемтить, использование баз TERMCAP/TERMINFO, часто зависит от того как ваш администратор собирает те или иные экранно-ориентированные программы.
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), например:
ищите две компоненты в управляющих флагах(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 , однако можно встретить достаточно большое разнообразие, например:
или 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 toor@unix1.jinr.dubna.su:/usr/src/sys/compile/LAVR i386 [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 работают пользователи:
с помощью команды `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]~ >
результаты вывода опущены, в данной команде в файле /var/log/apache/unix1-access.log ищется строка "~lavr" с исключением строк: "159.93" и "194.87.162.86", для исключения используетсяя опция "-v".
18. sed - потоковый редактор:
`man sed` - включая регулярные выражения - regexp, это целая жизнь:
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 minor
mouse is major minor
stdin is major minor
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 minor
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 - отобразить статус сети.сетевых ресурсов на машине:
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]~ >
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 | lavr@cv.jinr.ru