Давно было желание систематизировать в виде маленькой шпаргалки краткие описания команд в стандартных
каталогах FreeBSD (/bin /sbin
/usr/bin
/usr/sbin). Однако, не так давно я
обнаружил, что собрался изобретать велосипед. Господин Lissysra уже это сделал давно до меня.
- "[" - жесткая ссылка на программу test
- "cat" -
перенаправление потоков ввода-вывода. Конкатенация и вывод файлов."cat"
можно использовать для склеивания разбитых [c]split(1)'ом файлов:
# for i in $dists; do<br> echo " Extracting source component: $i"<br> cat s${i}.?? | tar -unlink -xpzf - -C ${DESTDIR}/usr/src<br>done
(код распаковки исходников с установочного диска)
- "chflags" - установка/снятие флагов - типа неудаляемый, неизменяемый и т.п. на файлы. Позволяет делать файлы неизменяемыми.
# chflags schg /etc/master.passwd /etc/passwd /etc/spwd.db /etc/pwd.db
Чтобы просмотреть установленные командой chflags флаги:
# ls -lo
- "chio" - управление дисковым чейнджером
- "chmod" - установка
прав на файлы/директории. Чтобы закрыть от просмотра домашний каталог
пользователя root и все файлы и подпапки в нем:
# chmod -R og-rwx /root
- "cp" - копирование файлов/директорий. Рекурсивное копирование всех вложенных файлов с сохранением прав на файлы:
# cp -Rpv /etc/mail /tmp/test
- "csh" - cи-шелл (жесткая ссылка на tcsh) - один из вариантов командной оболочки
- "date" - вывод/установка даты/времени
- "dd" - конвертирование и копирование файлов. Пример создания образа диска:
# dd if=/dev/ad0s1a of=root.img bs=512
Проверка диска на наличие плохих секторов (бэды). Результат будет отображен в /var/log/messages:
# dd if=/dev/ad0 of=/dev/null bs=1m
Безопасное удаление данных с диска:
# dd if=/dev/random of=/dev/ad0 bs=512
Cоздание бинарных файлов в тестовых целях:
# dd if=/dev/zero of=100_megabyte.bin bs=10240 count=10240
Надо заметить, что у этой программы богатые деструктивные свойства. Аккуратней! (c Lissyara)
- "df" - вывод занятого/свободного места на дисках/разделах. Вывод результата занятности дискового пространства с указанием процентов:
# df -h
- "domainname" - установка/вывод текущего YP/NIS домена
- "echo" - выводит
аргументы на стандартный вывод. В варианте sh(1) есть полезный ключ -e,
который позволяет печатать некоторые интересные символы не прибегая к
printf(1). Например:
# echo -e '\tTest\r'<br> Test
- "ed" - текстовый
редактор. Очень полезная вещь когда способности терминала не определены
и нужно быстро подредактировать какие-то строки в конфигурационных
файлах. - "expr" - работа с
выражениями - вроде "больше / меньше"; может выполнять арифметические
действия (только с целыми числами - дробные отсекаются) - "getfacl" - вывод
расширенных атрибутов (ACL) файлов/директорий. Программа отображает
расширенные права доступа, установленные setfacl. Может сохранять
выводимую информацию в файл (полезно при переносе с места на место
файлов):
# getfacl users_music/<br> #file:users_music/<br> #owner:10001<br> #group:10042<br> user::rwx<br> group::rwx<br> group:domain<br> users:rwx<br> mask::rwx<br> other::r-x
- "hostname" - установка/вывод имени хоста. Например:
# hostname<br> my-server.com<br># hostname -s<br> my-server<br># hostname ttt.jjj.333<br># hostname<br> ttt.jjj.333<br># hostname my-server.com<br># hostname<br> my-server.com
Следует помнить, что после перезагрузки параметры заданные этой
командой теряются. Для того, чтобы установить hostname "навсегда",
следует прописать соответствующее значение в /etc/rc.conf
- "kenv" - вывод/модификация переменных ядра
- "kill" - послать сигнал процессу (уничтожить, перечитать конфигурацию и т.п.). Выдержка из мануала по команде kill:
1 - HUP (перечитать конфигурацию)
2 - INT (прерывание)
3 - QUIT (выход)
6 - ABRT (прерывание)
9 - KILL (непрерываемое, неперехватываемое завершение)
14 - ALRM (сигнальный таймер)
15 - TERM (программный сигнал завершения)
- "link" - создание ссылок на файлы (больше известна как ln)
- "ln" - жесткая ссылка на link
- "ls" - вывод содержимого директории (создание листинга каталога)
- "mkdir" - создание директорий
- "mv" - перемещение файлов/директорий
- "pax" - читает/пишет файловые архивы, копирует структуру директорий
- "pgrep" - находит
процесс по имени, или посылает сигнал процессу по имени процесса. Вывод
списка всех нужных процессов без потери заголовка:
# ps lp`pgrep ntp`<br> UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND<br> 0 1333 1 0 44 0 3072 1092 select Ss ?? 0:00.01 ntpd: [priv] (ntpd)<br> 123 1335 1333 0 44 0 3072 936 select S ?? 0:00.39 ntpd: ntp engine (ntpd)
- "pkill" - жесткая ссылка на pgrep
- "ps" - вывод списка
процессов. В таком исполнении покажет список всех процессов в системе,
с указанием имени пользователя, от которого запущен процесс:
# ps -aux
- "pwd" - (Print Working Directory) вывод пути рабочей директории.
- "rcp" - копирование фалов между машинами. Но я предпочитаю использовать scp
- "realpath" - вывод реального пути (все символические ссылки резолвятся)
- "red" - жесткая ссылка на ed
- "rm" - удаление файлов/директорий. Наверное, самая известная команда в *nix. В кривых руках может превратить систему в "черную дыру"!
<strong># rm -rf /*</strong> - <em>(c) Унивесальный патч Бармина</em>
Если Вы запрашиваете рекурсивное удаление файлов, указывая абсолютный путь, всегда проверяйте, не попал ли случайно залетный пробел после первого слеша. Потому что в таком виде:
# rm -rf / home/user/files/*
Вы, вместо каталога /home/user/files/ уничтожите всю
систему. Для предохранения от такой "тупой" ошибки в (t)csh установите
переменную rmstar (i.e., set rmstar). Тогда в случае неумышленного
пробела перед/после звездочки будет выдаваться подтверждение.
- "rmail" - управление удалённой почтой через uucp
- "rmdir" - удаление директорий (пустых). Если каталог содержит файлы, удалить его неполучится:
# mkdir /test_dir<br># touch /test_dir/test.file<br># rmdir /test_dir/<br>rmdir: /test_dir/: Directory not empty<br># rm -r /test_dir/
- "setfacl" - установка
расширенных файловых аттрибутов (ACL). К сожалению, в отличие от
линуксовой версии, FreeBSD`шная не умеет расставлять расширенные права
рекурсивно. Поэтому, приходиться изгаляться:
# find . -type d -exec setfacl -m u:user:rwx {} \;
- "sh" - стандартная и, пожалуй, самая известная командная оболочка *nix, которая
присутствует в любой *nix подобной системе
- "sleep" - задержка выполнения команды на заданное число секунд
- "stty" - установка опций для устройства терминала
- "sync" - принудительная синхронизация кэша записи (сброс содержимого на диск)
- "tcsh" - симлинк на csh (правильней обратное утверждение csh ->tcsh)
- "test" - сравнение условий
- "unlink" - жесткая ссылка на rm