Данный раздел посвящен GNU/Linux (произносится «гну слэш ли?нукс») — свободная UNIX-подобная операционная система. Она основана на системных программах, разработанных в рамках проекта GNU, и на ядре Linux. Зачастую, по историческим причинам и для краткости, эту систему называют просто «Linux». GNU/Linux работает на PC-совместимых системах семейства Intel x86, а также на IA-64, AMD64, PowerPC, ARM и многих других. К операционной системе GNU/Linux также часто относят программы, дополняющие эту операционную систему, и прикладные программы, делающие её полноценной многофункциональной операционной средой. В отличие от большинства других операционных систем, GNU/Linux не имеет единой «официальной» комплектации. Вместо этого GNU/Linux поставляется в большом количестве так называемых дистрибутивов, в которых программы GNU соединяются с ядром Linux и другими программами. Наиболее известными дистрибутивами GNU/Linux являются Slackware, Red Hat, Fedora, Mandriva, SuSE, Debian, Gentoo, Ubuntu. Из дистрибутивов российских разработчиков наиболее известны ALT Linux и ASPLinux.
По материалам www.wikipedia.org
Домашняя страница: http://geexbox.org/ Прямая ссылка на файл: Версия i386, версия PowerPC Документация (на английском языке): http://geexbox.org/en/doc.html
GeeXboX - это бесплатный LiveCD-дистрибутив Linux, который возволяет превратить ваш компьютер в несколько упрощенную версию домашнего медиа-центра. Он запускается напрямую с компакт диска на любом PC с процессором Pentium и выше или на Apple Macintosh с процессором PowerPC. При запуске данный дитрибутив производит автоматическое определение "железа" вашего компьютера, после чего копирует в оперативную память небходимые драйвера и компонеты, тем самым освобождая от необходимости держать компакт диск с GeeXBoX в CD-ROM'е. Он позволяет воспроизводить практически все известные аудио/видеоформаты и показывать большинство распространенных форматов картинок. Файлы могут воспроизводиться с CD, DVD, жестких дисков с различными файловыми системами (EXT2/3, ReseirFS, VFAT, NTFS (только чтение), xBSD UFS (только чтение), NFS, Samba SMB, CIFS, Apple HFS, JFS), из локальной сети или даже из Интернета. В заголовке статьи указанны прямые ссылки на файл ISO Generator для PC-совместимых компьютеров и для Макинтош. Эта програма позволяет вам построить свою собственную версию GeeXBoX, позволяя выбрать язык и внешний вид интерфейса, опции аудио и видео, базовые настройки сетевых параметров. Если ваше аппаратное обеспечение позволяет, то вы так же сможете выбрать тип вашего пульта дистанционного управления и тип LCD-экрана для работы без полнофункционального монитора.
После завершения работы мастера ISO Generator вы получаете готовый ISO-файл, которы можете записать на отдельный диск, а можете прикладывать ко всем вашим дискам с медиа-контентом, тем самым обеспечивая их "самопроигрывание" практически на любом компьютере.

Данная статья представляет собой краткий справочник по операционной системе Linux - файлы, команды, операторы, конфигурация программной среды, типы и конфигурация устройств.
/dev/ — содержит специальные файлы устройств:
/etc/ — основная директория конфигурационных файлов:
password — системные пользователи;
profile — профиль системы для BASH (выполняется после регистрации);
rc.d/ — директория системы инициализации init (в стиле UNIX):
sysconfig/ — содержит системные Файлы конфигураций:
security/ — содержит Файлы описывающие безопасность системы:
sysctl.conf — содержит команды для автоматической инициализации sysctl-параметров ядра;
syslog.conf — конфигурация демона системного логера (syslogd);
shadow — содержит закодированные пароли пользователей (для системы хранения паролей TCB пароли хранятся в /etc/tcb/*);
skel/ — шаблон директории пользователя (в момент создания пользователя содержимое директории пользователя копируется отсюда);
sudoers — указание на то какие пользователи и какие программы могут быть запущены с привилегиями root используя sudo.
/proc/ — виртуальная ФС отражающая параметры ядра:
fs/ — содержит файлы с параметрами ФС:
devices — список типов устройств в системе;
modules — список модулей подключенных к ядру;
self — ссылка на информацию о текущем процессе;
cpuinfo — информация о процессорах системы.
/usr/lib/locale/ — содержит локали различных стран и языков;
/usr/share/locale/ — локализации отдельных программ под конкретный язык;
/usr/share/man/ — страницы помощи man (в том числе и локализованные);
/var/spool/cron/ — задачи пользователей для cron (формируются с помощью crontab -e от пользователя);
/var/spool/at/ — задачи пользователей для at;
/home/{user}/ — домашняя директория пользователя:
/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 — смена директории;
clear — очистка экрана терминала;
cp — копирование файлов и директорий;
cpio — копирование файлов в архив и из архива (может использоваться для архивов);
cut — вырезает из входного файла столбцы, строки;
date — отображает текущую дату и время;
dd — преобразование, создание и другие манипуляции с файлами в двоичном виде:
echo — выполняет эхо-повтор строки на терминале;
exit — завершить процесс с указанным кодом возврата;
fg — работа с множеством задач в терминале: перевод остановленной (Ctrl+Z) задачи на передний план;
file — определение типа любого файла;
find — поиск:
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 файла для сборки пакета:
– -rebuild my.src.rpm — скомпилировать и создать бинарный rpm из исходного rpm;
– -recompile my.src.rpm — скомпилировать из исходного rpm;
– -test — проверка файла спецификаций;
– -clean — удаление дерева каталогов BUILD;
screen — открыть команду в новом окне того же терминала с возможностью переключения – Ctrl+A;
sed — потоковый редактор;
sleep — усыпляет данный процесс на указанное количество секунд;
sort — сортировка данных в файле/потоке;
split/csplit — разбиение/сбор больших файлов на куски;
stat — информация о файле/директории;
strings — выделение символьных сообщений из не текстового файла;
symlinks — утилита обслуживания символьных ссылок в системе;
tar — создание архивов и пакетов;
<;;p class="auto" id="p31034-25">
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 – смена типа командного интерпретатора;
cron – периодический запуск програм;
crontab – формирование пользовательской конфигурации cron;
df – информация о файловых системах на данной машине;
dirname – выделение имени директории из полного пути;
dmesg – показать лог о загрузке ядра;
du – получение информации о размере содержимого файла или директории;
dumpkeys – dump карты клавиатуры;
export – встроенная команда BASH, для определения переменной окружения и экспортирования её для общей доступности;
fgconsole – номер текущего терминала;
finger,who – информация о всех пользователях системы;
free – информация о состоянии памяти;
fuser – выдает список процессов использующих указанный файл или сокет, а также позволяет закрывать процессы занимающие ресурс;
groupadd – добавление группы пользователей;
groupdel – удаление группы пользователей;
iconv – преобразование содержимого файла из одной в другую кодировку;
id – информация о пользователе;
info – показать документацию из страниц связанной помощи (GNU-doc);
init – утилита начальной загрузки;
locale – получение информацию о настройках локали (/etc/sysconfig/i18n);
localedef – создание новой локали из базовой;
login – вход в систему;
logrotate – утилита для автоматической упаковки, чистки и другой обработки логов;
lsof – печатает список открытых в системе файлов, сокетов, каналов, разделяемых библиотек;
man,xman – показать страницу руководства;
mesg – управление доступом на запись к текущему терминалу (для посылаемых сообщений);
mpage – размещение нескольких страниц текста в одной и печать их на Post Script
? принтере;
ntpdate – утилита синхронизации времени через Internet(www.ntp.org);
passwd – смена пароля пользователя;
pwd – получение полного имени текущей директории;
rlogin – вход на удаленную систему;
service – утилита для операций над сервисами в /etc/rc.d/init.d;
set – встроенная команда BASH, выполняет операции над переменными окружения;
setsid – запуск програмы в новой сессии;
sg – смена основной группы пользователя, или выполнение команды от имени указанной группы;
slogin – вход в систему по ssh (тоже что и ssh);
ssh – вход в систему по шифрованому протоколу ssh;
stty – получение и установка параметров терминала, переопределение специальных клавиш.
su – смена пользователя текущей сессии или выполнени команды от имени указанного пользователя, по умолчанию root;
sudo – запуск отдельных программ от имени другого пользователя (нужно прописать в /etc/sudoers);
shutdown – выключение системы;
talk – двухсторонний разговор с другим пользователем;
tload – информация о загрузке системы;
top, htop – вывод информации о процессах с сортировкой по занимаемому времени;
tput – управление терминалом;
tset, reset – инициализация терминала на curses;
tty – имя текущего певдотерминала;
ulimit – управление ограничениями пользователей.
umask – определяет маску прав по которой будут создаваться новые файлы;
uname – печатает информацию о текущей OS;
unset – встроенная команда BASH, очистка/удаление переменных окружения;
uptime – время непрерывной работы системы;
users – список пользователей в системе;
userdel – удаление пользователей из системы;
usermod – изменение учетной записи пользователя;
vmstat – информация об использовании виртуальной памяти;
w – информация о том что делает текущий пользователь;
wall – передача широковещательного сообщения (всем пользователям системы);
watch – периодический запуск указанной программы;
whoami – сообщает имя текущего пользователя;
write – написать сообщение указанному пользователю;
ytalk – расширенная версия talk, с возможностью работы в X;
setfont – установка консольного шрифта;
loadkeys – установка раскладки клавиатуры.
consolechars – загрузка консольных экранных шрифтов.
cdrecord – запись CD дисков;
cfdisk – конфигурация разделов диска;
edquota – редактирование квот файловой системы;
fdformat – Форматирование дискеты;
fdisk – работа с разделами диска;
fsck – проверка файловой системы указанного типа;
fsck.<fs> – проверка файловой системы типа <fs>;
hdparm – установка параметров дисковой подсистемы;
loadlin.exe – загрузка ядра linux из DOS;
losetup – создание петлевого устройства(loop) с криптованием;
mkfs – создает FS указаного типа как на физический раздел так и в файл;
mkfs.<fs> – cоздание FS типа <fs>;
mkisofs – создание ISO образа из каталога;
mount – монтирование файловых систем:
mount -t ext2 /dev/fd0 /mnt
mount [-t auto] /dev/fd0 /mnt
mount host:/mnt/export /mnt/local
mount -t iso9660 -o ro,loop=/dev/loop0 /my.iso /mnt/cdrom2
mount -t cdfs /dev/cdrom /mnt/cdrom
mount -bind /home /var/local
parted – очень мощный манипулятор дисковыми разделами;
quota – квоты для текущего пользователя;
quotaon – включение квот;
quotaoff – выключение квот;
quotacheck – проверка квот файловой системы;
quotastats – состояние квот файловой системы;
tune2fs – изменение параметров смонтированной ext2/ext3;
resize2fs – изменение размера файловой системы ext2/ext3 на разделе (в связке с LVM);
resize_reiserfs – изменение размера файловой reiserfs системы на разделе (в связке с LVM);
swapoff – отключить свопинг;
swapon – включить свопинг;
sync – экстренный сброс буферов на диск;
umount – отмонтировать файловую систему;
xcdroast – X-оболочка над cdrecord и mkisofs.
appres – информация о ресурсах X приложений;
glxingo – информация о расширении GLX (Open GL
?);
gnome-session – запуск дисплей-менеджера GNOME(GDM);
import – создаёт снимок X экрана или конкретного окна;
listres – вывод X – ресурсов;
mkfontdir – создает раскодировщик шрифтов в текущем каталоге из указаного каталога;
showrgb – наименования и значения стандартных цветов;
startkde – запуск оконного менеджера KDE;
startx – скрипт запуска X-сервера;
ttmkfdir – создание директории TTF шрифтов.
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;
hwclock – установка, считывания аппаратных часов (CMOS);
kbd_mode – установка режима работы клавиатуры(RAW, MEDIUMRAW, XLATE, UNICODE);
lpr – печать с файла или с потока на указанный принтер;
lpq, lpstat – состояние очереди печати;
lprm – удаление задания печати из очереди;
lspci – выводит листинг устройств на PCI – шине;
pbm* – преобразование, из графического формата *.pdm в формат принтера [*];
pciscan – сканирование PCI-шины и отображение модулей необходимый для работы с устройствами на PCI-шине;
setleds – установить светодиоды на клавиатуре;
setserial – установка/конфигурация COM портов;
setterm – установка параметров терминала;
showkey – утилита для отображения сканкодов клавиш и кодов мапированных системой;
statserial – утилита для контроля за состоянием serial-порта;
tunelp – установка параметров параллельного порта;
usbview – утилита для просмотра и конфигурации USB-устройств;
alsamixer – ALSA-миксер;
aumix – консольный AUDIO-миксер;
cdparanoia – позволяет грабить CD;
lame – преобразование *.wav в *.mp3;
mencoder – перекодировка видеофайлов с одного видеоформата в другой;
oggenc – преобразование *.wav в *.ogg;
play – проигрывание звуковых файлов;
rec – запись в звуковой файл.
arp – манипуляция системным ARP кешем (манипуляция аппаратными адресами);
ethereal – мощный анализатор трафика сети;
ettercap – cнифер сети;
iptraf – мощный и удобный сканер сети;
ifconfig – утилита конфигурации сетевых интерфейсов (eth0, ppp0, lp0 ...);
iftop – контроль общего трафика по интерфейсам;
ipchains – утилита конфигурации firewall на основе интерфейса цепочек (ядра 2.2.*);
iptables – утилита конфигурации firewall на основе IP-таблиц (ядра 2.4.*);
minicom, xminicom – установка соединения с другой системой через модем(COM);
netstat – состояние сети (отображает используемые сокеты и их состояния).
nmap,nmapfe – сканер сети и его GUI, можно получить перечень открытых портов и т.д;
nmblookup – утилита работы с Net BIOS
? (для SMB);
ping – проверка связи с удаленным хостом путём посылки служебных тестовых сообщений;
route – управление таблицей маршрутизации;
rsync – утилита для работы с протоколом rsinc, который, в свою очередь, используется для синхронизации по сети;
smbclient – утилита для организации клиентских запросов к SMB-серверу;
smbprint – печать на SMB-принтер;
traceroute – проверка прохождения сетевых пакетов через сервера в сети;
tcpdump – дамп TCP протокола, позволяет отслеживать различные запросы;
testparm – проверка конфигурации файла smb.conf для SMB-сервера;
wget – мощная утилита для выкачивания файлов из сети по протоколам: HTTP, HTTPS, и FTP.
mail – создать сообщение;
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 – позволяет создавать диалоги из скрипта в консоли;
diff – поиск изменений в сравниваемых текстовых файлах;
f2c – транслирует исходный код программы на языке Fortran в исходный код на языке C;
gcc – GNU компилятор языка С,С++,ASM (с вызовом линкера);
-fPIC – создание объектных файлов для динамических библиотек (PIC – Position Independent Code.)
-shared – создание динамической библиотеки (совместно с -o);
-nostdlib – не использовать стандартные системные запускающие файлы или линкующиеся библиотеки.
-static – принуждает использовать статические библиотеки вместо динамических;
-rdynamic – включает возможность использования символьной информации для разрешения ссылок в динамически загружаемых библиотеках;
-M – для каждого файла с исходным текстом препроцессор будет выдавать на стандартный вывод список зависимостей в виде правила для программы make;
-MM – аналогичен ключу -M, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include «имя_файла»;
-MD – аналогичен ключу -M, но список зависимостей выдается не на стандартный вывод, а записывается в отдельный файл зависимостей;
-MMD – аналогичен ключу -MD, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include «имя_файла»;
-pipe – компилятор будет работать через каналы.
-O[n] – установить уровень оптимизации (n=0..3).
-g – добавить отладочную информацию.
-p,-pg – добавить в модуль код для отслеживания узких мест, после выполнения генерируется mon.out файл, который можно обработать утилитой gprof.
-masm – использовать стандарт ассемблера (att|intel).
gdb – мощный консольный GNU дебагер;
indent – утилита форматирования исходного текста под указанные требования;
lclint – утилита проверки синтаксиса исходных модулей;
ldconfig – активизировать изменения в файле /etc/ld.so.conf;
ldd – показывает динамические библиотеки используемые программой;
lint – обнаруживает в C-программах конструкции, которые могут привести к ошибкам во время выполнения, расточительно используют ресурсы или могут снизить мобильность программ;
ltrace – трассировка динамических библиотек, программы указанной в параметре;
make – используется для организации сложных проектов из десятков файлов;
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 #Запустить оконный менеджер
Вариант 2 (используя ssh):
client$ xinit - :1 #Запустить X-сервер на клиенте (должен запуститься xterm)
client$ ssh -X UserName@server #Подключиться к удаленной машине (серверу)
server$ startkde #Запустить оконный менеджер
$ consolechars -f UniCyr_8x16 -m koi8-r;
$ echo -ne "\033(K";
$ loadkeys ru1;
$ 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 #Установка программы
$ 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 #Cоздание файловой системы на loop устройстве
$ losetup -d /dev/loop0 #Отключение loop устройства
$ mount -o loop,encryption=aes ./sequre_disk /mnt/tmp/ #Обычное монтирование шифрованой ФС
client$ ssh-keygen #Генерация ключей на локальной машине в директорию " /.ssh/"
client$ scp ./identity.pub rserver: ~/.ssh/ #Передача публичного ключа на удалённый сервер (любым способом)
rserver$ cat ~/.ssh/identity.pub >> ~/.ssh/authorized_keys #Авторизация своего открытого ключа на сервере
client$ ssh rserver #Подключение к удалённому серверу
$ mkfs /dev/ram0
$ mount /dev/ram0 /mnt/disk
$ vgscan #Поиск по системе виртуальных групп VG
$ vgchange -ay #Активизировать виртуальную группу (-an - деактивизировать)
$ pvscan #Поиск доступных физических томов и отображение сравнительной информации о них
$ pvdisplay /dev/hda1 #Просмотр информации о физическом томе
$ pvcreate /dev/hda1 #Подготовка физического тома PV (тип раздела 8Eh)
$ pvmove /dev/hda1 #Освобождение физического тома (перенос данных на другие физические тома)
$ vgdisplay vg00 #Просмотреть информацию о виртуальной группе
$ vgcreate vg00 /dev/hda1 /dev/hdb1 #Cоздание виртуальной группы на основе двух физических томов
$ vgremove vg00 #Удаление виртуальной группы
$ vgextend vg00 /dev/hdc1 #Добавление физического тома к виртуальной группе
$ vgreduce vg00 /dev/hda1 #Удаление физического тома из виртуальной группы
$ vgexport vg00 #Подготовка виртуальной группы для переноса на иную машину
$ vgimport vg00 /dev/hda1 /dev/hda2 #Импорт виртуальной группы (с другой машины)
$ lvcreate -L1500 -nlv00 vg00 #Cоздание логического тома (LV) с именем nlv00 и размером 1500 Мб
$ lvremove /dev/vg00/home #Удаление логического тома
$ lvextend -L120M /dev/vg00/home #Увеличение размера логического тома до указаной величины
$ lvextend -L+100M /dev/vg00/home #Увеличение размера логического тома на указаную величину
$ lvreduce -L120M /dev/vg00/home #Уменьшение размера логического тома до указаной величины
$ lvreduce -L-100M /dev/vg00/home #Уменьшение размера логического тома на указаную величину
$ e2fsadm -L+100M /dev/vg00/home #Изменение размер логического тома с файловой системой ext2/ext3
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
Option – опция:
![numb] – запуск строки <numb> из истории (history);
!str – запуск ближайшей строки соответствующей маске str из истории (history);
\ – продолжение текущей строки на другой строке или экранирование специального символа после данного символа (\$);
; – разделитель команд;
() – выполнения сценария в скобках в другой подоболочке;
(()) – включение выражений с «С» синтаксисом;
[] – включение условных операций с синтаксисом команды test;
pwd – определение строки с разрешением подстановки значений переменных;
'pwd' – определение строки с запрещением подстановки значений переменных;
`pwd` – результат выполнения команды pwd;
x=pwd – определение переменной окружения x и присвоение ей строки pwd;
x='34' – определение переменной окружения x и присвоение ей строки '34';
x[2]=pwd – определение массива x и присвоение его элементу 2 строки pwd;
x=(zero one two three) – определение массива x и заполнение четырех его элементов;
x=([0]=zero [3]=three [2]=two [1]=one) – определение массива x и заполнение четырех его элементов по выбору;
$(( 100/3 )), $[100/3] – выполнение простых целочисленных операций.
$x, ${x} – подстановка значения переменной/параметра x
${!x} – косвенная подстановка значения переменной/параметра указанного в x;
${#x} – косвенная подстановка значения переменной/параметра указанного в x,
${x:?»Error, no bar»} – генерировать ошибку если x не определена или равна нулю;
${x?»Error, no bar»} – -//-;
${x:="foose"} – присвоить значение по умолчанию если x не определена или равна нулю;
${x="foose"} – -//-;
${x:offset:lenght}, ${x:offset} – возвращает часть от x начиная с offset длиной lenght;
${x:+"foose"} – если переменная определена то вместо неё используется foose;
${x+"foose"} – -//-;
${x:-"foose"} – если переменная определена то она используется иначе используется foose;
${x-"foose"} – -//-;
${пар#шабл} – ??
${пар##шабл} – ??
${пар%шабл} – ??
${пар% %шабл} – ??
${пар/шабл/стр} – заменяется первая, самая длинная подстрока значения параметра, на указанную строку;
${пар/ /шабл/стр} – заменяются все самые длинные подстроки значения параметра, на указанную строку;
${array[@]} – обращение сразу ко всему массиву;
$(x) – выполнение команды x и возврат результата (подобно `x`);
$0 – имя команды в командной строке;
$n, ${n} – аргумент n командной строки (n = 1...);
$* – раскрывает единственное слово, содержащее список всех позиционных парам;
$# – количество аргументов;
$@ – ссылка на все аргументы команды отделенные пробелами;
$$, $PPID – PID текущего процесса (скрипта);
$? – код возврата последней команды;
$! – PID последнего фонового процесса;
$'\n' – вставка управляющего символа в строку;
Comm && – выполняет действие после выражения если команда <Comm> неудачна;
Comm || – выполняет действие после вырожения если команда <Comm> удачна;
MYVAR#*fo – отсекает от начала переменной MYVAR самую короткую часть удовлетворяющую маске *fo;
MYVAR##*fo – отсекает от начала переменной MYVAR самую длинную часть удовлетворяющую маске *fo;
MYVAR%fo* – отсекает от конца переменной MYVAR самую короткую часть удовлетворяющую маске fo*;
MYVAR% %fo* – отсекает от конца переменной MYVAR самую длинную часть удовлетворяющую маске fo*;
MYVAR:2:5 – возвращает часть строки MYVAR которая начинается с 2 символа и заканчивается 5;
PWD – текущий рабочий каталог;
UID – цифровой идентификатор текущего пользователя;
umask – содержит маску прав доступа по которой создаются новые файлы;
BASH – полный путь вызова BASH;
BASH_VERSION – версия данного экземпляра BASH;
EDITOR – содержит имя редактора используемого для редактирования некоторых конфигов;
PAGER – содержит имя программы для отображения информационных страниц (типа more);
SHLVL – количество запущенных BASH;
REPLY – содержит последнюю строку ввода;
RANDOM – содержит случайное число в диапазоне 0..32767;
SECONDS – время в секундах от запуска BASH;
HISTCMD – номер текущей команды в истории;
IFS – внутренний разделитель полей;
PATH – пути поиска команд;
HOME – домашний каталог текущего пользователя;
MAIL – имя файла в который поступает электронная почта;
LOGNAME – имя пользователя использованное для входа в систему;
SHELL – имя интерпретатора команд;
LD_LIBRARY_PATH – описания пользовательских путей к динамическим библиотекам;
DISPLAY – описывает адрес дисплея для X-приложений;
LANG – переменная локали;
TERM – содержит имя терминала;
INPUTRC – содержит имя файла параметров для библиотеки readline, определяющей параметры ввода с клавиатуры;
PS1,PS2 – описывает вид приглашения в командной строке;
MALLOC_CHECK_ – указывает что делать с ошибками в функциях malloc, free:
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 – rоманда выбора. Имеет структуру:
esac
<;em>function func() { } – определяет функцию с именем func;
export x – создает переменную окружения x и экспортирование её в систему;
local x – создает локальную переменную окружения которая не перекрывает глобальной (часто используется для функций);
declare – встроенная команда bash для декларирования переменных и изменения их атрибутов;
set x = str – инициализация переменной;
unset x – отмена инициализации переменной;
read x y – ввод строки из двух слов;
exit – выход из сценария;
eval – означивание строки (т.е. замена записей типа "$5" на их значения);
shift – сдвиг параметров командной строки на единицу (для доступа к параметрам с номером > 9 );
trap – установка обработчиков сигналов в скрипте;
alias – создание псевдонимов или альтернативных имен команд;
unalias – удаление псевдонима;
-e – существует;
-d – каталог;
-f – обычный файл;
-c – специальный файл;
-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
??<div class="center"> file – STDOUT добавить в file<br />
</div>?? str – определяет слово <str> как признак окончания ввода
2> file – STDERR записать в file
1>&2 – STDOUT записать в STDERR
2>&1 – STDERR записать в STDOUT
&> file – STDOUT и STDERR записать в file
\n – новая строка
\b – возврат на один символ
\c – печать строки без символа новой строки
\f – переход к новой странице/экрану
\r – возврат каретки
\t – табуляция
\v – табуляция по вертикали
\\ – обратная косая черта
0nnn – восьмеричное число
xNN – шестнадцатеричное число
* – любая строка
? – любой одиночный символ
[...] – соответствует любому символу в скобках [A-Z]; "! и ^" – исключение символа.
045 – восьмеричное число (начинается с 0)
0x45, 0X32 – шестнадцатеричное число
[основание#]n – число с основанием <n> (по умолчанию основание 10)
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> – Метод журналированнияе. При отсутствие выводит сообщения указанного и более высокого уровня:
<Name file> – Имя файла для лога. Может также быть указателем на другую машину (@server.org) для журналирования на ней. А также передавать сообщения через канал другому приложению (|/usr/bin/messcheck.pl).
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> после удаления модуля
Пример выделение частоты процессора:
Запросы:
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:
Репозиторий CVS хранит полные копии всех файлов и каталогов, находящихся под контролем версий.
$ export CVSROOT=/home/Roman/progects/CVS_R # Указание на каталог, где находится репозиторий CVS.
$ export CVSROOT=:pserver:user@serv.comp.org:/CVS_R # Указание на удалённый репозиторий.
$ cvs -d /usr/local/cvsroot init # Создание пустого репозитория.
$ cvs -d:pserver:user@serv.comp.org:/usr/local/cvsroot init # Создание пустого репозитория на удалённом сервере.
$ cvs import MyProg MyName start # Импортирует проект MyProg от имени создателя MyName в CVS.
$ cvs -z 3 co tc # Експорт проекта tc для работы над ним. В результате чего будет создан каталог `tc', в который будут помещены все файлы.
$ cvs co -r revise Prog # Загрузить дерева проекта с ревизией(тегом) <revise>.
$ cvs up # Синхронизация исходных текстов со всеми изменениями (выполнять перед фиксацией своих изменений).
$ cvs up -r revise # Привести содержимое дерева в соответствии с ревизией <revise>.
$ cvs ci backend.c -r revise # Зафиксировать изменения в backend.c и запускает редактор (ENV: CVSEDITOR), чтобы ввести журнальную запись об изменениях.
$ cvs ci -r revise # Зафиксировать изменения в дереве под ревизией <revise> для всего дерева.
$ cvs tag revise # Привести вершину дерева к <revise>.
$ cvs release -d tc # Выполняет удаления вашей копии проекта и при этом проверяет, что все ваши изменения были зафиксированы.
$ cvs log file.cc # Вывести лог изменений в файле file.cc.
$ cvs diff driver.c # Вывести описание изменений внесенных в файл `driver.c'.
$ cvs add readmi.cc # Внесение файла readmi.cc под контроль CVS.
$ cvs rm readmi.cc # Сообщение CVS о том что файл readmi.cc должен быть удалён из репозитория при следуйщей команде <ci>.
Read ( r ) – [Владелец | группа | другие ] могут:
Write ( w ) – [Владелец | группа | другие ] могут:
Execute( x ) – [Владелец | группа | другие ] могут:
Setuid ( s ):
Setgid ( s ):
Sticky ( t ):
Автор: Роман Савченко
Оригинал статьи LinuxShortAll
Любой, кто администрировал систему коммерческой важности, знаком с головной болью из-за падения системы. Одной из основных причин, по которой компании запускают UNIX сервера, является их стабильность. При аккуратном администрировании такой сервер не приходится перезапускать в течение очень долгого времени. Более того, выполнение администраторских задач, даже на уровне ядра, может выполняться на лету, сохраняя стабильность сервера. Вам может понадобиться перезапустить сервер при апгрейде оборудования или если кто-нибудь оборвет питающий провод, однако большую часть администрирования можно выполнять без этого. Эта статья включает подсказки и советы для выполнения различных административных задач и изменения вашей системы без перезагрузки.
- Изменение параметров работающего ядра
- Команды для настройки системы
Файловая система /proc - это одна из величайших особенностей Linux и эта статья проведет вас по наиболее полезным ее аспектам. С ней вы сможете администрировать многие детали вашей системы без необходимости перезагрузки машины. Linux позволяет вносить изменения в систему и устанавливать различные параметры во время работы многими способами. Есть две основные формы, общие для всех систем Linux, которые заложены в ядро. В этой статье рассматриваются оба способа.
Внимание: Эта статья написана для ядер серии 2.4-х. Некоторые опции и возможности могут отличаться в ядрах других серий.
Linux имеет отличный способ изменять параметры ядра во время работы системы и без необходимости перезагрузки. Это делается при помощи виртуальной файловой системы /proc. Linux Gazette дает один из простейших и легчайших объяснений /proc, которые я когда-либо видел.
Вкратце, файловая система /proc дает вам возможность заглянуть в работающее ядро, что может быть полезно для мониторинга производительности, проверки системной информации, конфигурирования системы и изменения конфигурации. Эта файловая система называется виртуальной, потому что это в действительности не файловая система. Это карта, создаваемая ядром и присоединяемая к вашей обычной файловой системе, чтобы обеспечить доступ. Тот факт, что мы можем разными способами внести изменения в ядро во время работы системы дает системному администратору огромную мощь и гибкость при изменении параметров.
Но может быть слишком много власти это плохо? Иногда. Если вы собираетесь внести изменения в файловую систему /proc, вы должны быть уверены, что вы знаете, что вы делаете и какой эффект произведут на систему ваши действия. Это очень полезная техника, но одно неверное движение может вызвать неожиданные последствия. Если вы не уверены и новичок в таких делах, попрактикуйтесь на машине с меньшей важностью для ваших дел.
Сначала, подумайте о том, как не вносить изменения в ядро. Есть две отличных причины, почему вам не стоит просто перейти в /proc, открыть файл в текстовом редакторе, сделать несколько изменений и сохранить файл. Вот они:
Целостность данных: Все эти файлы представляют работающую систему, а поскольку ядро может внести изменения в эти файлы в любое время, то если вы откроете файл и попытаетесь внести изменения в то время, когда туда вносит изменения система, то вы можете сохранить не то, что ожидает увидеть ядро. Виртуальные файлы: Все эти файлы в действительности не существуют. Как же тогда синхронизировать сохраненные данные?
Ответом на это является не использование текстового редактора для внесения изменений. Поэтому для внесения изменения в что-либо в файловой системе /proc, вам следует использовать команду echo и перенаправлять вывод команды в выбранный файл в /proc.
Например: echo "Your-New-Kernel-Value" > /proc/your/file
Аналогично, если вы хотите увидеть информацию из /proc, вам следует использовать либо команду, которая предназначена для этого, либо команду cat.
Вам не нужно быть разработчиком ядра, чтобы пользоваться /proc, а базовое понимание этой структуры отлично вам поможет. Вы можете найти, что вам не нужно знать обо всем в /proc, до тех пор пока пользователь не попросит вас увеличить производительность и вы должны будете изучить куда вносить изменения. Файловая система /proc помогает администратору в этом через свою структуру и атрибуты файлов.
Каждый файл в /proc имеет особый набор атрибутов и может принадлежать конкретному пользователю по его ID. Сделано это очень аккуратно, так что правильная работа обеспечена и администратору и пользователям. Следующий список обобщает какие атрибуты могут быть у файлов:
Read-only: Файл не может быть изменен ни каким пользователем; используется для представления системной информации Root-write: Если файл может быть изменен, то изменения может вносить только пользователь root Root-read: Некоторые файлы могут быть не читаемы для обычных пользователей системы, только для root Other: Вы можете найти другие комбинации, чем перечисленные выше, по различным причинам
В основном в /proc вы найдете файлы read-only за исключением /proc/sys, которая содержит большинство параметров ядра и предназначена для изменения во время работы системы. Как результат в этой статье рассматривается в основном эта директория.
Последнее, что вам нужно знать о изменении файлов в /proc - это то, что нужно записывать в эти файлы. Вы заметите, что некоторые из файлов могут быть легко прочитаны человеком, а некоторые являются файлами данных и могут быть прочитаны только при специальных утилит таких как top, lspci,и free. Вы также заметите, что эти легко читаемые файлы имеют два различных формата: некоторые являются бинарными ключами, а другие содержат больше информации. Файлы с бинарными ключами содержат только 0 (выключено) или 1 (включено) для некоторых функций ядра.
Детальная информация об использовании каждого файла в /proc выходит за рамки этой статьи. За дополнительной информацией о любом файле /proc стоит непосредственно обратиться в исходники ядра, которые содержат очень хорошую документацию.
Следующие файлы в /proc наиболее полезны для системного администратора. Они не являются исчерпывающими, но полезны для повседневного использования.
/proc/scsi/scsi
Одна из наиболее полезных вещей, которые нужно знать администратору - как добавить дисковое пространство, если у вас есть диски горячей замены без перезагрузки системы. Без использования /proc, вы должны вставить ваш диск, но затем вам придется перезагружать систему для того, чтобы дать ей возможность распознать новый диск.
Вы можете позволить системе распознать новый диск с помощью следующей команды:
echo "scsi add-single-device w x y z" > /proc/scsi/scsi
Чтобы эта команда работала правильно, вы должны указать параметры значений w, x, y, и z следующим образом:
w - это ID хост адаптера, где первый адаптер имеет ID ноль (0) x - это канал SCSI на хост адаптере, где первый канал ноль (0) y - это SCSI ID устройства z - это номер LUN, где первый LUN ноль (0)
Поскольку ваш диск добавлен в систему, вы можете монтировать любую предварительно форматированную файловую систему или вы можете начать форматирование ее, и так далее. Если вы не уверены в том, каким устройством является установленный диск или вы хотите проверить существующие партиции, вы можете использовать команду fdisk -l, которая выведет необходимую информацию для вас. Команда для удаления устройства из системы без перезагрузки:
echo "scsi remove-single-device w x y z" > /proc/scsi/scsi
Перед тем как ввести эту команду и удалить SCSI диск, убедитесь, что вы отмонтировали файловые системы на этом диске.
/proc/sys/fs/file-max
Здесь указывается максимальное количество заголовков файлов, которое может быть одновременно открыто. Вам может понадобиться увеличить это число если пользователи получают сообщение об ошибке потому что достигнуто максимальное количество открытых файлов. Можно указать любое числовое значение в этом файле. Default setting: 4096
/proc/sys/fs/file-nr
Этот файл связан с file-max и содержит три значения:
Количество назначенных заголовков файлов Количество используемых заголовков Максимальное число заголовков
Этот файл только для чтения и только для предоставления информации.
/proc/sys/fs/inode-*
Любые файлы, начинающиеся с "inode" будут выполнять те же функции, что и файлы с именем "file" выше, но выполняют эти операции относительно inodes вместо заголовков файлов.
/proc/sys/fs/overflowuid и /proc/sys/fs/overflowgid
Эти файлы содержат User ID (UID) и Group ID (GID) для любой файловой системы, которая поддерживает 16-bit user и group ID. Эти значения могут быть изменены, но если вы действительно считаете это нужным, то более простым будет изменить файл группы и пароля группы вместо этого. Default Setting: 65534
/proc/sys/fs/super-max
Здесь указывается максимальное количество заголовков суперблоков. Любая файловая система, которую вы монтируете должна использовать суперблоки, так что вам, возможно, придется использовать его если вы монтируете много файловых систем. Default setting: 256
/proc/sys/fs/super-nr
Здесь указано текущее значение количества суперблоков. Этот файл только для чтения и используется для информации.
/proc/sys/kernel/acct
Здесь содержатся три конфигурируемых значения, которые управляют подсчетом процессов, основанном на свободном пространстве (в процентах) файловой системы и ведет лог:
Чтобы изменить значения в этом файле вам следует использовать разделенный список параметров. Default setting: 2 4 30
Эти значения остановят подсчет, если в файловой системе менее 2 процентов свободного пространства и начнет опять если появится 4 или более процентов. Проверка производится каждые 30 секунд.
/proc/sys/kernel/ctrl-alt-del
Этот файл содержит двоичное значение, которое управляет тем, как система реагирует на комбинацию ctrl+alt+delete. Возможны два значения:
Default setting: 0
/proc/sys/kernel/domainname
Здесь вы можете сконфигурировать ваше сетевое доменное имя. Значения по умолчанию нет и оно может быть, а может и не быть установлено.
/proc/sys/kernel/hostname
Здесь вы можете сконфигурировать ваше сетевое имя хоста. Значения по умолчанию нет и оно может быть, а может и не быть установлено.
/proc/sys/kernel/msgmax
Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому. Сообщения между процессами в памяти ядра не копируются на диск, так что если вы увеличите это значение, то вы увеличите количество памяти используемой операционной системой. Default setting: 8192
/proc/sys/kernel/msgmnb
Здесь указывается максимальное количество байт в одном сообщении. Default setting: 16384
/proc/sys/kernel/msgmni
Здесь указывается максимальное количество идентификаторов сообщений в очереди. Default setting: 16
/proc/sys/kernel/panic
Здесь установлено время в секундах, которое ядро будет ждать перед перезагрузкой если произойдет "kernel panic." Установка в ноль (0) секунд отключит возможность перезагрузки при kernel panic. Default setting: 0
/proc/sys/kernel/printk
Здесь четыре числовых значения, которые определяют куда будут отправлены сообщения логов, в зависимости от их важности. За более подробной информацией о различных уровнях логов отправляейтесь в man syslog(2). Четыре значения это:
Default setting: 6 4 1 7
/proc/sys/kernel/shmall
Это общее количество разделяемой памяти (в байтах), которое может быть использовано в системе. Default setting: 2097152
/proc/sys/kernel/shmax
Здесь указывается наибольший размер сегмента памяти (в байтах) позволяемый ядром. Default setting: 33554432
/proc/sys/kernel/shmmni
Этот файл связан с максимальным числом сегментов раздляемой памяти всей системы. Default setting: 4096
/proc/sys/kernel/sysrq
Активирует System Request Key, если не равно нулю. Default setting: 0
/proc/sys/kernel/threads-max
Максимальное число потоков, которое может быть использовано ядром. Default setting: 2048
/proc/sys/net/core/message_burst
Это время (в десятых долях секунды) необходимое для записи нового предупреждения; другие предупреждения, полученные в это время будут пропущены. Это используется для предотвращения атаки Denial of Service, которая может быть выполнена при заваливании вашей системы сообщениями. Default setting: 50 (5 seconds)
/proc/sys/net/core/message_cost
Здесь указывается значимость каждого предупреждения. Чем выше значение, тем больше предупреждений будет проигнорировано. Default setting: 5
/proc/sys/net/core/netdev_max_backlog
Здесь указывается максимальное количество пакетов в очередь на обработку если интерфейс получает пакеты быстрее, чем ядро может их обработать. Default setting: 300
/proc/sys/net/core/optmem_max
Здесь указан максимальный размер буфера для одного сокета.
/proc/sys/net/core/rmem_default
Здесь размер буфера для получаемого сокета по умолчанию (в байтах).
/proc/sys/net/core/rmem_max
Это максимальный размер буфера для получаемого сокета (в байтах).
/proc/sys/net/core/wmem_default
Это размер буфера отправляемого сокета по умолчанию (в байтах).
/proc/sys/net/core/wmem_max
Это максимальный размер буфера посылаемого сокета (в байтах).
/proc/sys/net/ipv4
Все параметры IPv4 и IPv6 полностью документированы в документации к ядру. Смотри файл /usr/src/linux/Documentation/networking/ip-sysctl.txt.
/proc/sys/net/ipv6
То же что и IPv4.
/proc/sys/vm/buffermem
Здесь происходит управление количеством общей системной памяти (в процентах), которая будет использована как буферная память. Файл содержит три значения, которые могут быть указаны в виде списка через пробел:
Default setting: 2 10 60
/proc/sys/vm/freepages
Этот файл управляет как система реагирует на различные уровни свободной памяти. Содержит три значения, которые могут быть установлены в виде списка, разделенного пробелами:
Default setting: 512 768 1024
/proc/sys/vm/kswapd
Этот файл управляет как ядро будет свопировать память. Он содержит три значения в виде списка, разделенные пробелами:
Default setting: 512 32 8
/proc/sys/vm/pagecache
Этот файл выполняет ту же работу, что и /proc/sys/vm/buffermem, но он делает ее для карты памяти и общего кэширования файлов.
Полезная утилита для внесения изменений в любые параметры ядра находится в директории /proc/sys. Она позволяет вам вносить изменения в работающее ядро (подобно echo и метод перенаправления, описанный выше), и имеет файл конфигурации, который выполняется при загрузке. Это позволяет чтобы внесенные изменения оставались в ядре после перезагрузки системы. Утилита называется sysctl и она полностью документирована в man sysctl(8).
Файл конфигурации для sysctl - /etc/sysctl.conf, который может быть редактирован, синтаксис файла описан в man sysctl.conf(8). Sysctl использует файлы в /proc/sys как индивидуальные переменные, которые могут быть изменены. Например, файл в /proc/sys, который представляет максимальное количество заголовков файлов в системе, /proc/sys/fs/file-max, представлен как fs.file-max. Этот пример требует некоторых дополнительных пояснений в записи sysctl. Так как sysctl может только изменять переменные в директории /proc/sys, то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в /proc/sys и переменных в sysctl:
Отбросьте /proc/sys от начала. Замените слэши на точки в имени файла.
Эти два правила позволят вам преобразовать любой файл в /proc/sys в любое имя переменной в sysctl. Обычное преобразование имени файла в переменную:
/proc/sys/dir/file --> dir.file
dir1.dir2.file --> /proc/sys/dir1/dir2/file
Вы можете увидеть все переменные, доступные для изменения, используя команду sysctl -a. Переменные могут также быть изменены с помощью sysctl, которая выполняет ту же работу что и echo. Эта запись объясняет это:
sysctl -w dir.file="value"
Используя пример с file-max, мы можем изменить это значение на 16384, используя один из двух методов:
sysctl -w fs.file-max="16384"
или
echo "16384" > /proc/sys/fs/file-max
Не забывайте, что sysctl не добавляет изменения в конфигурационный файл; вы должны сделать это вручную. Если вы хотите, чтобы ваши изменения остались в системе и после перезагрузки, вы должны настроить этот файл.
Внимание: Не все дистрибутивы обеспечивают поддержку sysctl. Если это относится к вашей системе, то вы можете использовать echo и метод перенаправления, как описано выше и добавить эти команды в загрузочный скрипт, чтобы они выполнялись каждый раз при загрузке системы.
Есть возможность изменять другие параметры (не ядра) во время работы системы и сделать, чтобы эти изменения оказали эффект без перезагрузки системы. В основном это сервисы, демоны и серверы, которые прописаны в директории /etc/init.d. Поскольку в этой директории находится широкий спектр скриптов, то нет возможности рассмотреть их все здесь. Однако, ниже будут приведены несколько примеров того, как можно манипулировать этими скриптами в различных дистрибутивах Linux. Примеры изменения демона и перезагрузки конфигурации без перезагрузки системы могут быть полезны при:
Изменении конфигурации Web сервера и перезагрузки Apache Удаления загружаемого в inetd сервиса, которым вы не пользуетесь Манипулирования настройками вашей сети Экспортирования новой файловой системы через NFS Запуска/остановки вашего файервола Сначала, основной способ манипулирования системными сервисами через скрипты в /etc/init.d. Эти скрипты используют параметры для управления своими сервисами. Вы можете ввести в командной строке имя сервиса без параметров чтобы увидеть допустимые параметры. Общие параметры таковы: start: Запускает остановленный сервис stop: Останавливает запущенный сервис restart: Останавливает и затем запускает сервис; запускает остановленный сервис reload: Перезагружает конфигурацию сервиса без прерывания его соединения status: Выводит информацию запущен сервис или нет
В качестве примера следующая команда перезагрузит конфигурацию вашего xinetd без прерывания любых присоединенных сессий пользователей (полезно, если вы вносите изменения в ваш /etc/xinetd.conf):
/etc/init.d/xinetd reload
Red Hat предоставляет комнанду service, которая будет управлять сервисом для вас. Команда service выполняет те же действия, что и ввод имени скрипта. Синтаксис команды:
service script-name [parameter]
Пример: service xinetd reload
SuSE также предоставляет команду rc. Она похожа на service, но не имеет пробела между командой и именем скрипта. Синтаксис команды:
rc{script-name} parameter
Пример: rcapache start
Так же как и при изменении параметров ядра, при перезагрузке системы, все внесенные изменения будут потеряны. Многие дистрибутивы позволяют использовать команду chkconfig, которая управляет сервисами, запускаемыми на различных уровнях (включая загрузку). Во время написания статьи синтаксис команды chkconfig несколько отличался в различных версиях Linux, но если вы введете команду chkconfig без параметров, вы получите список возможных параметров и их использование. Больше информации о chkconfig может быть получено в man chkconfig.

Предположим, что у вас есть компьютер с ОС Linux, подключенный к интернету и требуется раздать его на другие компьютеры локальной сети.
Роль шлюза
На компьютере-шлюзе должно быть установлено 2 сетевые карты:
eth0 - к ней подключен интернетeт
eth1 - к ней подключена локальная сеть Настройте любым доступным способом сетевую карту eth1 так: IP: 192.168.0.1 Netmask: 255.255.255.0 Например, введите в консоли:
ifconfig eth1 192.168.0.1 netmask 255.255.255.0
ifconfig eth1 up
Разрешите направление пакетов. Чтобы сделать это, отредактируйте /etc/sysctl.conf. Вставьте строчку:
net.ipv4.ip_forward=1
Выполните команду:
sysctl -w net.ipv4.ip_forward="1"
Установите iptables, введите следующее правило (для передачи интернета второму компьютеру) и сохраните его:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Установите и запустите dnsmasq - это позволит форвардить шлюзом DNS-ы провайдера иначе на локальных станциях придется указывать в качестве DNS серверы провайдера.
sudo apt-get install dnsmasq
Установите на компьютерах локальной сети:
IP: 192.168.0.X (где X от 2 до 254)
Netmask/Маска: 255.255.255.0
Gateway/Шлюз: 192.168.0.1
DNS: 192.168.0.1 (или DNS провайдера)
Теперь компьютеры сети должны быть подключёны к интернету. Если после перезагрузки компьютера-шлюза правила iptables не восстанавливаются, добавьте в любой стартовый скрипт (rc.local например):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Роль DHCP-сервера
Для автоматической раздачи IP-адресов компьтерам локальной сети можно использовать уже использовавшийся ранее dnsmasq. Редактируем файл /etc/dnsmasq.conf
sudo nano /etc/dnsmasq.conf
Добавляем следующие строки:
interface=eth1
dhcp-range=192.168.0.2,192.168.0.100,12h
Данная конфигурация DHCP-сервера позволит раздавать всем компьютерам локальной сети ip-адреса c 192.168.0.2 по 192.168.0.100 со сроком аренды 12 часов.
Перезапускаем сервис dnsmasq:
sudo /etc/init.d/dnsmasq restart
Роль прокси-сервера
Для экономии трафика и увеличеня скорости доступа к часто используемым ресурсам можно установить на компьютер-шлюз службу Squid, сделав его прокси-сервером. Squid позволяет кэшировать картинки, флэш-ролики, видео и прочий веб контент. Установите squid при помощи менеджера пакетов Вашего дистрибутива.
sudo apt-get install squid
Редактируем файл настроек squid:
sudo nano /etc/squid/squid.conf
Ищем параметр http_port , и выставляем ему следующее значение:
http_port 3128 transparent
Ищем параметр visible_hostname и выставляем ему следующее значение:
visible_hostname proxyname (где proxyname - название прокси)
Создадим правило доступа для нашей сети:
acl our_networks src 192.168.0.0/255.255.0.0
http_access allow our_networks
Таким образом мы разрешили доступ к нашему "прозрачному" прокси для компьютеров из нашей сети 192.168.0.0.
Перезапускаем сервис squid:
sudo /etc/init.d/squid restart
Добавим правило перенаправления портов в наш файервол.
sudo iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/255.255.255.0 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Создается текстовый файл pico /etc/init.d/gateway со следующими командами:
#!/bin/sh
iptables —t nat —A POSTROUTING —o eth1 —j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -d ! 192.168.0.0/255.255.255.0 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Изменим атрибуты файла:
chmod +x /etc/init.d/gateway
и добавим его в автозагрузку:
update-rc.d gateway start 51 S

Итак, у нас установлен Linux, у него есть настроенное подключение к локальной сети (см. статью"Азы настройки сетевых подключений для альтернативных операционных систем") и установлен пакет Samba (входит в установку по-умолчанию большинства современных дистрибутивов). Имеется необходимость сделать на базе этой машины простой файл-сервер с открытым для DOS- и Windows-сетевых станций доступом к некоторым ресурсам. Как показывает практика, входящие в комплект Linux по-умолчанию графические интерфейсы (GUI) управления службой Samba не всегда работают корректно и зачастую внести простые изменения в конфигурационный файл Samba оказывается гораздо проще и быстрее, чем воевать с GUI.
В приводимом примере у нас есть необходимость дать доступ к папке distrib (только на чтение - папка содержит необходимые сетевым станциям дистрибутивы программ) и к папке public (полный доступ - содержит пользовательские данные). Так же на Linux-компьютере имеется принтер (в данном конкретном примере PDF-принтер системы Linux Mint), к которому тоже было бы интересно дать доступ.
Любым способом создаем необходимые нам папки в пользовательской директории, например для пользователя archibyte создаем /home/archibyte/public/ и /home/archibyte/distrib/.
C правами администратора системы открываем для редактирования любым текстовым редактором файл /etc/smb.conf. В приводимом примере он должен иметь следующий вид (после точки с запятой приводятся необязательные комментарии):
[global] ; раздел с общими настрйками. Настройки из данного раздела применяются ко всем расшариваемым ресурсам
workgroup = MSHOME ; имя рабочей группы netbios name = SERVER ; NETBIOS-имя компьютера, которое увидят DOS- и WINDOWS-машины
server string = File-server ; комментарии к имени компьютера, которое увидят DOS- и WINDOWS-машины
printcap name = /etc/printcap
printing = cups
cups options = raw
log file = /var/log/samba/log.smbd
max log size = 50
debug level = 5
security = share ; тип безопасности службы Samba. Более подробно смотрите в инструкции к Samba
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY
SO_SNDBUF=8192
SO_RCVBUF=8192
local master = yes
preferred master = yes
domain master = no
wins support = no
dns proxy = no
guest ok = yes ; разрешает гостевой вход для DOS и Windows-систем
guest account = nobody ; указывает на то, что все неизвестные пользователи приравниваются правами к гостям
unix charset = utf8 ; основная кодовая таблица Linux-системы
dos charset = cp1251 ; основная кодовая для DOS- и Window-файлов
display charset = cp1251 ; отображаемая кодовая для DOS- и Window-файлов
[printers] ; раздел управления доступом к принтерам
path = /usr/spool/public ; абсолютный путь к дирректории спуллера печати
guest ok = yes ; разрешает гостевой вход для DOS и Windows-систем
printable = yes ; разрешает печать для DOS и Windows-систем
[print$] ; раздел организации доступа к необходимым библиотекам и драйверам системы печати
comment = Printer
Drivers path = /var/lib/samba/printers [Public] ; название раздела расшариваемого ресурса
path =/home/sasha/pub/ ; абсолютный путь к расшариваемой папке
writable = yes ; разрешение записи guest ok = yes ; разрешает гостевой вход для DOS и Windows-систем
create mask = 0666 ; устанавливает права пользователя на создание, редактирование и удаление файлов
directory mask = 0777 ; устанавливает права пользователя на создание, редактирование и удаление поддиректорий
read only = no ; отключение режима "только чтение"
[distrib]
path = /home/archibyte/distrib writable = no ; запрет записи для сетевых пользователей
guest ok = yes
create mask = 0666
directory mask = 0777
read only = yes ; включение режима "только чтение"
Готовый к использованию файл smb.conf с этим примером прикреплен к данной статье.
Сохраняем smb.conf и перезапускаем службу Samba (или всю систему целиком):
sudo /etc/rc.d/init.d/smb stop sudo /etc/rc.d/init.d/smb start
Доступ открыт - можно работать.
Линус Бенедикт Торвальдс (Linus Benedict Torvalds) родился 28 декабря 1969 года. Его дед по материнской линии, Лео Вальдемар Тёрнквист был профессором статистики в Университете Хельсинки. В 1981 он купил компьютер Commodore VIC-20. Это был первый компьютер, к которому Линус получил доступ - он помогал деду набивать программы, которые профессор старательно писал на бумаге, потому что не привык делать это непосредственно за компьютером. На этом же компьютере Линус написал свою первую программу - это была традиционная "Hello, World!". Когда дед умер, компьютер достался Линусу. Следующие 4 года он провел за компьютером. Когда он выжал из VIC-20 все, что смог, он стал копить деньги на модель следующего поколения. Основным источником средств на покупку компьютера были школьные стипендии, которые Линукс ежегодно получал как лучший математик. В 1987 году он купил Sinclair QL. В этом компьютере был установлен 32-разрядный процессорный чип 68008 компании Motorola с частотой 8 мегагерц. Sinclair имел 128 килобайт (не мегабайт!) памяти, что по тем временам было очень много для домашнего компьютера. У VIC-20, на смену которому он пришел, было всего три с половиной килобайта. В качестве операционной системы использовалась Q-DOS. Именно в это время Торвальдс заинтерсовался работой операционной системы. Как он пишет сам в книге "Just for fun": "Операционками я заинтересовался так: купил флоппи-контроллер, ... но к нему прилагался такой поганый драйвер, что пришлось написать новый. Пока писал - обнаружил проколы в самой операционной системе или по крайней мере несоответствие между тем, что обещала документация, и тем, что реально происходило. Я с этим столкнулся, когда моя программа отказалась работать."
На Sinclair QL Торвальдс работал 3 года. За это время он написал собственный редактор и ассемблер, создал несколько игр. По окончании школы он поступил на отделение компьютерных наук университета г.Хельсинки, столицы Финляндии. После окончания первого курса Торвальдс был вынужден был пойти в армию, где прослужил 11 месяцев. По возвращении из армии он снова вернулся в университет, выбрал себе курсы на осень и с нетерпением ждал лекций по языку Си и системе Unix. В предвкушении этих лекций еще летом он купил книгу "Проектирование и реализация операционных систем" Эндрю С. Таненбаума, в которой описывалась операционная система Minix. В своих воспоминаниях Линус пишет: "Как только я прочел предисловие, познакомился с концепцией Unix и узнал, на что способна эта мощная, строгая и красивая операционная система, я захотел купить такой компьютер, на котором сможет работать Unix. Я решил, что поставлю себе Minix - единственную по-настоящему полезную из известных мне версий." 2 января 1991 года Линус приобрел в рассрочку новый компьютер, на основе процессора Intel 80386 с 4 мегабайтими ОЗУ и тактовой частотой 33 мегагерца. Он установил на него Minix, которую пришлось заказывать отдельно. Она поставлялась на 16-ти дискетах. Примерно за месяц Торвальдс обжился в системе полностью и у него возникло множество претензий к этой ОС, несмотря на то, что установил в систему усовершенствования, сделанные австралийским хакером Брюсом Эвансом (это был царь и бог Minix 386). Хуже всего была эмуляция терминала, очень важная для Торвальдса программа, потому что именно ее он использовал для подключения к университетскому компьютеру MicroVAX, на котором стояла Ultrix - вариант Unix, созданный корпорацией Digital Equipment. Пришлось писать собственную программу эмуляции. Когда программа эмуляции терминала заработала, возникла новая проблема. Как пишет Торвальдс "Беда была в том, что я хотел скачивать и закачивать файлы. То есть мне нужно было уметь писать на диск. Для этого моей программе эмуляции нужен был драйвер дисковода. А еще ей был нужен драйвер файловой системы, чтобы она могла вникать в организацию диска и записывать скачиваемые файлы. ... разработка драйверов для дисковода и файловой системы казалась интересным делом. И я решил им заняться. Написал драйвер дисковода. А поскольку я хотел записывать файлы в файловую систему Minix, да к тому же эта система была хорошо документирована, я сделал свою файловую систему совместимой с системой Minix. Таким образом я мог читать файлы, созданные в Minix, и писать файлы на тот же диск, так что Minix могла читать файлы, созданные моей программой эмуляции терминала."
В Minix не только была плохая эмуляция терминала, но и не было возможности перевести в фоновый режим программу, которой временно не пользуешься. И тут Торвальдс уже практически взялся за создание собственной операционной системы. Вначале он пытался просто программировать один за другим системные вызовы. Но их около двухсот и эта работа скоро наскучила. Тогда он изменил подход. Он взял оболочку bash, котоорая свободно распространялась в Интернет, и начал пытаться заставить ядро своей ОС запустить ее. Когда на этапе загрузки или запуска оболочка обращалась к какому-то системному вызову, происходил сбой. Тогда Линукс реализовывал необходимый системный вызов и повторял попытку. Наконец, в конце августа или начале сентября 1991 года, оболочка заработала. Это был очень важный момент. Как только оболочка заработала, удалось откомпилировать еще несколько программ. Оболочка была сложнее, чем, к примеру, программа копирования ср или команда выдачи листинга каталогов ls. В какой-то момент готовых компонент оказалось столько, что настал момент, когда можно было сказать, что заложены основы новой операционной системы.
25 августа 1991 года Линус Торвальдс направил первое сообщение о своей разработке в группу новостей comp.os.minix:
From: torvaldsSklaava.Helsinki.Fi (Linus Benedict Torvalds)
To: Newsgroups: comp.os.inix
Subject: Чего вам больше всего не хватает в minix?
Summary: небольшой опрос для моей операционной системы Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.Fi>
Date: 25 августа 1991 г., 20:57:08 GMT
Organization: University of Helsinki
Привет всем пользователям minix!
Я пишу (бесплатную) операционную
систему (это просто хобби, ничего большого и профессионального вроде gnu)
для AT 386(486). Я вожусь с этим с апреля, и она, похоже, скоро
будет готова. Напишите мне, кому что нравится/не нравится в minix, поскольку
моя ОС на нее похожа (кроме всего прочего, у нее - по практическим соображениям
- то же физическое размещение файловой системы).
Пока что я перенес в нее bash (1.08) и gсс (1.40) , и все вроде работает.
Значит, в ближайшие месяцы у меня получится уже что-то работающее, и мне бы
хотелось знать, какие функции нужны большинству. Все заявки принимаются, но
выполнение не гарантируется :-)
Линус (torvalds@kruuna.helsinki.fi)
PS. Она свободна от кода minix и включает мультизадачную файловую систему.
Она НЕ переносима (используется переключение задач 386 и пр.) и, возможно,
никогда не будет поддерживать ничего, кроме АТ-винчестеров, потому что
у меня больше ничего нет :-(.
В другом послании (от 26 августа 1991 г.) Линус впервые сообщает о том, что он собирается придерживаться лицензии GNU: "Даже тогда она, вероятно, не будет способна делать много больше того, что может minix, а во многих отношениях просто много меньше. Но она будет открыта (возможно, в соответствии с лицензией GNU или подобной)". Впрочем, это только небольшое попутное замечание, решение о том, на каких условиях будет распространяться Linux, будет сделано не сразу, и не сразу это будет GPL.
В своей книге "Just for fun" Л.Торвальдс пишет, что версия 0.01 была выпущена 17 сентября 1991 года. Снова приведу цитату из книги Торвальдса:
"И вот я решился ее выложить. Я не делал публичных объявлений, а просто написал пятерым-десятерым хакерам на личные адреса, что она лежит на FTP-сайте. В числе прочих я написал знаменитому среди фанатов Minix Брюсу Эвансу и Ари Лемке. Я выложил исходники самой Linux и еще несколько бинарников, чтобы можно было хоть что-то делать. Я сказал, что нужно, чтобы запустить все это хозяйство. На машине должна была стоять Minix (версия 386) и нужен был компилятор GCC. Причем на самом деле нужна была моя версия GCC, поэтому ее я тоже выложил.
Не думаю, чтобы ту версию проверяло больше одного-двух человек. Для этого нужно было возиться с установкой специального компилятора, выделить пустой раздел, чтобы использовать его для загрузки, откомпилировать мое ядро и запустить оболочку. А кроме запуска оболочки, делать было особенно нечего. Можно было распечатать исходники - всего 10 000 строк.
Я стал распространять свою операционку прежде всего, чтобы доказать, что все это не пустая болтовня - я действительно что-то сделал. В Интернете много болтают. О чем бы ни шла речь - об операционке или о сексе - многие в киберпространстве просто вешают лапшу на уши. Поэтому важно после того как ты растрезвонил, что пишешь операционку, иметь возможность сказать: "Вот - я ее и правда сделал. Я не трепло - можете сами посмотреть".
Название "Linux" новая система получила следующим образом. Самого Торвальдса несколько смущало созвучие этого названия с его именем, поэтому он пытался назвать свою разработку FREAX. Это название можно обнаружить в файле kernl/Makefile версии 0.11, и в исходных кодах других программ. Но Ари Лемке, который предоставил место для выкладывания системы на FTP сайте, назвал каталог pub/OS/Linux. И это название закрепилось за новой ОС.
Стадия становления
Версия 0.02 Linux появилась 5 октября 1991 г. Она сопровождалась следующим известным заявлением Торвальдса:
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Исходники свободного minix-подобного ядра для 386-AT
Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI>
Date: 5 октября 1991 г., 05:41:06 GMT
Organization: University of Helsinki
Вы скорбите о тех временах, когда мужчины были настоящими мужчинами и
сами писали драйверы устройств? У вас нет хорошего проекта и вы мечтаете
вонзить свои зубы в какую-нибудь ОС, чтобы модифицировать ее для своих нужд?
Вас раздражает то, что все работает под minix? И не требуется просиживать ночи,
чтобы заставить программу работать? Тогда это послание адресовано вам :-)
Как я сообщал месяц (?) назад, я работаю над свободной версией
чего-то похожего на minix для AT-386 компьютеров. Работа наконец достигла
той стадии, когда результат уже можно использовать (хотя может быть и не для
того, для чего хотелось бы вам), и я хочу выложить исходные коды для
широкого распространения. Это всего-навсего версия 0.02 (+1 очень небольшое
дополнение), но я успешно запускаю под ней bash/gcc/gnu-make/gnu-sed/compress
и так далее.
Исходные коды этого моего любимого проекта можно найти на сайте
nic.funet.fi (128.214.6.100) в каталоге /pub/OS/Linux. Этот каталог содержит
также несколько README-файлов и пару бинарников, которые работают под linux
(bash, update и gcc, что вам еще надо :-).
Исходные коды ядра предоставлены в полном объеме, поскольку коды
minix не используются. Исходные коды библиотек свободны только частично,
поэтому не могут распространяться свободно. Система может быть скомпилирована
"as-is" и она работает.
Тот факт, что Линус выложил код своей ОС в Интернет, был решающим в дальнейшей судьбе Linux. Хотя в 1991 году Интернет еще не был так широко распространен, как в наши дни, зато пользовались им в основном люди, имеющие достаточную техническую подготовку. И уже с самого начала Торвальдс получил несколько заинтересованных откликов. Примерно в феврале 1992 года Линус высказал просьбу ко всем, кто уже пользовался или тестировал Linux, прислать ему открытку. Таких открыток было получено несколько сотен со всех концов света - из Новой Зеландии, Японии, Нидерландов, США. Это говорило о том, что Linux начала приобретать некоторую известность. Получил Торвальдс отзыв и от Андрю Таненбаума, автора MINIX. К сожалению, отзыв этот был довольно недоброжелательный. В своем письме Таненбаум писал: "Я все же придерживаюсь той точки зрения, что использование монолитного ядра в 1991 году является фундаментальной ошибкой. Радуйтесь тому, что вы не мой студент. У меня вы не получили бы высокой оценки за такую работу :-)"
Линус позже признавался, что это был самый тяжелый момент в истории его занятий Linux. Все же Таненбаум был знаменитым профессором и все, что он говорил, заслуживало внимания. Но в отношении Linux профессор был не прав, а Линус был упрямым парнем и не мог просто так признать себя неправым. К тому же Таненбаум озаглавил свое письмо "Linux устарела" и опубликовал его в телеконференции, что сильно задело Линуса, так как ему показалось, что оно подрывает его социальный статус, которым он очень дорожил. И Торвальдс ответил Таненбауму достаточно резко:
">для меня MINIX - хобби, которым я занимаюсь по вечерам
>Моя основная работа - преподавание и
>исследования в области операционных систем.
Вы хотите этим оправдать ограниченность minix? Извините, но вы не правы.
У меня оправданий гораздо больше, и все-таки linux побеждает minix почти
по всем параметрам. Не говоря уж о том, что большая часть хороших кодов
для minix, похоже, написана Брюсом Эвансом.
Re 1: Для вас minix хобби - но ведь minix приносит доход, a linux
раздается бесплатно. Теперь по поводу хобби. Поместите minix в свободный
доступ, и одна из моих главных претензий к ней отпадет. Linux для меня
в большой степени хобби (серьезное хобби, самого высшего сорта).
Я не беру за нее денег, и она даже не является частью моей учебной работы.
Я сделал ее в свободное время на собственной машине.
Re 2: Вы работаете преподавателем и исследователем. Прекрасное объяснение
для умственной неполноценности minix. Остается надеяться, что Amoeba не
такая фигня, как minix.
>1. МИКРОЯДРО ИЛИ МОНОЛИТ
Да, linux - монолитная система, и я согласен, что микроядро лучше.
Если бы у вашего сообщения не был такой спорный заголовок, я бы, вероятно,
согласился с большинством ваших высказываний. С теоретической (и эстетической)
точки зрения linux проигрывает. Если бы ядро GNU было готово прошлой весной,
я бы и не взялся за свою разработку: беда в том, что оно не было готово тогда
и не готово до сих пор. Linux выигрывает прежде всего потому, что она уже
готова.
>MINIX - система с микроядром [пропущено, но без
>потери смысла] . LINUX - монолитная система.
Если бы это было единственным критерием качества ядра, вы были бы правы.
Однако вы не пишете о том, что микроядро в minix сделано плохо и возникают
проблемы с многозадачностью (в ядре). Если бы я сделал ОС, у файловой
системы которой были бы проблемы с многозадачностью, я бы не стал так
поспешно осуждать других: наоборот, я бы из кожи вон лез, чтобы все забыли
о моем провале. Да, я знаю, что для minix есть масса заплаток,
обеспечивающих многопоточную работу, но это лишь заплатки, и Брюс Эванс
говорит, что все равно остается множество проблем синхронизации."
Линус говорит, что спор с создателем Minix вскоре перешел в обмен личными посланиями - перепалка была слишком резкой, чтобы вести ее публично. Несколько месяцев было тихо. Потом Таненбаум прислал Линусу ссылку на пятистрочное объявление в журнале "Byte" о выпуске коммерческой версии Linux. "В своем последнем сообщении Эндрю спрашивал, этого ли я хотел - чтобы кто-то продавал мой труд. Я ему ответил коротко: "Да", и больше он мне не писал", - рассказывает Линус. Более подробно с перепиской Линуса Торвальдса, Андрю Таненбаума, Теда Тсо (Ted T'so), Дэвида Миллера и других участников этого спора вы познакомиться на "Linux is Obsolete". С полным текстом можно также ознакомиться по адресу: http://groups.google.com/groups?threadm=12595%40star.cs.vu.nl.
Тем временем работа над Linux продолжалась. Первоначально Линус Торвальдс не хотел продавать свою разработку. И не хотел, чтобы ее продавал кто-то другой. Это было четко прописано в уведомлении об авторских правах, помещенном в файл COPYING самой первой версии - 0.01. Причем требование Линуса налагало значительно более жесткие ограничения на распространение Linux, чем те, которые провозглашались в лицензии GNU: не разрешалось взимать никаких денег за передачу или использование Linux. Но уже в феврале 1992 г. к нему стали обращаться за разрешением брать плату за распространение дискет с Linux, чтобы покрыть временные затраты и стоимость дискет. Кроме того, необходимо было считаться и с тем, что при создании Linux использовалось множество свободно распространяемых по Интернету инструментов, самым важным из которых был компилятор GCC. Авторские права на него оговорены в Универсальной общественной лицензии (GPL), которую изобрел Ричард Столман. Торвальдсу пришлось пересмотреть свое заявление об авторских правах, и, начиная с версии 0.12 он тоже перешел на использование лицензии GPL. Весной 1992 года Орест Збровски сумел перенести под Linux систему X Window. Обмен информацией между сервером и клиентам в этой системе осуществляется с помощью сокетов, или, точнее, Unix Domain Sockets. Этот же способ используется для передачи информации в Интернет. Поэтому, как пишет Торвальдс, "мы с большим воодушевлением принялись разрабатывать сети для Linux поверх этих самых Domain Sockets, хотя они вовсе не были для этого предназначены. Я был настолько уверен, что все получится, что даже сделал скачок в нумерации версий. В марте 1992 года я планировал выпустить версию 0.13. А вместо этого, получив графический интерфейс пользователя, уверился, что мы на 95% достигли цели - выпуска полноценной, надежной операционной системы, пригодной к тому же для работы в сети. И поэтому выпустил версию 0.95." Но разработка сетевой подсистемы оказалась делом значительно более сложным, чем это казалось вначале. Поэтому пришлось использовать трехуровневую систему нумерации. Для появившихся к этому времени коммерческих компаний, продававших Linux, было очень важно, чтобы была наконец выпущена версия Linux с номером 1.0. Это имело значение скорее по психологическим, чем по технологическим причинам: кому хочется торговать операционной системой версии 0.96? Поэтому в конце концов и Линус Торвальдс согласился выпустить версию 1.0, когда почувствовал, что система стала наконец работоспособной. Университет Хельсинки предоставил для проведения презентации Linux 1.0 главную аудиторию факультета информатики. Презентация была проведена 16 апреля 1994 года с большой помпой. Репортаж об этом событии даже показали по финскому телевидению.
С самых ранних этапов существования Linux в развитие системы вносили свой вклад очень многие добровольные помощники, которые посвящали свое время, умения и усилия развитию и совершенствованию Linux. Конечно, эти люди проделали гораздо больше работы, чем сказано в этой табличке. И, кроме перечисленных, было огромное число людей, которые в этой табличке не указаны, но которые внесли свой вклад в развитие Linux. Вначале к разработке присоединились сотни, потом тысячи, потом сотни тысяч добровольных помощников. Система уже не была просто игрушкой для хакеров. Дополненная массой программ, разработанных в рамках проекта GNU, Linux был уже пригоден для практического использования. А то, что ядро системы распространялось под лицензией GNU General Public License, гарантировало, что исходные коды системы были и останутся свободными, то есть могут копироваться, изучаться и модифицироваться без опасения нарваться на какое-либо преследование со стороны разработчика или какой-то коммерческой фирмы. И это привлекало в ряды пользователей и сторонников Linux все новых последователей, в первую очередь из числа студентов и программистов. К этому времени сфорировалась отдельная телеконференция в Интернете, посвященная Linux, - comp.os.linux. Энтузиасты образовали множество групп пользователей и в начале 1994 г. вышел первый номер журнала "Linux Journal". Linux привлекла внимание промышленных фирм и несколько небольших компаний начали разрабатывать и продавать собственные версии Linux.
Самые первые версии Linux, появившиеся в 1991 году, размещались на двух дискетах. Первая дискета была загрузочной и содержала ядро, а вторая - корневую файловую систему и основные утилиты. Копии этих дискет можно было загрузить с сервера университета в Хельсинки. Конфигурирование и настройка системы производились вручную и были очень сложными. Поэтому до появления первых дистрибутивов установить Линукс на свой компьютер мог только достаточно подготовленный специалист, можно сказать эксперт в UNIX. Положение изменилось после появления так называемых дистрибутивов. Дистрибутив Linux отличается от простого набора пакетов программного обеспечения в первую очередь наличием программы инсталляции, которая позволяет рядовому пользователю установить систему на свой компьютер, причем сделать это не привлекая высококвалифицированного эксперта. Если попытаться дать формальное определение дистрибутива, то получится что-то вроде:
Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной систем (в том числе, ядро Linux), некоторую совокупность программных приложений и программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux и набор прикладных программ, необходимых для конкретного применения системы.
Первые дистрибутивы Linux появились вскоре после того, как Линус Торвальдс выпустил разработанное им ядро Linux под лицензией GPL. Поскольку значительная часть другого необходимого программного обеспечения уже была разработана в рамках проекта GNU, отдельные программисты (и группы программистов) начали разрабатывать как программы инсталляции, так и другие прикладные программы, пользовательский интерфейс, программы управления пакетами и выпускать свои дистрибутивы Linux. Первый дистрибутив Linux был создан Оуэном Ле Бланк (Owen Le Blanc) в Манчестерском компьютерном центре (Manchester Computing Centre, MCC) в Англии. Первый релиз этого дистрибутива, получившего имя MCC Interim Linux, стал доступен для всех желающих с ftp-сервера Манчестерского университета в феврале 1992 г. Примерно в то же время сотрудниками университета Техаса был создан дистрибутив TAMU. В октябре 1992 появился разработанный Питером Мак-Дональдом (Peter McDonald) дистрибутив Softlanding Linux System (SLS), который был первым дистрибутивом, включающим в себя такие элементы, как X Window System и поддержка TCP/IP. Ни один из этих дистрибутивов не имел хорошей поддержки. В конце 1992 года Патрик Фолькердинк (Patrick Volkerding) выпустил дистрибутив, в значительной части основанный на SLS, который он назвал "Slackware" и который является старейшим дистрибутивом из тех, которые до сих пор активно развиваются. На основе дистрибутива Slackware германской фирмой S.U.S.E (акроним от немецкого "Software- und System Entwicklung"), основанной в 1992 году как консультативная группа по ОС UNIX, был создан дистрибутив SuSE Linux, версия 1.0 которого вышла в 1994 году. Позже SuSE интегрировал дистрибутив Jurix Флориана Ла Роше (Florian La Roche). Еще один проект по разработке дистрибутива, Debian, был начат Яном Мёрдоком (Ian Murdock) 16 августа 1993 года как альтернатива коммерческим дистрибутивам Linux. Ян хотел создать систему, распространяемую абсолютно свободно и открыто, в духе Linux и GNU. Позже разработка Debian была профинансирована проектом GNU: Free Software Foundation, который выделил деньги на один год, с ноября 1994 по ноябрь 1995, что позволило Я.Мердоку в течение этого периода уделять проекту Debian все свое время. Дистрибутив Red Hat, который включал в себя некоторые аспекты дистрибутива Bogus (например, механизм пакетов), был основан в 1994 году. На основе Red Hat было создано множество других дистрибутивов, в том числе многие коммерческие дистрибутивы, например, Caldera, Mandrake и TurboLinux.
А Линус Торвальдс к этому времени еще даже не окончил учебу в университете!....
По материалам http://www.linuxcenter.ru
Свободное программное обеспечение все активнее приходит в нашу жизнь. Одна из причин в том, что на протяжении последних лет всё большую актуальность приобретает вопрос нелегального использования программного обеспечения. Вторая причина миграции на свободное ПО – отсутствие прессинга производителя продуктов, заставляющих модернизировать как программное, так и аппаратное обеспечение. В отличие от распространенной собственнической операционной системы Windows, которую выпускает только один производитель, Linux выпускает множество фирм, проектов и просто любителей. Имеет смысл рассмотреть выбор дистрибутива Linux, поскольку каждый из них имеет свои сильные и слабые стороны.
AltLinux
ALT Linux (Альт Линукс) — это дистрибутив GNU/Linux российской команды разработчиков ALT (аббревиатура рекурсивно расшифровывается как ALT Linux Team). Команду ALT Linux Team поддерживает компания ALT Linux, основанная в 2001 году в результате объединения отечественных проектов IPLabs Linux Team и Linux RuNet. В команду разработчиков входит свыше 150 человек, подавляющее большинство из Белоруссии, Украины и России. ALT Linux – динамично развивающийся дистрибутив, обеспечивающий неплохой баланс качество|безопасность. Сильными сторонами дистрибутивов ALT Linux является: стандартная и качественная интернационализация и локализация (поддержка русского языка в этом дистрибутиве работает «из коробки» для всех общеизвестных кодировок кириллицы: KOI8-R, KOI8-U, CP1251, UTF-8); высокая степень надёжности и защиты (TCB, chrooted environments…), наличие команды документирования (ALT Linux Doc Team), крупное и активное сообщество пользователей и разработчиков ALT Linux, система управления программными пакетами APT.
Компания поддерживает проекты локализации OpenOffice.org и Mozilla, проводит конференции разработчиков и пользователей свободного ПО, активно участвует в проведении LinuxFest'а в Калужской области.
|
Архитектура |
x86 (x86_64 в unstable) |
|
Назначение |
общее |
|
Уровень пользователя |
любой |
|
Пакетный менеджер |
rpm, apt |
|
Объем пакетов в поставке |
более 5000 srpm |
|
Бесплатный FTP |
ftp-версия публикуется не сразу после выхода коробочной |
|
Бесплатные обновления |
да |
|
Исправления проблем с безопасностью |
да |
|
Обновление версии дистрибутива |
Нормально. достаточно remote dist-upgrade -- mike@) |
|
Стабильность |
Очень хорошая |
|
Безопасность |
Очень хорошая (TCB, Openwall patch, все что |
|
GUI для настройки |
да |
|
Основное оконное окружение |
KDE, Gnome |
|
Простота установки |
GUI инсталлятор на базе Mandrake (с версии Compact 3.0 |
|
Источники для установки |
CD, НЖМД, FTP (загрузка с CD/DVD) |
Выпускается несколько модификаций дистрибутива:
ALTLinux Compact – для установки на персональные компьютеры (ориентированный на начинающих пользователей Linux)
ALTLinux Master – универсальный дистрибутив, содержащий дополнительно серверное ПО, исходные коды, дополнительное коммерческое ПО и печатную документацию.
«ИВК Кольчуга» предназначен для использования в составе информационной системы предприятия в качестве межсетевого экрана (МЭ) с расширенной функциональностью.
ALT Linux «Утёс-К» – универсальный защищённый дистрибутив Linux, сертифицированный Гостехкомиссией России по 5 классу СВТ защиты конфиденциальной информации, пригодный для использования как в качестве сервера так и рабочей станции.
ALT Linux Castle - защищённый серверный дистрибутив на основе системы RSBAC.
ALT Linux SOHO Server – интегрированная система для организации офисного шлюз-сервера и файлового сервера.
Fedora Core (англ. мягкая фетровая шляпа, есть русское точное название «Федорино Коре») — дистрибутив открытой операционной системы Linux. Этот дистрибутив спонсируется (но не поддерживается) фирмой Red Hat Inc и поддерживается общественностью. Проект служит для тестирования новых технологий, которые в дальнейшем включаются в продукты Red Hat и других производителей. Версии Fedora Core выходят с периодичностью 2—3 раза в год по доступному расписанию.
Пользователи Fedora Core в мире пытаются создать сообщества, служащие для обмена опытом и свободным ПО, для взаимной технической поддержки, общения и дружбы.
Тестирование новых технологий практически всегда означает отсутствие достаточной стабильности. Вторым отрицательным моментом является отсутствие некоторых программ, характерных для нашего региона (проигрыватели mp3, кодеки DivX, xxkb), однако существует возможность использовать сторонние репозитории.
Автор имеет достаточно негативный опыт использования Fedora Core 5 и не рекомендует использовать этот при построении ИС предприятия. Альтернативой может быть CentOS, если есть желание использовать бренд Red Hat. Однако в тестовой лаборатории Fedora Core – хороший выбор, это позволит посмотреть «куда идет паровоз промышленного Linux».
|
Архитектура |
x86, AMD64, PPC |
|
Назначение |
общее (рекомендуется для использования на десктопе, для |
|
Уровень пользователя |
любой |
|
Пакетный менеджер |
rpm, yum, up2date, частично apt |
|
Объем пакетов в поставке |
около 5000 |
|
Бесплатный FTP |
да |
|
Бесплатные обновления |
да |
|
Исправления проблем с безопасностью |
хорошо |
|
Обновление версии дистрибутива |
плохо, от версии к версии много меняется, после |
|
Стабильность |
низкая (на дистрибутиве обкатываются многие |
|
Безопасность |
стандартная, SELinux в комплекте |
|
GUI для настройки |
да |
|
Основное оконное окружение |
Gnome |
|
Простота установки |
GUI инсталлятор |
|
Источники для установки |
CD/DVD |
ASPLinux (Application Service Provider Linux) — российский дистрибутив ОС GNU/Linux, выпускаемый одноимённой компанией. Ядро команды составили разработчики легендарного Black Cat Linux, Кантер и Каневский.
Дистрибутив базируется на системе пакетов RPM, по заявлениям разработчиков полностью совместим с дистрибутивом Red Hat (в настоящее время – Fedora Core). Поддержка русского языка в этом дистрибутиве работает прямо «из коробки».
Из оригинальных компонентов дистрибутив включает собственный менеджер загрузки ASPLoader, очень похожий на Lilo; оригинальную программу установки, включающую менеджер разделов ASPDiskManager, который одним из первых в дистрибутивах Linux мог изменять размеры NTFS-разделов, а также средство установки по сети EspressoDownload. Сами разработчики заявляют, что это самый популярный дистрибутив в СНГ.

|
Архитектура |
x86, AMD64 |
|
Назначение |
общее |
|
Уровень пользователя |
любой |
|
Совместимость со стандартом LSB |
? |
|
Пакетный менеджер |
rpm, yum |
|
Объем пакетов в поставке |
несколько больше чем в Fedora Core |
|
Бесплатный FTP |
частично |
|
Бесплатные обновления |
? |
|
Исправления проблем с безопасностью |
? |
|
Обновление версии дистрибутива |
? |
|
Стабильность |
как у Fedora Core, ядро с kernel.org |
|
Безопасность |
несколько больше чем в Fedora Core |
|
GUI для настройки |
да |
|
Основное оконное окружение |
Gnome, хорошая поддержка мультимедиа |
|
Простота установки |
удобная программа установки собственного производитва |
|
Источники для установки |
? |
Выпускается несколько модификаций дистрибутива:
ASPLinux Express - содержит диски с базовой системой
ASPLinux Standard - содержит дополнительно диски с коммерческими приложениями и играми и печатную документацию
ASPLinux Deluxe - содержит дополнительно исходные коды компонентов системы
ASPLinux Server - почти идеальное решение для тех, кто разворачивает файловый сервер «1С» на Linux для работы с решениями фирмы «1С». Настройка типовой конфигурации файлового сервера для работы с программным комплексом "1С:Предприятие" версий 7.7 или 8.0 происходит «нажатием одной кнопки», при этом автоматически создаются все необходимые ресурсы и группы пользователей.
Knoppix — LiveCD-дистрибутив операционной системы GNU/Linux, созданный на базе Debian GNU/Linux. Иначе говоря, для того чтобы работать с Knoppix не нужна установка его на жёсткий диск. Сделать это удалось благодаря применению динамической компрессии: запускаемые программы распаковываются из архивов на лету.
Knoppix – полноценная рабочая система общего назначения, используя Knoppix можно писать программы, составлять курсовые и дипломы, рисовать, слушать музыку, смотреть видеофильмы, просто играть — т. е. использовать компьютер на полную мощность. При желании, Knoppix можно переместить на жёсткий диск, превратив вашу машину в полноценную рабочую станцию. Knoppix достаточно неплохо поддерживает русский и украинский языки (при использовании Knoppix-UA, openoffice.com.ua/knoppix).
Слабые стороны дистрибутива – некоторая медлительность (разархивирование на лету требует значительных затрат вычислительной мощности). В данный момент Knoppix Linux не поддерживает архитектуры AMD64, IA-64. Естественная ниша Knoppix – использование для освоения в новой операционной системе, в качестве демонстрационного диска сборщиками компьютеров.
|
Архитектура |
x86 |
|
Назначение |
знакомство с Линукс, переход с Windows, экстренные меры |
|
Уровень пользователя |
любой |
|
Совместимость со стандартом LSB |
да |
|
Пакетный менеджер |
dpkg, apt |
|
Объем пакетов в поставке |
CD - 1000, DVD - 2600 |
|
Бесплатный FTP |
- |
|
Бесплатные обновления |
- |
|
Исправления проблем с безопасностью |
- |
|
Обновление версии дистрибутива |
- |
|
Стабильность |
стандартная |
|
Безопасность |
стандартная |
|
GUI для настройки |
да |
|
Основное оконное окружение |
KDE |
|
Простота установки |
да |
|
Источники для установки |
CD/DVD |
http://www.linux-mandriva.com/
Mandriva (ранее – Mandrake Linux) был создан в 1998 году с целью сделать Linux простым в использовании для всех. В то время Linux уже был хорошо известен как мощная и стабильная операционная система, которая, однако, требовала серьезных технических знаний и активного использования «командной строки». Жиль Дюваль (Ga?l Duval)увидел возможность совместить ее с наилучшими графическими окружениями рабочих столов, добавил свои собственные графические утилиты настройки и дистрибутив быстро стал известен своими стандартами в простоте использования и функциональности.
Именно Mandrake Linux развеял миф о том, что Linux сложен в установке. Возможности автоопределения оборудования и утилиты разбиения дисков в Mandrake считаются многими лучшими в этой области. За 8 лет Mandrake Linux стал весьма популярным дистрибутивом среди новичков в Linux и среди домашних пользователей, выбравших альтернативную операционную систему.
В качестве расплаты за «удобства – прежде всего» пользователи вероятно заметят большее количество ошибок и возможно меньшую стабильность, по сравнению с другими дистрибутивами. И хотя многие пользователи находят эту цену приемлемой для настольных систем, использование в корпоративном секторе этого дистрибутива нельзя рекомендовать. Еще одной слабой стороной этого дистрибутива является отсутствие качественной коммерческой поддержки в регионе, что касается локальной некоммерческой поддержки – ее уровень расчитан скорее на начинающих пользователей.
|
Архитектура |
x86, AMD64, PPC |
|
Назначение |
десктоп |
|
Уровень пользователя |
начинающий |
|
Совместимость со стандартом LSB |
да |
|
Пакетный менеджер |
rmp, RpmDrake, |
|
Объем пакетов в поставке |
около 11000 |
|
Бесплатный FTP |
ограниченно |
|
Бесплатные обновления |
? |
|
Исправления проблем с безопасностью |
часто исправления запаздывают |
|
Обновление версии дистрибутива |
проблематично |
|
Стабильность |
стандартная |
|
Безопасность |
стандартная |
|
GUI для настройки |
да |
|
Основное оконное окружение |
KDE |
|
Простота установки |
отлично |
|
Источники для установки |
CD/DVD/FTP |
Slackware Linux (рус Слакварь или Слак) был одним из первых дистрибутивов Linux. Именно с него автор статьи начинал путь в Linux 10 лет тому. Первая версия этого дистрибутива была выпущена Патриком Фолькердингом (Patrick Volkerding) — также известным как Mr. Slackware и The Man в 1993 году и с этого времени дистрибутив поддерживается автором единолично.
Slackware значительно отличается от других дистрибутивов (таких как Debian, Gentoo, Mandrakelinux, Red Hat и Novell Linux) тем, что Slackware был и остаётся «самым UNIX’овым» — большинство настроек производятся «напрямую», без дополнительных конфигураторов и других «прослоек». Основной принцип системы – простота и стабильность. Однако простота – простота построения, а не использования системы.
Система управления пакетами в Slackware позволяет пользователю устанавливать, обновлять или удалять пакеты так же легко, как и аналогичные системы других дистрибутивов, но, в отличие от последних, не делает никаких попыток отслеживать зависимости между пакетами. То есть, при установке нового пакета система не проверяет наличие всех необходимых библиотек и/или программ, что усложняет (и удорожает) администрирование. Файлы пакетов представляют собой архивы, сделанные с помощью программы tar и сжатые затем с помощью программы gzip. Обычное расширение для файлов пакетов — .tgz.
Это делает дистрибутив немного сложноватым для использования, но он пользуется популярностью у некоторого количества опытных пользователей.
Дистрибутив позиционируется как универсальный конструктор. Отрицательными моментами является низкая прогнозируемость (проект одного человека) и отсутствие коммерческой поддержки от производителя. Локализация «из коробки» достаточно слабая. В нашем регионе на основе Slackware создан и успешно развивается дистрибутив DeepStyle Linux, который представляет собой превосходно локализованный Slackware Linux. На форумах проекта можно получить некоммерческую поддержку. Отсутствует юридическая защита пользователей.
Все эти факторы позволяют утверждать, что использование дистрибутивов, базирующихся на Slackware Linux достаточно дорого в корпорациях.
Некоторые (e.g. mike@) утверждают и аргументируют, что использование Slackware характеризует фанов, профанов и старпёров, причём какое-то понимание свидетельствуется только первой категории (каждый сходит с ума по-своему).
|
Архитектура |
x86, IA-64 (неоф.), AMD64 (неоф.), S/390, PPC (неоф.), |
|
Назначение |
для энтузиастов |
|
Уровень пользователя |
энтузиаст |
|
Совместимость со стандартом LSB |
нет |
|
Пакетный менеджер |
pkgtools + slackpkg/swaret/slapt-get |
|
Объем пакетов в поставке |
базовая система + некоторые популярные приложения |
|
Бесплатный FTP |
да |
|
Бесплатные обновления |
да |
|
Исправления проблем с безопасностью |
да |
|
Обновление версии дистрибутива |
требует ручного вмешательства |
|
Стабильность |
выше среднего |
|
Безопасность |
стандартная |
|
GUI для настройки |
нет |
|
Основное оконное окружение |
KDE, xfce, лёгкие оконные менеджеры |
|
Простота установки |
средняя |
|
Источники для установки |
CD,HDD,nfs |
Ubuntu (произносится как «убу?нту») — молодой, но очень популярный дистрибутив GNU/Linux, основанный на Debian GNU/Linux. Ориентирован на простоту использования (всё должно «просто работать») и прогнозируемость (имеет чёткий график релизов – дважды в год). Спонсирует создание Ubuntu Canonical Ltd., основанная бизнесменом из ЮАР Марком Шаттлвортом.
Пакеты Ubuntu, в основном, базируются на пакетах из нестабильной (unstable) группы пакетов из Debian. Ubuntu использует систему управления пакетами APT от Debian для управления установленными пакетами. Тем не менее, пакеты для Ubuntu и Debian не обязательно совместимы друг с другом – в апреле 2005 основатель Debian Иан Мердок критиковал Ubuntu за несовместимости между его пакетами и таковыми из Debian, говоря, что Ubuntu слишком далеко отклонился от Debian Sarge, чтобы остаться совместимым.
Ubuntu сосредотачивается на удобстве и простоте использования, включает широко распространенное использование утилиты sudo, которая позволяет пользователям выполнять администраторские задачи, не запуская опасную сессию суперпользователя. Ubuntu имеет развитую интернационализацию, в том числе – неплохую поддержку русского и украинского языков.
Ubuntu основан на системе рабочего стола GNOME, который слабо распространен в нашем регионе, имеет достаточный диапазон современных настольных приложений, включая OpenOffice.org, web-браузер Mozilla Firefox и растровый графический редактор GIMP. Есть также версии Ubuntu с рабочим столом KDE, который наиболее распространен в Украине и Росии. В целом, дистрибутив достаточно приятен в использовании (если не учитывать удивительное цветовое оформление дистрибутива).
Диски Ubuntu не только бесплатны, но и могут быть бесплатно доставлены (однако отсутствует лицензия, которая позволила бы защититься от проверок на лицензионность). Отсутствует коммерческая поддержка Ubuntu в Украине. Положительным моментом является то, что разработчики Ubuntu, несмотря на старания, не отошли далеко от Debian GNU/Linux и можно использовать дебиановские репозитории ПО. Однако причин использовать Ubuntu взамен Debian все равно не видно. Весьма перспективной разработкой выглядит LiveCD дистрибутв от комманды русских разработчиков - Runtu. Он представляет собой сборку дистрибутива Xubuntu, подготовленную специально для использования на маломощных компьютерах. Создатели этого проекта тщательно подобрали, предустановили и настроили все необходимое для комфортной работы на компьютере офисного предназначения, сохранив при этом компактность и быстродействие дистрибутива на должном уровне.
|
Архитектура |
x86, AMD64, HPPA, IA64, PPC, SPARC |
|
Назначение |
десктоп, сервер |
|
Уровень пользователя |
начинающий |
|
Совместимость со стандартом LSB |
да |
|
Пакетный менеджер |
dpkg, apt |
|
Объем пакетов в поставке |
около 3000 (на DVD пакетов больше чем на CD) |
|
Бесплатный FTP |
да |
|
Бесплатные обновления |
да |
|
Исправления проблем с безопасностью |
да |
|
Обновление версии дистрибутива |
простое при наличии сети (6.* -> 7.04 |
|
Стабильность |
стандартно |
|
Безопасность |
стандартно |
|
GUI для настройки |
да |
|
Основное оконное окружение |
Gnome (Ubuntu)/KDE(Kubuntu)/xfce(Xubuntu) |
|
Простота установки |
да:графический инсталлятор(есть альтернативный CD с |
|
Источники для установки |
CD/DVD/сеть |
Статья написана с использованием следующих источников информации:
Эта статья основана на документе Linux filesystem standard, FSSTND, версии 1.2 (который пытается установить стандарт на организацию дерева каталогов в Linux-системе) и должна помочь тем людям, кто уже попробовал, что такое Linux и захотел разобраться в нем по подробнее.

Полное дерево каталогов разделено на части, каждая из которых может располагаться на своем диске или в своем разделе в интересах упрощения системного администрирования и резервирования. Это позволяет работать в случае недостатка места на дисках. Главные части дерева каталогов: файловые системы root, /usr, /var и /home (рис. 4.1). Каждая часть имеет свою цель. Дерево каталогов было разработано так, чтобы оно хорошо работало в сети Linux-машин, которые могут совместно использовать некоторые части файловых систем устройств только для чтения (например, CD-ROM), или сети с NFS.
Роли различных частей дерева каталогов описаны ниже.
- Корневая файловая система специфична для каждой машины (обычно она хранится на локальном диске, хотя это мог бы быть ramdisk или сетевой диск) и содержит файлы, которые являются необходимыми для загрузки системы. Содержимого корневой файловой системы достаточно для загрузки в однопользовательском режиме. Именно эта файловая система используется при загрузке до тех пор, пока не будут смонтированы другие файловые системы. Она также содержит инструментальные средства для ремонта поврежденной системы и для восстановления потерянных файлов из резервных копий.
- Файловая система /usr содержит все команды, библиотеки, man-страницы, исходные тексты и другие неизменяемые файлы, необходимые для нормальной работы системы. Никакие файлы в /usr не должны быть специфическими для любой конкретной машины, и при этом они не должны измениться при нормальном использовании. Это позволяет файлам быть разделенными по сети, что может быть практично, так как это сохраняет дисковое пространство (могут легко иметься сотни мегабайт в /usr) и упрощает администрирование (только машина, на которой хранится /usr, должна быть изменена при модификации прикладной программы, а не каждая машина отдельно). Даже если файловая система находится на локальном диске, она может быть установлена только для чтения, что уменьшит возможность искажения в случае отказа.
- Файловая система /var содержит файлы, которые изменяются в ходе работы системы. Например, там лежат каталоги буферов для почты, новостей, печати и т.п., файлы протоколов, форматированных man-страниц и временные файлы.
- Файловая система /home содержит все домашние каталоги пользователей системы, то есть, все реальные данные системы. Отделение пользовательских каталогов от системы упрощает резервирование данных. Если пользователей много, эта файловая система может быть разделена на несколько (например, /home/students и /home/teacher).
Хотя различные части выше были названы файловыми системами, это не значит, что они фактически находятся на отдельных дисках. Они могут храниться на одном диске, если речь идето небольшом сервере или личном однопользовательском компьютере. Дерево каталогов может быть также разделено по-другому, в зависимости от того, насколько большие диски использованы, и как распределено место на них для различных целей, тем не менее, важно, чтобы все стандартные имена работали; даже если, скажем, /var и /usr фактически на том же самом разделе, имена /usr/lib/libc.a и /var/log/messages должны работать, например, перемещая файлы из /var в /usr/var, и делая /var ссылкой на /usr/var.
Структура файловой системы в Unix группирует файлы по их назначению, то есть, все команды находятся в одном месте, все файлы данных в другом, документация в третьем и так далее. Альтернативный вариант группировал файлы согласно программе, которой они принадлежат, то есть, все Emacs-файлы были бы в одном каталоге, весь TeX в другом, и так далее. Проблема с последним подходом состоит в том, что это делает трудным совместно использовать файлы (каталог программ часто содержит статические, общие, изменяющиеся и личные файлы), и иногда даже находить файлы, например, man-страницы в огромном числе мест, благодаря чему поиск их программой просмотра сильно осложняется.
Корневая файловая система
Файловая система root должна быть небольших размеров, так как она содержит важные файлы и команды. Чем меньше объем файловой системы и чем реже она подлежит изменениям, тем меньше вероятность ее повреждения. Если система root повреждена, то обычно это означает, что начальная загрузка компьютера невозможна (кроме отдельных методов, например при помощи дискет).
Файловая система дистрибутива имеет архитектуру классической файловой системы ОС Linux с единым корневым каталогом, обозначаемым символом обратной косой черты ("слэш") — /.
Ниже приведено описание основных каталогов верхнего уровня.
/bin - В этом каталоге хранятся основные команды, необходимые пользователю для работы в системе. Например, такие как командные оболочки и команды файловой системы (ls, cp и т.д.). Каталог /bin обычно не изменяется после установки. Если изменяется, то обычно лишь при обновлениях пакетов программ, предоставленных разработчиками операционной системы.
/boot - В этом каталоге хранятся файлы, используемые загрузчиком ОС — LInux LOader (LILO). Этот каталог так же практически не изменяется после установки.
/dev - В этом каталоге размещены описания устройств системы. В Linux всё рассматривается, как файл, даже различные устройства, такие как последовательные порты, жёсткие диски и сканеры. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл, называемый device node. Все эти файлы находятся в каталоге /dev. Аналогично устроено большинство UNIX-подобных операционных систем.
/etc - Этот каталог содержит файлы настроек: всё, от конфигурационных файлов системы X Window, базы данных пользователей и до стартовых сценариев.
/home - В этом каталоге размещены домашние каталоги пользователей. Linux является многопользовательской системой и каждому пользователю присваивается имя и уникальный каталог для персональных файлов. Этот каталог называется "home" (домашним) каталогом пользователя.
/lib - В этом каталоге находятся системные библиотеки, необходимые для основных программ: библиотека C, динамический загрузчик, библиотека ncurses, модули ядра и другое.
/lib/modules - Подгружаемые модули для ядра (например, сетевые драйверы или поддержка дополнительных файловых систем).
/lost+found - В этом каталоге сохраняются восстановленные части файловой системы. При загрузке системы происходит проверка файловых систем на наличие ошибок. Для исправления ошибок файловой системы запускается программа fsck.
/mnt - Этот каталог предоставляется как временная точка монтирования для жёстких дисков, дискет, компакт-дисков или отключаемых устройств.
/opt - В этом каталоге размещаются дополнительные пакеты программ. Особенность Linux в том, что все пакеты программ, устанавливаются в этот каталог, например /opt/<программный пакет>. В последствии если этот пакет больше не будет нужен, то достаточно всего лишь удалить соответствующий каталог. В дистрибутивах SlackWare некоторые программы изначально поставляются в каталоге /opt (например, KDE - в /opt/kde).
/proc - Это специальный каталог не входящий в файловую систему. Каталог /proc представляет собой виртуальную файловую систему, которая предоставляет доступ к информации ядра. Различная информация, которую ядро может сообщить пользователям, находится в "файлах" каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера.
/root - Это домашний каталог администратора, вместо /home/root. Это потому, что каталог /home может находиться в разделе, отличном от корневого (/) и если по какой-то причине /home не может быть подключён, то пользователь root вынужден будет войти в систему, чтобы решить проблему. И если его домашний каталог на другом диске, то это усложнит вход в систему.
/sbin - В этом каталоге хранятся основные программы, выполняемые пользователем root а так же программы, выполняемые в процессе загрузки. Обычные пользователи не могут пользоваться этими программами.
/tmp - Временное хранилище данных. Все пользователи имеют права чтения и записи в этом каталоге.
/usr - Это один из самых больших каталогов в системе. Практически всё остальное расположено здесь. Программы, документация, исходный код ядра и система X Window. Именно в этот каталог, чаще всего, устанавливаются программы.
/var - В этом каталоге хранятся системные лог-файлы, кэш-файлы и файлы-замки программ. Это каталог для часто меняющихся данных.
Каталог /etc - В этом каталоге содержится довольно много различных конфигурационных файлов. Некоторые из них рассмотрены ниже. Здесь также располагаются файлы, используемые для конфигурирования сети.
/etc/rc.d - Командные файлы, выполняемые при запуске системы или при смене ее уровня выполнения.
/etc/passwd - База данных пользователей, в которой содержится информация об имени пользователя, его настоящем имени, личном каталоге, зашифрованный пароль и другие данные. Формат этого файла рассмотрен в man-руководстве к команде passwd.
/etc/fdprm - Таблица параметров флоппи-дисковода, определяющая формат записи. Устанавливается программой setfdprm.
/etc/fstab - Список файловых систем, автоматически монтируемых во время запуска системы командой mount -a (она запускается из командного файла /etc/rc.d/rc.S). Здесь также содержится информация о swaр-областях, автоматически устанавливаемых командой swapon -a.
/etc/group - Подобен файлу /etc/рasswd, только здесь содержится информация о группах, а не о пользователях.
/etc/inittab - Конфигурационный файл демона init.
/etc/issue - Выводится программой getty перед приглашением login. Обычно здесь содержится краткое описание системы.
/etc/magic - Конфигурационный файл команды file. Содержит описания различных форматов файлов, опираясь на которые эта команда определяет тип файла. Также см. руководства к magic и file.
/etc/motd - Сообщение дня, автоматически выводится при успешном подключении к системе. Часто используется для информирования пользователей об изменениях в работе системы. Немного напоминает "совет дня" в Windows.
/etc/mtab - Список смонтированных на данный момент файловых систем. Изначально устанавливается командными файлами при запуске, а затем автоматически модифицируется командой mount. Используется при необходимости получения доступа к смонтированным файловым системам (например, командой df).
/etc/shadow - Теневая база данных пользователей. При этом информация из файла /etc/рasswd перемещается в /etc/shadow, который недоступен для чтению никому, кроме пользователя root. Это усложняет взлом системы.
/etc/login.defs - Конфигурационный файл команды login.
/etc/printcap - То же, что и /etc/termcap, только используется при работе с принтером.
/etc/profile - Этот командный файл выполняется оболочкой Bourne Shell при запуске системы, что позволяет изменять системные установки для всех пользователей.
/etc/securetty - Определяет терминалы, с которых может подключаться к системе пользователь root. Обычно это только виртуальные консоли, что усложняет взлом системы через модем или сеть.
/etc/shells - Список рабочих оболочек. Команда chsh позволяет менять рабочую оболочку только на оболочки, находящиеся в этом файле. Процесс ftрd, предоставляющий работу с FTР, проверяет наличие оболочки пользователя в файле /etc/shells и не позволяет пользователю подключится к системе, пока ее имя не будет найдено в этом файле.
/etc/termcap - База данных совместимости терминалов. Здесь находятся escape-последовательности для различных типов терминалов, что позволяет работать программам на разных типах терминалов.
Каталог /dev - В этом каталоге находятся файлы устройств. Названия этих файлов соответствуют специальным положениям, рассмотренным в списке устройств (Device list). Файлы устройств создаются во время установки системы, а затем с помощью скрипта /dev/MAKEDEV. Файл /dev/MAKEDEV.local используется при создании локальных файлов устройств или ссылок (т.е. тех, что не соответствуют стандарту MAKEDEV).
Каталог /usr - Обычно файловая система /usr достаточно большая по объему, так как многие программы установлены именно здесь. Вся информация в каталоге /usr помещается туда во время установки системы. Отдельно устанавливаемые пакеты программ и другие файлы размещаются в каталоге /usr/local. Некоторые подкаталоги системы /usr рассмотрены ниже (для более подробной информации см. описание стандарта FSSTND).
/usr/X11R6 - Все файлы, используемые системой X Window. Для упрощения установки и администрирования, файлы системы X Window размещаются в отдельной структуре каталогов, которая находится в /usr/X11R6 и идентична структуре /usr.
/usr/bin - Практически все команды, хотя некоторые находятся в /bin или в /usr/local/bin.
/usr/sbin - Команды, используемые при администрировании системы и не предназначенные для размещения в файловой системе root (например, здесь находится большинство программ-серверов).
/usr/man, /usr/info, /usr/doc - Файлы man-руководств, документации GNU Info и другая документация.
/usr/include - Подключаемые файлы библиотек для языка С.
/usr/src - Исходные тексты программ, установленных в системе, в том числе ядра Linux.
/usr/lib - Неизменяемые файлы данных для программ и подсистем, включая некоторые конфигурационные файлы. Имя lib происходит от library (библиотека); первоначально библиотеки подпрограмм для программирования хранились в /usr/lib.
/usr/local - Здесь размещаются отдельно устанавливаемые пакеты программ и другие файлы.
Каталог /var - Эта файловая система содержит файлы, изменяемые при нормально работающей системе. Она специфична для каждого компьютера и не может быть разделена в сети между несколькими машинами.
/var/man/cat* - Временный каталог для форматируемых страниц руководств. Источником этих страниц является каталог /usr/man/man*. Некоторые руководства поставляются в отформатированном виде. Они располагаются в /usr/man/cat*. Остальные руководства перед просмотром должны быть отформатированы. Затем они помещаются в каталог /var/man и при повторном просмотре в форматировании не нуждаются. Каталог /var/man/cat часто очищается, таким же образом, как и прочие временные каталоги.
/var/lib - Файлы, изменяемые при нормальном функционировании системы.
/var/local - Изменяемые данные для программ, установленных в /usr/local (то есть, программы которые были установлены администратором системы). Обратите внимание, что даже в местном масштабе установленные программы должны использовать другие /var каталоги, например, /var/lock.
/var/lock - Файлы-защелки. Многие программы при обращении к какому-либо файлу устройства создают здесь файл-защелку. Другие программы при обращении к какому-либо устройству сначала проверяют наличие файла-защелки в этом каталоге, а затем уже производят доступ к этому устройству.
/var/log - Журнальные файлы различных программ, в особенности login (/var/log/wtmр, куда записываются все подключения и выходы из системы) и syslog (/var/log/messages, где обычно хранятся все сообщения ядра и системных программ). Файлы из /var/log необходимо регулярно удалять, иначе разрастутся сверх всякой меры.
/var/run - Файлы, информация в которых соответствует действительности только до очередной перезагрузки системы. Например, файл /var/run/utmp содержит информацию о пользователях, подключенных к системе в данный момент.
/var/spool - Каталоги, используемые для хранения почты, новостей, очереди для принтера, а также для других задач. Для каждой задачи существует отдельный каталог в /var/spool, например, почтовые ящики пользователей хранятся в /var/spool/mail.
/var/tmp - Каталог для временных файлов, размер которых достаточно велик или время существования которых больше, чем в /tmp. Хотя администратор системы не должен бы держать очень уж старые файлы в /var/tmp.
Каталог /proc - Файловая система /proc является виртуальной и в действительности она не существует на диске. Ядро создает ее в памяти компьютера. Система /proc предоставляет информацию о системе (изначально только о процессах — отсюда ее название). Некоторые наиболее важные файлы и каталоги рассмотрены ниже. Более подробную информацию о структуре и содержании файловой системы /proc можно найти в man-руководстве к proc.
/proc/1 - Каталог, содержащий информацию о процессе номер 1. Для каждого процесса существует отдельный каталог в /proc, именем которого является его числовой идентификатор.
/proc/cpuinfo - Информация о процессоре, такая как тип процессора, его модель, производительность и др.
/proc/devices - Список драйверов устройств, встроенных в действующее ядро.
/proc/dma - Задействованные в данный момент каналы DMA.
/proc/filesystems - Файловые системы, встроенные в ядро.
/proc/interruрts - Задействованные в данный момент прерывания.
/proc/ioports - Задействованные в данный момент порты ввода/вывода.
/proc/kcore - Отображение физической памяти системы в данный момент. Размер этого файла точно такой же, как и у памяти компьютера, только он не занимает места в самой памяти, а генерируется на лету при доступе к нему программ. Однако при копировании этого файла куда-либо, он не займет места на диске.
/proc/kmsg - Сообщения, выдаваемые ядром. Они также перенаправляются в syslog.
/proc/ksyms - Таблица символов ядра.
/proc/loadavg - Ориентировочная загруженность системы.
/proc/meminfo - Информация об использовании памяти, как физической, так и swap-области.
/proc/modules - Список модулей ядра, загруженных в данный момент.
/proc/net - Информация о сетевых протоколах.
/proc/self - Символическая ссылка к каталогу процесса, пытающегося получить информацию из /proc. При попытке двух различных процессов получить какую-либо информацию в /proc, они получают ссылки на различные каталоги. Это облегчает доступ программ к собственному каталогу процесса.
/proc/stat - Различная статистическая информация о работе системы.
/proc/uptime - Время, в течение которого система находится в рабочем состоянии.
/proc/version - Версия ядра.
Хотя многие файлы имеют обычный текстовый формат, некоторые из них имеют собственный. Существует много программ, которые не только преобразуют такие файлы в формат, доступный для чтения, но и предоставляют некоторые функции. Например, программа free считывает файл /proc/meminfo и преобразует значения, указанные в байтах, в килобайты (а также предоставляет некоторую дополнительную информацию).

Данная статья должна помочь вам организовать файл-сервер уровня домашнего или малого офиса на базе персонального компьютера и операционной системы Ubuntu. Ресурсы данного сервера будут доступны компьютерам вашей локальной сети под управлением операционных систем Windows и Linux.
Данный файл-сервер построен на базе ОС Ubuntu Server 7.10 (http://releases.ubuntu.com/7.10/ubuntu-7.10-server-i386.iso) с установленной службой Samba и может работать с жесткими дисками, форматированными под файловую систему NTFS и подключенными к большинству новых контроллеров IDE, SATA и RAID IDE/SATA. Файловое хранилище может быть организованно как на отдельном разделе основного жесткого диска (на котором будет установлена Ubuntu), так и на отдельном диске. Последний вариант является более предпочтительным с точки зрения надежности и производительности системы. Для организации разделов на ваших жестких дисках вы можете воспользоваться liveCD-дистрибутивом Gparted live CD (http://sourceforge.net/project/showfiles.php?group_id=115843&package_id=173828). Данный пакет так же построен на базе ОС Linux и имеет статус freeware.
Итак, предположим, что наш сервер будет называться server1.example.com и иметь IP-адрес 192.168.0.100 и адрес шлюза доступа к Интернет 192.168.0.1. Эти настройки вы можете изменять на ваше усмотрение.
Итак, приступим:
1) Загрузитесь с вашего Ubuntu install CD и выберите пункт “Install to the hard disk”
2) Начнется установка ОС Ubuntu. Выберите язык интерфейса и место вашего нахождения:



3) Выберите предпочтительную раскладку клавиатуры:

Вам будет предложено нажать несколько клавиш чтобы убедиться в правильности выбора вами раскладки клавиатуры:


4) Инсталятор проверит ваш инсталяционный диск, опознает аппаратное обеспечение вашего ПК и сконфигурирует сетевые службы с настройками по-умолчанию:




5) Введите имя вашего сервера (в нашем случае это server1.example.com, соответственно вводим server1):

6) Теперь необходимо разобраться с партициями на основном жестком диске. В случае, если жесткий диск с данными будет физически отдельным диском, вам необходимо будет создать одну болшую партицию с точкой монтирования / небольшую swap-партицию (партицию файла подкачки) с точко монтирования /swap. В случае, если жесткий диск в вашей системе один, то вам так же придется создать NTFS-партицию под пользовательские данные:

Выберите жесткий диск, который вам надо переразметить:

После подтверждения вносимых вами изменений выбраный вами жесткий диск будет переразмечен и отформатирован. Все данные на нем будут уничтожены!!!

7) Вам предложат сконфигурировать системные часы. Настройки по-умолчанию (UTC) вполне работоспособны - выбирайте их:

8) Создайте пользователя (например, создатим пользователя Administrator с логином administrator). Не используйте в качестве имени пользователя слово admin - оно зарезервировано системой:




9) После создания пользователя начнется установка базовых пакетов системы:

Нам необходимо, чтобы была установлена служба Samba File server, но её установку лучше будет совершить позже вручную. Соответственно на данном этапе установки мы выбираем лишь пункт OpenSSH server для того чтобы иметь возможноть сразу после окончания установки использовать для управленя компьютером любой SSH-клиент (например, PuTTY - http://www.putty.spb.ru/download.html:

Возможно, вам так же понадобятся службы Print server и Mail server, но их установка и конфигурация выходят за рамки данной статьи. После нажатия Continue установка продолжится:

10) После окончания установки дополнительных пакетов, система предложит извлечь Installation CD из привода и перезагрузиться:

Первый этап установки нашего файл-сервера завершен.
11) После того, как сервер стартует, вы сможете зайти на него любым SSH-клиентом. Теперь активизируем root-аккаунт:
sudo passwd root
После указания пароля для root (обязательно его запомните, а лучше запишите!!!) вы получите доступ к коммандной строке вашего сервера с правами суперпользователя, введя команду:
su
12) Сконфигурируем сетевые настройки для нашей конкретной сети. Ubuntu по-умолчанию устанавливает получение IP-адреса системы от сервера DHCP? в нашем же случае мы хотим указать статический IP-адрес. Соответственно нам необходимо отредактировать файл конфигурации сети /etc/network/interfaces. Это можно сделать, например, тектовым редактором vi:
vi /etc/network/interfaces
Для того, чтобы настройки соответствовали требованиям нашего примера этот файл должен иметь следующий вид:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Затем перезапустим сетевые службы:
/etc/init.d/networking restart
Так же нам необходимо подправить файл /etc/hosts. Для нашего примера он должен выглядеть следующим образом:
127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts#
Теперь запустим его:
echo server1.example.com > /etc/hostname /etc/init.d/hostname.sh start
После этого исполните команды:
hostname hostname -f
Оба должны вывести имя нашего хоста - server1.example.com
13) Отредактируйте файл, в котором указанны доступные репозитарии с пакетами программ для Ubuntu /etc/apt/sources.list.
vi /etc/apt/sources.list
Он должен выглядеть следующим образом:
# # deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted #deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://de.archive.ubuntu.com/ubuntu/ gutsy main restricted deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## universe WILL NOT receive any review or updates from the Ubuntu security ## team. deb http://de.archive.ubuntu.com/ubuntu/ gutsy universe deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy universe deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates universe deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://de.archive.ubuntu.com/ubuntu/ gutsy multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy multiverse deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates multiverse ## Uncomment the following two lines to add software from the 'backports' ## repository. ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. # deb http://de.archive.ubuntu.com/ubuntu/ gutsy-backports main restricted universe multiverse # deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. This software is not part of Ubuntu, but is ## offered by Canonical and the respective vendors as a service to Ubuntu ## users. # deb http://archive.canonical.com/ubuntu gutsy partner # deb-src http://archive.canonical.com/ubuntu gutsy partner deb http://security.ubuntu.com/ubuntu gutsy-security main restricted deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted deb http://security.ubuntu.com/ubuntu gutsy-security universe deb-src http://security.ubuntu.com/ubuntu gutsy-security universe deb http://security.ubuntu.com/ubuntu gutsy-security multiverse deb-src http://security.ubuntu.com/ubuntu gutsy-security multiverse
Запустите процедуру получения списка доступных обновлений пакетов. В данный момент подключение вашего сервера к интернету должно быть активно:
apt-get update
Для запуска обновления установленных пакетов выполните:
apt-get upgrade
14) Установите пакеты samba, smbclient, smbfs, beep, ntp, ntpdate:
apt-get install samba smbclient smbfs beep ntp ntpdate
Samba, SMBlient и SMBFS нужны для организации самого файл-сервера. NTP и NTPdate позволяют синхронизировать по сети время. Beep позволяет сигнализировать встроенным динамиком ПК запуск и остановку сервера.
15) При необходимости установите второй жесткий диск. Включите компьютер. Для того, чтобы узнать список достуных жестких дисков, партиций на них и имен, которые им дала Ubuntu введите команду:
fdisk -l
Вы получите список, аналогичный следующему:
Disk /dev/hdb: 40.0 GB, 40020664320 bytes 255 heads, 63 sectors/track, 4865 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdb1 * 1 4678 37576003+ 83 NTFS
Имена жестких дисков в ОС Linux начинаются с hd. В примере Linux показывает нам на наличие жесткого диска - hdb (40 гб) и наличие на нем партиции hdb1 (NTFS 37 Гб доступно пользователю). Теперь мы создадим точку монтирования /store и дадим к ней полный доступ для всех пользователей:
mkdir /media/store chmod 777 /media/store
Примонтируем жесткий диск hda:
mount /dev/hda /media/store
Для того, чтобы система автоматически монтировала этот жестки диск при запуске, нам необходимо отредактировать файл /etc/fstab:
vi /etc/fstab
В файле /etc/fstab указанны параметры всех устройств хранения данных, монтируемые при запуске системы. В нашем примере он изначально должен выглядеть следующим образом:
# /etc/fstab: static file system information. # #proc /proc proc defaults 0 0 /dev/hda1 / ext3 defaults,errors=remount-ro 0 1 /dev/hda5 none swap sw 0 0 /dev/hdb1 /media/hdb1 ext3 defaults 0 0 /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Обратите внимание, что диск hda разбит на 2 партиции (hda1 - основная, на которой стоит система и hda5 - swap-партиция) и каждая из них монтируется отдельно. Соответственно, если жесткий диск hdb разбит на несколько партиций, то их тоже придется монтировать отдельно. Все, что вам потребуется сделать для автомонтирования второго жетского диска, так это добавить в файл /etc/fstab следующую строчку:
/dev/hdb1 /media/store ntfs defaults 0 0
Перезагрузите файл /etc/fstab:
mount -a
Жесткий диск станет доступным без перезагрузки.
16) Конфигурация службы Samba. Отредактируйте файл /etc/samba/smb.conf под ваши требования:
vi /etc/samba/smb.conf
Для изменения имени рабочей группы вашей сети, отредактируйте строку:
workgroup = MSHOME
Добавьте следующие строки в конец файла /etc/samba/smb.conf, чтобы дать доступ сетевых пользователей к жесткому диску:
[hdb public hard disk] comment = Public Folder path = media/store public = yes writable = yes create mask = 0777 directory mask = 0777 force user = nobody force group = no group
Перезапустите службу Samba:
/etc/init.d/samba force-reload
Задайте пароль доступа к данному сетевому хранилищу:
smbpasswd -a family
В появившемся запросе введите пароль на ваш выбор. Теперь вы можете получить доступ к вашему файл-серверу, используя логин family (или любой, какой вы укажете при настройке) и указанный вами пароль.
17) Настройте сигнализацию активности вашего сервера. Откройте в редакторе файл /et/rc.load:
vi /et/rc.load
Добавьте в него следующую строчку:
beep -l 900 -r 3 -f 500
Теперь три сигнала из встроенного динамика вашего сервера будут означать окончание загрузки вашего сервера и его готовность к функционированию.
По материалам http://www.howtoforge.com/ubuntu-home-fileserver

Данная статья - краткий справочник по наиболее важным командам и приложениям Ubuntu-подобных Linux систем.
Привилегии
sudo command – запустить command с правами root
sudo su – открыть командную строку с правами root
sudo su user – открыть коммандную строку с правами user
sudo -k – забыть пароль sudo
gksudo command – графический диалог sudo (GNOME)
kdesudo command – графический диалог sudo (KDE)
sudo visudo – редактировать /etc/sudoers
gksudo nautilus – файловый менеджер с правами root (GNOME)
kdesudo konqueror – файловый менеджер с правами root (KDE)
passwd – сменить Ваш пароль
Управление X-сервером
sudo /etc/init.d/gdm restart – перезапустить X (GNOME)
sudo /etc/init.d/kdm restart – перезапустить X (KDE)
файл /etc/X11/xorg.conf – конфигурация X
sudo dpkg-reconfigure -phigh xserver-xorg – сбросить конфигурацию X
Ctrl+Alt+Bksp – перезапустить X-сервер
Ctrl+Alt+Fn – переключиться на консоль №n
Ctrl+Alt+F7 – вернуться к X
Управление системными сервисами
start service – запустить service (Upstart)
stop service – остановить service (Upstart)
status service – проверить, запущен ли service (Upstart)
/etc/init.d/service start – запустить service (SysV)
/etc/init.d/service stop – остановить service (SysV)
/etc/init.d/service status – проверить service (SysV)
/etc/init.d/service restart – перезапустить service (SysV)
runlevel – посмотреть текущий runlevel
Управление пакетами
apt-get update – обновить базу пакетов
apt-get upgrade – обновить все пакеты
apt-get dist-upgrade – обновить версию Ubuntu
apt-get install pkg – установить pkg
apt-get remove pkg – удалить pkg
apt-get autoremove – удалить устаревшие пакеты
apt-get -f install – попытаться исправить сломаные пакеты(зависимости)
dpkg --configure -a – попытаться исправить сломаные пакеты(зависимости)
dpkg -i pkg.deb – установить пакет из файла pkg.deb
файл /etc/apt/sources.list – список репозиториев APT
Настройка сетевых подключений
ifconfig – просмотр сетевой информации
iwconfig – просмотр информации беспроводных устройств
sudo iwlist scan – сканировать беспроводные сети
sudo /etc/init.d/networking restart – перезапустить сеть
файл /etc/network/interfaces – файл для ручной настройки сети
ifup interface – поднять interface
ifdown interface – положить interface
Специальные пакеты
ubuntu-desktop – стандартная среда Ubuntu
kubuntu-desktop – рабочий стол KDE
xubuntu-desktop – рабочий стол XFCE
ubuntu-minimal – основные утилиты Ubuntu
ubuntu-standard – стандартные утилиты Ubuntu
ubuntu-restricted-extras – не свободные, но полезные пакеты
kubuntu-restricted-extras – несвободные пакеты для kubuntu
xubuntu-restricted-extras – несвободные пакеты для xubuntu
build-essential – пакеты, необходимые для сборки программ
linux-image-generic – последнее generic ядро
linux-headers-generic – последние хедеры ядра
Управление Фаерволом
ufw enable – включить фаервол
ufw disable – выключить фаервол
ufw default allow – разрешить все подключения
ufw default deny – запретить все подключения
ufw status – текущий статус и правила
ufw allow port – разрешить соединения по порту port
ufw deny port – закрыть port
ufw deny from ip – заблокировать ip адрес
Имена приложений
nautilus – файловый менеджер (GNOME)
dolphin – файловый менеджер (KDE)
krusader —двухпанельный файловый менеджер
konqueror – веб-браузер (KDE)
kate – текстовый редактор (KDE)
gedit – текстовый редактор (GNOME)