Занятие 2 Вход в систему и простейшие действия. Вход и выход из системы login: user1 <Return> Password: $ date Fri Jul 1 11:03:42 EDT 1994 $ другие команды $ exit или <Ctrl>+<d> <Return> login: Вход в систему Входные сообщения Выполнение требуемых действий Выход из системы Формат командной строки Синтаксис: $ команда [-опции] [аргументы] <Return> Примеры $ date <Return> Аргументы отсутствуют Fri Jul 1 11:10;45 EDT 1995 Один аргумент $ echo hello! <Return> hello! Неверный синтаксис $ echohello! <Return> sh: echohello!: not found Одна опция $ ls -F <Return> dira/ dirb/ f1 f2 prog1* prog2* Оперативный справочник Синтаксис: man [-k|X] ключевое_слово|команда где X-номер одного из разделов справочника Примеры: $ man date $ man -k copy $ man passwd $ man 4 passwd Выводится описание команды «date» Выводятся статьи с ключевым словом «copy» Выводится статья «passwd» - раздел 1 Выводится статья «passwd» - раздел 4 <Space> - вывести следующую страницу <Return> - вывести следующую строку <q> - выйти из команды man Множественность статей в справочнике whereis команда $ whereis passwd passwd: /sbin/passwd /usr/bin/passwd /usr/share/man/man1.Z/passwd.1 /usr/share/man/man4.Z/passwd.4 $ whereis nothere nothere: Команда id Синтаксис: id Выводит идентификатора пользователя и его группы для данного сеанса связи Примеры: $ id uid=303 (user3) gid =300 (class) /etc/passwd /etc/group файл с пользовательскими идентификаторами файл с идентификаторами групп Команда who Синтаксис: who [am i] whoami Примеры: $ who root user1 user2 Сообщает информацию о пользователях, работающих в системе tty1p5 tty1p4 tty0p3 Jul 01 08:01 Jul 01 09:59 Jul 01 10:01 tty0p3 Jul 01 10:01 $ who am i user2 $ whoami user2 Команда date Синтаксис: Выводит дату и время date Примеры: $ date Fri Jul 01 11:15:55 EDT 1994 Примечание: Системную дату и время может изменить только администратор системы Команда passwd Синтаксис: passwd Назначает входной пароль Примеры: $ passwd Changing password for user3 Old password: New password: Re-enter new password: Ограничения при задании пароля: • минимум шесть символов • по крайней мере две буквы • по крайней мере один не буквенный символ Команда echo Синтаксис: echo [arg] Отображает свои аргументы на экран терминала Примеры: $ echo how are you how are you $ echo 123 abc 123 abc Команда write Синтаксис: write username [tty] Посылает сообщение пользователю username, если он работает в системе Пример: user1 user2 $ write user2 Are you going to the meeting? Message from user2 (tty04) I will be there It is fine <Ctrl>+<d> Message from user1 (tty05) Are you going to the meeting? $ write user1 I will be there <Ctrl>+<d> Message from user1 (tty05) It is fine Команда mesg Синтаксис: mesg [y|n] Примеры: $ mesg is y $ mesg n $ mesg is n $ mesg y $ mesg is y Разрешает или запрещает «писать» на терминал Файловая система Стандартные каталоги Каталог /bin /boot /dev Содержимое Файлы минимального уровня работоспособности Ядро Файлы устройств /etc /home /lib /media Файлы запуска и конфигурации Домашние каталоги Библиотеки компилятора С Точки монтирования файловых систем на сменных носителях Программные пакеты необязательных приложений Информация о выполняющихся процессах /opt /proc Стандартные каталоги Каталог /root /sbin /tmp Содержимое Домашний каталог суперпользователя Команды загрузки и восстановления Временные файлы /usr Иерархия дополнительных файлов и программ /usr/bin Большинство команд и исполняемых файлов /usr/man Страницы интерактивной документации /var Системные данные и конфигурационные файлы /var/log Сиситемные журнальные файлы /var/adm Административные компоненты и др. Маршрутные имена файлов Абсолютные маршрутные имена файлов / tmp home usr user1 user2 user3 f1 •полностью определяет местоположение •всегда начинаются от корня •всегда начинаются знаком / •не зависят от текущего положения пользователя •уникальны по отношению ко всей иерархической структуре memo /home/user3/f1 /home/user3/memo/f1 f1 Относительные маршрутные имена файлов •начинаются от текущего положения пользователя •никогда не начинаются знаком / •уникальны только по отношению к текущему положению •обычно короче, чем абсолютное маршрутное имя user3/f1 user3/memo/f1 f1 Относительные ссылки tmp user1 / Входной каталог home •создается при добавлении пользователя •обычно является подкаталогом /home user2 usr Точка (.) user3 f1 memo f1 •представляет текущий каталог Если текущий каталог /home/user3, то . - текущий каталог . /f1 - /home/user3/f1 . /memo/f1 - /home/user3/memo/f1 Две точки (..) •представляет родительский каталог •для корневого каталога (/) .. ссылается на себя Если текущий каталог /home/user3, то .. - /home ../.. - / .. /user2 - /home/user2 Основные команды файловой системы Выводит имя текущего каталога Выводит список файлов и каталогов, находящихся в текущем каталоге cd Изменяет текущий каталог пользователя locate Осуществляет поиск файлов mkdir Создает каталог rmdir Удаляет каталог pwd ls Команда pwd Синтаксис: pwd Выводит имя рабочего каталога Примеры: / $ pwd /home/user3 tmp home usr user1 user2 user3 f1 memo f1 Команда ls Синтаксис: ls [-adlFR] [маршрутное имя(имена)] -выводит содержимое каталога • • • если команда вводится без аргументов, выводятся имена файлов и каталогов, находящихся в текущем каталоге в качестве аргументов можно указывать и относительные и абсолютные маршрутные имена файлов допускается задание ряда опций: -a - выводит имена всех файлов, в том числе “невидимых”(начинаются с точки(.)) -d - вычисляет характеристики каталога вместо представления его содержимого -l - представляет полный перечень атрибутов каждого файла (тип, права доступа, количество ссылок, владелец, группа, размер в байтах, дата последней модификации, имя) -F - добавляет знак / к имени каждого каталога и * к имени каждого исполняемого файла -R - рекурсивно перечисляет файлы в данном каталоге и во всех его Команда cd Синтаксис: cd [имя каталога] • • Изменяет текущий каталог имя каталога - абсолютное или относительное маршрутное имя каталога, в который надо перейти если команда вызвана без аргументов, пользователь окажется в HOME-каталоге Команды mkdir и rmdir Синтаксис: mkdir [-p] имя(имена)_каталога • [-p] - создаются промежуточные каталоги, если они до этого не существовали rmdir [-i] имя(имена)_каталога • • • • Создание каталога Удаление каталога удаляемые каталоги должны быть пустыми нельзя удалить каталог между текущим и корневым [-i] - удаление с подтверждением rm -r имя_каталога удаление непустого каталога Управление файлами Что такое файл? Файл - хранилище данных или канал связи с устройством • Каждый файл имеет имя и может содержать данные, которые размещаются на диске. • Имеется несколько различных типов файлов: - Обычные файлы · текст, данные, графические данные · исполняемые программы - Каталоги - Файлы устройств Что можно делать с файлами? ls cat more cp mv ln rm Просмотр характеристик файла Просмотр содержимого файла Поэкранный просмотр содержимого файла Копирование файла Изменение имени файла Перемещение файла в другой каталог Создание ссылки на файл (файла псевдонима) Удаление файла Характеристики файлов $ ls -l -rw- r--r-- 1 -rwxr-xr-x 1 drwxr-xr-x 2 user3 class 37 Jul 24 11:06 f1 user3 class 52 Jul 24 11:08 f2 user3 class 1024 Jul 24 12:03 memo тип ссылки группа дата имя файла файла владелец модификации файла режим доступа размер файла к файлу Типы файлов d l n c b (диски) p Обычный файл Каталог Символическая ссылка Сетевой специальный файл Байт-ориентированный специальный файл (терминалы, принтеры) Блок-ориетированный специальный файл Именованный канал (канал внутри межпроцессорного взаимодействия) Команда cat Синтаксис: cat [файл] Объединяет и выводит содержимое файла Примеры $ cat f1 $ cat f1 f2 $ cat abs <Ctrl>+<d> abc $ cat f1 f2 > f3 Вывод на экран содержимого файла f1 Вывод на экран содержимого файлов f1 и f2 Ввод с клавиатуры Перенаправление вывода файлов f1 и f2 в f3 Команда more Синтаксис: more [файл] ... содержимого Примеры Осуществляет поэкранный вывод файла $ more f1 … … … --f1 (20%)-<Q> или <q> <Return> <Space> Выход из команды more Вывод очередной строки Вывод очередного экрана с информацией Команда tail Синтаксис: tail [-n] [имя_файла] ... файла(ов) Примеры $ tail -1 note soon as it is available Вывод последних n строк Команда cp Синтаксис: cp [-i] файл вых_файл Копирование файла cp [-i] файл [файл...] вых_каталог файлов Копирование в каталог cp -r [-i] каталог [каталог...] вых_каталог Копирование каталогов • • • • • • • Требуется указать как минимум два аргумента - источник и преемник Для любого из аргументов допустимо использование относительных и/или абсолютных маршрутных имен. Если файл-преемник не существует, он будет создан. Если преемник - каталог, файл будет скопирован в него с сохранением имени. Опция -i приводит к выдаче предупреждения о том, что файл-преемник уже существует и может быть изменен При копировании нескольких файлов преемником должен быть каталог. Файл не может быть скопирован сам в себя. Команда mv Синтаксис: mv [-i] файл новый_файл Переименование файла mv [-i] файл [файл...] вых_каталог файлов в mv [-i] каталог [каталог...] вых_каталог • • • • • • • Перемещение каталог Переименование или перемещение каталогов Требуется указать как минимум два аргумента - источник и преемник Для любого из аргументов допустимо использование относительных и/или абсолютных маршрутных имен. Если файл-преемник уже существует, его содержимое будет заменено содержимым файла-источника. Если преемник - каталог, файл будет скопирован в него с сохранением имени. Опция -i приводит к выдаче предупреждения о том, что файл или каталогпреемник уже существует и может быть изменен При перемещении нескольких файлов преемником должен быть каталог. Если в качестве источника указан каталог, он переименовывается и Команда ln Синтаксис: ln файл новый_файл файл ln файл[файл...] вых_каталог на файлы Примеры Создание ссылки на Создание ссылок в каталоге Пользователь / home $ ls -l f1 -rw-rw-r-- 1 user3 class 37 Jul 24 11:06 fl $ ln fl /home/user2/fl.link $ ls -l fl -rw-rw-r-- 2 user3 class 37 Jul 24 11:06 fl $ ls -1 /home/user2 -rw-rw-r-- 2 user3 class 37 Jul 24 11:06 fl.link находиться здесь user2 user3 f1.link f1 Это файл, к которому можно обращаться по нескольким именам Команда rm Синтаксис: rm [-if] имя_файла [имя_файла]... Удаление файлов rm -r[if] каталог [имя_файла ...] Удаление каталогов • • -f -r • -i Безусловное удаление поименованных в команде файлов Рекурсивно удаляется содержимое каталогов, указанных в командной строке Режим интерактивного удаления Примеры $ ls -F f1 f2 fruit/memo $ rm f1 $ ls -F f2 fruit/memo $ rm -i f2 f2? y $ rm fruit rm: fruit directory $ rm -r fruit Доступ к файлам Права на чтение, запись, выполнение файла Определение прав доступа, установленных для файла chmod Изменение прав доступа к файлу umask Изменение прав доступа, назначаемых по умолчанию chown Изменение владельцев файла chgrp Изменение группы файла su Изменение идентификатора пользователя newgrp Изменение идентификатора группы пользователя Permission ls (ll, ls -l) Кто имеет доступ к файлу? • Тройственная структура, определяющая доступ к файлу или каталогу user group доступ к other Владелец файла Группа пользователей, которая может иметь файлу Все другие категории пользователей • Команда ls -l выводит на экран идентификаторы пользователя -владельца файла и группы, которая имеет доступ к файлу $ ls -l -rw- r--r-- 1 user3 class 37 Jul 24 11:06 f1 -rwxr-xr-x 1 user3 class 52 Jul 24 11:08 f2 drwxr-xr-x 2 user3 class 1024 Jul 24 12:03 memo Владелец Группа Типы доступа Для каждого файла или каталога возможны три типа доступа: -Read (чтение) Может быть просмотрено содержимое файлов или каталогов -Write (запись) Содержимое файлов или каталогов может быть изменено -Execute (выполнение) Файл может использоваться как команда. Каталог может стать текущим рабочим каталогом Права доступа к файлам Права доступа к файлам выводятся на экран командой ls -l $ ls -l - rw- r-- r-- 1 - rwx r-x r-x 1 d rwx r-x r-x 2 user3 class 37 Jul 24 11:06 f1 user3 class 52 Jul 24 11:08 f2 user3 class 1024 Jul 24 12:03 memo Права владельца Права группы Группа файла Владелец файла Права остальных пользователей Команда chmod Синтаксис: chmod режим_доступа файл ... режим_доступа кто остальные оператор право выполнение Изменение прав доступа к файлу(ам) [кто[оператор]право][...] владелец (user), группа (group), (other) или все (all) + (добавить), - (отнять), = (присвоить) чтение (read), запись (write), (execute) Команда chmod Примеры Исходные права:режим rw-r--r-$ chmod u+x,g+x,o+x file Новые права: режим rwxr-xr-x $ chmod +x file владелец rw- группа остальные r-r-- владелец группа rwx остальные r-x r-x chmod = имя_файла Удаление всех прав доступа к файлу $ chmod о= file Новые права: режим владелец группа остальные rwxr-xr-x rwx r-x --- Команда chmod Примеры файл устройства, отвечающий за связь терминала пользователя с компьютером $ ls -l /dev/tty0p1 crw--w--w- 1 bin bin 58 ox000003 Feb 15 11:34 /dev/tty0p1 $ mesg n $ ls -l /dev/tty0p1 crw------- 1 bin bin 58 ox000003 Feb 15 11:34 /dev/tty0p1 /dev/tty0p1 - Команда chmod. Задание прав доступа в числовом формате 1. Каждое право доступа обозначается следующими числами: read=4 write=2 execute=1 2. Числа складываются для каждой категории пользователей (владельца, группы, остальных) и объединяются в трехразрядное число. Примеры 1. user group others rwr---4+2+0 4+0+0 0+0+0 6 4 0 chmod 640 имя_файла 2. chmod 000 имя_файла Отмена всех прав доступа к файлу Команда umask Синтаксис: umask [-S] [режим_доступа] ... Пользовательская маска создания файла Примеры права доступа по умолчанию: установка новых прав доступа по умолчанию $ umask g=r, o= $ umask -S rw-rw-rwrw-r--r-- Вывод текущей маски создания файла в символьном представлении Команда touch Синтаксис: touch [-amc] [-t время] имя_файла... последнего модификациии Обновляет время доступа и/или файла Опции: -a [время] Установить время последнего доступа к файлу равным время -m [время] Установить время последней модификации файла равным время -c Если файл не существует, не создавать его -t время Использовать время вместо текущего время [[cc]yy]mmddhhmm[.ss] Команда touch Примеры: $ ll -rw-r--r-- 1 karenk users 25936 Aug 24 -rw-r--r-- 1 karenk users 10245 Aug 24 $ touch newfile $ ll -rw-r--r-- 1 karenk users 25936 May 24 -rw-r--r-- 1 karenk users 0 Aug 25 -rw-r--r-- 1 karenk users 10245 Aug 24 $ touch secondfile $ ll -rw-r--r-- 1 karenk users 25936 May 24 -rw-r--r-- 1 karenk users 0 Aug 25 -rw-r--r-- 1 karenk users 10245 Aug 25 $ 09:53 firstfile 09:53 secondfile 09:53 firstfile 10:02 newfile 09:53 secondfile 09:53 firstfile 10:02 newfile 10:05 secondfile Команда touch Примеры: $ touch test_filel $ ls -1 test_filel -rw-rw-rw- 1 user3 class 0 Jul 24 11:08 test_filel $ umask a-rwx,u=rw,g=r $ umask -S u=rw,g=r,o= $ touch test_file2 $ ls -1 test_file2 -rw-r----- 1 user3 class 0 Jul 24 11:10 test_file2 Команда chown Синтаксис: chown владелец [:группа] имя_файла Изменение владельца файла и, дополнительно, группы Пример: $ id uid=303 (user3), gid=300 (class) $ cp fl /home/user2/fl $ ls -1 /home/user2/fl -rw-r----- 1 user3 class 3967 Jan 24 13:13 fl $ chown user2 /home/user2/fl $ ls -1 /home/user2/fl -rw-r----- 1 user2 class 3967 Jan 24 13:13 fl •Только владелец файла (или суперпользователь) может изменить владельца файла. Команда chgrp Синтаксис: chgrp новая_группа имя_файла • Изменяет права доступа группы к файлу Только владелец файла (или суперпользователь) может изменить группу файла. Пример: $ id uid=303 (user3), gid=300 (class) $ ls -1 f3 -rw-r--—— 1 user3 class 3967 Jan 24 13:13 f3 $ chgrp class2 f3 $ ls -l f3 -rw-r----- 1 user3 class2 3967 Jan 24 13:13 $ chown user2 f3 $ ls -l f3 -rw-r----- 1 user2 class2 3967 Jan 24 13:13 f3 f3 Команда su Синтаксис: su [имя_пользователя]... Изменение ранее назначенного идентификатора пользователя Примеры $ ls -1 /usr/local/bin/class_setup -rwxr-x--- 1 class_admin teacher 3967 Jan $ id uid=303 (user3), gid=300 (class) $ su class_admin Password: $ id uid=400 (class_admin), gid=300 (class) $ /usr/local/bin/class_setup $ <Ctrl>+<d><Return> log out of su session $ 24 13:13 f3 Команда newgrp Синтаксис: newgrp [имя_группы]... Примеры Изменяет идентификатор группы $ ls -1 /usr/ local/bin/class_setup -rwxr-x--- 1 class_admin teacher 3967 Jan 24 13:13 $ id uid=303 (user3), gid=300 (class) $ newgrp teacher $ id uid=303 (user3), gid=33 (teacher) $ /usr/local/bin/class_setup $ newgrp return to login group status $ newgrp other Sorry $ f3