Linux: курс молодого бойца
Данный курс состоит из лекции (45 - 90 минут) и практического занятия (90 мимнут)
Содержание
План лекции
Работа в командной строке (15-20 мин)
Общая информация
- основным интерфейсом в ОС семейства 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, printenv, top)
Подавляющее большинство команд принимают различные ключи, модифицирующие их поведение. Список основных ключей для программы можно получить, вызвав краткую справку выдаваемую самой программой:
$ <имя программы> --help
подробное руковосдство пользователя доступно в виде man-страниц (система помощи):
$ man [номер страницы] <имя программы>
Система ищет программу с введенным именем в каталогах указанных в переменной PATH в порядке их следования слева направо, и если не находит выдает ошибку. Посмотреть текущий путь поиска можно командой:
$ echo $PATH
Следует обратить внимание, что текущий каталог («.») по-умолчанию в путь поиска не входит, поэтому для запуска программы находящейся в текущей директории требуется вызывать ее с указанием относительного пути к программе:
$ ./<имя программы>
Основные команды
- 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 - показать идентификатор текущего пользователя
Переменые окружения (environment variables)
Поведение программ как внешних так и встроенных могут влиять значения переменных окружения. Переменные окружения создаются при входе пользователя в систему, и сбрасываются при выходе. Наиболее значимые: PATH, HOME, LANG, PS1
Просмотр значений все переменных:
$ printenv
Просмотр одной переменной:
$ echo $PATH
Установка значения переменной:
$ export LANG=ru_RU.KOI8-R
Пользователи, группы, права доступа, команды для работы с ними
Управление правами доступа
Права доступа на файл/каталог имееют следующий вид:
первый октет – права доступа для владельца,
второй октет – права доступа для группы,
третий октет – права доступа для всех остальных.
Каждый октет состоит из 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 - рекурсивно
Скрытые и исполняемы файлы
В UNIX скрытыми считаются файлы, имя которых начинается с ".", в каждом каталоге минимум 2 таких файла:
- "." - сслыка на самого себя
- ".." - ссылка на родительский каталог
Скрытые файлы не показыватся в стандартном выводе команды ls (нужено указывать параметр -a) В основном используются для хранения настроек прикладных программ в домашней папке пользователя (чтобы не мешались в листингах файлов при работе).
Управление пользователями
- вся настройка системы производится с помощью правки конфигурационных файлов (аналогия с autoexec.bat, config.sys)
- демоны из них читают конфигурацию при запуске, и пишут журналы в лог-файлы
- список пользователей системы хранится в файле /etc/passwd, групп в файле /etc/group
- списки пользователей (/etc/passwd) и групп (/etc/group)
- основные команды:
...
Текстовый редактор vi (10 мин)
Без тектового редактора в UNIX не поправишь ни одного конфигурационного файла (вся система на них построена). vi cамый древний, очень нелогичный и неудобный для новичка, зато есть на всех UNIX машинах, потому и изучаем. Краткое руководство: ...
Настройка сети, команды для работы с сетью (10 мин)
разница между ручной настройкой и настройкой при загрузке компа - инизиализациооные скрипты указать пути ко всем необходимым файлам и их назначение Основные команды: ...
План практического занятия
- добавление нового пользователя и рабочей группы с пом. редактора vi (5-10 мин)
- создание папки общего доступа для этой группы (5 мин)
- горячая настройка сетевого интерфейса (5-10 мин)
- включение сервиса ftp и telnet (5 мин)
- вход на другую машину по telnet и ФТП (5 мин)
опционально:
- просмотр списка активных пользователей на машине
- чат в пределах локальной машины
- ps, top, netstat