man hier
/ - top level directory. - current directory.. - parent directory~ - home directorytouch - create a file
ls
ls dir - list contens of dirls -l - list in long formatls -a - list all filesls -R - recursively list files in subdirectoriesls -d - don’t go into subdirectories, just list themls -S - list by sizels -t - list by modification datels -lh - list files in long format with human-readable sizels -F - list files and gets their typescp
cp a b - copy file a to bcp a b c dir/ - copy files a b c into dir/cp -R old new - recursively copies directory old into newcp -i a b - ask before overwriting filesmkdir - create directory
mkdir -p - create directory recursivelyfile - get info about file
mv - rename file
rename - rename files according to template
.txt files extensions to .png
rename 's/\.txt/\.png/ *.txt
find - поиск и обработка файлов рекурсивно
find /etc
find . -type f
.conf
find . -name "*.conf"
find /data -exec cp {} /backup/ \;
find / -iname "test.txt"
find / -not -name "test.txt"
** -size - specify file filter
bash
find /usr/bin -size +27000c #finds all file with size > 27000b
* `c` - bytes
* `k` - kilo bytes
* `M` - mega bytes
find / -type f -mtime 1
find / -name "test.txt" -exec chmod 700 {} \;
locate - поиск файлов используя данные индексирования файловой системы. Эта утилита гораздо быстрее find, но может вернуть устаревшие данные. Для того чтобы обновить индексы нужно вызвать updatedb. В большинстве систем Linux утилита updatedb запускатся один раз в день.
df - show disk partitions
df -h
ls -l посмотреть права доступа к файлам
$ ls -lh /home
drwxr-xr-x 53 max max 4,0K авг. 30 09:59 max
drwxr-xr-x - права доступа
max (3 колонка) - обладатель файлаmax (4 колонка) - группа обладателя файлаТипы файлов
| Первый символ | Тип файла |
|---|---|
| - | Обычный файл |
| d | Директория |
| l | Символьная ссылка |
| p | Именованный канал |
| b | Блочное устройство |
| c | Символьное устройство |
| s | Сокет |
Стандартные права доступа к файлам Unix
| Право доступа | К файлу | К директории |
|---|---|---|
| r (чтение) | Чтение содержимого файла (cat) |
Чтение содержимого директории (ls) |
| w (запись) | Изменение содержимого файла (vi) |
Создание файлов в директории (touch) |
| x (исполнение) | Исполнение файла | Вход в директорию (cd) |
chmod - устанавливает права доступа
$ ls -l
total 0
-rw-rw-r-- 1 paul paul 0 Sep 3 08:23 permissins.txt
$ chmod u+x permissins.txt
$ ls -l
total 0
-rwxrw-r-- 1 paul paul 0 Sep 3 08:23 permissins.txt
+ - добавляет право доступа, - - убирает право доступа, = - устанавливает права доступа (u=rw)u+(r|w|x) - добавляет право доступа для пользователя владельцаg+(r|w|x) - добавляет право доступа для группы владельцевo+(r|w|x) - добавляет право доступа для все пользователей, которые не являются ни владельцем ни группой владельцев+(r|w|x) - добавляет право доступа для всех пользователей (владелец, группа владельцев, остальные пользователи)chmod oct_ode filename - устанавливает права доступа в соответствии с восьмиричным представлением
| Двоичное представление | Вольмеричное представление | Права доступа |
|---|---|---|
| 000 | 0 | — |
| 001 | 1 | –x |
| 010 | 2 | -w- |
| 011 | 3 | -wx |
| 100 | 4 | r– |
| 101 | 5 | r-x |
| 110 | 6 | rw- |
| 111 | 7 | rwx |
# set to rwxrwxrwx
$ chmod 777 permissions.txt
$ ls -l permissions.txt
-rwxrwxrwx 1 paul paul 0 2007-02-07 22:34 permissions.txt
chgrp groupname filename - изменяет группу пользователей, владеющей файломchown username filename - изменяет пользователя владельца файла
chown groupname:username filename - изменяет группу и пользователя одновременно.mkdir -m oct_code dir_name - создаёт папку и устанавливает право доступа
$ mkdir -m 700 MyDir
$ mkdir -m 777 Public
$ ls -dl MyDir/ Public/
drwx------ 2 paul paul 4096 2011-10-16 19:16 MyDir/
drwxrwxrwx 2 paul paul 4096 2011-10-16 19:16 Public/
cp -p - скопировать файлы и сохранить уровень доступаsticky может быть установлен для директории с целью предотвращения удаления файлов пользователями, которые не являются их непосредственными владельцами. отображается как t на месте символа x
$ ls -l
drwxrwxr-x 2 u1 u1 4096 Sep 4 01:26 projects
$ chmod +t projects
$ ls -l
drwxrwxr-t 2 u1 u1 4096 Sep 4 01:26 projects
bit sticky может быть так же установлен в случае использования восьмеричного значения прав доступа, причём в этом случае должно использоваться двоичное значение 1 в первом из четерёх триплетов.
chmod 1775 projects
setgid может устанавливаться дли директории в тех случаях, когда необходимо, чтобы в качестве группы пользователей, владеющей файлами в директории, использовалась группа пользователей владеющая директорией. Отображается с помощью символа s. Устанавливается с помощью команды chmod 2xxx.
$ groupadd g1
$ mkdir proj
$ chown root:g1 proj
$ ls -l
drwxr-xr-x 2 root g1 4096 Sep 4 01:48 proj
$ chmod 2775 proj
$ touch proj/f1
$ ls -l proj
-rw-r--r-- 1 root g1 0 Sep 4 01:49 f1
setgid то при запуске файла он будет с правами пользователей из группы владеющей файлом.setuid - позволяет запускать файл от лица его создателя, а не от лица текущего пользователя.acl в файле /etc/fstab.getfacl - получает список контроля доступа для файла
$ getfacl file33
# file: file33
# owner: paul
# group: paul
user::rw-
group::r--
mask::rwx
other::r--
setfacl - устанавливает список контроля доступа
setfacl -m u:username:binarycode filename - добавляет право доступа для пользователя
$ setfacl -m u:sandra:7 file33
setfacl -m g:groupname:binarycode filename - добавляет право доступа для группы
$ setfacl -m g:tennis:6 file33
$ getfacl file33
# file: file33
# owner: paul
# group: paul
user::rw-
user:sandra:rwx
group::r--
group:tennis:rw-
mask::rwx
other::r--
setfacl -x username|groupname filename - удаляет право доступа
setfacl -x sandra file33
getfacl file33 | grep sandra
setfacl -b filename - удаление всего списка доступаsetfacl или chmod. Для предотвращения перерасчёта маски нужно воспользоваться параметром --no-mask
$ setfacl --no-mask -m u:sandra:7 file33
$ getfacl file33
# file: file33
# owner: paul
# group: paul
user::rw-
user:sandra:rwx #effective:rw-
group::r--
mask::rw-
other::r--
inode. Кроме метаданных в inode хранится ссылка на данные файла.inode ограниченно и можно посмотреть с помощью команды
df -i
ls -li - просмотр идентификатора inode.
$ touch f1
$ ls -li
total 0
5250474 -rw-rw-r-- 1 max max 0 сент. 7 08:01 f1
Директория является особым видом файла, который содержит таблицу соответствия между именами файлов и структурами inode. При выводе списка содержимого директории на самом деле осуществляется вывод содержимого файла директории.
ln file hard_link создаёт жесткую ссылку на файл. В момент создания жесткой ссылки в файл директории добавляется дополнительная запись. Новое имя файла ставится в соответствие существующей структуре inode. Оба файла будут использовать одну и ту же структуру inode, поэтому они в любом случае будут иметь одни и те же права доступа, а также одного и того же владельца. Оба этих файла также будут иметь одно и то же содержимое. На самом деле, оба этих файла будут идентичными и это означает, что вы можете безопасно удалить оригинальный файл и это никак не повлияет на существование файла, являющегося жесткой ссылкой.
ln -s file soft_link - создаёт символьную ссылку. При создании символьной ссылки созадётся новый файл указывающий на имя ссылаемого файла.
