Linux - кратко обо всём.

Автор: Roman Savochenko
Оригинал: LinuxShortAll (wiki версия в возможностью правки)
Примечание: Документ создаётся автором с 2002г. До настоящего момента документ создавался в среде LaTeX. На текущий момент выполняется публикация документа в среде Wiki с последующим оформлением в среде dockbook. LaTeX версию документа можно взять здесь и исходник здесь.

Оглавление документа
1 Конфигурационные и информационные файлы/каталоги
1.1 Общесистемные
1.2 Сеть
1.3 Железо
1.4 X (графическая система)
2 Утилиты
2.1 Основные пользовательские
2.2 Базовые для администрирования
2.3 Файловая система
2.4 X (графическая система)
2.5 Железо
2.6 Мультимедия
2.7 Сеть
2.8 Почта
2.9 Ядро
2.10 Программирование
3 Процедуры
3.1 Компиляция ядра
3.2 Создание swap в файле
3.3 Смена имени системы
3.4 Удалённое подключение с использованием X-сервера, для запуска GUI приложений
3.5 Установка русской консоли
3.6 Подготовка и компиляция проектов на основе autoconf/automake
3.7 Форматирование дискет, создание FS, проверка FS
3.8 Создание зашифрованых ФС
3.9 Подготовка к проверке выделения памяти с помощью Electric Fence
3.10 Подготовка к проверке выделения памяти с помощью mtrace
3.11 Подключение дисковых квот
3.12 Печать страниц документации
3.13 Настройка ssh
3.14 Создание ramdisk (диска в памяти)
3.15 Создание, использование и обслуживание LVM
3.16 Добавление в программу поддержки i18n
4 Устройства
4.1 Типы
4.2 Файлы устройств (в каталоге /dev)
5 Горячие клавиши
5.1 BASH
5.2 X
5.3 KDE
5.4 SysRQ ядра (Alt+SysRq+Key)
6 Форматы основных конфигурационных файлов
6.1 xorg.conf
6.2 Управляющие последовательности консоли
6.3 BASH
6.3.1 Общее
6.3.2 Основные переменные окружения оболочки
6.3.3 Основные операторы
6.3.4 Операторы сравнения файлов
6.3.5 Операторы сравнения строк
6.3.6 Арифметические операторы сравнения
6.3.7 Логические операторы
6.3.8 Перенаправления вывода
6.3.9 Специальные символы
6.3.10 Маски (подстановка, может быть отключена опцией -f или set)
6.3.11 Представление численных значений
6.3.12 Полезные обороты
6.4 GDB
6.5 MAKE
6.5.1 Шаблонные правила
6.5.2 Ключевые слова и команды
6.5.3 Специальные переменные
6.5.4 Автоматические переменные
6.6 Makefile.am
6.7 configure.in
6.8 Сonfigure
6.8 RPM *.spec
6.9 /etc/syslog.conf
6.10 /etc/modules.conf
6.11 Поточный редактор “sed” и команды в редакторе VI 
6.12 Поточный редактор AWK
6.13 Параметры ядра
6.13 CVS
7 Права доступа

1 Конфигурационные и информационные файлы/каталоги

1.1 Общесистемные

/dev/ — содержит специальные файлы устройств:

pts/ — файлы устройств открытых псевдотерминалов.

/etc/ — основная директория конфигурационных файлов:

anacrontab — конфигурация задач выполняемых anacron;
aspldr.conf — конфигурация boot-загрузчика ASPLoader (дистрибутив ASPLinux);
auto.misc, auto.master — конфигурации автомонтировщика;
crontab — конфигурация задач выполняемых cron;
csh.login — профиль системы для для TCSH (выполняется после регистрации);
fstab — конфигурация файловых систем(ФС) автоматически монтирующихся при загрузке;
group — системные группы пользователей;
gtk/ — файлы указателей шрифтов для графического тулкита GTK;
HOSTNAME — текущее имя машины;
inittab — конфигурация последовательности загрузки (для init);
issue — сообщение выдаваемое перед локальной регистрацией;
issue.net — сообщение выдаваемое перед сетевой регистрацией;
login.defs — описывает поведение login и su;
logrotate.conf — конфигурация демона автоматической обработки логов (ротация, упаковка, удаление);
logrotate.d — директория конфигурационных файлов демона автоматической обработки логов;
ld.so.conf — конфигурация динамического линковщика;
lilo.conf — конфигурация boot-загрузчика LILO;
man.conf — конфигурация сиcтемы страниц помощи, команда man;
motd — сообщение выдаваемое после удачной регистрации;
mtab — список смонтированных ФС;
nologin — наличие этого файла запрещает пользователям входить в систему с выдачей сообщения в файле;
nsswitch.conf — конфигурация последовательности поиска имен по различным источникам;
pam.d/ — содержит файлы конфигурации PAM:
su — описывает поведение команды su;
sudo — описывает поведение sudo.

password — системные пользователи;
profile — профиль системы для BASH (выполняется после регистрации);
rc.d/ — директория системы инициализации init (в стиле UNIX):

init.d/ — содержит скрипты, для управления системными демонами (сервисами);
rcX.d/ — директории уровней запуска X, содержат ссылки на скрипты в init.d;

sysconfig/ — содержит системные Файлы конфигураций:

keyboard — описание текущей раскладки клавиатуры;
desktop — установка графической среды (KDE,GNOME..);
i18n — конфигурация общесистеммной локали (локаль отдельных пользователей может содержаться в {home}/i18n);
harddisks — общие параметры дисков системы:
harddiskhd[x] — параметры конкретно взятого диска <x>.

security/ — содержит Файлы описывающие безопасность системы:

console.apps/ — содержит файлы указывающие на функции доступные непривилегированному пользователю из консоли;
console.perms — правила изменения прав доступа к устройствам, при аутентификации;
limits.conf — конфигурация лимитов пользователей.
sysctl.conf — содержит команды для автоматической инициализации sysctl-параметров ядра;
syslog.conf — конфигурация демона системного логера (syslogd);
shadow — содержит закодированные пароли пользователей (для системы хранения паролей TCB пароли хранятся в /etc/tcb/*);
skel/ — шаблон директории пользователя (в момент создания пользователя содержимое директории пользователя копируется отсюда);
sudoers — указание на то какие пользователи и какие программы могут быть запущены с привилегиями root используя sudo.

/proc/ — виртуальная ФС отражающая параметры ядра:

sys/ — содержит файлы с параметрами системы (большая часть допускает модификацию):
kernel/ — содержит файлы с параметрами ядра:
cap-bound — управление дополнительными правами (root) (0 – root права аннулируются);
hostname — имя хоста (системы);
osrelease — версия ядра системы;
ostype — тип ОС (Linux, *BSD, ...);
panic — признак паники ядра;
version — дата сборки ядра.

fs/ — содержит файлы с параметрами ФС:

file-max — максимальное количество открываемых файлов.
devices — список типов устройств в системе;
modules — список модулей подключенных к ядру;
self — ссылка на информацию о текущем процессе;
cpuinfo — информация о процессорах системы.

/usr/lib/locale/ — содержит локали различных стран и языков;
/usr/share/locale/ — локализации отдельных программ под конкретный язык;
/usr/share/man/ — страницы помощи man (в том числе и локализованные);
/var/spool/cron/ — задачи пользователей для cron (формируются с помощью “crontab -e” от пользователя);
/var/spool/at/ — задачи пользователей для at;
/home/{user}/ — домашняя директория пользователя:

.bashrc — профиль конкретного пользователя для BASH (запускается единожды);
.cshrc — профиль конкретного пользователя для TCSH;
.bash_profile — профиль конкретного пользователя для BASH (запускается при каждом запуске bash).

1.2 Сеть

/etc/ — основная директория конфигурационных файлов:

ethers — Файл соответствия аппаратных MAC адресов сетевым IP адресам в сети, в случае несоответствия доступ для хоста будет закрыт;
export — конфигурация NFS-ресурсов доступных извне;
hosts — перечень хостов и соответствующих им IP-адресов;
host.allow — список хостов которым вход разрешен;
host.deny — список хостов которым вход запрещен (для libc ver 5);
host.conf — указывает где и в каком порядке искать имена хостов (для libc ver 6);
nsswitch.conf — конфигурация последовательности поиска имен по различным источникам;
resolv.conf — конфигурация резолвера имён, содержит список DNS-серверов;
samba/ — содержит файлы конфигурации samba:
smb.conf — главный конфигурационный файл SAMBA;
smbusers — описывает соответствие SAMBA пользователей к системным пользователям;
smbpasswd — содержит хеши пользователей SAMBA, пароли устанавливаются утилитой smbpasswd.

services — содержит сопоставления номеров портов/сокетов их именам;
sysconfig/ — содержит системные Файлы конфигураций:

network — конфигурация сети;
network-scripts/ — скрипты и файлы конфигурации сетевых интерфейсов.

xinetd.conf — конфигурация суперсервера Internet (централизованное управление сокетами/портами);
xinetd.d/ — директория содержит файлы конфигураций отдельных сервисов для суперсервера xinetd;
ppp/ — директория содержит конфигурации PPP-соединений:

options — содержит общую для всех PPP-соединений конфигурацию;
options.* — конфигурация конкретно взятого соединения (например модемное options.ttyS1);
ip-up — скрипт выполняемый при/для соединения (демоном pppd);
ip-down — скрипт выполняемый при/для разъединении (демоном pppd).

1.3 Железо

/etc/ — основная директория конфигурационных файлов:

printcap — Файл конфигурации принтеров;
inputrc — конфигурация ресурсов ввода с клавиатуры;

/usr/lib/kbd/ — содержит файлы необходимые для корректной работы клавиатуры:

keymaps/i386/qwerty/*.kmap.gz — файлы консольных роскладок клавиатуры.

/home/{user}/ — домашняя директория пользователя:

.inputrc — конфигурация ресурсы ввода с клавиатуры конкретного пользователя.

1.4 X (графическая система)

/etc/X11/fs/config — содержит перечень каталогов со шрифтами для X;
/etc/X11/XF86Config — Файл конфигурации X (XFree86);
/etc/X11/xorg.conf — Файл конфигурации X (XOrg);
/usr/X11R6/bin/X — ссылка на текущий X сервер;
/home/{user}/.Xauthority — файл авторизации для запуска X-приложений удаленно, файлы на удаленных машинах должны соответствовать;
/home/{user}/.xinitrc — сценарий загрузки X сервера конкретного пользователя;

2 Утилиты

2.1 Основные пользовательские

awk — утилита манипуляции файлами данных, выборка и обработка текста;
bg — работа с множеством задач в терминале: перевод остановленной (Ctrl+Z) задачи на задний план;
cal — календарь (за любой год);
cat, zcat — выдает указанные файлы на STDOUT;
cd — смена директории;
clear — очистка экрана терминала;
cp — копирование файлов и директорий;
cpio — копирование файлов в архив и из архива (может использоваться для архивов);
cut — вырезает из входного файла столбцы, строки;
date — отображает текущую дату и время;
dd — преобразование, создание и другие манипуляции с файлами в двоичном виде:

dd if=/dev/zero of=/swap bs=1024 count=8208 – создание пустого файла swap размером 8Мб
dd if=/dev/fd0 of=boot.img bs=18k – создание образа из дискеты

echo — выполняет эхо-повтор строки на терминале;
exit — завершить процесс с указанным кодом возврата;
fg — работа с множеством задач в терминале: перевод остановленной (Ctrl+Z) задачи на передний план;
file — определение типа любого файла;
find — поиск:

-type — тип выводимых файлов;
-name — имя искомого файла;
-size — размер искомого файла.

grep — поиск указаной строки в указанных файлах или потоках;

grep 'str' mifile.txt

gzexe — архивирование в исполняемый модуль, с распаковкой при запуске;
gzip — компрессия и декомпрессия файлов:

-<n> — выполнить компрессию с уровнем <n>=(1..9);
-d — декомпрессия.

head — показывает заголовок/начало указанного файла;
hexdump — печать входного потока в указанном формате (DEC,HEX,OCT,ASCII);
history — показывает нумерованный список истории команд;
ipcs — показывает ресурсы IPC(inter process communication);
ipcrm — удаляет ресурсы IPC(inter process communication);
kill, skill — посылка сигнала процессу;
let,bc,expr — выполняет арифметические, логические и другие действия над числовыми значениями в переменных окружения;
ln — создание и обслуживание ссылок;
locate — поиск файла в уже созданной базе;
ls — листинг директории или информация про файл/директорию;
md5sum — подсчёт md5 суммы;
mkfifo — утилита создания именованных каналов;
mknod — утилита для создание специальных файлов;
more, less, zless — просмотр файла постранично;
mpage — печать нескольких страниц на одной;
nice,snice — запуск команды с указанным приоритетом (-20 — +20);
nohup — запуск команды с отвязкой от текущего терминала;
pidof — показать PID работающей программы;
pr — форматирование, текстового файла для печати;
printenv, env — показывает переменные окружения;
ps — показывает запущенные в системе процессы;
pstree — показывает дерево запущенных процессов;
renice — изменение приоритета активного процесса;
rm — удаление файлов и директорий;
rpm — утилита для работа с RPM-пакетами:

-i packet — установить пакет;
-e packet — удалить пакет;
-U packet — обновить пакет;
-V packet — проверка корректности установки/текущего состояния указанного пакета;
-a — выполнение указанной операции для всех пакетов;
-q — запрос данных о пакете:
f — поиск пакета которому принадлежит указанный файл;
i — вывод информации о пакете;
l — список файлов, принадлежащих пакету;
s — состояние файлов пакета;
d — список файлов документации пакета;
c — список конфигурационных файлов пакета;
p — выполнить операцию над ещё неустановленным пакетом;

-b файл.spec — частичная или полная обработка *.spec файла для сборки пакета:

a — создание бинарного и исходного rpm пакета;
b — создание бинарного rpm пакета;
c — выполнение этапов: %pre и %build с распаковкой и компиляцией;
i — выполнение этапов: %pre, %build и %install;
l — проверка списка файлов в %files;
p — выполняется этап %pre (распаковка архива);
– -rebuild my.src.rpm — скомпилировать и создать бинарный rpm из исходного rpm;
– -recompile my.src.rpm — скомпилировать из исходного rpm;
– -test — проверка файла спецификаций;
– -clean — удаление дерева каталогов BUILD;

screen — открыть команду в новом окне того же терминала с возможностью переключения – Ctrl+A;
sed — потоковый редактор;
sleep — усыпляет данный процесс на указанное количество секунд;
sort — сортировка данных в файле/потоке;
split/csplit — разбиение/сбор больших файлов на куски;
stat — информация о файле/директории;
strings — выделение символьных сообщений из не текстового файла;
symlinks — утилита обслуживания символьных ссылок в системе;
tar — создание архивов и пакетов;

-v — отображать список обработанных файлов;
-с — создавать новый архив;
-x — распаковать архив;
-f <file> — упаковывать в указанный файл <file>;
-z — выполнять компрессию полученого пакета с помощью gzip;
-j — выполнять компрессию полученого пакета с помощью bzip2;
-t — просмотр содержимого архива;

tail — показывает хвост указанного файла;
test — проверка типов файлов и сравнение значений;
tee — читает из стандартного входа, а затем записывает в стандартный выход и в файл;
touch — обновление отметки времени файла или создание пустого файла при его отсутствии;
time — определение времени и ресурсов выполнения команды;
tr — трансляция символов (преобразование/замена одних на другие);
tree — дерево части файловой системы;
updatedb — создание и обновление базы данных для команды locate;
vi, vim — очень мощный текстовый редактор с оригинальным управлением;
vimdiff — просмотр сравниваемых файлов в vim;
wc — подсчет количества строк, символов слов в файле;
which,whereis — показывает полный путь к искомой программе;

2.2 Базовые для администрирования

adduser, useradd – добавление пользователей в систему;
anacron – периодический запуск программ без чёткой привязки ко времени, но обязательно;
apropos – поиск man-страницы по ключевому слову;
arch – архитектура текущей системы;
at, batch – автоматизация разовых запусков программ в указанное время;
basename – выделение имени файла/директории из полного пути;
badblock – поиск плохих блоков на носителе (HDD, FDD);
chfn – изменение имени пользователя и информация о нем;
сhgrp – смена группы файла, каталога ...;
chkconfig – конфигурация уровней загрузки различных сервисов;
chmod – смена режима доступа к файлу;
chown – смена владельца и группу владельцев файла, каталога ...;
chroot – смена корня текущей сесии;
chvt – переключение на указанный терминал;
chsh – смена типа командного интерпретатора;
cron – периодический запуск програм;
crontab – формирование пользовательской конфигурации cron;
df – информация о файловых системах на данной машине;
dirname – выделение имени директории из полного пути;
dmesg – показать лог о загрузке ядра;
du – получение информации о размере содержимого файла или директории;
dumpkeys – dump карты клавиатуры;
export – встроенная команда BASH, для определения переменной окружения и экспортирования её для общей доступности;

EDITOR=xemacs – определение переменной <EDITOR> значением <xemacs>;

fgconsole – номер текущего терминала;
finger,who – информация о всех пользователях системы;
free – информация о состоянии памяти;
fuser – выдает список процессов использующих указанный файл или сокет, а также позволяет закрывать процессы занимающие ресурс;
groupadd – добавление группы пользователей;
groupdel – удаление группы пользователей;
iconv – преобразование содержимого файла из одной в другую кодировку;
id – информация о пользователе;
info – показать документацию из страниц связанной помощи (GNU-doc);
init – утилита начальной загрузки;

q – перезапуск init для активизации изменений в /etc/inittab;

locale – получение информацию о настройках локали (/etc/sysconfig/i18n);
localedef – создание новой локали из базовой;
login – вход в систему;
logrotate – утилита для автоматической упаковки, чистки и другой обработки логов;
lsof – печатает список открытых в системе файлов, сокетов, каналов, разделяемых библиотек;

-p <n> – список системных ресурсов используемых <n> процессом;
<name> – список процессов использующих ресурс <name>.

man,xman – показать страницу руководства;

-k <word> – поиск страницы по ключевому слову;

mesg – управление доступом на запись к текущему терминалу (для посылаемых сообщений);
mpage – размещение нескольких страниц текста в одной и печать их на Post Script ? принтере;
ntpdate – утилита синхронизации времени через Internet(www.ntp.org);
passwd – смена пароля пользователя;
pwd – получение полного имени текущей директории;
rlogin – вход на удаленную систему;
service – утилита для операций над сервисами в /etc/rc.d/init.d;

smb start – запуск сервиса Samba;

set – встроенная команда BASH, выполняет операции над переменными окружения;
setsid – запуск програмы в новой сессии;
sg – смена основной группы пользователя, или выполнение команды от имени указанной группы;
slogin – вход в систему по ssh (тоже что и ssh);
ssh – вход в систему по шифрованому протоколу ssh;
stty – получение и установка параметров терминала, переопределение специальных клавиш.
su – смена пользователя текущей сессии или выполнени команды от имени указанного пользователя, по умолчанию root;

-l – с перечитыванием конфигов;

sudo – запуск отдельных программ от имени другого пользователя (нужно прописать в /etc/sudoers);
shutdown – выключение системы;
talk – двухсторонний разговор с другим пользователем;
tload – информация о загрузке системы;
top, htop – вывод информации о процессах с сортировкой по занимаемому времени;
tput – управление терминалом;
tset, reset – инициализация терминала на curses;
tty – имя текущего певдотерминала;
ulimit – управление ограничениями пользователей.
umask – определяет маску прав по которой будут создаваться новые файлы;
uname – печатает информацию о текущей OS;
unset – встроенная команда BASH, очистка/удаление переменных окружения;
uptime – время непрерывной работы системы;
users – список пользователей в системе;
userdel – удаление пользователей из системы;
usermod – изменение учетной записи пользователя;
vmstat – информация об использовании виртуальной памяти;
w – информация о том что делает текущий пользователь;
wall – передача широковещательного сообщения (всем пользователям системы);
watch – периодический запуск указанной программы;
whoami – сообщает имя текущего пользователя;
write – написать сообщение указанному пользователю;
ytalk – расширенная версия talk, с возможностью работы в X;


setfont – установка консольного шрифта;
loadkeys – установка раскладки клавиатуры.
consolechars – загрузка консольных экранных шрифтов.

2.3 Файловая система

cdrecord – запись CD дисков;

cdrecord -v speed=2 dev=0,6,0 -data my.img

cfdisk – конфигурация разделов диска;
edquota – редактирование квот файловой системы;
fdformat – Форматирование дискеты;
fdisk – работа с разделами диска;
fsck – проверка файловой системы указанного типа;
fsck.<fs> – проверка файловой системы типа <fs>;

fsck.vfat /dev/fd0 – проверка файловой системы FAT12 на флоппи диске.

hdparm – установка параметров дисковой подсистемы;
loadlin.exe – загрузка ядра linux из DOS;
losetup – создание петлевого устройства(loop) с криптованием;

losetup -k 192 -e aes /dev/loop4 /tmp/file.iso
– создание loop4 в file.iso с криптованием.

mkfs – создает FS указаного типа как на физический раздел так и в файл;
mkfs.<fs> – cоздание FS типа <fs>;

mkfs.vfat /dev/fd0 – cоздает файловую систему FAT12 на флоппи диске.

mkisofs – создание ISO образа из каталога;

mkisofs -r -o my.iso /usr/games

mount – монтирование файловых систем:

parted – очень мощный манипулятор дисковыми разделами;
quota – квоты для текущего пользователя;
quotaon – включение квот;
quotaoff – выключение квот;
quotacheck – проверка квот файловой системы;
quotastats – состояние квот файловой системы;
tune2fs – изменение параметров смонтированной ext2/ext3;
resize2fs – изменение размера файловой системы ext2/ext3 на разделе (в связке с LVM);
resize_reiserfs – изменение размера файловой reiserfs системы на разделе (в связке с LVM);
swapoff – отключить свопинг;
swapon – включить свопинг;
sync – экстренный сброс буферов на диск;
umount – отмонтировать файловую систему;
xcdroast – X-оболочка над cdrecord и mkisofs.

2.4 X (графическая система)

appres – информация о ресурсах X приложений;
glxingo – информация о расширении GLX (Open GL ?);
gnome-session – запуск дисплей-менеджера GNOME(GDM);
import – создаёт снимок X экрана или конкретного окна;
listres – вывод X – ресурсов;
mkfontdir – создает раскодировщик шрифтов в текущем каталоге из указаного каталога;

mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings

showrgb – наименования и значения стандартных цветов;
startkde – запуск оконного менеджера KDE;
startx – скрипт запуска X-сервера;

startx – :2 – запуск еще одного экземпляра X, под номером 2;
startx – -depth 24 – запуск X-сервера с глубиной цвета 24 бита;

ttmkfdir – создание директории TTF шрифтов.

ttmkfdir > fonts.scale – после можно скопировать в fonts.dir

xdpyinfo – информация о дисплее;
xev – просмотр информации о событиях в окне;
xf86config – конфигурация X-сервера;
xfontsel – выбор шрифтов для X-сервера;
xfs – сервер шрифтов;
xhost – утилита управления доступом удалённых хостов к X-серверу;
xinit – утилита запуска X, а затем указанного приложения (по умолчанию – xterm);

xinit /usr/bin/icewm – :1

xkill – завершение оконного приложения;
xlsfonts – вывод списка шрифтов X-сервера;
xmag – увеличение части экрана;
xmodmap – изменение раскладки клавиатуры в X;
xosview – выводит основную информацию о ОС;
xprop – вывод реквизитов окна;
xrefresh – перерисовка экрана;
xset – утилита установкы параметров X-сервера;
xsetroot – установка вида корневого каталога;
xvidtune – настройка параметров монитора (частоты кадров и строк);
xvinfo – информация о расширении Xv;
xwininfo – показать информацию об указанном окне;
xwd – захват изображения на экране;

2.5 Железо

alsaconf – установка звуковой карты на подсистеме звука ALSA;
hwclock – установка, считывания аппаратных часов (CMOS);
kbd_mode – установка режима работы клавиатуры(RAW, MEDIUMRAW, XLATE, UNICODE);
lpr – печать с файла или с потока на указанный принтер;

lpr -P lp1 my.txt – печать файл my.txt на принтер lp1

lpq, lpstat – состояние очереди печати;
lprm – удаление задания печати из очереди;
lspci – выводит листинг устройств на PCI – шине;
pbm* – преобразование, из графического формата *.pdm в формат принтера [*];
pciscan – сканирование PCI-шины и отображение модулей необходимый для работы с устройствами на PCI-шине;
setleds – установить светодиоды на клавиатуре;
setserial – установка/конфигурация COM портов;
setterm – установка параметров терминала;
showkey – утилита для отображения сканкодов клавиш и кодов мапированных системой;
statserial – утилита для контроля за состоянием serial-порта;
tunelp – установка параметров параллельного порта;
usbview – утилита для просмотра и конфигурации USB-устройств;

2.6 Мультимедия

alsamixer – ALSA-миксер;
aumix – консольный AUDIO-миксер;
cdparanoia – позволяет грабить CD;
lame – преобразование *.wav в *.mp3;
mencoder – перекодировка видеофайлов с одного видеоформата в другой;

mencoder dvd://1 -oac mp3lame -ovc xvid -xvidencopts bitrate=800 -o 1.avi
– перекодировка первой дорожки DVD-диска с битрейтом 800 аудиокодеком mp3lame и видеокодеком xvid.

oggenc – преобразование *.wav в *.ogg;
play – проигрывание звуковых файлов;
rec – запись в звуковой файл.

2.7 Сеть

arp – манипуляция системным ARP кешем (манипуляция аппаратными адресами);
ethereal – мощный анализатор трафика сети;
ettercap – cнифер сети;
iptraf – мощный и удобный сканер сети;
ifconfig – утилита конфигурации сетевых интерфейсов (eth0, ppp0, lp0 ...);

down – выключить интерфейс;
up – включить интерфейс;
inet <ip> – интерфейс с <ip> адресом;
hw ether <mac> – установить MAC адрес интерфейса;
eth0:0 – псевдоним eth0:0 на интерфейс eth0;

iftop – контроль общего трафика по интерфейсам;
ipchains – утилита конфигурации firewall на основе интерфейса цепочек (ядра 2.2.*);
iptables – утилита конфигурации firewall на основе IP-таблиц (ядра 2.4.*);
minicom, xminicom – установка соединения с другой системой через модем(COM);
netstat – состояние сети (отображает используемые сокеты и их состояния).

-a – вывод всех сокетов;
-e – показать какой пользователь работает с сокетом в настоящий момент.

nmap,nmapfe – сканер сети и его GUI, можно получить перечень открытых портов и т.д;
nmblookup – утилита работы с Net BIOS ? (для SMB);

nmblookup -B Host '*' – возвращает IP адрес <Host>;
nmblookup -d 2 '*' – посылка широковещательных сообщений на все адреса.

ping – проверка связи с удаленным хостом путём посылки служебных тестовых сообщений;
route – управление таблицей маршрутизации;

delete – удаление указанного роутинга;
add – добавление указанного роутинга;

rsync – утилита для работы с протоколом rsinc, который, в свою очередь, используется для синхронизации по сети;

rsync -va – -partial – -stats – -delete-after -e ssh ./ devel:/incoming/backports/2.4/
– отправка пакетов в репозиторий ALTLinux Sisyphus путём синхронизации локальной директории с удалённым сервером.

smbclient – утилита для организации клиентских запросов к SMB-серверу;
smbprint – печать на SMB-принтер;
traceroute – проверка прохождения сетевых пакетов через сервера в сети;
tcpdump – дамп TCP протокола, позволяет отслеживать различные запросы;
testparm – проверка конфигурации файла smb.conf для SMB-сервера;
wget – мощная утилита для выкачивания файлов из сети по протоколам: HTTP, HTTPS, и FTP.

2.8 Почта

mail – создать сообщение;
mailq – показать очередь отправляемых сообщений;
mutt,pine – консольный почтовый клиент;
newaliases – добавляет новые почтовые алиасы сервера исходящих сообщений;
procmail – утилита автоматизации обработки почтовых сообщений;
sendmail – управление сервером исходящей почты.

-q[time] – обработать сообщения в очереди;
-v – режим печати сопровождающих сообщений;

2.9 Ядро

depmod – проверка зависимостей модулей (выполняется при добавлении новых модулей);

-a – проверка модулей по всей структуре /lib/modules и внесение соответствующих корректив;

installkernel – скрипт инсталляции ядра (используется после компиляции ядра – make install);
lsmod – получение списка загруженых и работающих модулей;
insmod – подключение модуля к ядру;
modinfo – получение информации о модуле и его параметрах;
modprobe – утилита управления модулями ядра, без параметров подключает модуль к ядру;

-с – перечисляет все сконфигурированные сокращения, опции и команды для модулей;
-l – перечисляет все возможные модули;
-r – выгружает модуль;

mkinitrd – скрипт автоматического создания загрузочного образа RAM-диска, для подключения к ядру;
powertweak – утилита для тонкого управления настройками ядра (через sysctl);
procinfo – получить информацию о процессах и системе из /proc;
ramsize – конфигурация размера диска в памяти используемого образом ядра по умолчанию;
rdev – конфигурация корневого каталога используемого образом ядра по умолчанию;
rmmod – отключение модуля от ядра;
sysctl – конфигурация параметров (/proc/sys/) ядра во время его работы;
vidmode – конфигурация видеорежа используемого образом ядра по умолчанию;

2.10 Программирование

aclocal – утилита из инструментария Automake, генерирует макрос aclocal.m4 в соответствии с файлом configure.in;
ar – создание/редактирование архивов(статических библиотек) из объектных модулей.
autoconf – утилита из инструментария Autoconf, генерирует скрипт configure, из файла configure.in;
automake – утилита из инструментария Automake, генераирует Makefile.in ?, из файла Makefile.am ?;

r – добавление новых и замена старых файлов;
c – создание библиотеки при её отсутствии.

cpp – препроцессор языка C, обычно вызывается из gcc;
ctags – генерирует тег-файл для облегчения навигации по коду (используется VIM);

-e – эмуляция etags для генерации тег-файлов для emacs.

ctrace – для прослеживания выполнение C-программы по операторам;
cxref – анализирует группу .c-файлов и строит для каждого файла таблицу перекрестных ссылок на автоматические, статические и глобальные имена.
dialog – позволяет создавать диалоги из скрипта в консоли;
diff – поиск изменений в сравниваемых текстовых файлах;

diff -uNr каталог.orig каталог > my.patch // Создание патча

f2c – транслирует исходный код программы на языке “Fortran” в исходный код на языке “C”;
gcc – GNU компилятор языка С,С++,ASM (с вызовом линкера);

-x lang – определяет язык исходных модулей;
-c – компилирует и собирает ранее или позже перечисленные исходные файлы;
-S – компилирует перечисленные исходные файлы в *.s файлы;
-E – производит первичную обработку исходных файлов;
-o rez – собрать перечисленные obj-файлы в один файл <rez>;
-L – определение путей поиска библиотек;
-l – определяет перечень статических библиотек (без lib* и *.a);
-w – запрет отображения предупреждений компилятора;
-Wall – генерировать все возможные предупреждающие сообщения;
-pedantic – проверка исходного текста на соответствие стандарту ANSI;
-Wl – различные опции линковщика:
, rpath – определяет дополнительные пути поиска динамических библиотек (-Wl,rpath,/usr/newpath);
, soname – название разделяемой библиотеки (-Wl,-soname,libfuncs.so.1).
-fPIC – создание объектных файлов для динамических библиотек (PIC – Position Independent Code.)
-shared – создание динамической библиотеки (совместно с -o);
-nostdlib – не использовать стандартные системные запускающие файлы или линкующиеся библиотеки.
-static – принуждает использовать статические библиотеки вместо динамических;
-rdynamic – включает возможность использования символьной информации для разрешения ссылок в динамически загружаемых библиотеках;
-M – для каждого файла с исходным текстом препроцессор будет выдавать на стандартный вывод список зависимостей в виде правила для программы make;
-MM – аналогичен ключу -M, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include «имя_файла»;
-MD – аналогичен ключу -M, но список зависимостей выдается не на стандартный вывод, а записывается в отдельный файл зависимостей;
-MMD – аналогичен ключу -MD, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include «имя_файла»;
-pipe – компилятор будет работать через каналы.
-O[n] – установить уровень оптимизации (n=0..3).
-g – добавить отладочную информацию.
-p,-pg – добавить в модуль код для отслеживания узких мест, после выполнения генерируется mon.out файл, который можно обработать утилитой gprof.
-masm – использовать стандарт ассемблера (att|intel).

gdb – мощный консольный GNU дебагер;
indent – утилита форматирования исходного текста под указанные требования;
lclint – утилита проверки синтаксиса исходных модулей;
ldconfig – активизировать изменения в файле /etc/ld.so.conf;
ldd – показывает динамические библиотеки используемые программой;
lint – обнаруживает в C-программах конструкции, которые могут привести к ошибкам во время выполнения, расточительно используют ресурсы или могут снизить мобильность программ;
ltrace – трассировка динамических библиотек, программы указанной в параметре;
make – используется для организации сложных проектов из десятков файлов;

-directory – указывает рабочую директорию;
-makefile – указывает на используемый makefile;
-p – вызывает вывод списка всех установок по умолчанию;
-j3 – установить количество параллельно компилирующих процессов;

memprof – программа для определения утечек памяти в программах и др;
mtrace – обработка лога созданного С-функцией mtrace;
nm – используется для получения различной информации из таблицы имен объектных файлов обычного формата;
objdump – позволяет получить много информации об объектном файле, а также дизасемблировать его;
od – печать дампа файла;
p2c – транслирует исходный код программы на языке “Pascal” в исходный код на языке “C”;
patch – внесение изменений в файл исходя из файла изменений;

patch -p1 < ../my.patch – внесение изменений в текущий каталог из my.patch
patch -p1 < my.diff

prof, gprof – получения статистики по времени выполнения каждой функции программы, для использования этой функции, необходимо скомпилировать с ключем -p;
ranlib – добавление таблицы индексов библиотеки созданной ar в эту же библиотеку;
SCCS (Source Code Control System) – это набор утилит, предназначенных для управления версиями исходных текстов программ, в состав SCCS входят утилиты admin(1), cdc(1), comb(1), delta(1), get(1), prs(1), rmdel(1), sccsdiff(1), val(1), what(1);
sdb – символьный отладчик (Symbolic Debugger);
shar – создание самораспаковывающихся кодированных архивов для отправки по почте;
size – выдает количество байт, занимаемое тремя секциями (.text, .data и .bss) объектного файла обычного формата при загрузке его в память для выполнения;
strace – трассировка системных вызовов, осуществляемых программой указанной в параметре;
strip – удаляет из объектного файла обычного формата таблицу имен и информацию о номерах строк;
sum – расчет контрольной суммы;
Xdialog – позволяет создавать диалоги в X из скрипта.


3 Процедуры

3.1 Компиляция ядра

$ cd KernelTree/  #Переход к распакованому корню дерева исходников ядра
$ make config(menuconfig, xconfig)  #Конфигурация
$ make dep  #Создание файлов зависимостей
$ make clean  #Очистка от ранее скомпилированных модулей
$ make bzImage  #Компиляция ядра
$ make install  #Установка ядра
$ make modules  #Компиляция модулей
$ make modules_install  #Установка модулей

3.2 Создание swap в файле

$ dd if=/dev/zero of=/swap bs=1024 count=8208  #Создание файла необходимого размера для swap
$ mkswap /swap  #Инициализация структуры swap в файле
$ /bin/sync  #Сброс изменений на диск
$ swapon /swap  #Включение swap (отключение - swapoff)

3.3 Смена имени системы

3.4 Удалённое подключение с использованием X-сервера, для запуска GUI приложений

Вариант 1 (обычный):

client$ xinit - :1  #Запустить X-сервер на клиенте (должен запуститься xterm)
client$ xhost +server  #Зарегистрировать машину сервера у клиента
client$ telnet server -l UserName  #Подключиться к удаленной машине (серверу)
server$ export DISPLAY=client:0.0  #Установить переменную DISPLAY
server$ startkde  #Запустить оконный менеджер

Вариант 2 (используя ssh):
client$ xinit - :1  #Запустить X-сервер на клиенте (должен запуститься xterm)
client$ ssh -X UserName@server  #Подключиться к удаленной машине (серверу)
server$ startkde  #Запустить оконный менеджер

3.5 Установка русской консоли

$ consolechars -f UniCyr_8x16 -m koi8-r;
$ echo -ne "\033(K";
$ loadkeys ru1;

3.6 Подготовка и компиляция проектов на основе autoconf/automake

$ gettextize -f -c  #Генерация локализационных файлов
$ autoheader  #Генерация файла
$ autoscan  #Автоматическая генерация cofigure.scan и проверка configure.in
$ ifnames  #Создание списка идентификаторов которые используются в препроцессоре
$ aclocal -I -m4  #Генерация макроса aclocal.m4
$ autoconf  #Генерация скрипта configure. Для реконфигурации использовать autoreconf
$ automake -a -c  #Генерация файла Makefile.in
$ configure  #Генерация Makefile
$ make  #Компиляция проекта
$ make install  #Установка программы

3.7 Форматирование дискет, создание FS, проверка FS

$ fdformat  /dev/fd0
$ mkfs.vfat /dev/fd0
$ ckfs.vfat -ta /dev/fd0

3.8 Создание зашифрованых ФС

$ dd if=/dev/zero of=./sequre_disk bs=1024 count=50000  #Создание файла для будущей FS
$ losetup -e aes /dev/loop0 ./sequre_disk  #Создание шифрованого loop устройства
$ mkfs.ext3 /dev/loop0  #Cоздание файловой системы на loop устройстве
$ losetup -d /dev/loop0  #Отключение loop устройства
$ mount -o loop,encryption=aes ./sequre_disk /mnt/tmp/  #Обычное монтирование шифрованой ФС

3.9 Подготовка к проверке выделения памяти с помощью Electric Fence

3.10 Подготовка к проверке выделения памяти с помощью mtrace

3.11 Подключение дисковых квот

3.12 Печать страниц документации

3.13 Настройка ssh

client$ ssh-keygen  #Генерация ключей на локальной машине в директорию " /.ssh/"
client$ scp ./identity.pub rserver: ~/.ssh/  #Передача публичного ключа на удалённый сервер (любым способом)
rserver$ cat ~/.ssh/identity.pub >> ~/.ssh/authorized_keys  #Авторизация своего открытого ключа на сервере
client$ ssh rserver  #Подключение к удалённому серверу

3.14 Создание ramdisk (диска в памяти)

$ mkfs /dev/ram0
$ mount /dev/ram0 /mnt/disk

3.15 Создание, использование и обслуживание LVM

$ vgscan  #Поиск по системе виртуальных групп VG
$ vgchange -ay  #Активизировать виртуальную группу (-an - деактивизировать)
$ pvscan  #Поиск доступных физических томов и отображение сравнительной информации о них
$ pvdisplay /dev/hda1  #Просмотр информации о физическом томе
$ pvcreate /dev/hda1  #Подготовка физического тома PV (тип раздела 8Eh)
$ pvmove /dev/hda1  #Освобождение физического тома (перенос данных на другие физические тома)
$ vgdisplay vg00  #Просмотреть информацию о виртуальной группе
$ vgcreate vg00 /dev/hda1 /dev/hdb1  #Cоздание виртуальной группы на основе двух физических томов
$ vgremove vg00  #Удаление виртуальной группы
$ vgextend vg00 /dev/hdc1  #Добавление физического тома к виртуальной группе
$ vgreduce vg00 /dev/hda1  #Удаление физического тома из виртуальной группы
$ vgexport vg00  #Подготовка виртуальной группы для переноса на иную машину
$ vgimport vg00 /dev/hda1 /dev/hda2  #Импорт виртуальной группы (с другой машины)
$ lvcreate -L1500 -nlv00 vg00  #Cоздание логического тома (LV) с именем nlv00 и размером 1500 Мб
$ lvremove /dev/vg00/home  #Удаление логического тома
$ lvextend -L120M /dev/vg00/home  #Увеличение размера логического тома до указаной величины
$ lvextend -L+100M /dev/vg00/home #Увеличение размера логического тома на указаную величину
$ lvreduce -L120M /dev/vg00/home  #Уменьшение размера логического тома до указаной величины
$ lvreduce -L-100M /dev/vg00/home  #Уменьшение размера логического тома на указаную величину
$ e2fsadm  -L+100M /dev/vg00/home  #Изменение размер логического тома с файловой системой ext2/ext3

3.16 Добавление в программу поддержки i18n


4 Устройства

4.1 Типы

b – блочные;
c – символьные;
- – обычный файл;
d – каталог;
l – символьная ссылка;
p – именованный канал;
s – сокет;


4.2 Файлы устройств (в каталоге /dev)

null – Нулевое устройство, данные в котором исчезают;
full – Имитация полного устройства, при записи и генерация нулей, при чтении (для отладки программ);
port – Порты IO;
zero – Неисчерпаемый источник нулей;
random – Источник случайных чисел (медленный; более случайный);
urandom – Источник случайных чисел (быстрый; менее случайный);
psaux – Порт мыши PS/2;
scd[x] – SCSI устройства (x=0..n);
sg[x] – Обобщенные устройства SCSI аппаратуры (x=0..n);
hd[x][y] – Стандартное IDE устройство, где x отдельное устройство, y – раздел устройства (x=a..z; y=1..n);
fd[*] – Флоппи устройство;
loop[x] – Петлевые устройства (x=0..n);
mem – Физическая память;
kmem – Виртуальная память ядра;
tty – Управляющий терминал выполняемого процесса;
tty[y][x] – Терминальные устройства (y=S – COM порты);
vcs[x] – Получение снимка экрана виртуальной консоли <x> (x=0..n);
vcsa[x] – Получение снимка экрана виртуальной консоли <x> с заголовком и байтами атрибутов (x=0..n);
eth[x] – Интерфейс сети Ethernet (различные сетевые карты) (x=0..n);
sl[x] – Интерфейсы для связи по протоколу SLIP (x=0..n);
lp[x] – Параллельные порты (x=0..n);
ram[x] – Виртуальный диск, в памяти (x=0..n);
ramdisk – -//-
sndstat – Состояние звукового драйвера;
audio[x] – Устройство звукового вывода, совместимое с форматом Sun (x=0..n);
dsp[x] – Устройство квантования звука (x=0..n);
mixer[x] – Для управления микшерными аппаратными средствами на звуковой плате (x=0..n);
music – Интерфейс высокого уровня для последовательного воспроизведения звука;
midi[x] – Устройство непосредственного доступа к Миди-порту (x=0..n).


5 Горячие клавиши

5.1 BASH

Ctrl+H(?) – Erase “<-»
Ctrl+C – Прервать текущий процесс (сигнал SIGINT)
Ctrl+\ – Прервать текущий процесс с дампом памяти(core damp)
Ctrl+D – Eof (выход из консольного пользовательского процесса)
Ctrl+S – Остановить процесс
Ctrl+Q – Запустить процесс
Ctrl+Z – Перевести процесс в фоновый режим
Ctrl+J – Сброс параметров терминала
Crtl+W – Удалить последнее слово
Ctrl+M – Аналог клавиши “Enter”
Ctrl+R – Переводит в режим поиска команды по истории. Повторное нажатие перебирает сходные по маске строки
Ctrl+L – Очистка экрана
TAB – Автозавершение команд
ScrLock – Приостановка выполнения(печати) текущей команды
Ctrl+Alt+Del – Закрыть систему и перегрузится
Up; Down – Просмотр и редактирование истории команд
Alt+Left – Переключение по терминалам влево(консоль)
Alt+Right – Переключение по терминалам вправо(консоль)
Sh+PgUp – Прокрутка текста вверх
Sh+PgDown – Прокрутка текста вниз
Ctrl+B – На символ назад
Ctrl+F – На символ вперёд
Alt+B – На слово вперёд
Alt+F – На слово назад
Ctrl+A – Переводит курсор в начало строки
Ctrl+E – Переводит курсор в конец строки
Ctrl+D – Удаление символа в позиции курсора
Ctrl+H – Удаление символа перед позицией курсора
Alt+D – Удаление символов до ближайшего справа пробела
Ctrl+W – Удаление символов до ближайшего слева пробела
Ctrl+U – Очистить строку ввода слева от курсора
Ctrl+K – Очистить строку ввода справа от курсора
Ctrl+T – Смена положения соседних символов
Ctrl+_ – Откат редактирования
Ctrl+X,Ctrl+U – -//-
MidlMouse – Вставляет текст, выделенный в данный момент в другом месте

5.2 X

Ctrl+Alt+F[n] – Переключение между псевдотерминалами
Ctrl+Alt+<+> – Сменить разрешение на следующее (прописаных в XF86Config)
Ctrl+Alt+<-> – Сменить разрешение на предыдущее (прописаных в XF86Config)
Ctrl+Alt+ESC – Режим удаления указанного окна
Ctrl+Alt+BkSpc – Закрыть текущий X сервер
MidlMouse – Вставляет текст, выделенный в данный момент в другом месте

5.3 KDE

Alt+Tab – Переход между окнами в прямом направлении
Alt+Sh+Tab – Переход между окнами в обратном направлении
Ctrl+Tab – Переход между рабочими столами в прямом направлении
Ctrl+Sh+Tab – Переход между рабочими столами в обратном направлении
Ctrl+Esc – Показать таблицу активных процессов (ksysguard)
Alt+F1 – Вызвать K-меню
Alt+F12 – Эмулировать мышь стрелками клавиатуры
Alt+LeftMouse – Перенести окно схватив его за любую видимую его часть
Alt+PrScreen – Сделать снимок текущего окна в буфер обмена
Ctrl+Alt+l – Запереть рабочий стол
Ctrl+Alt+d – Спрятать/показать рабочий стол

5.4 SysRQ ядра (Alt+SysRq+Key)

r – Отключает режим непосредственной передачи символов с клавиатуры и устанавливает её в режим XLATE
k – Уничтожает все процессы на текущей виртуальной консоли
b – Немедленно перезапускает систему
o – Отключить питание системы через АРМ
s – Синхронизировать все файловые системы
u – Демонтирует и перемонтирует все смонтированные файловые системы в режиме только для чтения
p – Вывести текущее значение регистров и флагов на консоль
t – Вывести список текущих задач и информацию о них на консоль
m – Вывести текущее состояние памяти на консоль
0–9 – Устанавливает уровень выдачи сообщений на консоль для фильтрации сообщений ядра
e/i – Посылает сигналы term или kill всем процессам, кроме init
l – Посылает SIGKILL всем процессам, включая init

6 Форматы основных конфигурационных файлов

6.1 xorg.conf

Identifier – идентификатор устройства ввода
Driver – драйвер устройства ввода:
kbd – клавиатура;
mouse – манипулятор мышь.
Option – опция:
XkbLayout – список раскладок клавиатуры («us,ru,ua»)
XkbOptions – опции клавиатуры, обычно указывается комбинация клавиш для переключения раскладки клавиатуры ("grp:ctrl_shift_toggle", “grp_led:scroll”)
XkbVariant – вариант раскладки клавиатуры (default, winkeys)
XkbModel – модель клавиатуры (105,104 ...)
Device – файл устройства мыши (/dev/input/mice)
Protocol – Протокол интерфейса мыши (PS/2, IMPS/2, ...)
ZAxisMapping – Расключение дополнительных клавиш мыши (колесо – «4 5")
  • Секция “Monitor” – описание монитора
  • Identifier – идентификатор монитора
    DisplaySize – размер дисплея (пропорции – 320 240)
    Option – опция:
    dpms – включение режима энергосбережения
  • Секция “Device” – описание устроства видеовывода
  • Identifier – идентификатор видеокарты
    Driver – драйвер видеокарты (nv, nvidia, radeon, fglrx, ...)
    Identifier – идентификатор экрана
    Device – идентификатор устройства видеовывода, видеокарта (описана в секции “Device”)
    Monitor – идентификатор монитора (описан в секции “Monitor”)
    DefaultDepth – глубина цвета устанавливаемая по умолчанию
    SubSection “Display” – подсекция экрана (описывает допустимые разрешения с глубинами цвета):
    Depth – глубина цвета (8,15,16,24,32)
    Modes – допустимые разрешения экрана («1152x864» “1024x768” “1024x736” “1024x600” “960x720” “848x480” “832x624” “800x600”)
  • Секция «ServerLayout" – обобщающая конфигурационная секция (корень)
  • Identifier – идентификатор сервера
    Screen – идентификатор экрана используемого сервером (описан в секции “Screen”)
    InputDevice – идентификатор устройства ввода (описано в секциях «InputDevice")
    Load – загрузка указанного модуля:
    dbe – ???
    glx – Модуль языка GLX (для OpenGL)
    dri – Direct rendering infrastructure (для OpenGL)

    6.2 Управляющие последовательности консоли

    \007 – издать звук;
    \033[10;#] – установить частоту звукового сигнала в герцах;
    \033[11;#] – установить продолжительность звукового сигнала в миллисекундах.
    \033[0m – все атрибуты по умолчанию;
    \033[1m – жирный шрифт (интенсивный цвет);
    \033[2m – полу яркий цвет (тёмно-серый, независимо от цвета);
    \033[4m – выделение (ярко-белый, независимо от цвета);
    \033[5m – мигающий;
    \033[7m – реверсия (знаки приобретают цвет фона, а фон – цвет знаков);
    \033[22m – установить нормальную интенсивность;
    \033[24m – отменить подчеркивание;
    \033[25m – отменить мигание;
    \033[27m – отменить реверсию;
    \033[30 – чёрный цвет знаков;
    \033[31 – красный цвет знаков;
    \033[32 – зелёный цвет знаков;
    \033[33 – коричневый цвет знаков;
    \033[34 – синий цвет знаков;
    \033[35 – фиолетовый цвет знаков;
    \033[36 – цвет морской волны знаков;
    \033[37 – серый цвет знаков;
    \033[40 – чёрный цвет фона;
    \033[41 – красный цвет фона;
    \033[42 – зелёный цвет фона;
    \033[43 – коричневый цвет фона;
    \033[44 – синий цвет фона;
    \033[45 – фиолетовый цвет фона;
    \033[46 – цвет морской волны фона;
    \033[47 – серый цвет фона.
    \033[#A – передвинуть курсор вверх на # строк;
    \033[#B – передвинуть курсор вниз на # строк;
    \033[#С – передвинуть курсор вправо на # столбцов;
    \033[#D – передвинуть курсор влево на # столбцов;
    \033[#E – передвинуть курсор вниз на # строк и поставить в начало строки;
    \033[#F – передвинуть курсор вверх на # строк и поставить в начало строки;
    \033[#G – переместить курсор в указанный столбец текущей строки;
    \033[#;#H – задает абсолютные координаты курсора (строка, столбец).
    \033]Pnrrggbb – изменяет палитру. n – номер цвета; rr, gg и bb – значения RGB-компонент в шестнадцатеричной форме;
    \033]R – восстанавливает палитру, принятую по умолчанию.
    \033[12;#] – сделать текущей консоль с указанным номером.
    \033]0;text\007 – присваивает имя окну и иконке;
    \033]1;text\007 – присваивает имя иконке;
    \033]2;text\007 – присваивает имя окну.
    \033c – сброс терминала;
    \033(K – переключение на загружаемый шрифт.

    6.3 BASH

    6.3.1 Общее

    ![numb] – запуск строки <numb> из истории (history);
    !str – запуск ближайшей строки соответствующей маске str из истории (history);
    \ – продолжение текущей строки на другой строке или экранирование специального символа после данного символа (\$);
    ; – разделитель команд;
    () – выполнения сценария в скобках в другой подоболочке;
    (()) – включение выражений с «С» синтаксисом;
    [] – включение условных операций с синтаксисом команды test;
    “pwd” – определение строки с разрешением подстановки значений переменных;
    'pwd' – определение строки с запрещением подстановки значений переменных;
    `pwd` – результат выполнения команды pwd;
    x=pwd – определение переменной окружения x и присвоение ей строки pwd;
    x='34' – определение переменной окружения x и присвоение ей строки '34';
    x[2]=pwd – определение массива x и присвоение его элементу 2 строки pwd;
    x=(zero one two three) – определение массива x и заполнение четырех его элементов;
    x=([0]=zero [3]=three [2]=two [1]=one) – определение массива x и заполнение четырех его элементов по выбору;
    $(( 100/3 )), $[100/3] – выполнение простых целочисленных операций.

    a=4; echo $[a=$a+4] $[a+=4] $[a=a+4]
    a=4; echo $[a=$a+4, a+=4, a=a+4]
    $[2!=2] $[2!=3]
    $[a=2<3] $a
    id++, id-- – постфиксное увеличение/уменьшение значения переменной на 1
    ++id, --id – префиксное увеличение/уменьшение значения переменной на 1
    -, + – унарные минус и плюс
    !, ~ – логическое и побитовое отрицание
    ** – возведение в степень
    *, /, % – умножение, деление, получение остатка от деления
    +, - – сложение, вычитание
    < <, > > – побитовый сдвиг влево и вправо
    <=, >=, <, > – сравнение
    ==, != – равенство и неравенство
    & – побитовое И
    ^ – побитовое исключающее ИЛИ
    | – побитовое ИЛИ
    && – логическое И
    || – логическое ИЛИ
    выр1?выр2:выр3 – условное вычисление
    =, *=, /=, %=, +=, ?=+ – присваивание
    выр1,выр2 – запятая
    () – выделение более приоритетного участка выражения

    $x, ${x} – подстановка значения переменной/параметра x
    ${!x} – косвенная подстановка значения переменной/параметра указанного в x;
    ${#x} – косвенная подстановка значения переменной/параметра указанного в x,

    если параметр – * или @, подставляется количество позиционных параметров,
    если параметр – массив с индексом * или @, подставляется количество элементов массива;

    ${x:?»Error, no bar»} – генерировать ошибку если x не определена или равна нулю;
    ${x?»Error, no bar»} – -//-;
    ${x:="foose"} – присвоить значение по умолчанию если x не определена или равна нулю;
    ${x="foose"} – -//-;
    ${x:offset:lenght}, ${x:offset} – возвращает часть от x начиная с offset длиной lenght;

    В качестве длины и смещения могут выступать:

    ${x:+"foose"} – если переменная определена то вместо неё используется “foose”;
    ${x+"foose"} – -//-;
    ${x:-"foose"} – если переменная определена то она используется иначе используется “foose”;
    ${x-"foose"} – -//-;
    ${пар#шабл} – ??
    ${пар##шабл} – ??
    ${пар%шабл} – ??
    ${пар% %шабл} – ??
    ${пар/шабл/стр} – заменяется первая, самая длинная подстрока значения параметра, на указанную строку;
    ${пар/ /шабл/стр} – заменяются все самые длинные подстроки значения параметра, на указанную строку;
    ${array[@]} – обращение сразу ко всему массиву;
    $(x) – выполнение команды x и возврат результата (подобно `x`);
    $0 – имя команды в командной строке;
    $n, ${n} – аргумент n командной строки (n = 1...);
    $* – раскрывает единственное слово, содержащее список всех позиционных парам;
    $# – количество аргументов;
    $@ – ссылка на все аргументы команды отделенные пробелами;
    $$, $PPID – PID текущего процесса (скрипта);
    $? – код возврата последней команды;
    $! – PID последнего фонового процесса;
    $'\n' – вставка управляющего символа в строку;
    Comm && – выполняет действие после выражения если команда <Comm> неудачна;
    Comm || – выполняет действие после вырожения если команда <Comm> удачна;
    MYVAR#*fo – отсекает от начала переменной MYVAR самую короткую часть удовлетворяющую маске *fo;
    MYVAR##*fo – отсекает от начала переменной MYVAR самую длинную часть удовлетворяющую маске *fo;
    MYVAR%fo* – отсекает от конца переменной MYVAR самую короткую часть удовлетворяющую маске fo*;
    MYVAR% %fo* – отсекает от конца переменной MYVAR самую длинную часть удовлетворяющую маске fo*;
    MYVAR:2:5 – возвращает часть строки MYVAR которая начинается с 2 символа и заканчивается 5;

    6.3.2 Основные переменные окружения оболочки

    PWD – текущий рабочий каталог;
    UID – цифровой идентификатор текущего пользователя;
    umask – содержит маску прав доступа по которой создаются новые файлы;
    BASH – полный путь вызова BASH;
    BASH_VERSION – версия данного экземпляра BASH;
    EDITOR – содержит имя редактора используемого для редактирования некоторых конфигов;
    PAGER – содержит имя программы для отображения информационных страниц (типа more);
    SHLVL – количество запущенных BASH;
    REPLY – содержит последнюю строку ввода;
    RANDOM – содержит случайное число в диапазоне 0..32767;
    SECONDS – время в секундах от запуска BASH;
    HISTCMD – номер текущей команды в истории;
    IFS – внутренний разделитель полей;
    PATH – пути поиска команд;
    HOME – домашний каталог текущего пользователя;
    MAIL – имя файла в который поступает электронная почта;
    LOGNAME – имя пользователя использованное для входа в систему;
    SHELL – имя интерпретатора команд;
    LD_LIBRARY_PATH – описания пользовательских путей к динамическим библиотекам;
    DISPLAY – описывает адрес дисплея для X-приложений;
    LANG – переменная локали;
    TERM – содержит имя терминала;
    INPUTRC – содержит имя файла параметров для библиотеки readline, определяющей параметры ввода с клавиатуры;
    PS1,PS2 – описывает вид приглашения в командной строке;
    MALLOC_CHECK_ – указывает что делать с ошибками в функциях malloc, free:

    = 0 – молча игнорировать все ошибки;
    = 1 – сообщить об ошибке и продолжить работу;
    = 2 – прервать (без сообщения);
    = 3 – прервать и сообщить об ошибке.

    MALLOC_TRACE – определяет путь для комманды mtrace и функции в программе mtrace;

    6.3.3 Основные операторы

    . – выполнить все команды в файле после точки;
    & – выполнить команду до него в фоновом режиме;
    if [ Condition ] – условный оператор ( if ( Condition ) – tch);
    then – выполнение условия;
    else – невыполнение условия;
    elif [ Condition ] – совмещенная команда else if;
    fi – окончание условного оператора;
    for x in 1 2 3 4 – оператор цикла, в x перебираются значения за in ( foreach x (1 2 3 4) – tch );
    while [ Condition ] – выполняет цикл пока верно условие Condition ( while ( Condition ) -tch );
    until [ Condition ] – выполняет цикл до равенства условия Condition;
    (repeat x expression – tch ) – выполняет повторение выражения <expression> x раз;
    select x in list; – запрашивает выбор из списка <list> и присваивает выбранное значение переменной <x>;
    do – начало цикла определенного for, while, until;
    done – конец цикла определенного for, while, until;
    break – завершение цикла;
    continue – продолжение цикла сначала;
    case x in – rоманда выбора. Имеет структуру:

    case "${x##*.}" in 
    gz) gzunpack ${SROOT}/${x} ;;
    bz2) bz2unpack ${SROOT}/${x} ;;
    esac

    function func() { } – определяет функцию с именем func;
    export x – создает переменную окружения x и экспортирование её в систему;
    local x – создает локальную переменную окружения которая не перекрывает глобальной (часто используется для функций);
    declare – встроенная команда bash для декларирования переменных и изменения их атрибутов;
    set x = str – инициализация переменной;

    +V,+X – выключение отладочного режима;

    unset x – отмена инициализации переменной;
    read x y – ввод строки из двух слов;
    exit – выход из сценария;
    eval – означивание строки (т.е. замена записей типа "$5" на их значения);
    shift – сдвиг параметров командной строки на единицу (для доступа к параметрам с номером > 9 );
    trap – установка обработчиков сигналов в скрипте;
    alias – создание псевдонимов или альтернативных имен команд;
    unalias – удаление псевдонима;

    6.3.4 Операторы сравнения файлов

    -e – существует;
    -d – каталог;
    -f – обычный файл;
    -c – специальный файл;
    -L – символическая ссылка;
    -r – для чтения;
    -w – для записи;
    -x – исполняемый;
    -z – файл пуст;
    -s,(-z) – имя файла не нулевой длины;
    (-o) – пользователь является владельцем файла;
    fname1 -nt fname2 – fname1 новее fname2;
    fname1 -ot fname2 – fname1 старше fname2;

    6.3.5 Операторы сравнения строк

    -z – строка пуста;
    -n – строка непуста;
    =, (==) – строки равны;
    != – строки неравна;

    6.3.6 Арифметические операторы сравнения

    -eq – равно;
    -ne – неравно;
    -lt,(< ) – меньше;
    -le,(<=) – меньше или равно;
    -gt,(>) – больше;
    -ge,(>=) – больше или равно;

    6.3.7 Логические операторы

    ! – отрицание логического вырожения;
    -a,(&&) – логическое «И»;
    -o,(||) – логическое «ИЛИ»

    6.3.8 Перенаправления вывода

    | – перенаправление вывода в канал
    < file – file записать в STDIN
    > file – STDOUT записать в file
    ╔╔<div class="center"> file – STDOUT добавить в file<br />
    </div>╔╔ str – определяет слово <str> как признак окончания ввода
    2> file – STDERR записать в file
    1>&2 – STDOUT записать в STDERR
    2>&1 – STDERR записать в STDOUT
    &> file – STDOUT и STDERR записать в file

    6.3.9 Специальные символы

    \n – новая строка
    \b – возврат на один символ
    \c – печать строки без символа новой строки
    \f – переход к новой странице/экрану
    \r – возврат каретки
    \t – табуляция
    \v – табуляция по вертикали
    \\ – обратная косая черта
    0nnn – восьмеричное число
    xNN – шестнадцатеричное число

    6.3.10 Маски (подстановка, может быть отключена опцией -f или set)

    * – любая строка
    ? – любой одиночный символ
    [...] – соответствует любому символу в скобках [A-Z]; "! и ^" – исключение символа.

    6.3.11 Представление численных значений

    045 – восьмеричное число (начинается с 0)
    0x45, 0X32 – шестнадцатеричное число
    [основание#]n – число с основанием <n> (по умолчанию основание 10)

    Примеры:
    $[2#101] $[10#101] $[16#101]
    $[16#FF] $[16#ff] $[0xFF]
    $[64**2] $[64#@@]
    $[64#z] $[64#Z]

    6.3.12 Полезные обороты

    wc -l  # получить количество строк
    wc -w  # получить количество слов
    sed -n 4p  # получить указанную строку
    ls -1 /etc  # получить содержимое каталога по строкам
    head -c8 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p'  # cгенерировать случайный пароль

    6.4 GDB

    run – запуск отлаживаемой программы
    break func – установка точку прерывания на функцию func
    list func – просмотр содержимого функции или исходного файла
    next – следующая команда;
    quit – выход;

    6.5 MAKE

    Формат правила:

    <цель_1> <цель_2> ... <цель_n>: <зависим_1> <зависим_2> ... <зависим_n>
    <команда_1>
    <команда_2>
    ...
    <команда_n>

    Цель это некий желаемый результат может представлять собой:


    Зависимость, также может быть файлом или командой которая должна выполнится ранее.

    6.5.1 Шаблонные правила

    .cpp.o: – файлы с расширением *.o зависят от соответствующий файлов с расширением *.cpp
    %.o: %.cpp – проверяет все файлы с расширением .cpp и заменяет цель на расширение .o
    .PHONY: x – объявление специальной цели (не файл)
    all: – выполняет эту цель при отсутствие параметров команды make

    6.5.2 Ключевые слова и команды

    =,:= – оператор объявления переменных (x = test)
    += – добавление текста к существующей переменной
    #define – определение переменных. (#define x «test 1")
    include – включение внешнего файлы и его обработка, с прерыванием при отсутствие файла
    -include – включение внешнего файлы и его обработка, без прерывания при отсутствие файла
    $(function par1, par2 ...) – вызов функции и получение значения переменной
    addprefix – добавляет префикс в первом параметре к каждому элементу в списке второго параметра
    addsuffix – добавляет суффикс в первом параметре к каждому элементу в списке второго параметра
    wildcard – расширяет переданные шаблоны до списка файлов соответствующих этим шаблонам
    notdir – выделение имени файла из полного пути
    patsubst – изменяет указанным образом слова подходящие под шаблон

    object_files = $(patsubst %.cpp, %.o, man.cpp) -> man.o

    override – позволяет изменять переменные заданные через пораметры make
    for x in 1 2 3 4; – оператор цикла, в x перебираются значения за in
    do – начало цикла определенного for
    done – конец цикла определенного for

    6.5.3 Специальные переменные

    VPATH – описывает список каталогов для поиска зависимостей
    CC – указывает компилятор языка С
    СXX – указывает компилятор языка С++
    СFLAGS – указывает флаги компилятора С
    CXXFLAGS – указывает флаги компилятора С++
    LDLIBS – описывает опции линкера

    6.5.4 Автоматические переменные

    `command` – вставить в сценарий выхлоп команды <command>
    $@ – имя цели обрабатываемого правила
    $< – имя первой зависимости обрабатываемого файла
    $^ – список зависимостей обрабатываемого правила

    6.6 Makefile.am

    bin_PROGRAMS – определяет имя программы
    <prog>_SOURCES – определение исходников от которых зависит программа
    CXX – имя C++ компилятора
    CXXFLAGS – определение опций С++ компилятора
    AUTOMAKE_OPTIONS – определение опций automake:

    6.7 configure.in

    AC_INIT(file) – инициализация скрипта и проверка на наличие исходников
    AC_CONFIG_AUX_DIR(dir) – использовать скрипты типа install-sh из каталога <dir>
    AM_INIT_AUTOMAKE(prog, 1.0) – определение имени и версии проекта
    AC_PROG_CC – проверка наличия С компилятора
    AC_PROG_CXX – проверка наличия С++ компилятора
    AC_OUTPUT([file ... [, extra-cmds [, init-cmds] ] ]) – создаёт выходные файлы <file> типа Makefile (копирует входной file.in и подставляет значения переменных).

    extra-cmds – дополнительные команды с их инициализацией в init-cmds

    AC_OUTPUT_COMMANDS(extra-cmds [, init-cmds] ]) – дополнительные команды с их инициализацией в init-cmds. Выполняются в конце config.status

    6.8 Сonfigure

    --bindir – директория для исполняемых файлов
    --build – платформа сборки
    --cache-file – файл для помещения результатов проверок
    --datadir – директория для хранения файлов данных
    --enable-...(-disable-...) – включить(выключить) возможность/функцию
    --exec-prefix – похож на опцию – -prefix
    --help – список всех опций командной строки
    --host – имя платформы домашнего(host) компьютера
    --includedir – директория заголовочного файла
    --infodir – директория информации типа <info>
    --libdir – директория библиотек
    --mandir – директория c руководствами
    --no-create – не создавать конечные файлы
    --norecursion – не вызывать вложенные configure
    --prefix – директория корневого каталога
    --sbindir – директория для системных исполняемых файлов
    --silent – подавляет вывод результатов исполнения на экран
    --srcdir – каталог исходных текстов
    --sysconfdir – каталог данных только для чтения(/etc)
    --target – имя целевой платформы
    --tmpdir – каталог для хранения временных файлов Configure

    6.8 RPM *.spec

    %description – Полное описание пакета.
    %prep – Подготовка архива. Задаются команды для извлечения исходного текста программы и его распаковки.
    %setup – Макрокоманда извлечения файлов из архива (-n – каталог приёмник).
    %build – Макрокоманда компиляции (обычно задаётся make).
    %files – Задаёт список файлов, входящие в состав пакета.
    %config – Задаёт список файлов, которые будут помещены в каталог /etc.
    %doc – Задаёт список файлов, которые будут помещены в каталог документации.
    %install – Этап установки программного обеспечения. Задаются команды установки фыйлов.
    %pre – Действия которые будут выполнены до инсталяции пакета.
    %post – Действия которые будут выполнены после инсталяции пакета.
    %preun – Действия которые будут выполнены перед удалением пакета.
    %postun – Действия которые будут выполнены после удалением пакета.
    %clean – Удаления дерева BUILD.
    %changelog – Содержит log изменения spec файла.
    $RPM_BUILD_ROOT – корень исходников данного пакета.
    $RPM_OPT_FLAGS – дополнительные опции переданые команде rpmbuild.

    6.9 /etc/syslog.conf

    [!NameProg] <facility>.[op]<level>[;<facility>.<level>] <Name file>
    где:

    <NameProg> – имя программы посылающей сообщения;
    <facility> – категория журналированния:

    <level> – Уровень детализации:

    <op> – Метод журналированнияе. При отсутствие выводит сообщения указанного и более высокого уровня:

    <Name file> – Имя файла для лога. Может также быть указателем на другую машину (@server.org) для журналирования на ней. А также передавать сообщения через канал другому приложению (|/usr/bin/messcheck.pl).

    6.10 /etc/modules.conf

    alias [class] [module] – определяет модуль/драйвер, как определенный класс устройств
    alias [class] off – обозначает, что этому классу не соответствует ни одно устройство
    options [класс или модуль] [знач1] [знач2] – определяет дополнительные параметры модуля
    pre-install [класс или модуль] command – выполняет программу <command> перед инсталляцией модуля
    post-install [класс или модуль] command – выполняет программу <command> после инсталляции модуля
    pre-remove [класс или модуль] command – выполняет программу <command> перед удалением модуля
    post-remove [класс или модуль] command – выполняет программу <command> после удаления модуля

    6.11 Поточный редактор “sed” и команды в редакторе VI 


    Пример выделение частоты процессора:

    cat -n «/proc/cpuinfo | sed -n «/cpu MHz[^ ]*[ ]*\([^ ]*\).*/s\1/p»//

    Запросы:
    a – вставить текст после текущей строки
    c – заменить указанные строки
    d – исключить текущую строку
    e – открыть для редактирования указанный файл с проверкой старого
    E – начать редактирование файла без проверки
    f – напечатать имя редактируемого файла
    g – применить указанный запрос ко всем строкам
    i – вставить текст перед текущей строкой
    j – объединить строки
    k – поменять строки
    l – напечатать строку
    m – переставить группу строк в другое место
    n – напечатать строки вместе с их номерами
    p – напечатать строки
    q – выйти из редактора с проверкой сохранения текущего файла
    Q – выйти без проверки
    r – считать файл в буфер
    s – заменить текст в пределах строки
    t – скопировать группу строк
    u – аннулировать результат последней замены s
    v – применить указанный запрос ко всем строкам не содержащим заданный образец
    w – записать группу строк в файл
    W – дозаписать группу строк в конец файла
    = – напечатать номер строки
    ! – выполнить системную команду
    + – шаг вперёд на одну строку
    - – шаг назад на одну строку


    Выражения:
    . – любая литера, кроме новой строки
    [s] – любая литера из цепочки s
    [^s] – любая литера не входящая в цепочку s
    e* – все соседние вхождения;
    \(e\) – выделить подвыражение, на подвыражение можно ссылаться используя \n
    \n – n-е выделенное подвыражение
    ^ – начало строки
    $ – конец строки
    – заэкранировать специальный символ


    Адреса:
    . – текущая строка
    n – n-я строка
    $ – последняя строка редактируемого текста
    'x – строка, помеченная меткой x
    /e/ – ближайшая следующая строка, содержащая e
    ?e? – ближайшая предыдущая строка, содержащая e

    6.12 Поточный редактор AWK

    Формат записи: awk '{print $2,$1}'


    print $1,$3 – печатает указанные поля, разделённые пробелом, для всех строк
    printf "%s/*\n", $2 – печать форматированных данных

    6.13 Параметры ядра

    root=/dev/hda – расположение корневого раздела
    ro, rw – режим монтирования – только для чтения или полный
    hdd=ide-scsi – на каком ide диске эмулировать scsi
    init=/bin/bash – программа инициализации, выполняется сразу после загрузки ядра
    syngle – загрузится в одиночном режиме
    1,3,5 – режим загрузки INIT:

    1 – однопользовательский;
    3 – многопользовательский без GUI;
    5 – многопользовательский c GUI.

    6.13 CVS

    Репозиторий CVS хранит полные копии всех файлов и каталогов, находящихся под контролем версий.

    $ export CVSROOT=/home/Roman/progects/CVS_R   # Указание на каталог, где находится репозиторий CVS.
    $ export CVSROOT=:pserver:user@serv.comp.org:/CVS_R  # Указание на удалённый репозиторий.
    $ cvs -d /usr/local/cvsroot init  # Создание пустого репозитория.
    $ cvs -d:pserver:user@serv.comp.org:/usr/local/cvsroot init  # Создание пустого репозитория на удалённом сервере.
    $ cvs import MyProg MyName start  # Импортирует проект MyProg от имени создателя MyName в CVS.
    $ cvs -z 3 co tc  # Експорт проекта tc для работы над ним. В результате чего будет создан каталог `tc', в который будут помещены все файлы.
    $ cvs co -r revise Prog  # Загрузить дерева проекта с ревизией(тегом) <revise>.
    $ cvs up  # Синхронизация исходных текстов со всеми изменениями (выполнять перед фиксацией своих изменений).
    $ cvs up -r revise  # Привести содержимое дерева в соответствии с ревизией <revise>.
    $ cvs ci backend.c -r revise  # Зафиксировать изменения в backend.c и запускает редактор (ENV: CVSEDITOR), чтобы ввести журнальную запись об изменениях.
    $ cvs ci -r revise  # Зафиксировать изменения в дереве под ревизией <revise> для всего дерева.
    $ cvs tag revise  # Привести вершину дерева к <revise>.
    $ cvs release -d tc  # Выполняет удаления вашей копии проекта и при этом проверяет, что все ваши изменения были зафиксированы.
    $ cvs log file.cc  # Вывести лог изменений в файле file.cc.
    $ cvs diff driver.c  # Вывести описание изменений внесенных в файл `driver.c'.
    $ cvs add readmi.cc  # Внесение файла readmi.cc под контроль CVS.
    $ cvs rm readmi.cc  # Сообщение CVS о том что файл readmi.cc должен быть удалён из репозитория при следуйщей команде <ci>.


    7 Права доступа

    Read ( r ) – [Владелец | группа | другие ] могут:

    файл – читать файл
    каталог – читать содержимое каталога

    Write ( w ) – [Владелец | группа | другие ] могут:

    файл – модифицировать файл
    каталог – создавать/удалять файлы и каталоги в данном каталоге

    Execute( x ) – [Владелец | группа | другие ] могут:

    файл – запускать файл
    каталог – делать каталог текущим и запускать в нем запускаемые файлы

    Setuid ( s ):

    файл – файл запускается от имени владельца файла
    каталог – не имеет смысла

    Setgid ( s ):

    файл – файл запускается от имени группы файла
    каталог – файлы и каталоги создаваемые в этом каталоге будут иметь туже группу-владельца что и сам этот каталог. Кроме того, у создаваемых директорий тоже будет установлен этот бит.

    Sticky ( t ):

    файл – указывает системе на необходимость сохранять образ этого файла на swap-устройстве, что позволяет быстро его запускать
    каталог – файлы в этом каталоге могут стирать только их владельцы