Linux — кратко обо всём. часть 1

Оглавление документа
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
3.17 Свободная запись на перезаписываемые оптические носители (пакетный режим)
3.18 Запуск терминальной задачи на сервере и продолжение её работы в фоне
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.14 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 — конфигурация системы страниц помощи, команда 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 — смена директории;
cksum — подсчёт контрольной суммы и количества байтов файла;
clear — очистка экрана терминала;
cmp — побайтовое сравнение файлов;
comm — построчное сравнение файлов;
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 — размер искомого файла;
-atime — доступ был в течении указанных последних дней;
-mtime — файл модифицировался в течении указанных последних дней;
-ctime — атрибуты файла модифицировались в течении указанных последних дней;
-perm — режим доступа к файлу;
gpg — утилита шифрования и подписывания электронной подписью;
grep — поиск указаной строки в указанных файлах или потоках;

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

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

Примеры:

gzip < /dev/cdrom > cdrom.iso.gz — чтение и упаковка образа CD;
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), временного отключения (Ctrl+A,D) и восстановления сессии (screen -r);
sed — потоковый редактор;
sleep — усыпляет данный процесс на указанное количество секунд;
slocate — поиск файла по ранее созданной базе (slocate bash);
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 — автоматизация разовых запусков программ в указанное время;

echo 'wget url' | at 01:00 — запустить загрузку в 01:00
basename — выделение имени файла/директории из полного пути;
badblock — поиск плохих блоков на носителе (HDD, FDD);
chfn — изменение имени пользователя и информация о нем;
сhgrp — смена группы пользователей: файла, каталога ...;
chkconfig — конфигурация уровней загрузки различных сервисов;
chmod — смена режима доступа к файлу;
chown — смена владельца и группы владельцев файла, каталога ...;
chroot — смена корня текущей сессии;
chvt — переключение на указанный терминал;
chsh — смена типа командного интерпретатора;
consolechars — загрузка консольных экранных шрифтов;
convmv — перекодировка имён файлов/директорий с одной кодировки в другую (может понадобиться для перекодирования файлов на ФС: ext2, ext3, reisrfs);
cron — планирование периодического запуска программ;
crontab — формирование пользовательской конфигурации cron;
df — информация о файловых системах данной машины;
dirname — выделение имени директории из полного пути;
du — получение информации о размере содержимого файла или директории;
dumpkeys — dump карты клавиатуры;
export — встроенная команда BASH для определения переменной окружения и экспортирования её для общей доступности;

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

q — перезапуск init для активизации изменений в /etc/inittab;
loadkeys — установка раскладки клавиатуры;
locale — получение информацию о настройках локали (/etc/sysconfig/i18n);
localedef — создание новой локали на основе базовой;
login — вход в систему;
logname — имя текущего пользователя;
logrotate — утилита для автоматической упаковки, чистки и другой обработки логов;
lsof — печатать списка открытых в системе файлов, сокетов, каналов, разделяемых библиотек и др.;

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

-k <word> — поиск страницы по ключевому слову;
mesg — управление доступом на запись к текущему терминалу (для посылаемых сообщений);
mpage — размещение нескольких страниц текста в одной и печать их на PostScript принтере;
ntpdate — утилита синхронизации времени через Internet(www.ntp.org);
passwd — смена пароля пользователя;
popd — извлечь директорию из стека директорий;
pushd — помещение текущей директории в стек директорий;
pwd — получение полного имени текущей директории;
rlogin — вход на удаленную систему;
scp — безопасное копирование файлов посредством ssh:

scp file.txt user1@remote_server:/ — копирование файла на удалённую систему;
service — утилита для операций над сервисами в /etc/rc.d/init.d;

service smb start — запуск сервиса Samba;
set — выполняет операции над переменными окружения (встроенная команда BASH), часто просто устанавливает переменную окружения;
setfont — установка консольного шрифта;
setsid — запуск программы в новой сессии;
sg, newgrp — смена основной группы пользователя, или выполнение команды от имени указанной группы;
slogin — вход в систему по шифрованому протоколу ssh (тоже что и ssh);
ssh — вход в систему по шифрованому протоколу ssh или же удалённый запуск команд:

ssh -X user@remserver.org — шифрованный вход на удалённую систему с транспортировкой X-протокола;
ssh user@remserver.org 'wget ftp://myfile' — запуск загрузки на удалённом сервере.
sshfs — Fuse модуль для монтирования файловой системы через ssh.
stty — получение и установка параметров терминала, переопределение специальных клавиш;
su — смена пользователя текущей сессии или выполнение команды от имени указанного пользователя (по умолчанию root);

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



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> — создание FS типа <fs>;

mkfs.vfat /dev/fd0 — создание файловой системы FAT12 на флоппи диске.
mkisofs — создание ISO образа из каталога;

mkisofs -r -o my.iso /usr/games
mount — монтирование файловых систем:

Важные опции:
quiet — позволяет копировать/переносить файлы без вопросов о невозможности смены прав доступа (для ФС типа FAT);
iocharset — кодировка в которой производится ввод/вывод (для ФС FAT, NTFS и UDF);
codepage — кодовая страница в которой хранится монтируемая файловая система (для ФС FAT);
showexec — отображать корректно запускаемые файлы (для ФС FAT);
rw — монтировать в режиме чтение-запись;
ro — монтировать в режиме только для чтения.

Примеры:

mount -t smbfs – o username=tridge, password=foobat //c/data/test — монтирование сетевого диска //c на каталог /data/test;
mount -t ext2 /dev/fd0 /mnt — монтирование флоппи диска с FS ext2 на каталог /mnt;
mount [-t auto] /dev/fd0 /mnt — монтирование флоппи диска на каталог /mnt с автоматическим определением системы;
mount host:/mnt/export /mnt/local — монтирование директории /mnt/export удаленной машины host на локальную директорию /mnt/local;
mount -t iso9660 -o ro,loop=/dev/loop0 /my.iso /mnt/cdrom2 — создание loop устройства из образа CDROM;
mount -t cdfs /dev/cdrom /mnt/cdrom — позволяет увидеть/отредактировать CD диск как есть (с сессиями);
mount -bind /home /var/local — подключить каталог /home к каталогу /var/local.
parted — очень мощный манипулятор дисковыми разделами;
quota — квоты для текущего пользователя;
quotaon — включение квот;
quotaoff — выключение квот;
quotacheck — проверка квот файловой системы;
quotastats — состояние квот файловой системы;
tune2fs — изменение параметров смонтированной ext2/ext3;
resize2fs — изменение размера файловой системы ext2/ext3 на разделе (в связке с LVM);
resize_reiserfs — изменение размера файловой reiserfs системы на разделе (в связке с LVM);
swapoff — отключить свопинг;
swapon — включить свопинг;
sync — экстренный сброс буферов на диск;
umount — отмонтировать файловую систему;
xcdroast — X-оболочка для записи CD/DVD (над cdrecord и mkisofs).

2.4 X (графическая система)
appres — информация о ресурсах X-приложений;
glxingo — информация о расширении GLX (OpenGL);
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 бита;
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;
dmesg — протокол обнаружения оборудования ядром системы, как при загрузки, так и в процессе функционирования;
dmidecode — декодер информации BIOS об оборудование системы и самом BIOS;
hwclock — установка/считывание аппаратных часов (CMOS);
kbd_mode — установка режима работы клавиатуры (RAW, MEDIUMRAW, XLATE, UNICODE);
lpr — печать с файла или с потока на указанный принтер;

lpr -P lp1 my.txt — печать файл my.txt на принтер lp1
lpq, lpstat — состояние очереди печати;
lprm — удаление задания печати из очереди;
lshal — перечень оборудования обнаруженного и зарегистрированого в абстрактном слое оборудования HAL;
lshw — мощная утилита сбора информации об оборудовании системы;
lspci — выводит список устройств на PCI – шине;
lsusb — перечень устройств на USB-шине;
pbm* — преобразование, из графического формата *.pdm в формат принтера [*];
pciscan — сканирование PCI-шины и отображение модулей(драйверов) необходимый для работы с устройствами на PCI-шине;
setleds — установка светодиодов на клавиатуре;
setserial — установка/конфигурация COM портов;
setterm — установка параметров терминала;
showkey — утилита для отображения сканкодов клавиш и кодов мапированных системой;
statserial — утилита для контроля за состоянием последовательного(COM) порта;
tunelp — установка параметров параллельного порта;
usbview — утилита для просмотра и конфигурации USB-устройств.

2.6 Мультимедиа
alsamixer — ALSA-микшер;
aumix — консольный AUDIO-микшер;
cdparanoia — позволяет «грабить» Audio-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 на основе IP-цепочек (ядра 2.2.*);
iptables — утилита конфигурации firewall на основе IP-таблиц (ядра 2.4.*);
lynx — консольный WEB-браузер. Может использоваться для выполнения различных действий над WEB-страницами в скриптах.

lynx -dump -width=100 file://mypage.html > mypage.txt — преобразование html-страницы в текст.
minicom, xminicom — установка соединения с другой системой через модем(COM);
netstat — состояние сети (отображает используемые сокеты и их состояния);

-a — вывод всех сокетов;
-e — показать какой пользователь работает с сокетом в настоящий момент.
nmap,nmapfe — сканер сети и его GUI, можно получить перечень открытых портов и т.д;
nmblookup — утилита работы с NetBIOS (для 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, mailx — создать сообщение;
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 — позволяет создавать диалоги в консоли, из скрипта (на основе ncurses);
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 Смена имени системы
отредактировать /etc/sysconfig/network
отредактировать /etc/hosts
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 #Создание файловой системы на loop устройстве
$ losetup -d /dev/loop0 #Отключение loop устройства
$ mount -o loop,encryption=aes ./sequre_disk /mnt/tmp/ #Обычное монтирование шифрованной ФС

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


3.10 Подготовка к проверке выделения памяти с помощью mtrace
Добавить в программу: #include <mcheck.h> и mtrace()
Добавить переменную окружения: $ export MALLOC_TRACE=mem.log
Запустить программу, в результате чего буден создан файл mem.log
Обработать полученный файл: $ mtrace my_prog $MALLOC_TRACE


3.11 Подключение дисковых квот
Добавить опции usrquota, grpquota для выбранных разделов в файле /etc/fstab;
Создать файлы quota.user и quota.group в корне выбранных разделов;
Выполнить проверку квот <$ quotacheck -avugm>;
Включить квоты <$ quotaon -avug>;
Редактирование квот для конкретного пользователя <$ edquota -u user>;
Проверка состояния квот <$ repquota -a>.


3.12 Печать страниц документации
man man | col -b | lpr
info man | col -b | lpr


3.13 Настройка ssh

client$ ssh-keygen #Генерация ключей на локальной машине в директорию " /.ssh/"
client$ scp ./identity.pub rserver: ~/.ssh/ #Передача публичного ключа на удалённый сервер (любым способом)
rserver$ cat ~/.ssh/identity.pub >> ~/.ssh/authorized_keys #Авторизация своего открытого ключа на сервере
# либо 'client$ ssh-copy-id rserver' вместо предыдущих двух строчек
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 #Создание виртуальной группы на основе двух физических томов
$ vgremove vg00 #Удаление виртуальной группы
$ vgextend vg00 /dev/hdc1 #Добавление физического тома к виртуальной группе
$ vgreduce vg00 /dev/hda1 #Удаление физического тома из виртуальной группы
$ vgexport vg00 #Подготовка виртуальной группы для переноса на иную машину
$ vgimport vg00 /dev/hda1 /dev/hda2 #Импорт виртуальной группы (с другой машины)
$ lvcreate -L1500 -nlv00 vg00 #Создание логического тома (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
Добавить к проекту:
#include <libintl.h>;
#define _(String) gettext(String);
setlocale (LC_CTYPE, );
setlocale (LC_MESSAGES, );
bindtextdomain (DOMAIN,"/usr/share/locale");
textdomain («DOMAIN»);

Все строки подлежащие переводу определить как _(«my str»);
Создать исходя из проекта POT файл командой:
xgettext -o po/prog.pot -d prog -C -a *.cc *.h

Скопировать po/prog.pot файл в файл с именем типа uk.po. Отредактировать шапочку и переводы сообщений;
Для обновления PO файла после модификации исходников, выполнить:
msgmerge -U old.po new.pot

Сформировать бинарный файл:
msgfmt -vo prog.mo uk.po #обратно msgunfmt

Скопировать полученый prog.mo в каталог соответствующего языка:
cp ./prog.mo /usr/share/locale/uk/LC_MESSAGES

3.17 Свободная запись на перезаписываемые оптические носители (пакетный режим)

# Включение пакетного режима. Для оптических носителей всех типов.
$ cdrwtool -d /dev/cdrom -q # Подготовка CD-RW носителя
$ dvd+rw-format /dev/dvd # Подготовка носителей: DVD-RW, DVD+RW, DVD-RAM
$ pktsetup /dev/pkt_dev /dev/cdrom # Включение режима пакетной записи на устройство /dev/pkt_dev
$ mkudffs /dev/pkt_dev # Создание файловой системы UDF. Только для DVD+RW и DVD-RAM
$ mount /dev/pkt_dev /mnt/pkt_cd -t udf -o rw,noatim # Монтирование пакетного устройства на /mnt/pkt_cd
#Прямая запись (без пакетного режима) на носители DVD+RW и DVD-RAM
$ dvd+rw-format /dev/dvd # Подготовка носителей (один раз).
$ mkudffs /dev/dvd # Создание файловой системы UDF (один раз).
$ mount /dev/dvd /mnt/cdrom # Обычное монтирование устройства. Т.е совершенно прозрачно и стандартно!

3.18 Запуск терминальной задачи на сервере и продолжение её работы в фоне

$ screen # Запуск терминального экранного менеджера
$ wget ftp://workserv.org/mydownloadfile.iso # Запуск задачи
Ctrl+A D # Отключение экрана от терминала (выполнение в фоне)
$ screen -r # Подключение к фоновому терминалу.