Что такое файл?

advertisement
Занятие 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
Download