Linux: курс молодого бойца — различия между версиями
INIT (обсуждение | вклад) |
INIT (обсуждение | вклад) () |
||
| (не показаны 32 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
| − | Данный курс состоит из лекции (45 - 90 минут) и практического занятия ( | + | Данный курс состоит из лекции (45 - 90 минут) и практического занятия (90 мимнут) |
== План лекции == | == План лекции == | ||
| − | === | + | === Работа в командной строке (25 мин) === |
| − | === | + | ==== Общая информация (5 мин) ==== |
| − | === Пользователи, группы, права доступа, команды для работы с ними === | + | *основным интерфейсом в ОС семейства UNIX является командная строка (аналогия с command.com и cmd.exe) |
| − | === Текстовый редактор vi === | + | *Консольные оболочки UNIX (shell): sh, bash<br> |
| − | === Настройка сети, команды для работы с сетью === | + | **sh - наиболее распрастраненный из стандартных |
| + | **bash - расширенный sh, удобнее пользоваться (в стандартной поставке Solaris отсутствует, в Linux единственный) <br>(работает 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 <имя файла>''' - показывает несколько последних строк файла<br>(удобно для просмотра лог-файлов) | ||
| + | ключи: | ||
| + | : -l <количество строк> (solaris??? проверить) | ||
| + | : -n <количество строк> (linux) | ||
| + | |||
| + | *'''more <имя файла>''' - показывать файл постранично<br>удобно для просмотра больших файлов | ||
| + | |||
| + | *'''grep <pattern> <files list>''' - поиск в списке файлов строк соответствующих шаблону | ||
| + | : -i - без учета регистра | ||
| + | : -R - рекурсивно | ||
| + | |||
| + | *'''touch <путь к файлу>''' - тронуть файл(установить дату изменения на текущую), если файл не существует – создать (будет создан пустой файл) | ||
| + | |||
| + | *'''ln <имя файла> <имя файла ссылки>''' - создать жесткую (hard) ссылку на файл | ||
| + | : -s - создать мягкую (soft) ссылку | ||
| + | |||
| + | *'''ps''' - получение списка процессов в системе | ||
| + | |||
| + | *'''kill <pid>''' - завершение работы процесса с номером <pid> | ||
| + | |||
| + | *'''top''' - показывает топ активных процессов, в реальном времени (обновляет раз в несколько секунд) | ||
| + | |||
| + | *'''id''' - показать идентификатор текущего пользователя | ||
| + | |||
| + | *'''df''' - показать количество свободного места на дисках | ||
| + | |||
| + | *'''du <file list>''' - показать использование места на диске указанными файлами | ||
| + | |||
| + | '''Дополнительные возможности:'''<br> | ||
| + | Для запуска команды в фоновом режиме достаточно добавить символ '''&''' в конце набранной команды. | ||
| + | Для того чтобы последовательно выполнить несколько команд одной строкой надо разделить их ''';'''. | ||
| + | |||
| + | ==== Переменые окружения (environment variables) (5 мин) ==== | ||
| + | Поведение программ как внешних так и встроенных могут влиять значения переменных окружения. | ||
| + | Переменные окружения создаются при входе пользователя в систему, и сбрасываются при выходе. | ||
| + | Наиболее значимые: PATH, HOME, LANG, PS1 | ||
| + | |||
| + | Просмотр значений все переменных: | ||
| + | |||
| + | $ '''printenv''' | ||
| + | |||
| + | Просмотр одной переменной: | ||
| + | |||
| + | $ '''echo $PATH''' | ||
| + | |||
| + | Установка значения переменной: | ||
| + | |||
| + | $ '''export LANG=ru_RU.KOI8-R''' | ||
| + | |||
| + | ==== Перенаправление ввода-вывода (5 мин) ==== | ||
| + | Большинство команд оболочки расчитаны на то чтобы работать в связках.<br> | ||
| + | Операторы перенаправления ввода-вывода: | ||
| + | *''' $ 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 мин) ==== | ||
| + | Права доступа на файл/каталог имееют следующий вид:<br> | ||
| + | первый октет – права доступа для владельца,<br> | ||
| + | второй октет – права доступа для группы,<br> | ||
| + | третий октет – права доступа для всех остальных.<br> | ||
| + | Каждый октет состоит из 3-х бит, задающих права доступа на чтение(старший), запись (средний), и выполнение(младший).<br> | ||
| + | Пример:<br> | ||
| + | Если файл должен быть доступен владельцу для чтения и записи, группе на чтение,<br> | ||
| + | а остальным недоступен, то режим достпа к файлу будет задаваться числом «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 таких файла:<br> | ||
| + | : "." - сслыка на самого себя | ||
| + | : ".." - ссылка на родительский каталог | ||
| + | Скрытые файлы не показыватся в стандартном выводе команды '''ls''' (нужено указывать параметр '''-a''')<br> | ||
| + | В основном используются для хранения настроек прикладных программ в домашней папке пользователя (чтобы не мешались в листингах файлов при работе). | ||
| + | |||
| + | ==== Управление пользователями (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 | ||
Текущая версия на 10:51, 23 апреля 2006
Данный курс состоит из лекции (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