\documentclass[10pt,a4paper]{article} %\documentstyle[10pt,twocolumn]{book} \usepackage[koi8-u]{inputenc} \usepackage[russian]{babel} \usepackage{fancyhdr} \usepackage[includehead,includefoot]{geometry} \geometry{a4paper,top=7mm,bottom=7mm,footskip=1cm,left=15mm,right=7mm,twoside} % preamble \pagestyle{fancy} %\pagestyle{headings} \title{Linux --- кратко обо всём.} \date{\today} \author{Роман Савоченко\\rom\_as@diyaorg.dp.ua} \catcode`_=13 \begin{document} {\setlength{\parskip}{0pt}\maketitle\tableofcontents} %\footnotesize \newpage \section{Конфигурационные, информационные файлы/каталоги} \subsection{Общесистемные} \begin{tabbing} /dev/ \hspace{6em} \=- Содержит файлы устройств:\\ \pushtabs \quad \= /pts/ \qquad \=- Содержит файлы устройств открытых псевдотерминалов;\\ \poptabs /etc/ \>- Содержит большинство конфигурационных файлов:\\ \pushtabs \quad \= anacrontab \qquad \=- Описание задач для anacron;\\ \> auto.misc, auto.master - файлы конфигурации автомонтировщика;\\ \> crontab \>- Описание задач для cron;\\ \> csh.login \>- Профиль системы (Выполняется после регистрации) для TCSH;\\ \> default/useradd \>- Значения по умолчанию при создание пользователя;\\ \> fstab, mtab \>- Содержат информацию для автоматического монтирования FS;\\ \> group \>- Описание групп пользователей;\\ \> gtk/ \>- Содержит файлы с указателями шрифтов для различных локалей;\\ \> HOSTNAME \>- Содержит имя машины;\\ \> inittab \>- Файл последовательности загрузки init;\\ \> issue \>- Содержит сообщение, выдаваемое перед локальной регистрацией;\\ \> issue.net \>- Содержит сообщение, выдаваемое перед сетевой регистрацией;\\ \> login.defs \>- Файл описывающий поведение login и su;\\ \> logrotate.conf \>- Конфиг. файл демона автоматической обработки логов (ротация, упаковка, удаление);\\ \> logrotate.d \>- Директория конфиг. файлов демона автоматической обработки логов;\\ \> ld.so.conf \>- Файл конфигурации динамического линковщика;\\ \> man.conf \>- Конфигурация руководств;\\ \> motd \>- Содержит сообщение, выдаваемое после удачной регистрации;\\ \> nologin \>- Создание этого файла запрещает пользователям входить в систему с выдачей\\ \> \> сообщения в файле;\\ \> pam.d/ \>- Содержит файлы конфигурации PAM;\\ \> pam.d/su \>- Определяет поведение su;\\ \> pam.d/sudo\>- Определяет поведение sudo;\\ \> profile \>- Профиль системы (Выполняется после регистрации) для BASH;\\ \> rc.d/init.d/ \>- Директория со скриптами, для управления демонами;\\ \> rc.d/rc.local \>- Для локальной инициализации при загрузке init;\\ \> suauth \>- Содержит описание ограничений команды su;\\ \> sysconfig/ \>- Файлы конфигураций различных системных устройств;\\ \pushtabs \hspace{2em} \= /keyboard \hspace{3em} \=- Описывает текущую раскладку клавиатуры;\\ \> /network \>- Настройки сети;\\ \> /network-scripts/ \>- Скрипты и файлы конфигурации сети;\\ \> /desktop \>- Скрипт установки переменной окружения DISPLAYMANAGER;\\ \> /i18n \>- Файл описания текущей локали (команда locale печатает из него);\\ \> /harddisks \>- Параметры всех жёстких дисков в системе;\\ \> /harddiskhd[x] \>- Параметры конкретно взятого диска ;\\ \poptabs \> security/ \>- Файлы описывающие секретность:\\ \pushtabs \hspace{2em} \= /console.apps/ \hspace{1em} \=- Содержит файлы указывающие на функции доступные непривилегированному \\ \> \> пользователю из консоли;\\ \> /console.perms \>- Правила изменения прав доступа к устройствам, при аутентификации;\\ \> /limits.conf \>- Конфигурационный Файл лимитов пользователей;\\ \poptabs \> sysctl.conf \>- Содержит команды для sysctl которые активизируются при загрузке;\\ \> syslog.conf \>- Файл определяющий поведения демона журналированния(syslogd).\\ \> password \>- Информация о пользователях;\\ \> shadow \>- Закодированные пароли;\\ \> skel/ \>- Содержит набор файлов для домашнего каталога нового пользователя;\\ \>sudoers \>- Содержит информацию о том какие пользователи и какие программы могут запускать с \\ \> \> привилегиями root используя sudo;\\ \poptabs /lib/security \>- DLL системы PAM;\\ /proc/ \>- Содержит файлы управления и получения информации о ядре;\\ \pushtabs \hspace{1em} \= /sys \hspace{3em} \=- Параметры системы, которые можно поменять на ходу. (Опция ядра CONFIG_SYSCTL)\\ \pushtabs \hspace{2em} \= /kernel \hspace{2em} \=- Параметры ядра, которые можно поменять на ходу.\\ \pushtabs \hspace{3em} \= cap-bound \hspace{1em} \=- Управление дополнительными правами (root) (0 - root права анулируються)\\ \> hostname \>- Имя хоста (системы);\\ \> osrelease \>- Версия ядра системы;\\ \> ostype \>- Тип системы (Linux, FreeBSD ...);\\ \> panic \>- Признак паники ядра;\\ \> version \>- Дата сборки ядра;\\ \poptabs \> /fs \>- Параметры файловой системы, которые можно поменять на ходу. (Опция ядра CONFIG_SYSCTL)\\ \pushtabs \hspace{3em} \= file-max \hspace{1em} \=- Указывает максимально допустимое количество открываемых файлов; \\ \poptabs \poptabs \> /devices \>- Список устройств в системе;\\ \> /modules \>- Список активных модулей;\\ \> /self \>- Ссылка на информацию о своём процессе;\\ \> /cpuinfo \>- Информация о процессорах системы;\\ \poptabs /usr/lib/locale/ \>- Описание локалей разных стран;\\ /usr/share/locale/ \>- Файлы специфичные для конкретной страны;\\ /usr/share/man/ \>- Локализованные страницы руководств;\\ /var/spool/cron/ \>- Содержит задачи для cron;\\ /var/spool/at/ \>- Содержит задачи для at;\\ ~/.bashrc \>- Профиль конкретного пользователя для BASH (запускается единожды при авторизации);\\ ~/.cshrc \>- Профиль конкретного пользователя для TCSH;\\ ~/.bash_profile \>- Профиль конкретного пользователя для BASH (запускается при каждом запуске bash);\\ \end{tabbing} \subsection{Основных программ} \begin{tabbing} /etc/lilo.conf \hspace{4em} \=- Конфигурация LILO;\\ /etc/aspldr.conf \> \=- Конфигурация ASPLoader;\\ \end{tabbing} \subsection{Сеть} \begin{tabbing} /etc/hosts \hspace{4em} \=- Список узлов и соответствующие им IP-адреса;\\ /etc/host.allow \>- Список узлов которым вход разрешен;\\ /etc/host.deny \>- Список узлов которым вход запрещен;\\ /etc/resolv.conf \>- Содержит список DNS-серверов, для резолвера;\\ /etc/export \>- Описывает ресурсы доступные другим HOSTам по NFS;\\ /etc/samba/smb.conf - Файл конфигурации SAMBA;\\ /etc/nsswitch.conf \>- Последовательность поиска сетевого имени в различных источниках;\\ /etc/services \>- Содержит соответствия между именами портов и именами служб;\\ /etc/host.conf \>- Указывает где находится информация о именах, для libc ver 5;\\ /etc/nsswitch.conf \>- Указывает где находится информация о именах, для libc ver 6;\\ /etc/xinitd.conf \>- Конфиг суперсервера Internet, который управляет всеми сокетами;\\ /etc/ppp/options \>- Опции демона pppd при соединении;\\ /etc/ppp/ip-up \>- Скрипт выполняемый при соединении демоном pppd;\\ /etc/ppp/ip-down \>- Скрипт выполняемый при разъединении демоном pppd;\\ /etc/ethers \>- Файл соответствия аппаратных MAC адресов сетевым IP адресам;\\ \end{tabbing} \subsection{Железо} \begin{tabbing} /etc/printcap \=- Файл конфигурации принтеров;\\ /etc/inputrc \>- Ресурсы ввода с клавиатуры;\\ ~/.inputrc \>- Ресурсы ввода с клавиатуры конкретного пользователя;\\ /lib/kbd/ \>- Различные файлы для консольной клавиатуры:\\ \pushtabs \hspace{2em} \= keymaps/i386/querti/*.kmap.gz - Куча раскладок клавиатуры;\\ \poptabs \end{tabbing} \subsection{X (графическая система)} \begin{tabbing} /etc/X11/XF86Config \=- Файл конфигурации X;\\ /usr/X11R6/bin/X \>- Ссылка на текущий X сервер;\\ /usr/X11R6/lib/X11/app-defaults/ - Содержит файлы с ресурсами X-приложений;\\ /etc/X11/fs/config \>- Перечень каталогов со шрифтами для X;\\ ~/.Xauthority \>- Файл авторизации для запуска X-приложений удаленно. Файлы на\\ \> удаленных машинах должны соответствовать;\\ ~/.xinitrc \>- Сценарий загрузки X сервера для конкретного пользователя;\\ /etc/X11/xkb/rules/xfree86.lst - Список возможных параметров для конфигурированния X\\ \end{tabbing} \section{Утилиты} \begin{tabbing} login \hspace{3em} \=- Вход в систему;\\ slogin \>- Вход в систему по ssh;\\ ssh \>- Вход в систему по шифрованому протоколу ssh;\\ users \>- Список пользователей в системе;\\ adduser, useradd,mkuser - Добавление пользователя в системе;\\ userdel \>- Удаление пользователя из системы;\\ groupadd \>- Добавление группы пользователей;\\ groupdel \>- Удаление группы пользователей;\\ usermod \>- Изменение учетной записи пользователя;\\ id \>- Информация о пользователе;\\ newgrp \>- Изменение основной группы пользователя;\\ passwd \>- Смена пароля пользователя или группы и управление пользователем;\\ chown \>- Смена владельца и группу файла, каталога ...\\ сhgrp \>- Смена группы файла, каталога ...\\ chfn \>- Изменение имени пользователя и информация о нем;\\ chmod \>- Смена режима доступа к файлу;\\ chroot \>- Смена места корневого каталога в файловой системе;\\ umask \>- Определяет маску по которой будут создаваться новые файлы;\\ chsh \>- Смена типа командного интерпретатора;\\ rlogin \>- Вход в удаленную систему;\\ setsid \>- Запуск программ в новой сессии;\\ whoami \>- Сообщает имя текущего пользователя;\\ finger,who,w,uptime - Информация об использовании системы, и пользователях;\\ rwho \>- Информация, список о пользователях на всех удаленных системах нужен демон rwhod;\\ su \>- Смена пользователя из текущей сессии. По умолчанию на root (-l с перечитыванием конфигов);\\ sg \>- Смена основной группы пользователя, или выполнение команды от имени указанной группы;\\ sudo \>- Запуск команд другого пользователя если описан в /etc/sudoers;\\ write \>- Написать сообщение указанному пользователю;\\ mesg \>- Управление доступом к текущему терминалу для посылаемых сообщений;\\ wall \>- Передача широковещательного сообщения (всем пользователям);\\ talk \>- Двухсторонний разговор с другим пользователем;\\ ytalk \>- Расширенная версия talk, с возможностью работы в X;\\ man,xman \>- Показать страницу руководства;\\ \hspace{2em} -k - Поиск страницы по ключевому слову;\\ apropos \>- Поиск man-страницы по ключевому слову;\\ watch \>- Периодически запускает указанную программу;\\ open \>- Запускает указанное приложение на другой виртуальной консоли;\\ info \>- Показать документацию из страниц связанной помощи;\\ iconv \>- Преобразование файла в другую кодировку;\\ mpage \>- Чтение обычных и Post Script документов и печать их на Post Script принтер;\\ at \>- Разовый запуск команды в указанное время;\\ batch \>- Тоже что и at, но при при уровне загрузки системы ниже указанного;\\ cron \>- Переодический запуск команды с указанным промежутком;\\ crontab \>- Подключение, редактирование пользовательского cron-файла;\\ anacron \>- Демон контроля за запусками сценариев cron при не круглосуточной работе системы;\\ init \>- Утилита начальной загрузки;\\ \hspace{2em} init q // Перезапуск init для активизации изменений в /etc/inittab\\ service \>- Утилита для операций над сервисами в /etc/rc.d/init.d\\ \hspace{2em} service smb start // Запуск Samba\\ export EDITOR=xemacs - Определение переменной окружения и ее экспортирование для общей доступности.\\ set \>- Временно изменяет/печатает системные переменные;\\ unset EDITOR - Удаление переменной окружения EDITOR;\\ basename \>- Выделяет из полного пути с именем файлу/каталога имя файла/каталога.\\ pwd \>- Вывод имени текущего каталога с путем.\\ du \>- Получение информации о размере файла/каталога.\\ dirname \>- Выделяет из полного пути с именем файла/каталога путь.\\ shutdown \>- Выключение системы;\\ ulimit \>- Управление ограничениями пользователей.\\ setfont \>- установка консольного шрифта.\\ loadkeys \>- установка раскладки клавиатуры.\\ locale \>- Выводит информацию о настройке локали (/etc/sysconfig/i18n).\\ localedef \>- Создание новой локали из базовой, для выбранной кодировки;\\ consolechars \>- Загрузка Unicode шрифтов.\\ tput \>- Управление терминалом.\\ tset, reset \>- Инициализация терминала на curses;\\ chvt \>- Переключение на указанный номер терминала;\\ stty \>- Получение и установка параметров терминала, переопределение специальных клавиш.\\ \hspace{2em} erase '\verb+^H+' // Переопределение клавиши для операции erase;\\ \hspace{2em} sane // Исправить терминал; \end{tabbing} \subsection{Ядро} \begin{tabbing} installkernel \=- Скрипт инсталляции ядра используется при компиляции ядра (make install);\\ lsmod \>- Выводит листинг сконфигурированных и работающих модулей;\\ insmod \>- Добавить модуль в ядро;\\ rmmod \>- удалить модуль с ядра;\\ modinfo \>- Выдает информацию о модуле и его параметрах;\\ modprobe \>- Утилита для работы с модулями. Без параметров, загружает модуль;\\ \hspace{2em} -с - перечисляет все сконфигурированные сокращения, опции и команды для модулей;\\ \hspace{2em} -l - перечисляет все возможные модули;\\ \hspace{2em} -r - выгружает модуль;\\ depmod \>- Проверка зависимостей модулей, используется для добавления модулей;\\ \hspace{2em} -a - Проверка модулей по всей структуре /lib/modules и внесение соответствующих корректив;\\ /dev/MAKEDEV - Создает устройство (можно создать и mknod "/dev/loop0 c 7 0");\\ procinfo \>- Получить информацию о процессах и системе из /proc;\\ sysctl \>- Конфигурированние параметров (/proc/sys/) ядра во время его работы;\\ rdev \>- Установка/контроль корневого каталога используемого ядром по умолчанию;\\ ramsize \>- Установка/контроль размера диска в памяти используемого ядром по умолчанию;\\ vidmode \>- Видеорежим используемый ядром по умолчанию;\\ mkinitrd \>- Позволяет создавать образ RAM-диска, для подключения к ядру;\\ \end{tabbing} \subsection{Почта} \begin{tabbing} mail \hspace{3em} \=- Создать сообщение;\\ procmail \>- Утилита автоматизации обработки почтовых сообщений;\\ mutt,pine \>- Консольный почтовый клиент;\\ mailq \>- Показать очередь неотправленных сообщений;\\ sendmail \>- Отправлять письма\\ \hspace{1em} -q[time] \>- Обработать сообщения в очереди;\\ \hspace{1em} -v \>- Режим печати сопровожд. сообщений;\\ newaliases \>- Добавляет новые алиасы из /etc/aliases в /etс/aliases.db\\ \end{tabbing} \subsection{Файловая система} \begin{tabbing} mkisofs \hspace{3em} \=- Создание ISO образа из каталога:\\ \hspace{1em} mkisofs -r -o my.iso /usr/games\\ cdrecord \>- Запись CD дисков\\ \hspace{1em} cdrecord -v speed=2 dev=0,6,0 -data my.img\\ xcdroast \>- X-оболочка над cdrecord и mkisofs.\\ mount \>- монтирование файловых систем;\\ \pushtabs \hspace{1.5em} \= mount -t smbfs - o username=tridge, password=foobat //c /data/test\\ \> \quad - Монтирование сетевого диска //c на каталог /data/test\\ \> mount -t ext2 /dev/fd0 /mnt \\ \> \quad - Монтирование флоппи диска с FS ext2 на каталог /mnt\\ \> mount [-t auto] /dev/fd0 /mnt \\ \> \quad - Монтирование флоппи диска на каталог /mnt с автоматическим определением системы;\\ \> mount host:/mnt/export /mnt/local \\ \> \quad - Монтирование директории /mnt/export удаленной машины host на локальную директорию /mnt/local;\\ \> mount -t iso9660 -o ro,loop=/dev/loop0 /my.iso /mnt/cdrom2\\ \> \quad - Создание loop из образа CDROM\\ \> mount -t cdfs /dev/cdrom /mnt/cdrom \\ \> \quad - Позволяет увидеть/отредактировать CD диск как есть( с сессиями)\\ \> mount - -bind /home /var/local \\ \> \quad - Подключить каталог /home к каталогу /var/local\\ \poptabs \hspace{1em} Важные опции:\\ \pushtabs \hspace{2em} \= quiet \hspace{1.5em} \=- Позволяет копировать/переносить файлы без вопросов о невозможности смены user/group;\\ \> iocharset \>- Кодировка в которой производится ввод/вывод;\\ \> codepage \>- Кодовая страница в которой хранится монтируемая файловая система;\\ \> showexec \>- Работает для DOS/WIN FS, и отображает корректно запускаемые файлы;\\ \> rw \>- Монтировать для чтения-записи;\\ \> ro \>- Монтировать только для чтения;\\ \poptabs umount \>- Отмонтировать файловую систему;\\ usermount \>- Графический монтировщик сменных устройств для обычного пользователя;\\ mkfs \>- Создает FS указаного типа как на физический раздел так и в файл;\\ make2fs \>- Создание FS типа 2fs;\\ \hspace{1em} make2fs /dev/fd0 1440 - Создает файловую систему размером 1440 Кб на флоппи диске\\ fsck(e2fsck) \>- Проверка файловой системы;\\ tune2fs \>- Изменение параметров смонтированной ext2/ext3;\\ resize2fs \>- Изменение размера файловой системы ext2/ext3 на разделе (в связке с LVM);\\ resize_reiserfs - Изменение размера файловой reiserfs системы на разделе (в связке с LVM);\\ fdformat \>- Форматирование дискеты;\\ hdparm \>- Установка параметров дисковой подсистемы;\\ quotastats \>- Состояние квот файловой системы;\\ quotacheck \>- Проверка квот;\\ edquota \>- Редактирование квот;\\ quota \>- Квоты для текущего пользователя;\\ quotaon \>- Включение квот;\\ quotaoff \>- Выключение квот;\\ loadlin.exe \>- Загрузка ядра linux из DOS;\\ fdisk \>- Работа с разделами диска;\\ cfdisk \>- Конфигурация разделов диска;\\ parted \>- Очень мощный манипулятор дисковыми разделами;\\ sync \>- Экстренный сброс буферов на диск;\\ losetup \>- Создание петлевого устройства(loop) с криптованием;\\ \quad losetup -k 192 -e aes /dev/loop4 /tmp/file.iso //Создание loop4 в file.iso с криптованием.\\ swapoff \>- Отключить свопинг;\\ swapon \>- Включить свопинг;\\ \end{tabbing} \subsection{General} \begin{tabbing} ls \hspace{4em} \=- Листинг директории;\\ cd \>- Смена директории ('~' - домашняя; '-' - предыдущая);\\ cp \>- Копирование файлов и директорий;\\ rm \>- Удаление файлов и директорий;\\ tree \>- Дерево части файловой системы;\\ ln \>- Создание и обслуживание ссылок;\\ symlinks \>- Утилита обслуживания символьных ссылок в системе;\\ mknod \>- Создание специальных файлов;\\ mkfifo \>- Создание именованного канала;\\ touch \>- Обновляет отметку времени файла или создает пустой файл при его \\ \quad отсутствии (Можно также " > file.tst ");\\ find \>- Поиск:\\ \quad -type \>- тип выводимых файлов;\\ \quad -name \>- имя искомого файла;\\ \quad -size \>- размер искомого файла;\\ locate \>- Поиск файла из уже созданной базы;\\ updatedb \>- Создание и обновление базы данных для команды locate;\\ which,whereis - Показывает полный путь к искомой программе;\\ grep \>- Поиск указаной строки в указанных файлах;\\ \quad grep 'str' mifile.txt\\ sed \>- Потоковый редактор;\\ awk \>- Манипулирование файлами данных, выборка и обработка текста;\\ wc \>- Подсчет количества строк, символов слов в файле;\\ test \>- Выполнение логических операций сравнений;\\ tee \>- Читает из стандартного входа - записует в стандартный выход и в файл;\\ let,bc,expr \>- Вычисляет арифметические, логические и другие действия над числовыми значениями \\ \quad в переменных окружения;\\ nohup \>- Запуск команды отвязанной от терминала;\\ cal \>- Календарь, за любой год;\\ history \>- Печатает нумерованный список истории команд. Что позволяет вызвать строку по номеру - \verb+!#+ \\ date \>- Отображает текущую дату и время;\\ rdate \>- Показывает текущую дату и время на удаленной машине, а также\\ \quad устанавливает на локальной машине время в соответствии с временем на удаленной;\\ sort \>- Сортировка данных в файле/потоке;\\ strings \>- Вывод символьных сообщений из не текстового файла;\\ clear \>- Очистка экрана;\\ dd \>- Преобразование, создание и другие манипуляции с файлами:\\ \quad dd if=/dev/zero of=/swap bs=1024 count=8208 // Создание пустого файла swap размером 8Мб\\ \quad dd if=/dev/fd0 of=boot.img bs=18k // Создание образа из дискеты\\ hexdump \>- Печать входного потока в указанном формате (DEC,HEX,OCT,ASCII);\\ head \>- Печатает заголовки указанных файлов;\\ tail \>- Печатает указанное количество строк от конца файла;\\ cut \>- Вырезает из входного файла столбцы, строки;\\ echo \>- Выполняет эхо-повтор строки на терминале;\\ tr \>- Трансляция символов (Преобразование/замена одних на другие);\\ fg \>- Перевести остановленную (Ctrl+Z) job на передний план;\\ bg \>- Перевести остановленную (Ctrl+Z) job на задний план;\\ screen \>- Открыть команду в новом окне того же терминала с возможностью переключения - Ctrl+A;\\ pidof \>- Показывает PID работающей программы;\\ ps \>- Показывает запущенные в системе процессы;\\ pstree \>- Показывает дерево запущенных процессов;\\ ipcs \>- Показывает ресурсы используемые IPC;\\ ipcrm \>- Удаляет ресурсы используемые IPC;\\ sleep \>- Усыпляет данный процесс на указанное количество секунд;\\ exit \>- Завершить процесс с указанным кодом возврата;\\ chkconfig \>- Конфигурация уровней загрузки различных сервисов;\\ printtool \>- Настройка принтера;\\ epr \>- Печать экрана;\\ file \>- определение типа любого файла;\\ stat \>- Вывод информации о состоянии файла;\\ kbd_mode \>- Установка режима работы клавиатуры(RAW, MEDIUMRAW, XLATE, UNICODE);\\ nice,snice \>- Запуск команды с иным приоритетом (-20-20);\\ renice \>- Изменение приоритета активного процесса;\\ rpm \>- Работа с бинарными пакетами\\ \pushtabs \quad \= -i packet \quad \=- установить пакет;\\ \> -e packet \>- Удалить пакет;\\ \> -U packet \>- Обновить пакет;\\ \> -V packet \>- Проверка корректности установки/текущего состояния указанного пакета;\\ \> -a \>- выполнение указанной операции для всех пакетов;\\ \> -q \>- Запрос данных о пакете:\\ \> \quad f \>- Поиск пакета которому принадлежит указанный файл;\\ \> \quad i \>- вывод информации о пакете;\\ \> \quad l \>- список файлов, принадлежащих пакету;\\ \> \quad s \>- состояние файлов пакета;\\ \> \quad d \>- список файлов документации пакета;\\ \> \quad c \>- список конфигурационных файлов пакета;\\ \> \quad p \>- выполнить операцию над ещё неустановленным пакетом;\\ \poptabs rpmbuild \>- Работа с исходными пакетами\\ \pushtabs \quad \= -b файл.spec \quad \=- Частичная или полная обработка *.spec файла;\\ \> \quad a \>- Создание бинарного и исходного rpm пакета;\\ \> \quad b \>- Создание бинарного rpm пакета;\\ \> \quad c \>- Выполнение этапов: \%pre и \%build с распаковкой и компиляцией;\\ \> \quad i \>- Выполнение этапов: \%pre, \%build и \%install;\\ \> \quad l \>- Проверка списка файлов в \%files;\\ \> \quad p \>- Выполняется этап \%pre (распаковка архива);\\ \>- -rebuild my.src.rpm - Скомпилировать и создать бинарный rpm из исходного rpm;\\ \>- -recompile my.src.rpm - Скомпилировать из исходного rpm;\\ \>- -test \>- Проверка файла спецификаций;\\ \>- -clean \>- Удаление дерева каталогов BUILD;\\ \poptabs md5sum \>- Подсчёт md5 суммы;\\ purp \>- Управление rpm пакетами из консоли (ncurses);\\ rpm2tgz \>- Преобразует rpm пакет в *.tgz;\\ yum \>- Утилита автоматического обновления(с учетом зависимостей) установленных пакетов;\\ cpio \>- Копирование файлов в архив из архива (может использоваться для архивов неизвестных фарматов);\\ tar \>- Создание архивов и пакетов;\\ \pushtabs \quad \= -v \hspace{3em} \= - Отображать список обработанных файлов;\\ \> -с \> - Создавать новый архив;\\ \> -x \> - Распаковать архив;\\ \> -f \>- Упаковывать в указанный файл ;\\ \> -z \>- Выполнять сжатие полученого пакета программой gzip;\\ \> -t \>- Просмотр содержимого архива;\\ \poptabs gzip \>- Зажатие и разжатие файлов:\\ \pushtabs \quad \= - \=- Выполнить компрессию с уровнем =(1..9);\\ \> -d \>- Декомпрессия;\\ \poptabs gzexe \>- архивирование исполняемых модулей, с распаковкой при запуске;\\ split/csplit \>- Разбиение/сбор больших файлов на куски;\\ kill, skill \>- Посылка сигнала процессу;\\ minicom, xminicom - установка соединения с другой системой по COM;\\ logrotate \>- Утилита для автоматической упаковки и чистки логов;\\ kbdconfig \>- Конфигурация клавиатуры;\\ timeconfig \>- Конфигурированние времени;\\ ntpdate \>- Утилита синхронизации времени через Internet(www.ntp.org);\\ \end{tabbing} \subsection{Редакторы/просмотрщики} \begin{tabbing} cat, zcat \qquad \=- Просто выдает указанные файлы на STDOUT;\\ more, less, zless - Просмотр файла постранично;\\ vi, vim \>- Очень мощный текстовый редактор с оригинальным управлением;\\ vimdiff \>- Просмотр сравниваемых файлов в vim;\\ \end{tabbing} \subsection{X (графическая система)} \begin{tabbing} appres \hspace{3em} \=- информация о ресурсах X приложений;\\ glxingo \>- Информация о расширенни GLX;\\ gnome-session \>- Запуск файлового менеджера GNOME;\\ import \>- Создаёт скриншот X экрана или конкретного окна;\\ lsfonts, xlsfonts - вывод списка шрифтов;\\ mkfontdir \>- Создает раскодировщик шрифтов в текущем каталоге из указаного каталога;\\ \quad mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings\\ startkde \>- Запуск файлового менеджера KDE;\\ startx \>- Скрипт запуска X;\\ \quad startx -- :2 // Запуск еще одного экземпляра X, под номером 2.\\ \quad startx -- -depth 24 // Запуск X - сервера с глубиной цвета 24 бита;\\ superprobe \>- Тест видео MS;\\ switchdesk \>- Переключение оконного менеджера, запускается при следующем запуске startx;\\ ttmkfdir \>- Создание директории TTF шрифтов.\\ \quad ttmkfdir > fonts.scale - После можно скопировать в fonts.dir\\ xf86config \>- Конфигурация X;\\ xfontsel \>- Выбор X шрифтов;\\ xfs \>- Сервер шрифтов;\\ xhost \>- Добавления и удаление хостов, X приложения которого надо запускать на данной машине;\\ xinit \>- Запуск X, а затем указанное приложение (по умолчанию - xterm);\\ \quad xinit /usr/bin/icewm -- :1\\ xkill \>- Завершение оконного приложения;\\ xloadimage \>- Позволяет загружать, преобразовывать и отображать графические рисунки;\\ xlock \>- Блокирование терминала X;\\ xmag \>- увеличение части экрана;\\ Xmodmap \>- изменение раскладки клавиатуры в X;\\ xrefresh \>- Перерисовка экрана;\\ xset \>- Установка некоторых переменных X;\\ xsetroot \>- Установка вида корневого каталога;\\ xvidtune \>- Настройка параметров монитора. Может быть запущена для сетевого монитора;\\ xvinfo \>- Информация о расширении Xv;\\ xwininfo \>- Печать информации об указанном окне;\\ xwd \>- Захват изображения на экране;\\ \end{tabbing} \subsection{Железо} \begin{tabbing} hwclock \hspace{3em} \=- Установка, считывания аппаратных часов (CMOS);\\ lpr \>- Печать с файла или с потока на указанный принтер;\\ \quad lpr -P lp1 my.txt // Печать файл my.txt на принтер lp1\\ lpq, lpstat \>- состояние очереди печати;\\ lprm \>- Удаление задания печати из очереди;\\ lspci \>- Выводит листинг устройств на PCI - шине;\\ modemtool \>- Установка порта на котором установлен модем (создаёт ссылку /dev/modem);\\ mpage \>- Печать на одной странице нескольких страниц;\\ pbm* \>- Преобразование, из графического формата *.pdm в формат принтера [*];\\ powertweak, gpowertweak - Утилита управления настройками ядра (через sysctl);\\ pr \>- форматирование, текстового файла для печати;\\ setleds \>- Установить светодиоды на клавиатуре;\\ setserial \>- Установка COM портов;\\ setterm \>- Установка параметров терминала;\\ smbprint \>- Сценарий для печати на SMB-принтерах;\\ sndconfig \>- Утилита конфигурирования звуковой платы;\\ statserial \>- Показывает состояние serial-порта;\\ testprns \>- Проверка доступности указанного принтера;\\ tunelp \>- Установка параметров параллельного порта;\\ usbview \>- X-утилита просмотра и конфигурированнияя USB-устройств;\\ \end{tabbing} \subsection{Диагностика, Информация} \begin{tabbing} arch \hspace{3em} \=- Архитектура текущей системы;\\ badblock \>- Поиск плохих блоков на носителе (HDD, FDD);\\ df, kdf \>- Информация о файловых системах на данной машине;\\ dmesg \>- Показать лог о загрузке ядра;\\ dumpkeys \>- Dump карты клавиатуры;\\ fgconsole \>- Номер текущего терминала;\\ free \>- Информация о состоянии памяти;\\ fuser \>- Выдает список процессов использующих указанный файл или сокет,\\ \>а также позволяет закрывать процессы занимающие ресурс;\\ listres \>- вывод X - ресурсов;\\ lsof \>- Печатает лист открытых в системе файлов, сокетов, каналов, разделяемых библиотек;\\ \quad -p \>- Список системных ресурсов используемых процессом.\\ \quad \>- Список процессов использующих ресурс .\\ printenv, env \>- Выдает все настройки переменных окружения;\\ showkey \>- Утилита для отображения сканкодов клавиш и кодов мапированных системой;\\ showrgb \>- Наименования и значения стандартных цветов;\\ SuperProbe \>- Тест видеоконтроллера;\\ time \>- Возвращает информацию о выполненной команде: время, память .. ;\\ tload \>- Информация о загрузке системы;\\ top, gtop \>- Вывод информации о процессах с сортировкой по занимаемому времени;\\ tty \>- Имя текущего певдотерминала;\\ vmstat \>- Информация об использовании виртуальной памяти;\\ X11perf \>- просмотр производительности X сервера;\\ xdpyinfo \>- информация о дисплее;\\ xev \>- просмотр информации о событиях в окне;\\ xosview \>- Удобно выводит основную информацию о ОС;\\ xprop \>- вывод реквизитов окна;\\ uname \>- Печатает информацию о текущей OS;\\ usernet \>- График нагрузки сети (GTK);\\ \end{tabbing} \subsection{Программирование} \begin{tabbing} aclocal \hspace{3em} \=- Утилита генерации макроса aclocal.m4 из файла configure.in;\\ ar \>- Создание/редактирование архивов(статических библиотек) из объектных модулей.\\ autoconf \>- Утилита генерации скрипта configure, из файла configure.in;\\ automake \>- Утилита генерации Makefile.in, из файла Makefile.am;\\ \quad r \>- добавление новых и замена старых файлов.\\ \quad c \>- создание библиотеки при её отсутствии.\\ cpp \>- Препроцессор, обычно вызывается из gcc;\\ cproto \>- Генерирует прототипы "С" функций и преобразует объявления функций;\\ ctags \>- Генерирует тег-файл для облегчения навигации по коду (используется VIM);\\ \quad -e \>- эмуляция etags для генерации тег-файлов для emacs;\\ ctrace \>- Для прослеживания выполнение C-программы по операторам. ctrace читает исходный\\ \> текст программы из файла и добавляет в него операторы печати для вывода значений\\ \> переменных после каждого выполненного оператора. Результат выполнения команды\\ \> следует направить во временный .c-файл, который затем использовать как входной\\ \> для команды cc. Во время выполнения полученного в результате файла a.out будет\\ \> генерироваться вывод, в котором содержится много полезной информации о событиях в\\ \> вашей программе.\\ cxref \>- Анализирует группу .c-файлов и строит для каждого файла таблицу перекрестных\\ \> ссылок на автоматические, статические и глобальные имена.\\ dialog \>- Позволяет создавать диалоги в консоли из скрипта.\\ diff \>- Поиск изменений в сравниваемых текстовых файлах;\\ \quad diff -uNr каталог.orig каталог > my.patch // Создание патча\\ f2c \>- Транслирует исходный код программы на языке "Fortran" в исходный код на языке "C";\\ gcc \>- GNU компилятор языка С,С++,ASM (с вызовом линкера);\\ \pushtabs \quad \= -x lang \qquad \=- Определяет язык исходных модулей;\\ \>-c \>- Компилирует и собирает ранее или позже перечисленные исходные файлы;\\ \>-S \>- Компилирует перечисленные исходные файлы в *.s файлы;\\ \>-E \>- Производит первичную обработку исходных файлов;\\ \>-o rez \>- Собрать перечисленные obj-файлы в один файл ;\\ \>-L \>- Определение путей поиска библиотек;\\ \>-l \>- Определяет перечень статических библиотек (без lib* и *.a);\\ \>-w \>- Запрет отображения предупреждений компилятора;\\ \>-Wall \>- Генерировать все возможные предупреждающие сообщения;\\ \>-pedantic \>- Проверка исходного текста на соответствие стандарту ANSI;\\ \>-Wl \>- Различные опции линковщика:\\ \>\quad ,rpath \>- Определяет дополнительные пути поиска динамических библиотек (-Wl,rpath,/usr/newpath);\\ \>\quad ,soname \>- Название разделяемой библиотеки (-Wl,-soname,libfuncs.so.1);\\ \>-fPIC \>- Создание объектных файлов для динамических библиотек (PIC - Position Independent Code.)\\ \>-shared \>- Создание динамической библиотеки (совместно с -o)\\ \>-nostdlib \>- Не использовать стандартные системные запускающие файлы или линкующихся библиотек.\\ \>-static \>- Принуждает использовать статические библиотеки вместо динамических;\\ \>-rdynamic \>- Включает возможность использования символьной информации для разрешения ссылок в\\ \> \> динамически загружаемых библиотеках;\\ \>-M \>- Для каждого файла с исходным текстом препроцессор будет выдавать на стандартный\\ \> \>вывод список зависимостей в виде правила для программы make. В список зависимостей\\ \> \>попадает сам исходный файл, а также все файлы, включаемые с помощью директив\\ \> \>\verb+#include+ <имя_файла> и \verb+#include+ "имя_файла". Генерация объектных файлов не происходит.\\ \>-MM \>- Аналогичен ключу -M, но в список зависимостей попадает только сам исходный файл,\\ \> \>и файлы, включаемые с помощью директивы \verb+#include+ "имя_файла"\\ \>-MD \>- Аналогичен ключу -M, но список зависимостей выдается не на стандартный вывод, а\\ \> \>записывается в отдельный файл зависимостей. Имя этого файла формируется из имени исходного\\ \> \>файла путем замены его расширения на ".d". Происходит генерация объектных файлов.\\ \>-MMD \>- Аналогичен ключу -MD, но в список зависимостей попадает только сам исходный файл,\\ \> \>и файлы, включаемые с помощью директивы \verb+#include+ "имя_файла"\\ \>-pipe \>- Компилятор будет работать через каналы.\\ \>-O[n] \>- Установить уровень оптимизации (n=0..3).\\ \>-g \>- Добавить отладочную информацию.\\ \>-p,-pg \>- Добавить в модуль код для отслеживания узких мест. После выполнения генерируется\\ \> \>mon.out файл, который можно обработать утилитой gprof.\\ \>-masm \>- Использовать стандарт ассемблера (att|intel).\\ \poptabs gdb \>- Мощный консольный GNU дебагер;\\ indent \>- Утилита форматирования исходного текста под указанные требования;\\ lclint \>- Утилита проверки синтаксиса исходных модулей;\\ ldconfig \>- Активизировать изменения в файле /etc/ld.so.conf\\ ldd \>- Показывает динамические библиотеки используемые программой\\ lint \>- Обнаруживает в C-программах конструкции, которые могут привести к ошибкам во\\ \> время выполнения, расточительно используют ресурсы или могут снизить мобильность программ.\\ ltrace \>- Трассировка динамических библиотек, программы указанной в параметре.\\ make \>- Используется для организации сложных проектов из десятков файлов;\\ \quad --directory \>- Указывает рабочую директорию.\\ \quad --makefile \>- Указывает на используемый makefile.\\ \quad -p \>- Вызывает вывод списка всех установок по умолчанию;\\ \quad -j3 \>- Установить количество параллельно компилирующих процессов;\\ memprof \>- Программа для определения утечек памяти в программах и др.\\ mtrace \>- Обработка лога созданного С-функцией mtrace;\\ nm \>- используется для получения различной информации из таблицы имен объектных файлов\\ \> обычного формата. Объектные файлы могут, но не обязаны, храниться в архиве.\\ objdump \>- Позволяет получить много информации об объектном файле, а также дизасемблировать его.\\ od \>- Печать дампа файла;\\ p2c \>- Транслирует исходный код программы на языке "Pascal" в исходный код на языке "C";\\ patch \>- Внесение изменений в файл исходя из файла изменений;\\ \quad patch -p1 < ../my.patch - Внесение изменений в текущий каталог из my.patch\\ \quad 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). Слово "символьный" означает, что во\\ \> время отладки можно использовать символические имена из программы. С помощью sdb\\ \> можно отлаживать программы на языках C и Фортран 77 [если использовался компилятор\\ \> f77(1)]. sdb можно использовать двумя способами: либо для контролируемого выполнения\\ \> программы, либо для анализа образа памяти, оставшегося после аварийного завершения\\ \> программы. В первом случае можно проследить, что происходит при выполнении\\ \> программы до того места, где она аварийно завершается (или обойти это место, с тем\\ \> чтобы продолжить выполнение). Во втором случае можно анализировать состояние на\\ \> момент аварийного завершения программы, что, возможно, позволит выяснить причину\\ \> неправильного функционирования.\\ shar \>- создание самораспаковывающихся кодированных архивов для отправки по почте.\\ size \>- выдает количество байт, занимаемое тремя секциями (.text, .data и .bss) объектного\\ \> файла обычного формата при загрузке его в память для выполнения.\\ strace \>- Трассировка системных вызовов, осуществляемых программой указанной в параметре.\\ strip \>- удаляет из объектного файла обычного формата таблицу имен и информацию о номерах\\ \> строк. После применения команды strip количество символов в файле, выдаваемое\\ \> командой ls -l, приближается к значению, получаемому по команде size. Но файл все\\ \> еще содержит некоторые заголовки, которые не входят в секции .text, .data или .bss.\\ \> После выполнения команды strip данный файл уже не допускает символьной отладки.\\ sum \>- Расчет контрольной суммы.\\ Xdialog \>- Позволяет создавать диалоги в X из скрипта.\\ xmkmf \>- Типа make, но под X.\\ \end{tabbing} \subsection{Мультимедия} \begin{tabbing} aumix \qquad \=- Консольный миксер AUDIO;\\ cdparanoia \>- Позволяет грабить CD;\\ play \>- Проигрывание звуковых файлов;\\ lame \>- Преобразование *.wav в *.mp3;\\ rec \>- Запись в звуковой файл;\\ \end{tabbing} \subsection{Сеть} \begin{tabbing} arp \hspace{5em} \=- Манипуляция системным ARP кешем (манипуляция аппаратными адресами);\\ gnosamba \>- GUI конфигуратор SAMBA;\\ gnome-lokkit \>- Настройка межсетевого экрана (упрощенный);\\ ethereal \>- Мощный анализатор трафика в сетях;\\ ettercap \>- Снифер;\\ iptraf \>- Мощный и удобный сканер сети;\\ ifconfig \>- Конфигурированние сетевого интерфейса (eth0, ppp0, lp0 ...);\\ \quad down \>- выключить интерфейс;\\ \quad up \>- включить интерфейс;\\ \quad inet \>- поднять интерфейс с адресом;\\ \quad hw ether - установить MAC адрес интерфейса;\\ \quad eth0:0 \>- Создание псевдонима eth0:0 на интерфейс eth0;\\ ipchains \>- Утилита Конфигурированниея firewall (ядра 2.2.*);\\ iptables \>- Утилита Конфигурированниеяя firewall (ядра 2.4.*);\\ firewall-config - GUI настройка firewall;\\ neat \>- GUI утилита конфигурирования сети;\\ netcfg \>- Конфигурирование сети. (интерфейсов ...)\\ netstat \>- Состояние сети (отображает используемые сокеты и их состояния).\\ \quad -a \>- Вывод всех сокетов;\\ \quad -e \>- Показать какой пользователь работает с сокетом в настоящий момент;\\ nmap,nmapfe \>- Сканер сети и его GUI. Можно получить перечень открытых сокетов и т.д.\\ nmblookup \>- Утилита работы с NetBIOS;\\ \quad nmblookup -B Host '*' - Возвращает IP адрес Host\\ \quad nmblookup -d 2 '*' - Посылка Broadcast сообщений на все адреса\\ ping \>- Проверка связи с удаленным хостом.\\ route \>- Управление таблицей маршрутизации.\\ \quad delete \>- удаление указанного роутинга;\\ \quad add \>- добавление указанного роутинга;\\ smbclient \>- Различные опции для работы клиента с SMB.\\ smbprint \>- Печать на принтер SMB.\\ socklist \>- Отображает активные сокеты.\\ traceroute \>- Проверка роутинга TCP.\\ tcpdump \>- Дамп TCP сети\\ testparm \>- Проверка параметров файла smb.conf\\ traceroute \>- Проверка роутинга TCP.\\ kwuftpd \>- GUI конфигуратор ftp-сервера wu-ftp;\\ \end{tabbing} \section{Процедуры} \subsection{Компиляция ядра} \begin{tabbing} \quad \=- make config(menuconfig, xconfig) - конфигурированние;\\ \>- make dep - создание файлов зависимостей;\\ \>- make clean - очистка от ранее скомпилированных модулей;\\ \>- make [bzImage] - компилирование ядра;\\ \>- make install - установка ядра;\\ \>- make modules - компилирование модулей;\\ \>- make modules_install - установка модулей;\\ \end{tabbing} \subsection{Создание swap} \begin{tabbing} \quad \=- dd if=/dev/zero of=/swap bs=1024 count=8208\\ \>- mkswap /swap 8208\\ \>- /bin/sync\\ \>- swapon /swap (отключение - swapoff)\\ \end{tabbing} \subsection{Эмуляция SCSI CDROM} \begin{tabbing} \quad \= \quad \= \textbf{Вариант 1}: \\ \>- Скомпилировать ядро с поддержкой scsi в ядре и включить статически опцию эмуляции scsi;\\ \>- Передать ядру hdx=scsi-ide;\\ \> \> \textbf{Вариант 2}:\\ \>- Скомпилировать ядро с поддержкой scsi модулем и включить модулем опцию эмуляции scsi;\\ \>- Передать ядру hdx=scsi-ide;\\ \>- Добавить в /etc/modules.conf:\\ \> \>- alias scd0 sr_mod // загружает sr_mod при доступе к scd0\\ \> \>- alias scsi_hostadaptor ide_scsi // эмуляция адаптера SCSI\\ \> \>- options ide_cd ignore=hdx // если ваш CD-writer - /dev/hdb\\ \end{tabbing} \subsection{Смена имени системы} \quad - изменить имя в /etc/sysconfig/network\\ \quad - изменить имя в /etc/hosts\\ \subsection{Удалённое подключение с использованием X-сервера, для запуска GUI приложений} \begin{tabbing} \quad \= - Запустить X-сервер: startx (xinit -- :1)\\ \> - Зарегистрировать машину сервера у клиента: xhost +server\\ \> - Подключиться к удаленной машине: telnet server -l UserName\\ \> - Установить переменную DISPLAY: export DISPLAY=Client:0.0\\ \> - Запустить оконный менеджер: startkde\\ \end{tabbing} \subsection{Установка консоли} \begin{tabbing} \quad \= - \verb+consolechars -f UniCyr_8x16 -m koi8-r;+\\ \> - \verb+echo -ne "\033(K";+\\ \> - \verb+loadkeys ru1;+\\ \end{tabbing} \subsection{Подготовка и компиляция проектов на основе autoconf/automake} \begin{tabbing} \quad \= - Генерация локализационных файлов: gettextize -f -c\\ \> - Генерация файла config.h.in из acconfig.h: autoheader\\ \> - Автоматическая генерация cofigure.scan и проверка configure.in: autoscan\\ \> - Создание списка идентификаторов которые используются в препроцессоре: ifnames\\ \> - Генерация макроса aclocal.m4: aclocal -I -m4\\ \> - Генерация скрипта configure: autoconf, autoreconf\\ \> - Генерация файла Makefile.in: automake -a -c\\ \> - Генерация Makefile: configure\\ \> - Компиляция проекта: make\\ \> - Установка программы: make install\\ \end{tabbing} \subsection{Форматирование дискет, создание FS, проверка FS} \begin{tabbing} \quad \= - fdformat /dev/fd0\\ \> - mkfs.vfat /dev/fd0\\ \> - ckfs.vfat -ta /dev/fd0\\ \end{tabbing} \subsection{Создание зашифрованых ФС} \begin{tabbing} \quad \= - Создание файла для будущей FS:\\ \> \textbf{dd if=/dev/zero of=./sequre_disk bs=1024 count=50000}\\ \> - Создание шифрованого loop устройства:\\ \> \textbf{losetup -e aes /dev/loop0 ./sequre_disk}\\ \> - Cоздание файловой системы на loop устройстве:\\ \> \textbf{mkfs.ext3 /dev/loop0}\\ \> - Отключение loop устройства:\\ \> \textbf{losetup -d /dev/loop0}\\ \> - Обычное монтирование шифрованой ФС:\\ \> \textbf{mount -o loop,encryption=aes ./sequre_disk /mnt/tmp/}\\ \end{tabbing} \subsection{Подготовка к проверке выделения памяти с помощью Electric Fence} \quad - Подключить динамическую библиотеку -lefence\\ \subsection{Подготовка к проверке выделения памяти с помощью mtrace} \begin{tabbing} \quad \= - Добавить в программу: \verb+#include и mtrace()+\\ \> - Добавить переменную окружения: \verb+%export MALLOC_TRACE=mem.log+\\ \> - Обработать сгенерированный файл: \verb+%mtrace my_prog $MALLOC_TRACE+\\ \end{tabbing} \subsection{Подключение дисковых квот} \begin{tabbing} \quad \= - Добавить опции usrquota, grpquota для выбранных разделов в файле /etc/fstab;\\ \> - создать файлы quota.user и quota.group в корне выбранных разделов;\\ \> - выполнить проверку квот "quotacheck -avugm"\\ \> - включить квоты "quotaon -avug"\\ \> - редактирование квот для конкретного пользователя "edquota -u user"\\ \> - Проверка состояния квот "repquota -a"\\ \end{tabbing} \subsection{Печать страниц документации} \begin{tabbing} \quad \= - man man | col -b | lpr\\ \> - info man | col -b | lpr\\ \end{tabbing} \subsection{Настройка ssh} \begin{tabbing} \quad \= - На локальной машине сгенерировать свои ключи в "~/.ssh/": \\ \> \quad \textbf{ssh-keygen}\\ \> - Передать любым способом публичный ключ на удалённый сервер:\\ \> \quad \textbf{scp ./identity.pub remoteserv:~/.ssh/}\\ \> - Авторизировать свой открытый ключ:\\ \> \quad \textbf{cat ~/.ssh/identity.pub >> ~/.ssh/authorized_keys}\\ \> - Можно соединятся с удалённым сервером:\\ \> \quad \textbf{ssh remoteserv}\\ \end{tabbing} \subsection{Создание ramdisk (диска в памяти)} \begin{tabbing} \quad \= - mkfs /dev/ram0\\ \> - mount /dev/ram0 /mnt/disk\\ \end{tabbing} \subsection{Создание, использование и обслуживание LVM} \begin{tabbing} \quad \= vgscan \hspace{4em} \= - поиск по системе виртуальных групп VG;\\ \> vgchange \> - изменение состояния виртуальной группы:\\ \> \quad -ay \> - активизировать виртуальную группу;\\ \> \quad -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;\\ \end{tabbing} \subsection{Добавление в программу поддержки i18n} \begin{tabbing} \quad \= - \= Добавить к проекту:\\ \> \> \#include ;\\ \> \> \#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\\ \end{tabbing} \section{Устройства} \subsection{Типы} \begin{tabbing} \textbf{b} \quad \= - блочные;\\ \textbf{c} \> символьные;\\ \textbf{-} \> обычный файл;\\ \textbf{d} \> каталог;\\ \textbf{l} \> символьная ссылка;\\ \textbf{p} \> именованный канал;\\ \textbf{s} \> сокет;\\ \end{tabbing} \subsection{Файлы устройств (в каталоге /dev)} \begin{tabbing} null \qquad \= - Нулевое устройство, данные в котором исчезают;\\ 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=0..n);\\ vcsa[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);\\ \end{tabbing} \section{Горячие клавиши} \subsection{BASH} \subsubsection{Основные} \begin{tabbing} \verb-Ctrl+H(?)- \quad \=- Erase "<-";\\ \verb-Ctrl+C- \>- Прервать текущий процесс (сигнал SIGINT);\\ \verb-Ctrl+\- \>- Interrupt within core damp;\\ \verb-Ctrl+D- \>- Eof (выход из консольного пользовательского процесса);\\ \verb-Ctrl+S- \>- Остановить процесс;\\ \verb-Ctrl+Q- \>- Запустить процесс;\\ \verb-Ctrl+Z- \>- Перевести процесс в фоновый режим;\\ \verb-Ctrl+J- \>- Сброс параметров терминала;\\ \verb-Crtl+W- \>- Удалить последнее слово;\\ \verb-Ctrl+M- \>- Аналог клавиши "Enter";\\ \verb-Ctrl+R- \>- Переводит в режим поиска команды в истории. Повторное нажатие перебирает сходные по маске строки;\\ \verb-Ctrl+L- \>- Очистка экрана;\\ \verb-TAB- \>- Автозавершение команд;\\ \verb-ScrLock- \>- Приостановка выполнения(печати) текущей команды;\\ \verb-Ctrl+Alt+Del- - Закрыть систему и перегрузится;\\ \end{tabbing} \subsubsection{Навигация} \begin{tabbing} \verb-Up; Down- \quad \=- Просмотр и редактирование истории команд;\\ \verb-Alt+Left- \>- Переключение по терминалам влево(консоль);\\ \verb-Alt+Right- \>- Переключение по терминалам вправо(консоль);\\ \verb-Sh+PgUp- \>- Прокрутка текста вверх;\\ \verb-Sh+PgDown- \>- Прокрутка текста вниз;\\ \verb-Ctrl+B- \>- На символ назад;\\ \verb-Ctrl+F- \>- На символ вперёд;\\ \verb-Alt+B- \>- На слово вперёд;\\ \verb-Alt+F- \>- На слово назад;\\ \verb-Ctrl+A- \>- Переводит курсор в начало строки;\\ \verb-Ctrl+E- \>- Переводит курсор в конец строки;\\ \end{tabbing} \subsubsection{Редактирование} \begin{tabbing} \verb-Ctrl+D- \quad \=- Удаление символа в позиции курсора;\\ \verb-Ctrl+H- \>- Удаление символа перед позицией курсора;\\ \verb-Alt+D- \>- Удаление символов до ближайшего справа пробела;\\ \verb-Ctrl+W- \>- Удаление символов до ближайшего слева пробела;\\ \verb-Ctrl+U- \>- Очистить строку ввода слева от курсора;\\ \verb-Ctrl+K- \>- Очистить строку ввода справа от курсора;\\ \verb-Ctrl+T- \>- Смена положения соседних символов;\\ \verb=Ctrl+_= \>- Откат редактирования;\\ \verb=Ctrl+X,Ctrl+U= - ----//----;\\ \verb=MidlMouse= - Вставляет текст, выделенный в данный момент в другом месте;\\ \end{tabbing} \subsection{X} \begin{tabbing} \verb-Ctrl+Alt+F[n]- \quad \=- Переключение между псевдотерминалами;\\ \verb-Ctrl+Alt+<+>- \>- Сменить разрешение на следующее (прописаных в XF86Config);\\ \verb|Ctrl+Alt+<->| \>- Сменить разрешение на предыдущее (прописаных в XF86Config);\\ \verb-Ctrl+Alt+ESC- \>- Режим удаления указанного окна;\\ \verb-Ctrl+Alt+BkSpc- \>- Закрыть текущий X сервер;\\ \verb=MidlMouse= - Вставляет текст, выделенный в данный момент в другом месте;\\ \end{tabbing} \subsection{KDE} \begin{tabbing} \verb-Alt+Tab- \qquad \=- Переход между окнами в прямом направлении;\\ \verb-Alt+Sh+Tab- \>- Переход между окнами в обратном направлении;\\ \verb-Ctrl+Tab- \>- Переход между рабочими столами в прямом направлении;\\ \verb-Ctrl+Sh+Tab- \>- Переход между рабочими столами в обратном направлении;\\ \verb-Ctrl+Esc- \>- Показать таблицу активных процессов (ksysguard);\\ \verb-Alt+F1- \>- Вызвать K-меню;\\ \verb-Alt+F12- \>- Эмулировать мышь стрелками клавиатуры;\\ \verb-Alt+LeftMouse- - Перенести окно за любую видимую его часть;\\ \verb-Alt+PrScreen- - Сделать снимок текущего окна в буфер обмена;\\ \verb-Ctrl+Alt+l- \>- Запереть рабочий стол;\\ \verb-Ctrl+Alt+d- \>- Спрятать/показать рабочий стол;\\ \end{tabbing} \subsection{SysRQ ядра (Alt+SysRq+Key)} \begin{tabbing} r \quad \=- Отключает режим непосредственной передачи символов с клавиатуры и устанавливает её в режим XLATE;\\ k \>- Уничтожает все процессы на текущей виртуальной консоли;\\ b \>- Немедленно перезапускает систему;\\ o \>- Отключить питание системы через АРМ;\\ s \>- Синхронизировать все файловые системы;\\ u \>- Демонтирует и перемонтирует все смонтированные файловые системы в режиме только для чтения;\\ p \>- Вывести текущее значение регистров и флагов на консоль;\\ t \>- Вывести список текущих задач и информацию о них на консоль;\\ m \>- Вывести текущее состояние памяти на консоль;\\ 0-9 \>- Устанавливает уровень выдачи сообщений на консоль для фильтрации сообщений ядра;\\ e/i \>- Посылает сигналы term или kill всем процессам, кроме init;\\ l \>- Посылает SIGKILL всем процессам, включая init;\\ \end{tabbing} \section{Форматы файлов и команды используемые в них} \subsection{XF86Config, XF86Config-4} \subsubsection{Section } \begin{tabbing} Option \hspace{3em} \=- Дополнительные опции клавиатуры:\\ \quad XkbLayout \>- Раскладка (ru,ua);\\ \quad XkbVariant \>- Вариант раскладки (winkeys);\\ \quad XkbOptions \>- Опции клавиатуры (клавиши переключения):\\ \quad \quad grp:ctrl_shift_toggle \=- переключение с помощью Ctrl-Shift;\\ \quad \quad grp_led:scroll \>- Использовать светодиод scroll для индикации переключения группы раскладки;\\ \end{tabbing} \subsubsection{Section } \begin{tabbing} Option \quad - Дополнительные опции монитора:\\ \quad "dpms" \quad - Включить режим энергосбережения монитора;\\ \end{tabbing} \subsubsection{Section } \begin{tabbing} Resolution 3 \quad - Определяет чувствительность мыши;\\ \end{tabbing} \subsubsection{Section } \begin{tabbing} Option \quad - Дополнительные опции:\\ \quad "BlankTime" 10 \quad - Время через которое гаснет экран;\\ \end{tabbing} \subsection{Консоль} \subsubsection{Управление звуком} \begin{tabbing} \verb+\007+ \hspace{3em} \=- издать звук;\\ \verb+\033[10;#]+ \>- установить частоту звукового сигнала в герцах;\\ \verb+\033[11;#]+ \>- установить продолжительность звукового сигнала в миллисекундах;\\ \end{tabbing} \subsubsection{Управление цветом} \begin{tabbing} \verb+\033[0m+ \qquad \=- все атрибуты по умолчанию;\\ \verb+\033[1m+ \>- жирный шрифт (интенсивный цвет);\\ \verb+\033[2m+ \>- полу яркий цвет (тёмно-серый, независимо от цвета);\\ \verb+\033[4m+ \>- выделение (ярко-белый, независимо от цвета);\\ \verb+\033[5m+ \>- мигающий;\\ \verb+\033[7m+ \>- реверсия (знаки приобретают цвет фона, а фон -- цвет знаков);\\ \verb+\033[22m+ \>- установить нормальную интенсивность;\\ \verb+\033[24m+ \>- отменить подчеркивание;\\ \verb+\033[25m+ \>- отменить мигание;\\ \verb+\033[27m+ \>- отменить реверсию;\\ \verb+\033[30+ \>- чёрный цвет знаков;\\ \verb+\033[31+ \>- красный цвет знаков;\\ \verb+\033[32+ \>- зелёный цвет знаков;\\ \verb+\033[33+ \>- коричневый цвет знаков;\\ \verb+\033[34+ \>- синий цвет знаков;\\ \verb+\033[35+ \>- фиолетовый цвет знаков;\\ \verb+\033[36+ \>- цвет морской волны знаков;\\ \verb+\033[37+ \>- серый цвет знаков;\\ \verb+\033[40+ \>- чёрный цвет фона;\\ \verb+\033[41+ \>- красный цвет фона;\\ \verb+\033[42+ \>- зелёный цвет фона;\\ \verb+\033[43+ \>- коричневый цвет фона;\\ \verb+\033[44+ \>- синий цвет фона;\\ \verb+\033[45+ \>- фиолетовый цвет фона;\\ \verb+\033[46+ \>- цвет морской волны фона;\\ \verb+\033[47+ \>- серый цвет фона;\\ \end{tabbing} \subsubsection{Управление положением курсора} \begin{tabbing} \verb+\033[#A+ \qquad \=- передвинуть курсор вверх на \# строк;\\ \verb+\033[#B+ \>- передвинуть курсор вниз на \# строк;\\ \verb+\033[#С+ \>- передвинуть курсор вправо на \# столбцов;\\ \verb+\033[#D+ \>- передвинуть курсор влево на \# столбцов;\\ \verb+\033[#E+ \>- передвинуть курсор вниз на \# строк и поставить в начало строки;\\ \verb+\033[#F+ \>- передвинуть курсор вверх на \# строк и поставить в начало строки;\\ \verb+\033[#G+ \>- переместить курсор в указанный столбец текущей строки;\\ \verb+\033[#;#H+ \>- задает абсолютные координаты курсора (строка, столбец);\\ \end{tabbing} \subsubsection{Работа с палитрой} \begin{tabbing} \verb+\033]Pnrrggbb+ \=- Изменяет палитру. n -- номер цвета; rr, gg и bb -- значения RGB-компонент\\ \> в шестнадцатеричной форме;\\ \verb+\033]R+ \>- Восстанавливает палитру, принятую по умолчанию;\\ \end{tabbing} \subsubsection{Работа с виртуальными консолями} \verb+\033[12;#]+ - Сделать текущей консоль с указанным номером; \subsubsection{Работа с xterm} \begin{tabbing} \verb+\033]0;text\007+ \quad \=- Присваивает имя окну и иконке;\\ \verb+\033]1;text\007+ \>- Присваивает имя иконке;\\ \verb+\033]2;text\007+ \>- Присваивает имя окну;\\ \end{tabbing} \subsubsection{Общее} \begin{tabbing} \verb+\033c+ \quad \=- Сброс терминала;\\ \verb+\033(K+ \>- Переключение на загружаемый шрифт;\\ \end{tabbing} \subsection{BASH} Команды возвращают код возврата или SIG+128, где SIG номер сигнала прервавшего выполнение. \subsubsection{Общие} \begin{tabbing} \verb+![numb]+ \qquad \=- Запуск строки из истории (history);\\ \verb+!str+ \>- Запуск ближайшей строки соответствующей маске str из истории (history);\\ \verb+\+ \>- Продолжение текущей строки на другой строке или экранирование специального символа\\ \> после данного символа (\verb+\$+);\\ \verb+;+ \>- Разделитель команд;\\ \verb+()+ \>- Выполнения сценария в скобках в другой подоболочке;\\ \verb+(())+ \>- Включение выражений с "С" синтаксисом;\\ \verb+[]+ \>- Включение условных операций с синтаксисом команды test;\\ \verb+"pwd"+ \>- Определение строки с разрешением подстановки значений переменных;\\ \verb+'pwd'+ \>- Определение строки с запрещением подстановки значений переменных;\\ \verb+`pwd`+ \>- Результат выполнения команды pwd;\\ \verb+x=pwd+ \>- Объявление переменной окружения x и присвоение ей строки pwd;\\ \verb+x='34'+ \>- Объявление переменной окружения x и присвоение ей строки '34';\\ \verb+x[2]=pwd+ \>- Объявление массива x и присвоение его элементу 2 строки pwd;\\ \verb+x=(zero one two three)+ - Объявление массива x и заполнение четырех его элементов;\\ \verb+x=([0]=zero [3]=three [2]=two [1]=one)+ - Объявление массива x и заполнение четырех его элементов по выбору;\\ \verb+$((100/3)), $[100/3]+ - Позволяет выполнять простые целочисленные операции. \\ \> Примеры: \\ \> \quad \verb|a=4; echo $[a=$a+4] $[a+=4] $[a=a+4]|\\ \> \quad \verb|a=4; echo $[a=$a+4, a+=4, a=a+4]|\\ \> \quad \verb|$[2!=2] $[2!=3]|\\ \> \quad \verb|$[a=2<3] $a|\\ \> Допустимые команды:\\ \pushtabs \quad \= \verb=id++, id--= \quad \=- постфиксное увеличение/уменьшение значения переменной на 1;\\ \> \verb=++id, --id= \>- префиксное увеличение/уменьшение значения переменной на 1;\\ \> \verb=-, += \>- унарные минус и плюс;\\ \> \verb=!, ~= \>- логическое и побитовое отрицание;\\ \> \verb=**= \>- возведение в степень;\\ \> \verb=*, /, %= \>- умножение, деление, получение остатка от деления;\\ \> \verb=+, -= \>- сложение, вычитание;\\ \> \verb=<<, >>= \>- побитовый сдвиг влево и вправо;\\ \> \verb+<=, >=, <, >+\>- сравнение;\\ \> \verb+==, !=+ \>- равенство и неравенство;\\ \> \verb+&+ \>- побитовое И;\\ \> \verb+^+ \>- побитовое исключающее ИЛИ;\\ \> \verb+|+ \>- побитовое ИЛИ;\\ \> \verb+&&+ \>- логическое И;\\ \> \verb+||+ \>- логическое ИЛИ;\\ \> \verb+выражение?выражение:выражение+ - условное вычисление;\\ \> \verb|=, *=, /=, %=, +=, ?=+| - присваивание;\\ \> \verb+выражение1,выражение2+ - запятая;\\ \> \verb+()+ \>- Выделение более приоритетного участка выражения;\\ \poptabs \verb+$x, ${x}+ \>- Подстановка значения переменной/параметра x;\\ \verb+${!x}+ \>- Косвенная подстановка значения переменной/параметра указанного в x;\\ \verb+${#x}+ \>- Косвенная подстановка значения переменной/параметра указанного в x;\\ \> Если параметр -- * или @, подставляется количество позиционных параметров.\\ \> Если параметр -- массив с индексом * или @, подставляется количество элементов массива.\\ \verb+${x:?"Error, no bar"}+ - Генерировать ошибку если x не определена или равна нулю;\\ \verb+${x?"Error, no bar"}+ - ---//---;\\ \verb+${x:="foose"}+ - Присвоить значение по умолчанию если x не определена или равна нулю;\\ \verb+${x="foose"}+ - ---//---;\\ \verb+${x:offset:lenght}, ${x:offset}+ - Возвращает часть от x начиная с offset длиной lenght;\\ \> В качестве длины и смещения могут выступать:\\ \> - арифметические выражения;\\ \> - смещение отрицательное число - отсчитывается с конца значения параметра;\\ \> - параметр - @, результат - позиционных параметров, начиная с параметра ;\\ \> - параметр - массив с индексом @ или *, результат - элементов массива, начиная с \verb+${параметр[m]}+;\\ \verb-${x:+"foose"}- - Если переменная определена то вместо неё используется "foose";\\ \verb-${x+"foose"}- - ---//---;\\ \verb+${x:-"foose"}+ - Если переменная определена то она используется иначе используется "foose";\\ \verb+${x-"foose"}+ - ---//---;\\ \verb+${параметр#шаблон}+ - ??\\ \verb+${параметр##шаблон}+ - ??\\ \verb+${параметр%шаблон}+ - ??\\ \verb+${параметр%%шаблон}+ - ??\\ \verb+${параметр/шаблон/строка}+ - Заменяется первая самая длинная подстрока значения параметра, на указанную строку;\\ \verb+${параметр//шаблон/строка}+ - Заменяются все самые длинные подстроки значения параметра, на указанную строку;\\ \verb+${array[@]}+ \>- Обращение сразу ко всему массиву;\\ \verb+$(x)+ \>- Выполнение команды x и возврат результата (подобно `x`);\\ \verb+$0+ \>- Имя команды в командной строке;\\ \verb+$n, ${n} (n = 1...)+ - аргумент n командной строки;\\ \verb+$*+ \>- Раскрывает единственное слово, содержащее список всех позиционных парам;\\ \verb+$#+ \>- Количество аргументов;\\ \verb+$@+ \>- Ссылка на все аргументы команды отделенные пробелами;\\ \verb+$$, $PPID+ \>- PID текущего процесса (скрипта);\\ \verb+$?+ \>- Код возврата последней команды;\\ \verb+$!+ \>- PID последнего фонового процесса;\\ \verb+$'\n'+ \>- Вставка управляющего символа в строку;\\ \verb+Comm &&+ \>- Выполняет действие после выражения если команда неудачна;\\ \verb+Comm ||+ \>- Выполняет действие после вырожения если команда удачна;\\ \verb+MYVAR#*fo+ \>- Отсекает от начала переменной MYVAR самую короткую часть удовлетворяющую маске *fo;\\ \verb+MYVAR##*fo+ \>- Отсекает от начала переменной MYVAR самую длинную часть удовлетворяющую маске *fo;\\ \verb+MYVAR%fo*+ \>- Отсекает от конца переменной MYVAR самую короткую часть удовлетворяющую маске fo*;\\ \verb+MYVAR%%fo*+ \>- Отсекает от конца переменной MYVAR самую длинную часть удовлетворяющую маске fo*;\\ \verb+MYVAR:2:5+ \>- Возвращает часть строки MYVAR которая начинается с 2 символа и заканчивается 5;\\ \verb+if [ Condition ]+ - Условный оператор ( if ( Condition ) - tch);\\ \verb+then+ \>- выполнение условия;\\ \verb+else+ \>- невыполнение условия;\\ \verb+elif [ Condition ]+ - Совмещенная команда else if;\\ \verb+fi+ \>- окончание условного оператора;\\ \verb+for x in 1 2 3 4+ - оператор цикла, в x перебираются значения за in ( foreach x (1 2 3 4) - tch );\\ \verb+while [ Condition ]+ - выполняет цикл пока верно условие Condition ( while ( Condition ) -tch );\\ \verb+until [ Condition ]+ - выполняет цикл до равенства условия Condition;\\ \verb+(repeat x expression - tch )+ - выполняет повторение выражения x раз;\\ \verb+select x in list;+ - Запрашивает выбор из списка и присваивает выбранное значение переменной ;\\ \verb+do+ \>- Начало цикла определенного for, while, until;\\ \verb+done+ \>- Конец цикла определенного for, while, until;\\ \verb+case x in+ - Команда выбора. Имеет структуру:\\ \quad \verb+case "${x##*.}" in+ \\ \quad \quad \verb+gz) gzunpack ${SROOT}/${x} ;;+\\ \quad \quad \verb+bz2) bz2unpack ${SROOT}/${x} ;;+\\ \quad \quad \verb+*) echo "Неизвестный формат архива" exit ;;+\\ \quad \verb+esac+\\ \verb+function func() { }+ - Определяет функцию с именем func;\\ \verb+export x+ \>- Создает переменную окружения x и экспортирование её в систему;\\ \verb-local x- \>- Создает локальную переменную окружения которая не перекрывает глобальной.\\ \> Часто используется для функций;\\ \verb+declare+ \>- Встроенная команда bash для декларирования переменных и изменения их атрибутов;\\ \verb+set x = str+ \>- Инициализация переменной;\\ \quad \verb+-A Name_A 1 2 3 4 5+ - Инициализация массива;\\ \quad \verb+-V,-X+ \>- Включение отладочного режима;\\ \quad \verb-+V,+X- \>- Выключение отладочного режима;\\ \verb+unset x+ \>- Отмена инициализации переменной;\\ \verb+read x y+ \>- Ввод строки из двух слов;\\ \verb+break+ \>- Завершение цикла;\\ \verb+continue+ \>- Начинает цикл сначала;\\ \verb+exit+ \>- Выход из сценария;\\ \verb+eval+ \>- Означивание строки (т.е. замена записей типа \verb+"$5"+ на их значения);\\ \verb+shift+ \>- Сдвиг параметров командной строки на единицу (для доступа к параметрам с номером > 9 );\\ \verb+trap+ \>- Установка обработчиков сигналов в скрипте;\\ \verb+alias+ \>- Создание псевдонимов или альтернативных имен команд;\\ \verb+unalias+ \>- Удаление псевдонима; \end{tabbing} \subsubsection{Переменные окружения оболочки} \begin{tabbing} PWD \hspace{3em} \=- Текущий рабочий каталог;\\ 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:\\ \quad = 0 \>- молча игнорировать все ошибки;\\ \quad = 1 \>- сообщить об ошибке и продолжить работу;\\ \quad = 2 \>- прервать при ошибке (без сообщения);\\ \quad = 3 \>- прервать и сообщить об ошибке;\\ MALLOC_TRACE - Определяет путь для комманды mtrace и функции в программе mtrace;\\ \end{tabbing} \subsubsection{Основные операторы} \begin{tabbing} \verb+.+ \quad \=- Выполнить все команды в файле после точки;\\ \verb+&+ \>- Выполнить команду до него в фоновом режиме;\\ \end{tabbing} \subsubsection{Операторы сравнения файлов} \begin{tabbing} -e \hspace{3em} \=- существует;\\ -d \>- каталог;\\ -f \>- обычный файл;\\ -c \>- специальный файл;\\ -L \>- символическая ссылка;\\ -r \>- для чтения;\\ -w \>- для записи;\\ -x \>- исполняемый;\\ -z \>- файл пуст;\\ -s,(-z) \>- имя файла не нулевой длины;\\ (-o) \>- пользователь является владельцем файла;\\ fname1 -nt fname2 - fname1 новее fname2;\\ fname1 -ot fname2 - fname1 старше fname2;\\ \end{tabbing} \subsubsection{Операторы сравнения строк} \begin{tabbing} -z \hspace{3em} \=- Пуста;\\ -n \>- выражения\\ = ,(==) \>- Равны;\\ != \>- Неравна;\\ \end{tabbing} \subsubsection{Арифметические операторы сравнения} \begin{tabbing} -eq \hspace{3em} \=- Равно;\\ -ne \>- Неравно;\\ -lt,(< ) \>- Меньше;\\ -le,(<=) \>- Меньше или равно;\\ -gt,(> ) \>- Больше;\\ -ge,(>=) \>- Больше или равно;\\ \end{tabbing} \subsubsection{Логические операторы} \begin{tabbing} \verb+!+ \hspace{3em} \=- отрицание логического вырожения;\\ \verb+-a,(&&)+ \>- Логическое "И";\\ \verb+-o,(||)+ \>- Логическое "ИЛИ"\\ \end{tabbing} \subsubsection{Перенаправления вывода} \begin{tabbing} \verb+|+ \hspace{3em} \=- Перенаправление вывода в канал;\\ \verb+< file+ \>- file записать в STDIN;\\ \verb+> file+ \>- STDOUT записать в file;\\ \verb+>> file+ \>- STDOUT добавить в file;\\ \verb+<< str+ \>- Определяет слово как признак окончания ввода;\\ \verb+2> file+ \>- STDERR записать в file;\\ \verb+1>&2+ \>- STDOUT записать в STDERR;\\ \verb+2>&1+ \>- STDERR записать в STDOUT;\\ \verb+&> file+ \>- STDOUT и STDERR записать в file;\\ \end{tabbing} \subsubsection{Специальные символы} \begin{tabbing} \verb+\n+ \hspace{3em} \=- Новая строка;\\ \verb+\b+ \>- Возврат на один символ;\\ \verb+\c+ \>- Печать строки без символа новой строки;\\ \verb+\f+ \>- Переход к новой странице/экрану;\\ \verb+\r+ \>- Возврат каретки;\\ \verb+\t+ \>- Табуляция;\\ \verb+\v+ \>- Табуляция по вертикали;\\ \verb+\\+ \>- Обратная косая черта;\\ \verb+0nnn+ \>- Восьмеричное число;\\ \verb+xNN+ \>- Шестнадцатеричное число;\\ \end{tabbing} \subsubsection{Маски (подстановка, может быть отключена опцией -f или set)} \begin{tabbing} \verb+*+ \hspace{3em} \=- Любая строка;\\ \verb+?+ \>- Любой одиночный символ;\\ \verb+[...]+ \>- Соответствует любому символу в скобках [A-Z]; \verb+"! и ^"+ - исключение символа.\\ \end{tabbing} \subsubsection{Представление численных значений} \begin{tabbing} \verb+045+ \hspace{5em} \=- Восьмеричное число (начинается с 0);\\ \verb+0x45, 0X32+ \>- Шестнадцатеричное число;\\ \verb+[основание#]n+ \>- Число с основанием (по умолчанию основание 10).\\ \> Примеры:\\ \> \verb+$[2#101] $[10#101] $[16#101]+\\ \> \verb+$[16#FF] $[16#ff] $[0xFF]+\\ \> \verb+$[64**2] $[64#@@]+\\ \> \verb+$[64#z] $[64#Z]+\\ \end{tabbing} \subsection{Полезные обороты} \begin{itemize} \item Получить количество строк: \textbf{} \item Получить количество слов: \textbf{} \item Получить указанную строку: \textbf{} \item Получить содержимое каталога по строкам: \textbf{} \item Сгенерировать случайный пароль: \textbf{} \end{itemize} \subsection{GDB} \begin{tabbing} run \hspace{3em} \=- Запуск отлаживаемой программы;\\ break func \>- Установка точку прерывания на функцию func;\\ list func \>- Просмотр содержимого функции или исходного файла;\\ next \>- Следующая команда;\\ quit \>- Выход;\\ \end{tabbing} \subsection{MAKE} Формат правила: \begin{verbatim} <цель_1> <цель_2> ... <цель_n>: <зависим_1> <зависим_2> ... <зависим_n> <команда_1> <команда_2> ... <команда_n> \end{verbatim} Цель это некий желаемый результат может представлять собой: \begin{enumerate} \item имя файла (my_file: file.c file1.c); \item команда (clean: ); \end{enumerate} Зависимость, также может быть файлом или командой которая должна выполнится ранее. \subsubsection{Шаблонные правила} \begin{tabbing} \verb+.cpp.o:+ \qquad \=- Файлы с расширением *.o зависят от соответствующий файлов с расширением *.cpp;\\ \verb+%.o: %.cpp+ \>- Проверяет все файлы с расширением .cpp и заменяет цель на расширение .o;\\ \verb+.PHONY: x+ \>- Объявление специальной цели (не файл);\\ \verb+all:+ \>- Выполняет эту цель при отсутствие параметров команды make;\\ \end{tabbing} \subsubsection{Ключевые слова и команды} \begin{tabbing} \verb+=,:=+ \hspace{3em} \=- Оператор объявления переменных. (x = test);\\ \verb-+=- \>- Добавление текста к существующей переменной;\\ \verb+#define+ \>- Определение переменных. (\verb+#define x "test 1"+);\\ \verb+include+ \>- Включение внешнего файлы и его обработка, с прерыванием при отсутствие файла;\\ \verb+-include+ \>- Включение внешнего файлы и его обработка, без прерывания при отсутствие файла;\\ \verb+$(function par1, par2 ...)+ - Вызов функции и получение значения переменной;\\ \verb+addprefix+ \>- Добавляет префикс в первом параметре к каждому элементу в списке второго параметра;\\ \verb+addsuffix+ \>- Добавляет суффикс в первом параметре к каждому элементу в списке второго параметра;\\ \verb+wildcard+ \>- Расширяет переданные шаблоны до списка файлов соответствующих этим шаблонам;\\ \verb+notdir+ \>- Выделение имени файла из полного пути;\\ \verb+patsubst+ \>- Изменяет указанным образом слова подходящие под шаблон;\\ \quad \verb+object_files = $(patsubst %.cpp, %.o, man.cpp) -> man.o+\\ \verb+override+ \>- Позволяет изменять переменные заданные через пораметры make;\\ \verb+for x in 1 2 3 4;+ - оператор цикла, в x перебираются значения за in;\\ \verb+do+ \>- Начало цикла определенного for;\\ \verb+done+ \>- Конец цикла определенного for;\\ \end{tabbing} \subsubsection{Специальные переменные} \begin{tabbing} VPATH \qquad \=- Описывает список каталогов для поиска зависимостей;\\ CC \>- Указывает компилятор языка С;\\ СXX \>- Указывает компилятор языка С++;\\ СFLAGS \>- Указывает флаги компилятора С;\\ CXXFLAGS \>- Указывает флаги компилятора С++;\\ LDLIBS \>- Описывает опции линкера;\\ \end{tabbing} \subsubsection{Автоматические переменные} \begin{tabbing} \verb+`command`+ \=- Вставить в сценарий выхлоп команды ;\\ \verb+$@+ \>- Имя цели обрабатываемого правила;\\ \verb+$<+ \>- Имя первой зависимости обрабатываемого файла;\\ \verb+$^+ \>- Список зависимостей обрабатываемого правила; \end{tabbing} \subsection{Makefile.am} \begin{tabbing} bin_PROGRAMS \qquad \=- Определяет имя программы;\\ _SOURCES \>- Определение исходников от которых зависит программа;\\ CXX \>- Имя C++ компилятора;\\ CXXFLAGS \>- Определение опций С++ компилятора;\\ AUTOMAKE_OPTIONS - Определение опций automake:\\ \quad foreign \>- Не требовать создания файлов документации;\\ \end{tabbing} \subsection{configure.in} \begin{tabbing} AC_INIT(file) \qquad \=- Инициализация скрипта и проверка на наличие исходников;\\ AC_CONFIG_AUX_DIR(dir) - Использовать скрипты типа install-sh из каталога ;\\ AM_INIT_AUTOMAKE(prog, 1.0) - Определение имени и версии проекта;\\ AC_PROG_CC \>- Проверка наличия С компилятора;\\ AC_PROG_CXX \>- Проверка наличия С++ компилятора;\\ AC_OUTPUT([file ... [, extra-cmds [, init-cmds]]]) - Создаёт выходные файлы типа Makefile\\ \> (копирует входной file.in и подставляет значения переменных).\\ \> extra-cmds - дополнительные команды с их инициализацией в init-cmds;\\ AC_OUTPUT_COMMANDS(extra-cmds [, init-cmds]]) - extra-cmds - дополнительные команды с их инициализацией\\ \> в init-cmds. Выполняются в конце config.status;\\ \end{tabbing} \subsection{Сonfigure} \begin{tabbing} - -bindir \qquad \=- Директория для исполняемых файлов;\\ - -build \>- Платформа сборки;\\ - -cache-file \>- Файл для помещения результатов проверок;\\ - -datadir \>- Директория для хранения файлов данных;\\ - -enable-...(--disable-...) - Включить(выключить):\\ - -exec-prefix \qquad \=- Похож на опцию - -prefix\\ \pushtabs \quad \= altivec \qquad \=- Включение PowerPC специализированной функции;\\ \> cpp \>- Включить препроцессор для C;\\ \> languages \>- Включить языки компиляторов(c, c++, f77, java ... );\\ \> libgcj \>- Включить библиотеку для java;\\ \> nls \>- Включить NLS;\\ \> shared \>- Использовать динамические библиотеки;\\ \> target-optspace - Включить оптимизацию размера в ущерб быстродействия;\\ \> threads \>- Включить использование потоков или указать библиотеку потоков;\\ \poptabs - -help \>- Список всех опций командной строки;\\ - -host \>- Имя платформы домашнего(host) компьютера;\\ - -includedir \>- Директория заголовочного файла;\\ - -infodir \>- Директория информации типа ;\\ - -libdir \>- Директория библиотек;\\ - -mandir \>- Директория c руководствами;\\ - -no-create \>- Не создавать конечные файлы;\\ - -norecursion \>- Не вызывать вложенные configure;\\ - -prefix \>- Директория корневого каталога;\\ - -sbindir \>- Директория для системных исполняемых файлов;\\ - -silent \>- Подавляет вывод результатов исполнения на экран;\\ - -srcdir \>- Каталог исходных текстов;\\ - -sysconfdir \>- Каталог данных только для чтения(/etc);\\ - -target \>- Имя целевой платформы;\\ - -tmpdir \>- Каталог для хранения временных файлов Configure;\\ \end{tabbing} \subsection{RPM *.spec} \subsubsection{Макрокоманды} \begin{tabbing} \qquad \= \%description \hspace{1em} \=- Полное описание пакета.\\ \> \%prep \>- Подготовка архива. Задаются команды для извлечения исходного текста программы и\\ \> \> его распаковки.\\ \> \%setup \>- Макрокоманда извлечения файлов из архива (-n - каталог приёмник).\\ \> \%build \>- Макрокоманда компилирования (обычно задаётся make).\\ \> \%files \>- Задаёт список файлов, входящие в состав пакета.\\ \> \%config \>- Задаёт список файлов, которые будут помещены в каталог /etc.\\ \> \%doc \>- Задаёт список файлов, которые будут помещены в каталог документации.\\ \> \%install \>- Этап установки программного обеспечения. Задаются команды установки фыйлов.\\ \> \%pre \>- Действия которые будут выполнены до инсталяции пакета.\\ \> \%post \>- Действия которые будут выполнены после инсталяции пакета.\\ \> \%preun \>- Действия которые будут выполнены перед удалением пакета.\\ \> \%postun \>- Действия которые будут выполнены после удалением пакета.\\ \> \%clean \>- Удаления дерева BUILD.\\ \> \%changelog \>- Содержит log изменения spec файла.\\ \end{tabbing} \subsubsection{Переменные окружения} \begin{tabbing} \qquad \= \$RPM_BUILD_ROOT \hspace{1em} \=- Корень исходников данного пакета.\\ \> \$RPM_OPT_FLAGS \>- Дополнительные опции переданые команде rpmbuild.\\ \end{tabbing} \subsection{/etc/syslog.conf} \verb+[!NameProg] .[op][;.] + \\ \quad где - Имя программы посылающей сообщения;\\ \quad где - категория журналированния: \begin{tabbing} \qquad \= auth \hspace{3em} \=- Все что связано с авторизацией;\\ \> authpriv \>- Тоже что и auth, но приватные данные;\\ \> console \>- Сообщения печатаемые на системной консоли;\\ \> cron \>- Сообщения от системного планировщика;\\ \> daemon \>- Ловушка для сообщений от всех остальных системных демонов;\\ \> ftp \>- Действия ftp - сервера;\\ \> kern \>- Сообщения от ядра;\\ \> lpr \>- Сообщение от системы печати;\\ \> mail \>- Сообщения от почтовой системы;\\ \> mark \>- Для помещения сообщений каждые 20 минут;\\ \> news \>- Сообщения от сервера новостей;\\ \> ntp \>- Сообщения от сервера точного времени;\\ \> security \>- Сообщения от различных служб безопасности;\\ \> syslog \>- От самой системы журналированния;\\ \> user \>- Сообщения от пользовательских программ без указания категории;\\ \> uucp \>- Сообщение от UUCP;\\ \> local[n] \>- Зарезервированные категории для администратора системы (n=0..7) \end{tabbing} \quad где - Уровень детализации: \begin{tabbing} \qquad \= emerg \hspace{3em} \=- Панике;\\ \> alert \>- Опасно;\\ \> crit \>- Критично;\\ \> err \>- Ошибки;\\ \> warning \>- Предупреждения;\\ \> notice \>- Замечания;\\ \> info \>- Общая информация;\\ \> debug \>- Отладка;\\ \> none \>- Ничего не записывать; \end{tabbing} \quad где - Метод журналированнияе. При отсутствие выводит сообщения указанного и более высокого уровня: \begin{tabbing} \qquad \= = \quad \=- Указанного уровня;\\ \> < \>- Меньше указанного уровня;\\ \> > \>- Больше указанного уровня; \end{tabbing} \quad где - Имя файла для лога. Может также быть указателем на другую машину (@server.org) для журналирования на ней. А также передавать сообщения через канал другому приложению (|/usr/bin/messcheck.pl). \subsection{/etc/modules.conf} alias [class] [module] - Определяет модуль/драйвер, как определенный класс устройств;\\ alias [class] off - Обозначает, что этому классу не соответствует ни одно устройство;\\ options [класс или модуль] [значение1] [значение2] - Определяет дополнительные параметры модуля;\\ pre-install [класс или модуль] command - Выполняет программу перед инсталляцией модуля;\\ post-install [класс или модуль] command - Выполняет программу после инсталляции модуля;\\ pre-remove [класс или модуль] command - Выполняет программу перед удалением модуля;\\ post-remove [класс или модуль] command - Выполняет программу после удаления модуля;\\ \subsection{Команды "sed" и команды : в VI} Пример выделение частоты процессора:\\ \quad \verb+cat -n "/proc/cpuinfo | sed -n "/cpu MHz[^ ]*[ ]*\([^ ]*\).*/s//\1/p"+ Запросы: \begin{tabbing} \quad \= a \qquad \=- Вставить текст после текущей строки;\\ \> c \>- Заменить указанные строки;\\ \> d \>- Исключить текущую строку;\\ \> e \>- Открыть для редактирования указанный файл с проверкой старого;\\ \> E \>- Начать редактирование файла без проверки;\\ \> f \>- Напечатать имя редактируемого файла;\\ \> g \>- Применить указанный запрос ко всем строкам;\\ \> i \>- Вставить текст перед текущей строкой;\\ \> j \>- Объединить строки;\\ \> k \>- Поменять строки;\\ \> l \>- Напечатать строку;\\ \> m \>- Переставить группу строк в другое место;\\ \> n \>- Напечатать строки вместе с их номерами;\\ \> p \>- Напечатать строки;\\ \> q \>- Выйти из редактора с проверкой сохранения текущего файла;\\ \> Q \>- Выйти без проверки;\\ \> r \>- Считать файл в буфер;\\ \> s \>- Заменить текст в пределах строки;\\ \> t \>- Скопировать группу строк;\\ \> u \>- Аннулировать результат последней замены s;\\ \> v \>- Применить указанный запрос ко всем строкам не содержащим заданный образец;\\ \> w \>- Записать группу строк в файл;\\ \> W \>- Дозаписать группу строк в конец файла;\\ \> = \>- Напечатать номер строки;\\ \> ! \>- Выполнить системную команду;\\ \> + \>- Шаг вперёд на одну строку;\\ \> - \>- Шаг назад на одну строку; \end{tabbing} Выражения: \begin{tabbing} \quad \= \verb+.+ \qquad \=- Любая литера, кроме новой строки;\\ \> \verb+[s]+ \>- Любая литера из цепочки s;\\ \> \verb+[^s]+ \>- Любая литера не входящая в цепочку s;\\ \> \verb+e*+ \>- Все соседние вхождения;\\ \> \verb+\(e\)+ \>- Выделить подвыражение. На подвыражение можно ссылаться используя \verb+\n+;\\ \> \verb+\n+ \>- n-е выделенное подвыражение;\\ \> \verb+^+ \>- Начало строки;\\ \> \verb+$+ \>- Конец строки;\\ \> \verb+\с+ \>- Заэкранировать специальный символ; \end{tabbing} Адреса: \begin{tabbing} \quad \= \verb+.+ \qquad \=- Текущая строка;\\ \> \verb+n+ \>- n-я строка;\\ \> \verb+$+ \>- Последняя строка редактируемого текста;\\ \> \verb+'x+ \>- Строка, помеченная меткой x;\\ \> \verb+/e/+ \>- Ближайшая следующая строка, содержащая e;\\ \> \verb+?e?+ \>- Ближайшая предыдущая строка, содержащая e; \end{tabbing} \subsection{Комманды AWK} Формат записи: \verb+awk '{print $2,$1}'+ \begin{tabbing} \verb+print $1,$3+ \qquad \=- Печатает указанные поля, разделённые пробелом, для всех строк;\\ \verb+printf "%s/*\n", $2+ - Печать форматированных данных;\\ \end{tabbing} \subsection{Параметры ядра} \begin{tabbing} root=/dev/hda \quad \=- Расположение корневого раздела;\\ ro, rw \>- Режим монтирования - только для чтения или полный;\\ hdd=ide-scsi \>- На каком ide диске эмулировать scsi;\\ init=/bin/bash \>- Программа выполняемая сразу после загрузки ядра;\\ syngle \>- Загрузится в одиночном режиме;\\ 1,3,5 \>- Режим загрузки INIT:\\ \> 1 - однопользовательский;\\ \> 3 - многопользовательский без GUI;\\ \> 5 - многопользовательский c GUI; \end{tabbing} \subsection{CVS} Репозиторий в CVS хранит полные копии всех файлов и каталогов, находящихся под контролем версий.\\ \textbf{export CVSROOT=/home/Roman/progects/CVS_R} - Указание на каталог, где находится репозиторий CVS.\\ \textbf{export CVSROOT=:pserver:user@serv.comp.org:/CVS_R} - Указание на удалённый репозиторий.\\ \textbf{cvs -d /usr/local/cvsroot init} - Создание пустого репозитория.\\ \textbf{cvs -d:pserver:user@serv.comp.org:/usr/local/cvsroot init} - Создание пустого репозитория на удалённом сервере.\\ \textbf{cvs import MyProg MyName start} - Импортирует проект MyProg от имени создателя MyName в CVS.\\ \textbf{cvs -z 3 co tc} - Експорт проекта tc для работы над ним. В результате чего будет создан каталог `tc', в который будут помещены все файлы с исходными текстами c уровнем компресии 3.\\ \textbf{cvs co -r revise Prog} - Загрузить дерева проекта с ревизией(тегом) .\\ \textbf{cvs up} - Синхронизация исходных текстов со всеми изменениями (выполнять перед фиксацией своих изменений).\\ \textbf{cvs up -r revise} - Привести содержимое дерева в соответствии с ревизией .\\ \textbf{cvs ci backend.c -r revise} - Зафиксировать изменения в backend.c и запускает редактор (ENV: CVSEDITOR), чтобы ввести журнальную запись об изменениях.\\ \textbf{cvs ci -r revise} - Зафиксировать изменения в дереве под ревизией для всего дерева.\\ \textbf{cvs tag revise} - Привести вершину дерева к .\\ \textbf{cvs release -d tc} - Выполняет удаления вашей копии проекта и при этом проверяет, что все ваши изменения были зафиксированы.\\ \textbf{cvs log file.cc} - Вывести лог изменений в файле file.cc.\\ \textbf{cvs diff driver.c} - Вывести описание изменений внесенных в файл `driver.c'.\\ \textbf{cvs add readmi.cc} - Внесение файла readmi.cc под контроль CVS.\\ \textbf{cvs rm readmi.cc} - Сообщение CVS о том что файл readmi.cc должен быть удалён из репозитория при следуйщей команде .\\ \section{Права доступа} \begin{tabbing} Read (r) \hspace{3em} \=- [Владелец | группа | другие ] могут:\\ \quad файл \>- читать файл;\\ \quad каталог \>- читать содержимое каталога;\\ Write (w) \>- [Владелец | группа | другие ] могут:\\ \quad файл \>- модифицировать файл;\\ \quad каталог \>- создавать/удалять файлы и каталоги в данном каталоге;\\ Execute(x) \>- [Владелец | группа | другие ] могут:\\ \quad файл \>- запускать файл;\\ \quad каталог \>- делать каталог текущим и запускать в нем запускаемые файлы;\\ Setuid (s):\\ \quad файл \>- Файл запускается от имени владельца файла;\\ \quad каталог \>- не имеет смысла;\\ Setgid (s):\\ \quad файл \>- Файл запускается от имени группы файла;\\ \quad каталог \>- Файлы и каталоги создаваемые в этом каталоге будут иметь туже группу-владельца что и сам\\ \> этот каталог. Кроме того у создаваемых директорий тоже будет установлен этот бит.\\ Sticky (t):\\ \quad файл \>- Указывает системе на необходимость сохранять образ этого файла на swap-устройстве, что\\ \> позволяет быстро его запускать;\\ \quad каталог \>- Файлы в этом каталоге могут стирать только их владельцы; \end{tabbing} %\section{Известные LINUX программы} %\subsection{Офис} %\begin{tabbing} %StarOffice (p) \quad \=- Полнофункциональный офисный пакет от SUN;\\ %OpenOffice \>- Открытый проект базирующийся на StarOffice;\\ %\end{tabbing} %\subsection{Наука} %\begin{tabbing} %Octave \quad \=- Matlab клон;\\ %Scilab \>- Matlab клон;\\ %Tela \>- Matlab клон;\\ %\end{tabbing} %\subsection{CAD} %\begin{tabbing} %QCAD \qquad \=- OSP 2D CAD-программа;\\ %eagle (p) \>- Программа для рисования электронных схем и разводки печатных плат;\\ %VariCAD (p) \>- Подобие AutoCAD (www.varicad.com);\\ %LinuxCAD (p) \>- Подобие AutoCAD;\\ %\end{tabbing} %\subsection{Эмуляторы} %\begin{tabbing} %VMWare (p) \quad \=- Виртуальная машина;\\ %Win4Lin \>- Виртуальная машина;\\ %Bochs \>- Open Source аналог VMWare;\\ %Plex86 \>- Клон Bochs, позволяет увеличить скорость эмуляции за счёт использования\\ % \> специфических x86-инструкций;\\ %Wine \>- Эмулятор Win-машины (полный эмулятор Win32 API);\\ %WineX (p) \>- Тоже что и Wine, но с поддержкой DirectX;\\ %CodeWeavers CrossOver Office - Клон библиотеки Win32 (Позволяет запускать Word, Excel ...);\\ %Dosemu \>- Эмулятор DOS и включает клон MS-DOS - FreeDOS;\\ %User-Mode Linux - "Линукс в пользовательском режиме" Самый универсальный эмулятор!\\ %XZX \>- Полнофункциональный эмулятор ZX-Spectrum;\\ %glukalka \>- Полнофункциональный эмулятор ZX-Spectrum;\\ %\end{tabbing} %\subsection{3D} %\begin{tabbing} %MAYA \quad \=- 3D-редактор;\\ %\end{tabbing} %\subsection{Graphic} %\begin{tabbing} %ImageMagic \quad \=- Очень мощная графическая библиотека (вызвать display);\\ %GIMP \>- Отличный графический редактор;\\ %\end{tabbing} \end{document}