Linux: курс молодого бойца — различия между версиями
INIT (обсуждение | вклад) () |
INIT (обсуждение | вклад) () |
||
(не показано 17 промежуточных версий этого же участника) | |||
Строка 2: | Строка 2: | ||
== План лекции == | == План лекции == | ||
− | === Работа в командной строке ( | + | === Работа в командной строке (25 мин) === |
− | ==== Общая информация ==== | + | ==== Общая информация (5 мин) ==== |
*основным интерфейсом в ОС семейства UNIX является командная строка (аналогия с command.com и cmd.exe) | *основным интерфейсом в ОС семейства UNIX является командная строка (аналогия с command.com и cmd.exe) | ||
*Консольные оболочки UNIX (shell): sh, bash<br> | *Консольные оболочки UNIX (shell): sh, bash<br> | ||
**sh - наиболее распрастраненный из стандартных | **sh - наиболее распрастраненный из стандартных | ||
**bash - расширенный sh, удобнее пользоваться (в стандартной поставке Solaris отсутствует, в Linux единственный) <br>(работает Backspace, Tab, стрелки вверх и вниз) | **bash - расширенный sh, удобнее пользоваться (в стандартной поставке Solaris отсутствует, в Linux единственный) <br>(работает Backspace, Tab, стрелки вверх и вниз) | ||
− | ''Коммандный интерпретатор'' - программа которая читает построчно команды пользователя и выполняет их, выводя результат на экран | + | ''Коммандный интерпретатор'' - программа которая читает построчно команды пользователя и выполняет их, выводя результат на экран. |
Команды бывают: | Команды бывают: | ||
*встроенные (cd, pwd, echo, alias, unalias, exit, bg, fg, jobs, kill, export, set) | *встроенные (cd, pwd, echo, alias, unalias, exit, bg, fg, jobs, kill, export, set) | ||
− | *внешние (ls, cp, mv, | + | *внешние (ls, cp, mv, env, top) |
Подавляющее большинство команд принимают различные ключи, модифицирующие их поведение. | Подавляющее большинство команд принимают различные ключи, модифицирующие их поведение. | ||
Список основных ключей для программы можно получить, вызвав краткую справку выдаваемую самой программой: | Список основных ключей для программы можно получить, вызвав краткую справку выдаваемую самой программой: | ||
− | + | ||
+ | $ <имя программы> --help | ||
+ | |||
подробное руковосдство пользователя доступно в виде man-страниц (система помощи): | подробное руковосдство пользователя доступно в виде man-страниц (система помощи): | ||
− | |||
− | + | $ man [номер страницы] <имя программы> | |
− | |||
− | |||
− | |||
− | Система ищет программу с введенным именем в каталогах указанных в переменной PATH в порядке их следования слева направо, и если | + | Система ищет программу с введенным именем в каталогах указанных в переменной PATH в порядке их следования слева направо, и если не находит выдает ошибку. |
Посмотреть текущий путь поиска можно командой: | Посмотреть текущий путь поиска можно командой: | ||
− | + | ||
+ | $ echo $PATH | ||
Следует обратить внимание, что текущий каталог («.») по-умолчанию в путь поиска не входит, поэтому для запуска программы находящейся в текущей директории требуется вызывать ее с указанием относительного пути к программе: | Следует обратить внимание, что текущий каталог («.») по-умолчанию в путь поиска не входит, поэтому для запуска программы находящейся в текущей директории требуется вызывать ее с указанием относительного пути к программе: | ||
+ | |||
$ ./<имя программы> | $ ./<имя программы> | ||
− | ==== Основные команды ==== | + | ==== Основные команды (10 мин) ==== |
*'''date''' - получение текущей даты | *'''date''' - получение текущей даты | ||
$ date | $ date | ||
Строка 89: | Строка 89: | ||
*'''more <имя файла>''' - показывать файл постранично<br>удобно для просмотра больших файлов | *'''more <имя файла>''' - показывать файл постранично<br>удобно для просмотра больших файлов | ||
+ | |||
+ | *'''grep <pattern> <files list>''' - поиск в списке файлов строк соответствующих шаблону | ||
+ | : -i - без учета регистра | ||
+ | : -R - рекурсивно | ||
*'''touch <путь к файлу>''' - тронуть файл(установить дату изменения на текущую), если файл не существует – создать (будет создан пустой файл) | *'''touch <путь к файлу>''' - тронуть файл(установить дату изменения на текущую), если файл не существует – создать (будет создан пустой файл) | ||
− | |||
*'''ln <имя файла> <имя файла ссылки>''' - создать жесткую (hard) ссылку на файл | *'''ln <имя файла> <имя файла ссылки>''' - создать жесткую (hard) ссылку на файл | ||
Строка 104: | Строка 107: | ||
*'''id''' - показать идентификатор текущего пользователя | *'''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) | *вся настройка системы производится с помощью правки конфигурационных файлов (аналогия с autoexec.bat, config.sys) | ||
− | |||
*список пользователей системы хранится в файле /etc/passwd, групп в файле /etc/group | *список пользователей системы хранится в файле /etc/passwd, групп в файле /etc/group | ||
− | |||
− | |||
− | |||
− | |||
*основные команды: | *основные команды: | ||
... | ... | ||
− | |||
− | |||
=== Текстовый редактор vi (10 мин) === | === Текстовый редактор vi (10 мин) === | ||
Строка 123: | Строка 204: | ||
... | ... | ||
− | === Настройка сети, команды для работы с сетью ( | + | === Настройка сети, команды для работы с сетью (20 мин) === |
разница между ручной настройкой и настройкой при загрузке компа - инизиализациооные скрипты | разница между ручной настройкой и настройкой при загрузке компа - инизиализациооные скрипты | ||
указать пути ко всем необходимым файлам и их назначение | указать пути ко всем необходимым файлам и их назначение |
Текущая версия на 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