Знакомство с Linux


Для того, чтобы зарегистрировать себя, вам необходимо зайти в систему под именем root и использовать команду useradd или adduser.
Системная консоль - это монитор и клавиатура, связанные непосредственно с системой.

Свежеинсталлированный Linux возможно позволит вам работать с четырьмя первыми VC, используя от alt-F1 до alt-F4. Но возможно обеспечить работу с 12-ю VC - по одной на каждую функциональную клавишу.
Shell - это лишь один из интерфейсов UNIX. Существует много различных интерфейсов, таких как X Window System, которая позволяет выполнять команды используя мышь и клавиатуру в сочетании.

Прежде, чем идти дальше, мы расскажем, как выйти из системы. При наличии подсказки shell используйте команду
    /home/larry# exit
для выхода.
Вы также должны представлять, как можно менять пароль. Команда "passwd" прим. переводчика: именно с пропущенными буквами она и пишется спросит вас про старый пароль и про новый.

Команда more просто показывает файл на экране порциями.

В tcsh и bash вы можете обратиться к своему домашнему каталогу, используя тильду (``~''). Например, команда

    /home/larry# more ~/papers/history-final
эквивалентна

    /home/larry# more /home/larry/papers/history-final
Вы также можете обратиться к домашнему каталогу другого пользователя с помощью тильды. Имя ``~karl/letters'' будет интерпретировано shell, как ``/home/karl/letters'' (если /home/karl - домашний каталог для пользователя karl).

Используя команду cd без аргументов вы из любого места дерева вернетесь в свой домашний каталог.

Приписанные справа к именам файлов / говорят о том, что это (под)каталоги.

Использование ls -F (обратите внимание "-F" пишется без пробела) может дать также ``*'' в конце некоторых имен файлов. Это будет говорить о том, что это выполняемые файлы или программы. Если, при вызове ls -F, ничего справа не приписано к имени, то это "нормальный" файл, т.е. не каталог и не выполняемый файл.
Если вы напишете в команде ls имя каталога, то она выдаст содержимое указанного каталога.

Пора познакомиться с тем, как создавать каталоги. Это связано с использованием команды mkdir.
Копирование файлов осуществляется командой cp (CoPy).

Новая команда с именем mv (MoVe) перемещает файлы вместо их копирования. Синтаксис команды очевиден.
       /home/larry/foo# mv termcap sells
Для удаления файлов используется команда rm (ReMove).
    /home/larry/foo# rm bells sells
Родственная rm команда rmdir. Эта команда удаляет каталоги, но только пустые каталоги. Если в каталоге есть хоть какие-нибудь файлы или подкаталоги, она распишется в бессилии.
Команды more и cat используются для просмотра содержимого файлов. more выдает файл на дисплей "поэкранно", в то время, как cat выдает весь файл разом.
Эта команда man содержит документацию на различные команды системы, ресурсы, конфигурационные файлы.
Обратите внимание, что опции обычно начинаются с ``-'' и во многих случаях несколько однобуквенных опций могут следовать за одним минусом, записанные слитно. Например, вместо использования ls -l -F, можно использовать ls -lF.
cd
Изменяет текущий рабочий каталог.
Синтаксис: cd <directory>;
<directory> - каталог, в который перейти (``.'' ссылается на текущий каталог, ``..'' - на родительский каталог).
Пример: cd ../foo переводит из текущего каталога в ../foo.
ls
Выдает информацию о файлах в каталоге.
Синтаксис: ls <file1> ... <fileN>
Где <file1> ... <fileN> имена файлов или каталогов, информацию про которые надо выдать.
Опции: Здесь больше опций, чем вы думаете. Наиболее часто используемые: -F (для представления информации о типах файлов), и -l (выдает в длинном (``long'') формате информацию о размерах файлов, владельцах, правах доступа и т.д. В деталях это будет обсуждаться далее).
Пример: ls -lF /home/larry выдаст содержимое каталога /home/larry.
cp
Копирует файл(ы) в файл или каталог.
Синтаксис: cp <file1> ... <fileN> <destination>
Где <file1> ... <fileN> имена копируемых файлов, а <destination> файл или каталог, в который копируют.
Пример: cp ../frog joe копирует файл ../frog в файл или каталог joe.
mv
Перемещает файл(ы) в другой файл или каталог. Эта команда не эквивалентна копированию с последующим уничтожением оригинала. Она может быть использована для переименования файлов, как команда RENAME из MS-DOS.
Синтаксис: mv <file1> ... <fileN> <destination>
Где <file1> ... <fileN> имена перемещаемых файлов, а <destination> имя файла или каталога, в который перемещают.
Пример: mv ../frog joe перемещает файл ../frog в файл или каталог joe.
rm
Удаляет файлы. Имейте в виду, когда в UNIX удаляются файлы, они невосстановимы (не как в MS-DOS, где вы можете "разудалить" файл).
Синтаксис: rm <file1> ... <fileN>
Где <file1> ... <fileN> имена удаляемых файлов.
Опции: -i потребует вашего подтверждения перед удалением файла.
Пример: rm -i /home/larry/joe /home/larry/frog удаляет файлы joe и frog в каталоге /home/larry.
mkdir
Создает новые каталоги.
Синтаксис: mkdir <dir1> ... <dirN>
Где <dir1> ... <dirN> создаваемые каталоги.
Пример: mkdir /home/larry/test создает каталог test в каталоге /home/larry.
rmdir
Эта команда удаляет пустые каталоги. При использовании rmdir ваш текущий рабочий каталог должен находиться вне удаляемого каталога.
Синтаксис: rmdir <dir1> ... <dirN>
Где <dir1> ... <dirN> удаляемые каталоги.
Пример: rmdir /home/larry/papers удаляет каталог /home/larry/papers, если он пустой.
man
Выдает страницу Руководства по данной команде или ресурсу. (здесь "ресурс" - это любая системная утилита, которая не является командой, например библиотечная функция).
Синтаксис: man <command>
Где <command> имя команды или ресурса, о котором запрашивается информация.
Пример: man ls - дает помощь по команде ls.
more
Выдает содержимое названных файлов поэкранно.
Синтаксис: more <file1> ... <fileN>
Где <file1> ... <fileN> отображаемые файлы.
Пример: more papers/history-final представляет файл papers/history-final.
cat
Используется для конкатенации файлов. cat используется также для выдачи полного содержания файла разом
Синтаксис: cat <file1> ... <fileN>
Где <file1> ... <fileN> выдаваемые файлы.
Пример: cat letters/from-mdw выдает на дисплей файл letters/from-mdw.
echo
Просто повторяет аргументы.
Синтаксис: echo <arg1> ... <argN>
Где <arg1> ... <argN> "повторяемые" аргументы.
Пример: echo "Hello world" выдает на экран ``Hello world''.
grep
выдает все строки в названном файле(лах), которые содержат заданный образец.
Синтаксис: grep <pattern> <file1> ... <fileN>
Где <pattern> - образец (представленный регулярным выражением) и <file1> ... <fileN> - файлы, в которых производится поиск.
Пример: grep loomer /etc/hosts выдаст все строки, в которых файл /etc/hosts, содержит образец ``loomer''.



/bin
bin - это сокращенно от ``binaries'' (т.е. двоичные или выполняемые файлы). Здесь находится много важных системных программ. Используйте команду ``ls -F/bin'' чтобы посмотреть имеющийся здесь список файлов. Вы можете обнаружить здесь уже знакомые вам команды, вроде cp, ls и mv. Это и есть программы соответствующих команд. Когда, например, вы используете команду cp, вы выполняете программу /bin/cp.
Используя ls -F, вы увидите, что большинство (если не все) файлов в /bin имеют справа от имени звездочку (``*''). Это говорит о том, что файлы выполняемые, как описано в Разделе 3.3.2.
/dev
Следующая остановка на нашем пути - dev. Вновь посмотрите на содержимое с помощью ls -F.
"Файлы" в /dev известны как драйверы устройств - они используются для доступа к устройствам и ресурсам системы, таким как диски, модемы, память и т.д. Например, как вы можете читать данные из файла, точно также вы можете читать входные сигналы от мыши, имея доступ к /dev/mouse. Имена файлов, начинающиеся на fd - это дисководы гибких дисков. fd0 - первый дисковод, fd1 - второй. Теперь самые шустрые из вас заметят, что здесь имеется больше дисководов, чем те два, которые мною упоминались: они представляют специфические типы дисководов. Например, fd1H1440 представляет доступ к high-density, 3.5" дискетам на дисководе 1.
Вот перечень некоторых из наиболее используемых файлов устройств. 
  • /dev/console/ относится к системной консоли, т.е. к монитору, напрямую связанному с системой.
  • Различные /dev/ttyS и /dev/cua устройства используются для доступа к последовательным портам. Например, /dev/ttyS0 относится к ``COM1'' под MS-DOS. Устройства /dev/cua относятся к "звонящим" (``callout'') устройствам, которые используются совместно с модемами.
  • Устройства, имена которых начинаются с hd, имеют доступ к жестким дискам. /dev/hda относится ко всему первому жесткому диску, а hda1 только к первому разделу /dev/hda.
  • Устройства с именами, начинающимися на sd - SCSI-драйверы. Если у вас SCSI жесткий диск, вместо доступа к нему через /dev/hda, вы будете обращаться к /dev/sda. SCSI ленты доступны через устройства st, а SCSI CD-ROM через sr.
  • Устройства lp обеспечивают доступ к параллельным портам. /dev/lp0 относится к ``LPT1'' в MS-DOS.
  • /dev/null используется как "черная дыра" - любые данные, посланные сюда, канут в Лету. Если вы хотите подавить вывод команды на экран, вы можете перенаправить этот вывод в /dev/null. Мы об этом позже еще поговорим.
  • Устройства с именами /dev/tty относятся к "виртуальным консолям" вашей системы (доступ путем нажатия alt-F1, alt-F2 и т.д.). /dev/tty1 соответствует первой VC, /dev/tty2 соответствует второй и т.д.
  • Устройства, чьи имена начинаются на /dev/pty, это "псевдотерминалы". Они используются для входа с удаленных "терминалов". Например, если ваша машина в сети, вход к вам по telnet будет использовать одно из устройств /dev/pty.
/etc
/etc содержит множество всевозможных системных файлов конфигурации. Они включают /etc/passwd (файл паролей), /etc/rc (командный файл инициализации) и т.д.
/sbin
/sbin используется для хранения важных системных двоичных файлов, используемых системным администратором.
/home
home содержит домашние каталоги пользователей. Например, /home/larry - домашний каталог пользователя ``larry''. На вновь инсталлированной системе этот каталог может быть пуст в связи с временным отсутствием зарегистрированных пользователей.
/lib
/lib содержит образы разделяемых библиотек (shared library images). Эти файлы содержат код, который могут использовать многие программы. Вместо того, чтобы каждая программа имела свою собственную копию этих выполняемых файлов, они хранятся в одном общедоступном месте - в /lib. Это позволяет сделать выполняемые файлы меньше и сэкономит место в системе.
/proc
/proc - это "виртуальная файловая система", в которой файлы хранятся в памяти, а не на диске. Они связаны с различными процессами, происходящими в системе, и позволяют получить информацию о том, что делают программы и процессы в указанное время. Более детально мы рассмотрим это в Разделе 3.11.1.
/tmp
Многие программы нуждаются в создании рабочих файлов, которые нужны короткое время. Каноническое место для этих файлов в /tmp (там обычно чаще проводится уборка мусора).
/usr
/usr - это очень важный каталог. Он состоит из ряда подкаталогов, которые в свою очередь содержат наиболее важные и полезные программы и файлы конфигурации, используемые системой.
Различные каталоги, описанные выше, необходимы для нормального функционирования системы, но большинство вещей, содержащихся в /usr необязательны для системы. Но это такие необязательные вещи, которые делают систему полезной и интересной. Без /usr вы бы имели достаточно занудную систему, содержащую только программы, вроде cp и ls. /usr содержит много больших программных пакетов и конфигурационных файлов, которые их сопровождают.
/usr/X386
/usr/X386 содержит The X Window System, если вы ее инсталлировали. The X Window System - это мощная графическая среда, которая содержит большое количество графических утилит и программ, отображающих "окна" на вашем экране. Если вы знакомы с Microsoft Windows или Macintosh environments, то X Windows будет выглядеть весьма похоже. Каталог /usr/X386 содержит все выполняемые и конфигурационные файлы X Window, а также файлы поддержки. Более детально это будет обсуждаться в Разделе 5.1.
/usr/bin
/usr/bin настоящее хранилище для различных программ UNIX. Он содержит большинство выполняемых программ, которых нет ни в каких других местах, например, в том же /bin их нет.
/usr/etc
Точно также, как и /etc, содержит всевозможные системные программы и конфигурационные файлы. /usr/etc содержит даже больше утилит и файлов. В общем, файлы, находящиеся в /usr/etc несущественны для системы, в отличие от тех, которые находятся в /etc, и очень существенны.
/usr/include
/usr/include содержит include-файлы для компилятора Си. Эти файлы (большинство имен которых заканчивается на .h (от слова ``header'') объявляют имена структур данных, подпрограмм и констант, используемых при написании программ на Си. Те файлы, которые находятся в /usr/include/sys в общем случае используются при программировании на системном уровне UNIX. Если вы знакомы с языком программирования Си, здесь вы найдете такие хэдеры (фрагменты программ, вставляемые обычно в начало программы), stdio.h, которые описывают такие функции, как printf().
/usr/g++-include
/usr/g++-include содержит include-файлы для компилятора Cи++ (очень похожие на /usr/include).
/usr/lib
/usr/lib содержит библиотеки-"заглушки" и "статические" библиотеки, эквивалентные файлам из /lib. При компиляции программа "связывается" с библиотеками, находящимися в /usr/lib, которые в свою очередь направляют программы обращаться в /lib, если им нужен актуальный код. Кроме того, многие другие программы хранят в /usr/lib свои конфигурационные файлы.
/usr/local
/usr/local в большой степени похож на /usr - он содержит различные программы и файлы, несущественные для системы, но превращающие ее в удовольствие и восторг. В общем, эти программы, находящиеся в /usr/local специализируются на специфике вашей системы, т.е. /usr/local сильно отличается в различных UNIX. Здесь вы найдете такие большие программные пакеты, как TeX (система форматирования документов) и Emacs (большой и мощный редактор), если вы их установите.
/usr/man
Этот каталог содержит страницы Руководства. Здесь два подкаталога для каждого "раздела" Руководства. (С помощью команды "man man" вы можете получить более подробную информацию). Например, /usr/man/man1 содержит исходные тексты (неотформатированный оригинал) страниц Руководства в разделе 1 и /usr/man/cat1 содержит отформатированные страницы для раздела 1.
/usr/src
/usr/src содержит исходные коды (неоткомпилированные программы) для различных программ вашей системы. Наиболее важная вещь здесь, это /usr/src/linux, содержащий исходные коды ядра Linux.
/var
/var содержит каталоги, которые часто меняются в размере или имеют тенденцию быстро расти. Многие из этих каталогов "квартировались" в /usr, но поскольку мы стремимся сделать его достаточно стабильным, каталоги, которые часто меняются были перенесены в /var. К числу таких каталогов относятся:
/var/adm
/var/adm содержит различные файлы, интересные системному администратору, специфические системные файлы, фиксирующие ошибки и проблемы, возникающие в системе. Другие файлы фиксируют входы в систему, как и неудачные попытки войти. Это будет обсуждаться в Главе 4.
/var/spool
/var/spool содержит файлы, которые предварительно формируются для других программ. Например, если ваша машина подключена к сети, входная почта будет помещаться в /var/spool/mail до тех пор, пока вы не прочитаете ее или не удалите. Входящие и исходящие новости помещаются в /var/spool/news и т.д.