Linux: курс молодого бойца

Материал из Библиотека ТК МГТУ им. Н. Э. Баумана
Перейти к: навигация, поиск

Данный курс состоит из лекции (45 - 90 минут) и практического занятия (90 мимнут)

План лекции

Работа в командной строке (25 мин)

Общая информация (5 мин)

  • основным интерфейсом в ОС семейства UNIX является командная строка (аналогия с command.com и cmd.exe)
  • Консольные оболочки UNIX (shell): sh, bash
    • sh - наиболее распрастраненный из стандартных
    • bash - расширенный sh, удобнее пользоваться (в стандартной поставке Solaris отсутствует, в Linux единственный)
      (работает Backspace, Tab, стрелки вверх и вниз)

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

Команды бывают:

  • встроенные (cd, pwd, echo, alias, unalias, exit, bg, fg, jobs, kill, export, set)
  • внешние (ls, cp, mv, env, top)

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

$ <имя программы> --help

подробное руковосдство пользователя доступно в виде man-страниц (система помощи):

$ man [номер страницы] <имя программы>

Система ищет программу с введенным именем в каталогах указанных в переменной PATH в порядке их следования слева направо, и если не находит выдает ошибку. Посмотреть текущий путь поиска можно командой:

$ echo $PATH

Следует обратить внимание, что текущий каталог («.») по-умолчанию в путь поиска не входит, поэтому для запуска программы находящейся в текущей директории требуется вызывать ее с указанием относительного пути к программе:

$ ./<имя программы>

Основные команды (10 мин)

  • date - получение текущей даты
$ date
Mon Nov  7 20:49:47 MSK 2005
  • echo "текст" - ввод строки на стандартный выход
$ echo "Hello world!"
Hello world!
  • pwd - вывод абсолюьного пути к текущей директории
$ pwd
/home/init
  • ls - листинг текущего каталога (выводит список файлов за исключением скрытых)
  • ls <путь> - листинг каталога путь к которому указан в качестве параметра

ключи:

-a - показывать скрытые файлы
-l - вывод подробной информации по каждому файлу

т.е. если вы хотите получить подробную информацию о скрытых файлах в данном каталоге, вы должны выполнить:

$ ls –l –a
итого 36
drwx------   4 step step 4096 Авг 26 18:40 ./
drwxr-xr-x  12 root root 4096 Окт 20 13:35 ../
-rw-r--r--   1 step step   24 Янв  5  2004 .bash_logout
-rw-r--r--   1 step step  191 Янв  5  2004 .bash_profile
-rw-r--r--   1 step step  124 Янв  5  2004 .bashrc
drwxr-xr-x   2 step step 4096 Авг 26 18:40 .gimp-1.2/
-rw-r--r--   1 step step  141 Май 15  2001 .mailcap
-rw-r--r--   1 step step 3729 Дек 10  2003 .screenrc
drwx------   2 step step 4096 Сен  8  2003 tmp/


  • cd <путь> - смена текущей папки на заданную в качестве параметра

Пример: перейти на каталог вверх:

$ cd ..
  • cp <источник> <адресат> - копирование файлов или каталогов

ключи:

-R - рекурсивно копировать каталоги, т.е. со всем содержимым
  • mv <имя> <новое имя> - переименование/перемещение файла или каталога
  • rm <путь> - удалить файл или каталог

ключи:

-R - рекурсивно, т.е. удалять каталоги со всем содержимым
  • mkdir <папка> - создать новый каталог c именем <папка>
  • rmdir <папка> - удалить каталог c именем <папка>
  • cat <имя файла> - вывод содержимого файла на экран
  • tail <имя файла> - показывает несколько последних строк файла
    (удобно для просмотра лог-файлов)

ключи:

-l <количество строк> (solaris??? проверить)
-n <количество строк> (linux)
  • more <имя файла> - показывать файл постранично
    удобно для просмотра больших файлов
  • grep <pattern> <files list> - поиск в списке файлов строк соответствующих шаблону
-i - без учета регистра
-R - рекурсивно
  • touch <путь к файлу> - тронуть файл(установить дату изменения на текущую), если файл не существует – создать (будет создан пустой файл)
  • ln <имя файла> <имя файла ссылки> - создать жесткую (hard) ссылку на файл
-s - создать мягкую (soft) ссылку
  • ps - получение списка процессов в системе
  • kill <pid> - завершение работы процесса с номером <pid>
  • top - показывает топ активных процессов, в реальном времени (обновляет раз в несколько секунд)
  • id - показать идентификатор текущего пользователя
  • df - показать количество свободного места на дисках
  • du <file list> - показать использование места на диске указанными файлами

Дополнительные возможности:
Для запуска команды в фоновом режиме достаточно добавить символ & в конце набранной команды. Для того чтобы последовательно выполнить несколько команд одной строкой надо разделить их ;.

Переменые окружения (environment variables) (5 мин)

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

Просмотр значений все переменных:

$ printenv

Просмотр одной переменной:

$ echo $PATH

Установка значения переменной:

$ export LANG=ru_RU.KOI8-R

Перенаправление ввода-вывода (5 мин)

Большинство команд оболочки расчитаны на то чтобы работать в связках.
Операторы перенаправления ввода-вывода:

  • $ command > <file> - перенаправить вывод (STDOUT) в файл (файл будет перезаписан)
  • $ command >> <file> - перенаправить вывод (STDOUT) в файл (данные будут дописаны в конец файла)
  • $ command 2> <file> - перенаправить вывод ошибок (STDERR)в файл
  • $ command < <file> - взять ввод из файла
  • $ command1 | command2 | command3 ... - потоковая обработка

Также существует некоторый набор устройств, активно используемых при потоковой обработке:

  • /dev/null - можно писать сколько угодно, данные исчезают в никуда
  • /dev/zero - можно читать неограниченое количество нулей
  • /dev/random - источник случайных чисел

Примеры:

$ echo "Hello World!" > hello.txt
$ cat /etc/passwd | grep 'vano'
$ cat /var/log/httpd/access_log | more
$ ./imagine -o /dev/null

Пользователи, группы, права доступа, команды для работы с ними (25 мин)

Управление правами доступа (10 мин)

Права доступа на файл/каталог имееют следующий вид:
первый октет – права доступа для владельца,
второй октет – права доступа для группы,
третий октет – права доступа для всех остальных.
Каждый октет состоит из 3-х бит, задающих права доступа на чтение(старший), запись (средний), и выполнение(младший).
Пример:
Если файл должен быть доступен владельцу для чтения и записи, группе на чтение,
а остальным недоступен, то режим достпа к файлу будет задаваться числом «640»:

+---------------------------------+
| владелец |  группа  | остальные |
|  R W X   |  R W X   |  R W X    |
|  1 1 0   |  1 0 0   |  0 0 0    |
+---------------------------------+
     6          4          0
  • chmod <доступ> <файл> - узменение прав доступа на файл/каталог

Примеры:

$ chmod 666 index.html - доступ на чтение и запись всем
$ chmod 755 index.html - доступ на запись автору, на исполнеие и чтение всем

также возможна следующая форма написания команды:

  • chmod [ugo][+-][rwxst] <файл> - сделать файл исполняемым

Примеры:

  • chmod +x <файл> - сделать файл исполняемым
  • chmod o-r <файл> - запретить чтение остальным
  • chown <ключи> <пользователь>[:<группа>] <файл> - смена владельца файла
-R - рекурсивно
  • chgrp <ключи> <группа> <файл> - смена группы файла
-R - рекурсивно

Скрытые и исполняемы файлы (5 мин)

В UNIX скрытыми считаются файлы, имя которых начинается с ".", в каждом каталоге минимум 2 таких файла:

"." - сслыка на самого себя
".." - ссылка на родительский каталог

Скрытые файлы не показыватся в стандартном выводе команды ls (нужено указывать параметр -a)
В основном используются для хранения настроек прикладных программ в домашней папке пользователя (чтобы не мешались в листингах файлов при работе).

Управление пользователями (10 мин)

  • вся настройка системы производится с помощью правки конфигурационных файлов (аналогия с autoexec.bat, config.sys)
  • список пользователей системы хранится в файле /etc/passwd, групп в файле /etc/group
  • основные команды:

...

Текстовый редактор vi (10 мин)

Без тектового редактора в UNIX не поправишь ни одного конфигурационного файла (вся система на них построена). vi cамый древний, очень нелогичный и неудобный для новичка, зато есть на всех UNIX машинах, потому и изучаем. Краткое руководство: ...

Настройка сети, команды для работы с сетью (20 мин)

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

План практического занятия

  • добавление нового пользователя и рабочей группы с пом. редактора vi (5-10 мин)
  • создание папки общего доступа для этой группы (5 мин)
  • горячая настройка сетевого интерфейса (5-10 мин)
  • включение сервиса ftp и telnet (5 мин)
  • вход на другую машину по telnet и ФТП (5 мин)

опционально:

  • просмотр списка активных пользователей на машине
  • чат в пределах локальной машины
  • ps, top, netstat