Автор: Роман Савоченко
Примечание: Документ создаётся автором с 2002г. До настоящего момента документ создавался в среде LaTeX. На текущий момент выполняется публикация документа в среде Wiki с последующим оформлением в среде dockbook. LaTeX версию документа можно взять здесь и исходник здесь. Документ оформляется в среде WIKI для привлечения к его развитию пользователей ОС Linux занимающихся изучением ОС Linux и желающих опубликовать свой опыт работы в данной ОС. Разрешается вносить изменения в данный документ с целью исправления обнаруженных ошибок или с целью его дополнения.
/dev/ — содержит специальные файлы устройств:
/etc/ — основная директория конфигурационных файлов:
password — системные пользователи;
profile — профиль системы для BASH (выполняется после регистрации);
rc.d/ — директория системы инициализации init (в стиле UNIX):
sysconfig/ — содержит системные Файлы конфигураций:
security/ — содержит Файлы описывающие безопасность системы:
/proc/ — виртуальная ФС отражающая параметры ядра:
fs/ — содержит файлы с параметрами ФС:
/usr/lib/locale/ — содержит локали различных стран и языков;
/usr/share/locale/ — локализации отдельных программ под конкретный язык;
/usr/share/man/ — страницы помощи man (в том числе и локализованные);
/var/spool/cron/ — задачи пользователей для cron (формируются с помощью "crontab -e" от пользователя);
/var/spool/at/ — задачи пользователей для at;
/home/{user}/ — домашняя директория пользователя:
/etc/ — основная директория конфигурационных файлов:
services — содержит сопоставления номеров портов/сокетов их именам;
sysconfig/ — содержит системные Файлы конфигураций:
xinetd.conf — конфигурация суперсервера Internet (централизованное управление сокетами/портами);
xinetd.d/ — директория содержит файлы конфигураций отдельных сервисов для суперсервера xinetd;
ppp/ — директория содержит конфигурации PPP-соединений:
/etc/ — основная директория конфигурационных файлов:
/usr/lib/kbd/ — содержит файлы необходимые для корректной работы клавиатуры:
/home/{user}/ — домашняя директория пользователя:
/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 сервера конкретного пользователя;
awk — утилита манипуляции файлами данных, выборка и обработка текста;
bg — работа с множеством задач в терминале: перевод остановленной (Ctrl+Z) задачи на задний план;
cal — календарь (за любой год);
cat, zcat — выдает указанные файлы на STDOUT;
cd — смена директории;
cksum — подсчёт контрольной суммы и количества байтов файла;
clear — очистка экрана терминала;
cmp — побайтовое сравнение файлов;
comm — построчное сравнение файлов;
cp — копирование файлов и директорий;
cpio — копирование файлов в архив и из архива (может использоваться для архивов);
cut — вырезает из входного файла столбцы, строки и фракции по разделителю;
date — отображает текущую дату и время;
dd — преобразование, создание и другие манипуляции с файлами в двоичном виде:
ddrescue — утилита настойчивого чтения носителей содержащих ошибки;
echo — выполняет эхо-повтор строки на терминале;
exit — завершить процесс с указанным кодом возврата;
fg — работа с множеством задач в терминале: перевод остановленной (Ctrl+Z) задачи на передний план;
file — определение типа файла, содержит информацию о множестве известных файлов;
find — поиск:
gpg — утилита шифрования и подписывания электронной подписью;
grep — поиск указанной строки в указанных файлах или потоках;
gzexe — архивирование в исполняемый модуль, с распаковкой при запуске;
gzip — компрессия и декомпрессия файлов:
Примеры:
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-пакетами:
-b файл.spec — частичная или полная обработка *.spec файла для сборки пакета:
screen — консольный экранный менеджер - позволяет открывать команды в новом окне того же терминала с возможностью переключения (Ctrl+A), временного отключения (Ctrl+A,D) и восстановления сессии (screen -r);
sed — потоковый редактор;
sleep — усыпляет данный процесс на указанное количество секунд;
slocate — поиск файла по ранее созданной базе (slocate bash);
sort — сортировка данных в файле/потоке;
split/csplit — разбиение/сбор больших файлов на куски;
stat — информация о файле/директории;
strings — выделение символьных сообщений из не текстового файла;
symlinks — утилита обслуживания символьных ссылок в системе;
tar — создание архивов и пакетов;
tail — показывает хвост указанного файла;
test — проверка типов файлов и сравнение значений;
tee — читает из стандартного входа, а затем записывает в стандартный выход и в файл;
touch — обновление/установка отметки времени файла или создание пустого файла, при его отсутствии;
time — определение времени и ресурсов выполнения команды;
tr — трансляция символов (преобразование/замена одних на другие);
tree — дерево части файловой системы;
updatedb — создание и обновление базы данных для команды locate;
vi, vim — очень мощный текстовый редактор с оригинальным управлением;
vimdiff — просмотр сравниваемых файлов в vim;
wc — подсчет количества строк, символов, слов и др. в файле;
which,whereis — показывает полный путь к искомой программе;
adduser, useradd — добавление пользователей в систему;
anacron — периодический запуск программ без чёткой привязки ко времени, но обязательно;
apropos — поиск man-страницы по ключевому слову;
arch — архитектура текущей системы;
at, batch — автоматизация разовых запусков программ в указанное время;
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 для определения переменной окружения и экспортирования её для общей доступности;
fgconsole — номер текущего терминала;
finger,who — информация о всех пользователях системы;
free — информация о состоянии памяти;
fuser — выдает список процессов, использующих указанный файл или сокет, а также позволяет закрывать процессы занимающие ресурс;
getconf — запрос системных конфигурационных переменных, собранных glibc (флаг -a для получения всех переменных);
groupadd — добавление группы пользователей;
groupdel — удаление группы пользователей;
iconv — преобразование содержимого файла из одной кодировки в другую кодировку;
id — информация о пользователе;
info — показать документацию из страниц связанной помощи (GNU-doc);
init — утилита начальной загрузки;
loadkeys — установка раскладки клавиатуры;
locale — получение информацию о настройках локали (/etc/sysconfig/i18n);
localedef — создание новой локали на основе базовой;
login — вход в систему;
logname — имя текущего пользователя;
logrotate — утилита для автоматической упаковки, чистки и другой обработки логов;
lsof — печатать списка открытых в системе файлов, сокетов, каналов, разделяемых библиотек и др.;
man,xman — показать страницу руководства;
mesg — управление доступом на запись к текущему терминалу (для посылаемых сообщений);
mpage — размещение нескольких страниц текста в одной и печать их на PostScript принтере;
ntpdate — утилита синхронизации времени через Internet(www.ntp.org);
passwd — смена пароля пользователя;
popd — извлечь директорию из стека директорий;
pushd — помещение текущей директории в стек директорий;
pwd — получение полного имени текущей директории;
rlogin — вход на удаленную систему;
scp — безопасное копирование файлов посредством ssh:
service — утилита для операций над сервисами в /etc/rc.d/init.d;
set — выполняет операции над переменными окружения (встроенная команда BASH), часто просто устанавливает переменную окружения;
setfont — установка консольного шрифта;
setsid — запуск программы в новой сессии;
sg, newgrp — смена основной группы пользователя, или выполнение команды от имени указанной группы;
slogin — вход в систему по шифрованному протоколу ssh (тоже что и ssh);
ssh — вход в систему по шифрованному протоколу ssh или же удалённый запуск команд:
sshfs — Fuse модуль для монтирования файловой системы через ssh.
stty — получение и установка параметров терминала, переопределение специальных клавиш;
su — смена пользователя текущей сессии или выполнение команды от имени указанного пользователя (по умолчанию root);
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;
cdrecord — запись CD дисков;
cfdisk — конфигурация разделов диска;
edquota — редактирование квот файловой системы;
fdformat — Форматирование дискеты;
fdisk — работа с разделами диска;
fsck — проверка файловой системы указанного типа;
fsck.<fs> — проверка файловой системы типа <fs>;
hdparm — установка параметров дисковой подсистемы;
loadlin.exe — загрузка ядра linux из ОС DOS;
losetup — создание петлевого устройства(loop) с криптованием;
mkfs — создает FS указаного типа как на физический раздел, так и в файл;
mkfs.<fs> — создание FS типа <fs>;
mkisofs — создание ISO образа из каталога;
mount — монтирование файловых систем:
Примеры:
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).
appres — информация о ресурсах X-приложений;
glxingo — информация о расширении GLX (OpenGL);
gnome-session — запуск дисплей-менеджера GNOME(GDM);
import — создаёт снимок X-экрана или конкретного окна;
listres — вывод списка X-ресурсов;
mkfontdir — создает раскодировщик шрифтов в текущем каталоге (из указанного каталога);
showrgb — наименования и значения стандартных цветов;
startkde — запуск оконного менеджера KDE;
startx — скрипт запуска X-сервера;
xdpyinfo — информация о дисплее;
xev — просмотр информации о событиях в окне;
xf86config — конфигурация X-сервера;
xfontsel — выбор шрифтов для X-сервера;
xfs — сервер шрифтов;
xhost — утилита управления доступом удалённых хостов к X-серверу;
xinit — утилита запуска X, а затем указанного приложения (по умолчанию - xterm);
xkill — завершение оконного приложения;
xlsfonts — вывод списка шрифтов X-сервера;
xmag — увеличение части экрана;
xmodmap — изменение раскладки клавиатуры в X;
xosview — выводит основную информацию об ОС;
xprop — вывод реквизитов окна;
xrefresh — перерисовка экрана;
xset — утилита установки параметров X-сервера;
xsetroot — установка вида корневого каталога;
xvidtune — настройка параметров монитора (частоты кадров и строк);
xvinfo — информация о расширении Xv;
xwininfo — показать информацию об указанном окне;
xwd — захват изображения на экране.
alsaconf — установка звуковой карты на подсистеме звука ALSA;
dmesg — протокол обнаружения оборудования ядром системы, как при загрузки, так и в процессе функционирования;
dmidecode — декодер информации BIOS об оборудование системы и самом BIOS;
hwclock — установка/считывание аппаратных часов (CMOS);
kbd_mode — установка режима работы клавиатуры (RAW, MEDIUMRAW, XLATE, UNICODE);
lpr — печать с файла или с потока на указанный принтер;
lpq, lpstat — состояние очереди печати;
lprm — удаление задания печати из очереди;
lscpu — перечень и информация о процессорах в системе;
lshal — перечень оборудования обнаруженного и зарегистрированого в абстрактном слое оборудования HAL;
lshw — мощная утилита сбора информации об оборудовании системы;
lspci — выводит список устройств на PCI - шине;
lsusb — перечень устройств на USB-шине;
pbm* — преобразование, из графического формата *.pdm в формат принтера [*];
pciscan — сканирование PCI-шины и отображение модулей(драйверов) необходимый для работы с устройствами на PCI-шине;
setleds — установка светодиодов на клавиатуре;
setserial — установка/конфигурация COM портов;
setterm — установка параметров терминала;
showkey — утилита для отображения сканкодов клавиш и кодов мапированных системой;
statserial — утилита для контроля за состоянием последовательного(COM) порта;
tunelp — установка параметров параллельного порта;
usbview — утилита для просмотра и конфигурации USB-устройств.
alsamixer — ALSA-микшер;
aumix — консольный AUDIO-микшер;
cdparanoia — позволяет «грабить» Audio-CD;
lame — преобразование *.wav в *.mp3;
mencoder — перекодировка видеофайлов с одного видеоформата в другой;
oggenc — преобразование *.wav в *.ogg;
play — проигрывание звуковых файлов;
rec — запись в звуковой файл.
arp — манипуляция системным ARP кешем (манипуляция аппаратными адресами);
ethereal — мощный анализатор трафика сети;
ettercap — cнифер(нюхатель) сети;
iptraf — мощный и удобный сканер сети;
ifconfig — утилита конфигурации сетевых интерфейсов (eth0, ppp0, lp0 ...);
iftop — контроль общего трафика по интерфейсам;
ip — основная утилита конфигурации роутинга, из IPROUTE2;
ipchains — утилита конфигурации firewall на основе IP-цепочек (ядра 2.2.*);
iptables — утилита конфигурации firewall на основе IP-таблиц (ядра 2.4.*);
lynx — консольный WEB-браузер. Может использоваться для выполнения различных действий над WEB-страницами в скриптах.
minicom, xminicom — установка соединения с другой системой через модем(COM);
netstat — состояние сети (отображает используемые сокеты и их состояния);
nmap,nmapfe — сканер сети и его GUI, можно получить перечень открытых портов и т.д;
nmblookup — утилита работы с NetBIOS (для SMB);
ping — проверка связи с удаленным хостом, путём посылки служебных тестовых сообщений;
route — утилита управление таблицей маршрутизации;
rsync — утилита для работы с протоколом rsinc, который, в свою очередь, используется для синхронизации по сети;
smbclient — утилита для организации клиентских запросов к SMB-серверу;
smbprint — печать на SMB-принтер;
traceroute — проверка прохождения сетевых пакетов через сервера в сети;
tcpdump — дамп TCP протокола, позволяет отслеживать различные запросы;
testparm — проверка конфигурации файла smb.conf для SMB-сервера;
wget — мощная утилита для выкачивания файлов из сети по протоколам: HTTP, HTTPS, и FTP.
mail, mailx — создать сообщение;
mailq — показать очередь отправляемых сообщений;
mutt,pine — консольный почтовый клиент;
newaliases — добавляет новые почтовые алиасы сервера исходящих сообщений;
procmail — утилита автоматизации обработки почтовых сообщений;
sendmail — управление сервером исходящей почты.
depmod — проверка зависимостей модулей (выполняется при добавлении новых модулей);
installkernel — скрипт инсталляции ядра (используется после компиляции ядра - make install);
lsmod — получение списка загруженных и работающих модулей;
insmod — подключение модуля к ядру;
modinfo — получение информации о модуле и его параметрах;
modprobe — утилита управления модулями ядра, без параметров подключает модуль к ядру;
mkinitrd — скрипт автоматического создания загрузочного образа RAM-диска (для подключения к ядру);
powertweak — утилита для тонкого управления настройками ядра (через sysctl);
procinfo — получить информацию о процессах и системе (из /proc);
ramsize — конфигурация размера диска в памяти используемого образом ядра по умолчанию;
rdev — конфигурация корневого каталога используемого образом ядра по умолчанию;
rmmod — отключение модуля от ядра;
sysctl — конфигурация параметров (/proc/sys/) ядра во время его работы;
vidmode — конфигурация видеорежима используемого образом ядра по умолчанию.
aclocal — утилита из инструментария Automake, генерирует макрос aclocal.m4 на основе файла configure.in;
ar — создание/редактирование архивов(статических библиотек) из объектных модулей;
autoconf — утилита из инструментария Autoconf, генерирует скрипт configure на основе configure.in;
automake — утилита из инструментария Automake, генерирует Makefile.in на основе Makefile.am;
cpp — препроцессор языка C (обычно вызывается из gcc);
ctags — генерирует тег-файл для облегчения навигации по коду (используется редактором VIM);
ctrace — для прослеживания выполнение C-программы по операторам;
cxref — анализирует группу .c-файлов и строит для каждого файла таблицу перекрестных ссылок на автоматические, статические и глобальные имена.
dialog — позволяет создавать диалоги в консоли, из скрипта (на основе ncurses);
diff — поиск изменений в сравниваемых текстовых файлах;
f2c — транслирует исходный код программы на языке "Fortran" в исходный код на языке "C";
gcc — GNU коллекция компиляторов языка С,С++,ASM (с вызовом линкера);
gdb — мощный консольный GNU дебагер;
indent — утилита форматирования исходного текста под указанные требования;
lclint — утилита проверки синтаксиса исходных модулей;
ldconfig — активизировать изменения в файле /etc/ld.so.conf;
ldd — показывает динамические библиотеки используемые программой;
lint — обнаруживает в C-программах конструкции, которые могут привести к ошибкам во время выполнения, расточительно используют ресурсы или могут снизить мобильность программ;
ltrace — трассировка динамических библиотек, программы указанной в параметре;
make — используется для организации сложных проектов из десятков файлов;
memprof — программа для определения утечек памяти в программах и др;
mtrace — обработка лога созданного С-функцией mtrace;
nm — используется для получения различной информации из таблицы имен объектных файлов обычного формата;
objdump — позволяет получить много информации об объектном файле, а также дизасемблировать его;
od — печать дампа файла;
p2c — транслирует исходный код программы на языке "Pascal" в исходный код на языке "C";
patch — внесение изменений в файл исходя из файла изменений;
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 из скрипта.
$ cd KernelTree/ #Переход к распакованному корню дерева исходников ядра
$ make config(menuconfig, xconfig) #Конфигурация
$ make dep #Создание файлов зависимостей
$ make clean #Очистка от ранее скомпилированных модулей
$ make bzImage #Компиляция ядра
$ make install #Установка ядра
$ make modules #Компиляция модулей
$ make modules_install #Установка модулей
$ dd if=/dev/zero of=/swap bs=1024 count=8208 #Создание файла необходимого размера для swap
$ mkswap /swap #Инициализация структуры swap в файле
$ /bin/sync #Сброс изменений на диск
$ swapon /swap #Включение swap (отключение - swapoff)
Вариант 1 (обычный):
client$ xinit - :1 #Запустить X-сервер на клиенте (должен запуститься xterm)
client$ xhost +server #Зарегистрировать машину сервера у клиента
client$ telnet server -l UserName #Подключиться к удаленной машине (серверу)
server$ export DISPLAY=client:0.0 #Установить переменную DISPLAY
server$ startkde #Запустить оконный менеджер
client$ xinit - :1 #Запустить X-сервер на клиенте (должен запуститься xterm)
client$ ssh -X UserName@server #Подключиться к удаленной машине (серверу)
server$ startkde #Запустить оконный менеджер
#Включение поддержки XDMCP протокола на стороне сервера
#Для kdm (/etc/X11/kdm/kdmrc): Включить в секции [Xdmcp]
#Выбор удалённой авторизации и входа в диспей-менеджере клиента (xdm, kdm, gdm)
#Для пользователя "root" при рабочем "user"
$ su - #переключение на суперпользователя
$ touch .Xauthority
$ xauth merge ~user/.Xauthority
$ export DISPLAY=:0 #если по умолчанию нет
$ gparted
$ consolechars -f UniCyr_8x16 -m koi8-r;
$ echo -ne "\033(K";
$ loadkeys ru1;
$ fdformat /dev/fd0
$ mkfs.vfat /dev/fd0
$ ckfs.vfat -ta /dev/fd0
$ 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/ #Обычное монтирование шифрованной ФС
$ openssl rand 5 #Генерация последовательности случайных байт
$ openssl ciphers HIGH #Запрос списка алгоритмов для указанного уровня
# Генерация секретного RSA и DSA ключа key.pem, зашифрованного des3.
# В качестве источника случайных данных используется /var/log/messages.
$ openssl genrsa -out key.pem -des3 -rand /var/log/messages 2048
$ openssl dsaparam -rand /var/log/messages -out dsaprm 1024
$ openssl gendsa -out key.pem -idea -rand /var/log/messages dsaprm
# Создание публичного RSA и DSA ключа на основе секретного
$ openssl rsa -in key.pem -out pubkey.pem -pubout
$ openssl dsa -in key.pem -out pubkey.pem -pubout
# Изменение пароля и алгоритма шифрования секретного RSA и DSA ключа, удаление пароля и шифрования
$ openssl rsa -in key.pem -out key1.pem -idea
$ openssl dsa -in key.pem -out key1.pem -des3
$ openssl rsa -in key.pem -out key1.pem
# Симметричное шифрование файла алгоритмом des3 и кодирование base64
$ openssl des3 -in logo.png -out logo.des3
$ openssl base64 -in logo.des3 -out logo.des3.base64
$ openssl des3 -a -in logo.png -out logo.des3.base64
# Декодирование файла из base64 и симметричная дешифрация из des3
$ openssl base64 -d -in logo.des3.base64 -out logo.des3
$ openssl des3 -d -in logo.des3 -out logo.png
$ openssl des3 -d -a -in logo.des3.base64 -out logo.png
# Конвертация ассиметричных ключей и сертификатов с формата PEM в DER и обратно
$ openssl x509 -inform PEM -in key.pem -outform DER -out key.cer
$ openssl rsa -inform PEM -in key.pem -outform DER -out key.der
# Вычисление хеша (md5,sha1 ...)
$ openssl md5 -c ./logo.png
# Подпись файла секретным ключом и проверка ЭЦП публичным ключом, с алгоритмом хеширования md5
$ openssl dgst -sign key.pem -out logo.sign -md5 logo.png
$ openssl dgst -signature logo.sign -verify pubkey.pem -md5 logo.png
# Асимметричная шифрация файла с использованием публичного ключа и дешифрация секретным (RSA)
$ openssl rsautl -in logo.png -out logo.cr -inkey pubkey.pem -pubin -encrypt
$ openssl rsautl -in logo.cr -out logo.png -inkey key.pem -decrypt
# Создание запроса на сертификацию на основе создаваемого секретного ключа, а затем сертификата
$ openssl req -new -key tmp.key -out certreq.csr
$ openssl x509 -req -in certreq.csr -signkey tmp.key -out cert.pem -days 365
# Создание сертификата подписанного собственным секретным ключом и вместе с ключом
$ openssl req -x509 -new -key key.pem -out selfcert.pem -days 365
$ openssl req -x509 -new -keyout cakey.pem -out cacert.pem -days 365
# Просмотр информации сертификата в читабельном виде
$ openssl x509 -in selfcert.pem -noout -text
# Подписывание клиентского сертификата CA сертификатом
$ openssl x509 -req -in client.pem -CA CAcert.pem -CAkey CAkey.pem -CAcreateserial -days 365 -out client1.pem
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 #Подключение к удалённому серверу
$ mkfs /dev/ram0
$ mount /dev/ram0 /mnt/disk
# Запрос состояния устройств зеркала
$ cat /proc/mdstat
# Запрос информации/состояния устройства массива или раздела
$ mdadm -Q /dev/sdb1
# Анализ и получение текущих устройств RAID, обычно для /etc/mdadm/mdadm.conf
$ mdadm --examine --scan
# Создание массива, "missing" для недоступных разделов на данном этапе
$ mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 [/dev/sdb1|missing]
# Добавление раздела в массив
$ mdadm /dev/md0 --add /dev/sdb1
# Останов массива
$ mdadm -S /dev/md0
# Установка признака "FAIL" для возможности отключения
$ mdadm --manage /dev/md0 --fail /dev/sdb1
# Удаление раздела из массива, на профилактику
$ mdadm --manage /dev/md0 --remove /dev/sdb1
# Добавление раздела в массив, после замены
$ mdadm --manage /dev/md0 --add /dev/sdb1
$ 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
# Включение пакетного режима. Для оптических носителей всех типов.
$ 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 # Обычное монтирование устройства. Т.е совершенно прозрачно и стандартно!
$ screen # Запуск терминального экранного менеджера
$ wget ftp://workserv.org/mydownloadfile.iso # Запуск задачи
Ctrl+A D # Отключение экрана от терминала (выполнение в фоне)
$ screen -r # Подключение к фоновому терминалу.
#Создание VPS из шаблона
$ vzctl create 101 --ostemplate altlinux-4.0 --config vps.basic
#Удаление VPS
$ vzctl destroy 101
#Получить перечень всех VPS
$ vzlist -a
#Установка имени VPS
$ vzctl set 101 --name vps101 --save
#Установка общих параметров VPS: onboot, hostname, nameserver, searchdomain, userpassword
$ vzctl set 101 --onboot yes --save
$ vzctl set 101 --hostname test101.my.org --save
$ vzctl set 101 --nameserver 192.168.1.165 --save
$ vzctl set 101 --searchdomain my.org --save
$ vzctl set 101 --userpasswd root:test
#Конфигурация venet
$ vzctl set 101 --ipadd 10.10.186.1 --save
#Конфигурация veth
$ vzctl set 101 --netif_add eth0 --save
#Запуск и останов VPS
$ vzctl start 101
$ vzctl stop 101
#Исполнение команды внутри VPS ("ls /root")
$ vzctl exec 101 ls /root
#Административный вход на VPS сервер
$ vzctl enter 101
#Установка возможностей VPS
$ vzctl set 101 --capability sys_time:on --save # Возможность менять системное время
#Просмотр лимитов VPS и их нарушений
$ vzctl exec 101 cat /proc/user_beancounters
#Установка лимитов VPS (kmemsize, lockedpages, privvmpages ...)
$ vzctl set 1 --dgramrcvbuf 1512000:1520000 --save
#Установка доступа к устройствам (/dev)
$ vzctl set 101 --devnodes ttyS0:rw --save
$ vzctl set 101 --devices b:8:16:rw --devices b:8:17:rw --devices b:8:18:rw --save
# Указание на каталог, где находится репозиторий CVS.
$ export CVSROOT=/home/Roman/progects/CVS_R
# Указание на удалённый репозиторий.
$ export CVSROOT=:pserver:user@serv.comp.org:/CVS_R
# Создание пустого репозитория.
$ cvs -d /usr/local/cvsroot init
# Создание пустого репозитория на удалённом сервере.
$ cvs -d:pserver:user@serv.comp.org:/usr/local/cvsroot init
# Импортирует проект MyProg от имени создателя MyName в CVS.
$ cvs import MyProg MyName start
# Экспорт проекта tc для работы над ним. В результате чего будет создан каталог `tc', в который будут помещены все файлы.
$ cvs -z 3 co tc
# Загрузить дерева проекта с ревизией(тегом) <revise>.
$ cvs co -r revise Prog
# Синхронизация исходных текстов со всеми изменениями (выполнять перед фиксацией своих изменений).
$ cvs up
# Привести содержимое дерева в соответствии с ревизией <revise>.
$ cvs up -r revise
# Зафиксировать изменения в backend.c и запускает редактор (ENV: CVSEDITOR), чтобы ввести журнальную запись об изменениях.
$ cvs ci backend.c -r revise
# Зафиксировать изменения в дереве под ревизией <revise> для всего дерева.
$ cvs ci -r revise
# Привести вершину дерева к <revise>.
$ cvs tag revise
# Выполняет удаления вашей копии проекта и при этом проверяет, что все ваши изменения были зафиксированы.
$ cvs release -d tc
# Вывести лог изменений в файле file.cc.
$ cvs log file.cc
# Вывести описание изменений внесенных в файл `driver.c'.
$ cvs diff driver.c
# Внесение файла readmi.cc под контроль CVS.
$ cvs add readmi.cc
# Сообщение CVS о том что файл readmi.cc должен быть удалён из репозитория при следуйщей команде <ci>.
$ cvs rm readmi.cc
# Получить содержимое в ветви репозитория
$ svn list svn://rep.org/trunk
# Загрузка локальной копии репозитория
$ svn checkout svn://rep.org/trunk/project
# Получение состояния модификации локальной копии репозитория
$ svn status
# Получение изменений в виде патча
$ svn diff
# Добавить файл или директорию в репозиторий
$ svn add ./new.file
# Удалить файл или директорию из репозитория
$ svn delete ./rem.file
# Принять локальные изменения и отправить их на сервер
$ svn commit -m "Changes message"
# Копирование участка репозитория, включая и локальные, а также для создания новой ветви или тега.
$ svn copy svn://rep.org/trunk/project svn://rep.org/branch/project_user
# Объединение изменений ветви, указанной ревизии, с локальной копией другой ветви
$ svn merge -c 1222 svn://rep.org/trunk/project
# Посмотреть историю репозитория
$ svn log
# Инициализация текущей директории как новый пустой репозиторий.
$ git init
# Добавить удалённый репозиторий для загрузки локальной копии
$ git remote add origin user1@gitserver:/home/repo/alpha.git
# Загрузка локальной копии репозитория
$ git clone git://git.server.org/rep.git
# Добавить изменения, новые файлы и удаление старых.
$ git add .
# Получение состояния репозитория
$ git status
# Посмотреть внесённые изменения
$ git diff --cached
# Принять локальные изменения, превращение временного состояния индекса в постоянное
$ git commit -am "Changes message"
# Сформировать GIT-патч принятых локальных изменений
$ git format-patch -1
# Выгрузить локальные изменения
$ git push
# Добавление тега
$ git tag -sm "Tag 0.1.0 message" tag-name-0.1.0
# Выгрузить локальные теги
$ git push origin --tags
# Получение списка всех веток
$ git branch
# Создание новой ветки
$ git branch experimental
# Удаление ветви
$ git branch -d experimental
# Переключиться на другую ветку
$ git checkout experimental
# Объединить изменения в ветви experimental с текущей веткой локального репозитория
$ git merge experimental
# Получить изменения из другого репозитория и объединить их с текущим
$ git pull git://git.server.org/rep.git
# или
$ git fetch git://git.server.org/rep.git
$ git merge git://git.server.org/rep.git
# Посмотреть историю репозитория
$ git log
Расширенные команды работы в инфраструктуре ALTLinux Git/Gear
# Создать удалённый репозиторий в инфраструктуре
$ ssh git.alt init-db alpha
# Поиск пакета в инфраструктуре
$ ssh git.alt find-package <pattern>
# Клонировать репозиторий в инфраструктуре
$ ssh git.alt clone <path to git repository> [<destination directory>]
# Перемещение репозитория в инфраструктуре
$ ssh git.alt mv-db <path to source directory> <path to destination directory>
# Удаление репозитория
$ ssh git.alt rm-db <path to git repository>
$ 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 #Установка программы
b – блочные;
c – символьные;
- – обычный файл;
d – каталог;
l – символьная ссылка;
p – именованный канал;
s – сокет;
null – Нулевое устройство, данные в котором исчезают;
full – Имитация полного устройства, при записи и генерация нулей, при чтении (для отладки программ);
port – Порты IO;
zero – Неисчерпаемый источник нулей;
random – Источник случайных чисел (медленный; более случайный);
urandom – Источник случайных чисел (быстрый; менее случайный);
psaux – Порт мыши PS/2;
scd[x] – SCSI устройства (x=0..n);
sg[x] – Обобщенные устройства SCSI аппаратуры (x=0..n);
hd[x][y] – Стандартное IDE устройство, где x отдельное устройство, y – раздел устройства (x=a..z; y=1..n);
fd[*] – Флоппи устройство;
loop[x] – Петлевые устройства (x=0..n);
mem – Физическая память;
kmem – Виртуальная память ядра;
tty – Управляющий терминал выполняемого процесса;
tty[y][x] – Терминальные устройства (y=S – COM порты);
vcs[x] – Получение снимка экрана виртуальной консоли <x> (x=0..n);
vcsa[x] – Получение снимка экрана виртуальной консоли <x> с заголовком и байтами атрибутов (x=0..n);
eth[x] – Интерфейс сети Ethernet (различные сетевые карты) (x=0..n);
sl[x] – Интерфейсы для связи по протоколу SLIP (x=0..n);
lp[x] – Параллельные порты (x=0..n);
ram[x] – Виртуальный диск, в памяти (x=0..n);
ramdisk – -//-
sndstat – Состояние звукового драйвера;
audio[x] – Устройство звукового вывода, совместимое с форматом Sun (x=0..n);
dsp[x] – Устройство квантования звука (x=0..n);
mixer[x] – Для управления микшерными аппаратными средствами на звуковой плате (x=0..n);
music – Интерфейс высокого уровня для последовательного воспроизведения звука;
midi[x] – Устройство непосредственного доступа к Миди-порту (x=0..n).
Основные:
Навигация:
Редактирование:
Ctrl+Alt+F[n] — Переключение между псевдотерминалами
Ctrl+Alt+<+> — Сменить разрешение на следующее (прописаных в XF86Config)
Ctrl+Alt+<-> — Сменить разрешение на предыдущее (прописаных в XF86Config)
Ctrl+Alt+ESC — Режим удаления указанного окна
Ctrl+Alt+BkSpc — Закрыть текущий X сервер
MidlMouse — Вставляет текст, выделенный в данный момент в другом месте
Alt+Tab — Переход между окнами в прямом направлении
Alt+Sh+Tab — Переход между окнами в обратном направлении
Ctrl+Tab — Переход между рабочими столами в прямом направлении
Ctrl+Sh+Tab — Переход между рабочими столами в обратном направлении
Ctrl+Esc — Показать таблицу активных процессов (ksysguard)
Alt+F1 — Вызвать K-меню
Alt+F12 — Эмулировать мышь стрелками клавиатуры
Alt+LeftMouse — Перенести окно схватив его за любую видимую его часть
Alt+PrScreen — Сделать снимок текущего окна в буфер обмена
Ctrl+Alt+l — Запереть рабочий стол
Ctrl+Alt+d — Спрятать/показать рабочий стол
r — Отключает режим непосредственной передачи символов с клавиатуры и устанавливает её в режим XLATE
k — Уничтожает все процессы на текущей виртуальной консоли
b — Немедленно перезапускает систему
o — Отключить питание системы через АРМ
s — Синхронизировать все файловые системы
u — Демонтирует и перемонтирует все смонтированные файловые системы в режиме только для чтения
p — Вывести текущее значение регистров и флагов на консоль
t — Вывести список текущих задач и информацию о них на консоль
m — Вывести текущее состояние памяти на консоль
0–9 — Устанавливает уровень выдачи сообщений на консоль для фильтрации сообщений ядра
e/i — Посылает сигналы term или kill всем процессам, кроме init
l — Посылает SIGKILL всем процессам, включая init
Секция "InputDevice" - описание устройств ввода (клавиатур, манипуляторов мышь)
Identifier - идентификатор устройства ввода
Driver - драйвер устройства ввода:
Option - опция:
Секция "Monitor" - описание монитора
Identifier - идентификатор монитора
DisplaySize - размер дисплея (пропорции - 320 240)
Option - опция:
Секция "Device" - описание устройства видеовывода
Identifier - идентификатор видеокарты
Driver - драйвер видеокарты (nv, nvidia, radeon, fglrx, ...)
Секция "Screen" - описание экрана
Identifier - идентификатор экрана
Device - идентификатор устройства видеовывода, видеокарта (описана в секции "Device")
Monitor - идентификатор монитора (описан в секции "Monitor")
DefaultDepth - глубина цвета устанавливаемая по умолчанию
SubSection "Display" - подсекция экрана (описывает допустимые разрешения с глубинами цвета):
Секция "ServerLayout" - обобщающая конфигурационная секция (корень)
Identifier - идентификатор сервера
Screen - идентификатор экрана используемого сервером (описан в секции "Screen")
InputDevice - идентификатор устройства ввода (описано в секциях "InputDevice")
Секция "Module" - секция описания дополнительных модулей расширения
Load - загрузка указанного модуля:
Управление звуком:
\007 - издать звук;
\033[10;#] - установить частоту звукового сигнала в герцах;
\033[11;#] - установить продолжительность звукового сигнала в миллисекундах.
Управление цветом:
\033[0m - все атрибуты по умолчанию;
\033[1m - жирный шрифт (интенсивный цвет);
\033[2m - полу яркий цвет (тёмно-серый, независимо от цвета);
\033[4m - выделение (ярко-белый, независимо от цвета);
\033[5m - мигающий;
\033[7m - реверсия (знаки приобретают цвет фона, а фон - цвет знаков);
\033[22m - установить нормальную интенсивность;
\033[24m - отменить подчеркивание;
\033[25m - отменить мигание;
\033[27m - отменить реверсию;
\033[30 - чёрный цвет знаков;
\033[31 - красный цвет знаков;
\033[32 - зелёный цвет знаков;
\033[33 - коричневый цвет знаков;
\033[34 - синий цвет знаков;
\033[35 - фиолетовый цвет знаков;
\033[36 - цвет морской волны знаков;
\033[37 - серый цвет знаков;
\033[40 - чёрный цвет фона;
\033[41 - красный цвет фона;
\033[42 - зелёный цвет фона;
\033[43 - коричневый цвет фона;
\033[44 - синий цвет фона;
\033[45 - фиолетовый цвет фона;
\033[46 - цвет морской волны фона;
\033[47 - серый цвет фона.
Управление положением курсора
\033[#A - передвинуть курсор вверх на # строк;
\033[#B - передвинуть курсор вниз на # строк;
\033[#С - передвинуть курсор вправо на # столбцов;
\033[#D - передвинуть курсор влево на # столбцов;
\033[#E - передвинуть курсор вниз на # строк и поставить в начало строки;
\033[#F - передвинуть курсор вверх на # строк и поставить в начало строки;
\033[#G - переместить курсор в указанный столбец текущей строки;
\033[#;#H - задает абсолютные координаты курсора (строка, столбец).
Управление палитрой
\033]Pnrrggbb - изменяет палитру. n - номер цвета; rr, gg и bb - значения RGB-компонент в шестнадцатеричной форме;
\033]R - восстанавливает палитру, принятую по умолчанию.
Управление виртуальными консолями
\033[12;#] - сделать текущей консоль с указанным номером.
Управление xterm
\033]0;text\007 - присваивает имя окну и иконке;
\033]1;text\007 - присваивает имя иконке;
\033]2;text\007 - присваивает имя окну.
Общее
\033c - сброс терминала;
\033(K - переключение на загружаемый шрифт.
![numb] -- запуск строки <numb> из истории (history);
!str -- запуск ближайшей строки соответствующей маске str из истории (history);
\ -- продолжение текущей строки на другой строке или экранирование специального символа после данного символа (\$);
; -- разделитель команд;
() -- выполнения сценария в скобках в другой подоболочке;
(()) -- включение выражений с "С" синтаксисом;
[] -- включение условных операций с синтаксисом команды test;
"pwd" -- определение строки с разрешением подстановки значений переменных;
'pwd' -- определение строки с запрещением подстановки значений переменных;
`pwd` -- результат выполнения команды pwd;
$(x) -- выполнение команды x и возврат результата (подобно `x`);
x=pwd -- определение переменной окружения x и присвоение ей строки pwd;
x='34' -- определение переменной окружения x и присвоение ей строки '34';
x[2]=pwd -- определение массива x и присвоение его элементу 2 строки pwd;
x=(zero one two three) -- определение массива x и заполнение четырех его элементов;
x=([0]=zero [3]=three [2]=two [1]=one) -- определение массива x и заполнение четырех его элементов по выбору;
$(( 100/3 )), $[100/3] -- выполнение простых целочисленных операций.
$x, ${x} -- подстановка значения переменной/параметра x
${!x} -- косвенная подстановка значения переменной/параметра указанного в x;
${#x} -- косвенная подстановка значения переменной/параметра указанного в x,
${x:?"Error, no bar"} -- генерировать ошибку если x не определена или равна нулю;
${x?"Error, no bar"} -- -//-;
${x:="foose"} -- присвоить значение по умолчанию если x не определена или равна нулю;
${x="foose"} -- -//-;
${x:offset:lenght}, ${x:offset} -- возвращает часть от x начиная с offset длиной lenght;
${x:+"foose"} -- если переменная определена то вместо неё используется "foose";
${x+"foose"} -- -//-;
${x:-"foose"} -- если переменная определена то она используется иначе используется "foose";
${x-"foose"} -- -//-;
${пар#шабл} -- ??
${пар##шабл} -- ??
${пар%шабл} -- ??
${пар% %шабл} -- ??
${пар/шабл/стр} -- заменяется первая, самая длинная подстрока значения параметра, на указанную строку;
${пар/ /шабл/стр} -- заменяются все самые длинные подстроки значения параметра, на указанную строку;
${array[@]} -- обращение сразу ко всему массиву;
$'\n' -- вставка управляющего символа в строку;
Comm && -- выполняет действие после выражения если команда <Comm> неудачна;
Comm || -- выполняет действие после выражения если команда <Comm> удачна;
MYVAR#*fo -- отсекает от начала переменной MYVAR самую короткую часть удовлетворяющую маске *fo;
MYVAR##*fo -- отсекает от начала переменной MYVAR самую длинную часть удовлетворяющую маске *fo;
MYVAR%fo* -- отсекает от конца переменной MYVAR самую короткую часть удовлетворяющую маске fo*;
MYVAR% %fo* -- отсекает от конца переменной MYVAR самую длинную часть удовлетворяющую маске fo*;
MYVAR:2:5 -- возвращает часть строки MYVAR которая начинается с 2 символа и заканчивается 5;
$# -- количество фактических аргументов;
$- -- флаги (однобуквенные), указанные при запуске shell или установленные посредством set.
$? -- код возврата последней команды;
$$, $PPID -- PID текущего процесса (скрипта);
$! -- PID последнего запущенного фонового процесса;
$* -- раскрывает единственное слово, содержащее список всех позиционных парам;
$@ -- ссылка на все аргументы команды отделенные пробелами;
$0 -- имя команды в командной строке;
$n, ${n} -- аргумент n командной строки (n = 1...);
PWD -- текущий рабочий каталог;
UID -- цифровой идентификатор текущего пользователя;
umask -- содержит маску прав доступа по которой создаются новые файлы;
BASH -- полный путь вызова BASH;
BASH_VERSION -- версия данного экземпляра BASH;
EDITOR -- содержит имя редактора используемого для редактирования некоторых конфигурационных файлов;
PAGER -- содержит имя программы для отображения информационных страниц (типа more);
SHLVL -- количество запущенных BASH;
REPLY -- содержит последнюю строку ввода;
RANDOM -- содержит случайное число в диапазоне 0..32767;
SECONDS -- время в секундах от запуска BASH;
HISTCMD -- номер текущей команды в истории;
IFS -- цепочка символов разделителей полей;
PATH -- пути поиска команд;
HOME -- домашний каталог текущего пользователя;
MAIL -- имя файла в который поступает электронная почта;
LOGNAME -- имя пользователя использованное для входа в систему;
SHELL -- имя интерпретатора команд;
LD_LIBRARY_PATH -- описания пользовательских путей к динамическим библиотекам;
DISPLAY -- описывает адрес дисплея для X-приложений;
LANG -- переменная локали;
TERM -- тип пользовательского терминала;
INPUTRC -- содержит имя файла параметров для библиотеки readline, определяющей параметры ввода с клавиатуры;
PS1,PS2 -- описывает вид приглашения в командной строке;
TZ -- информация о часовом поясе;
MALLOC_CHECK_ -- указывает что делать с ошибками в функциях malloc, free:
MALLOC_TRACE -- определяет путь для команды mtrace и функции в программе mtrace;
& -- выполнить команду до него в фоновом режиме;
if [ Condition ] -- условный оператор ( if ( Condition ) - tch);
then -- тело выполнения условия;
else -- тело невыполнение условия;
elif [ Condition ] -- совмещенная команда else if;
fi -- окончание условного оператора;
for x in 1 2 3 4 -- оператор цикла, в x перебираются значения за in ( foreach x (1 2 3 4) - tch ). Общая структура циклов:
while [ Condition ] -- выполняет цикл пока верно условие Condition ( while ( Condition ) -tch );
until [ Condition ] -- выполняет цикл до равенства условия Condition;
(repeat x expression - tch ) -- выполняет повторение выражения <expression> x раз;
select x in list; -- запрашивает выбор из списка <list> и присваивает выбранное значение переменной <x>;
do -- начало тела цикла определенного for, while, until;
done -- конец тела цикла определенного for, while, until;
break -- завершение цикла;
continue -- продолжение цикла сначала;
case x in -- команда выбора. Имеет структуру:
function func() { } -- определяет функцию с именем func;
func a1 a2 a3 -- вызов функции;
. file -- выполнить все команды в файле после точки;
eval [attr] -- выполнить команду заданную аргументами;
exec [prog] -- сменить программу текущего процесса указанной, т.е. выполнить в данном процессе новую программу;
exit n -- выход из сценария с кодом <n>;
shift [n] -- сдвиг параметров командной строки на единицу (для доступа к параметрам с номером > 9 );
cd [dir] -- сменить директорию;
pwd -- получение имени текущей директории;
read x y -- ввод строки из двух слов;
set x = str -- инициализация переменной и установка различный настроек интерпретатора;
-A Name_A 1 2 3 4 5 -- инициализация массива;
-V,-X -- включение отладочного режима;
+V,+X -- выключение отладочного режима;
unset x -- отмена инициализации переменной;
export x -- создает переменную окружения x и экспортирование её в систему;
-p -- вывод всех экспортированных переменных.
local x -- создает локальную переменную окружения которая не перекрывает глобальной (часто используется для функций);
declare -- декларирование переменных и изменение их атрибутов;
trap -- установка обработчиков сигналов в скрипте;
alias [имя=синоним] -- создание псевдонимов или альтернативных имен команд;
unalias -- удаление псевдонима;
test -- проверка условий, используется в циклах;
getopts -- разбор опций.
-e -- существует;
-d -- каталог;
-f -- обычный файл;
-c -- специальный файл;
-b -- специальный блочный файл;
-p -- специальный файл именованного канала;
-L -- символическая ссылка;
-r -- для чтения;
-w -- для записи;
-x -- исполняемый;
-z -- файл пуст;
-s,(-z) -- имя файла не нулевой длины;
(-o) -- пользователь является владельцем файла;
fname1 -nt fname2 -- fname1 новее fname2;
fname1 -ot fname2 -- fname1 старше fname2;
-z -- строка пуста;
-n -- строка не пуста;
= ,(==) -- строки равны;
!= -- строки неравна;
-eq -- равно;
-ne -- неравно;
-lt,(< ) -- меньше;
-le,(<=) -- меньше или равно;
-gt,(>) -- больше;
-ge,(>=) -- больше или равно;
! -- отрицание логического выражения;
-a,(&&) -- логическое "И";
-o,(||) -- логическое "ИЛИ"
| -- перенаправление вывода в канал;
< file -- file записать в STDIN;
> file -- STDOUT записать в file;
<> file -- чтение и запись в файл;
>> file -- STDOUT добавить в file;
<< str -- определяет слово <str> как признак окончания ввода;
2> file -- STDERR записать в file (могут указываться дескрипторы других файлов);
1>&2 -- STDOUT записать в STDERR;
2>&1 -- STDERR записать в STDOUT;
&> file -- STDOUT и STDERR записать в file;
\n -- новая строка
\b -- возврат на один символ
\c -- печать строки без символа новой строки
\f -- переход к новой странице/экрану
\r -- возврат каретки
\t -- табуляция
\v -- табуляция по вертикали
\\ -- обратная косая черта
0nnn -- восьмеричное число
xNN -- шестнадцатеричное число
* -- производная цепочка символов;
? -- производный символ;
[...] -- символ в скобках [A-Z]; "! и ^" - исключение символа.
045 -- восьмеричное число (начинается с 0)
0x45, 0X32 -- шестнадцатеричное число
[основание#]n -- число с основанием <n> (по умолчанию основание 10)
cmd || true # принудительно установить успешный результат
echo "lang=uk_UA.UTF-8" | cut -d= -f2 # парсинг по разделителю '=', элемент 2
echo "123 lang=uk_UA.UTF-8" | grep -o 'lang=[^ ]*' # получение участка текста/строки согласно шаблона
wc -l # получить количество строк
wc -w # получить количество слов
sed -n 4p # получить указанную строку
ls -1 /etc # получить содержимое каталога по строкам
head -c8 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p' # cгенерировать случайный пароль
run - запуск отлаживаемой программы
break func - установка точку прерывания на функцию func
list func - просмотр содержимого функции или исходного файла
next - следующая команда;
quit - выход;
Формат правила:
Цель это некий желаемый результат может представлять собой:
Зависимость, также может быть файлом или командой которая должна выполнится ранее.
.cpp.o: - файлы с расширением *.o зависят от соответствующий файлов с расширением *.cpp
%.o: %.cpp - проверяет все файлы с расширением .cpp и заменяет цель на расширение .o
.PHONY: x - объявление специальной цели (не файл)
all: - выполняет эту цель при отсутствие параметров команды make
=,:= - оператор объявления переменных (x = test)
+= - добавление текста к существующей переменной
#define - определение переменных. (#define x "test 1")
include - включение внешнего файлы и его обработка, с прерыванием при отсутствие файла
-include - включение внешнего файлы и его обработка, без прерывания при отсутствие файла
$(function par1, par2 ...) - вызов функции и получение значения переменной
addprefix - добавляет префикс в первом параметре к каждому элементу в списке второго параметра
addsuffix - добавляет суффикс в первом параметре к каждому элементу в списке второго параметра
wildcard - расширяет переданные шаблоны до списка файлов соответствующих этим шаблонам
notdir - выделение имени файла из полного пути
patsubst - изменяет указанным образом слова подходящие под шаблон
override - позволяет изменять переменные заданные через пораметры make
for x in 1 2 3 4; - оператор цикла, в x перебираются значения за in
do - начало цикла определенного for
done - конец цикла определенного for
VPATH - описывает список каталогов для поиска зависимостей
CC - указывает компилятор языка С
СXX - указывает компилятор языка С++
СFLAGS - указывает флаги компилятора С
CXXFLAGS - указывает флаги компилятора С++
LDLIBS - описывает опции линкера
`command` - вставить в сценарий выхлоп команды <command>
$@ - имя цели обрабатываемого правила
$< - имя первой зависимости обрабатываемого файла
$^ - список зависимостей обрабатываемого правила
bin_PROGRAMS - определяет имя программы
<prog>_SOURCES - определение исходников от которых зависит программа
CXX - имя C++ компилятора
CXXFLAGS - определение опций С++ компилятора
AUTOMAKE_OPTIONS - определение опций automake:
AC_INIT(file) - инициализация скрипта и проверка на наличие исходников
AC_CONFIG_AUX_DIR(dir) - использовать скрипты типа install-sh из каталога <dir>
AM_INIT_AUTOMAKE(prog, 1.0) - определение имени и версии проекта
AC_PROG_CC - проверка наличия С компилятора
AC_PROG_CXX - проверка наличия С++ компилятора
AC_OUTPUT([file ... [, extra-cmds [, init-cmds] ] ]) - создаёт выходные файлы <file> типа Makefile (копирует входной file.in и подставляет значения переменных).
AC_OUTPUT_COMMANDS(extra-cmds [, init-cmds] ]) - дополнительные команды с их инициализацией в init-cmds. Выполняются в конце config.status
--bindir - директория для исполняемых файлов
--build - платформа сборки
--cache-file - файл для помещения результатов проверок
--datadir - директория для хранения файлов данных
--enable-...(-disable-...) - включить(выключить) возможность/функцию
--exec-prefix - похож на опцию - -prefix
--help - список всех опций командной строки
--host - имя платформы домашнего(host) компьютера
--includedir - директория заголовочного файла
--infodir - директория информации типа <info>
--libdir - директория библиотек
--mandir - директория c руководствами
--no-create - не создавать конечные файлы
--norecursion - не вызывать вложенные configure
--prefix - директория корневого каталога
--sbindir - директория для системных исполняемых файлов
--silent - подавляет вывод результатов исполнения на экран
--srcdir - каталог исходных текстов
--sysconfdir - каталог данных только для чтения(/etc)
--target - имя целевой платформы
--tmpdir - каталог для хранения временных файлов Configure
[!NameProg] <facility>.[op]<level>[;<facility>.<level>] <Name file>
где:
<level> - Уровень детализации:
<op> - Метод журналирования. При отсутствие выводит сообщения указанного и более высокого уровня:
alias [class] [module] - определяет модуль/драйвер, как определенный класс устройств
alias [class] off - обозначает, что этому классу не соответствует ни одно устройство
options [класс или модуль] [знач1] [знач2] - определяет дополнительные параметры модуля
pre-install [класс или модуль] command - выполняет программу <command> перед инсталляцией модуля
post-install [класс или модуль] command - выполняет программу <command> после инсталляции модуля
pre-remove [класс или модуль] command - выполняет программу <command> перед удалением модуля
post-remove [класс или модуль] command - выполняет программу <command> после удаления модуля
Пример выделение частоты процессора:
cat -n /proc/cpuinfo | sed -n "/cpu MHz[^ ]*[ ]*\([^ ]*\).*/s//\1/p"
Запросы:
a - вставить текст после текущей строки
c - заменить указанные строки
d - исключить текущую строку
e - открыть для редактирования указанный файл с проверкой старого
E - начать редактирование файла без проверки
f - напечатать имя редактируемого файла
g - применить указанный запрос ко всем строкам
i - вставить текст перед текущей строкой
j - объединить строки
k - поменять строки
l - напечатать строку
m - переставить группу строк в другое место
n - напечатать строки вместе с их номерами
p - напечатать строки
q - выйти из редактора с проверкой сохранения текущего файла
Q - выйти без проверки
r - считать файл в буфер
s - заменить текст в пределах строки
t - скопировать группу строк
u - аннулировать результат последней замены s
v - применить указанный запрос ко всем строкам не содержащим заданный образец
w - записать группу строк в файл
W - дозаписать группу строк в конец файла
= - напечатать номер строки
! - выполнить системную команду
+ - шаг вперёд на одну строку
- - шаг назад на одну строку
Выражения:
. - любая литера, кроме новой строки
[s] - любая литера из цепочки s
[^s] - любая литера не входящая в цепочку s
e* - все соседние вхождения;
\(e\) - выделить подвыражение, на подвыражение можно ссылаться используя \n
\n - n-е выделенное подвыражение
^ - начало строки
$ - конец строки
\с - экранировать специальный символ
Адреса:
. - текущая строка
n - n-я строка
$ - последняя строка редактируемого текста
'x - строка, помеченная меткой x
/e/ - ближайшая следующая строка, содержащая e
?e? - ближайшая предыдущая строка, содержащая e
Формат записи: awk '{print $2,$1}'
print $1,$3 - печатает указанные поля, разделённые пробелом, для всех строк
printf "%s/*\n", $2 - печать форматированных данных
root=/dev/hda - расположение корневого раздела
ro, rw - режим монтирования - только для чтения или полный
hdd=ide-scsi - на каком ide диске эмулировать scsi
init=/bin/bash - программа инициализации, выполняется сразу после загрузки ядра
syngle - загрузится в одиночном режиме
1,3,5 - режим загрузки INIT:
LDAP (Lightweight Directory Access Protocol — «облегчённый протокол доступа к каталогам»).
Сокращения:
Отличительное имя ветви или листа дерева (DN) записывается в виде "dc=server,dc=diya" и содержит в себе всю иерархию начиная от корня (RootDN).
Пользователи обычно записываются в виде DN с первым элементом общего имени пользователя (cn=roman,ou=Users,dc=server,dc=diya).
Примеры запросов:
# Загрузка данных из файла init.ldif в LDAP от имени пользователя "cn=admin,dc=server,dc=diya"
$ ldapadd -x -D "cn=admin,dc=server,dc=diya" -W -f ./init.ldif
# Поиск по дереву начиная с корня
$ ldapsearch -x -b "dc=server,dc=diya" "(objectclass=*)"
Read ( r ) – [Владелец | группа | другие ] могут:
Write ( w ) – [Владелец | группа | другие ] могут:
Execute( x ) – [Владелец | группа | другие ] могут:
Setuid ( s ):
Setgid ( s ):
Sticky ( t ):