Главная | Контакты



Главная > Операционные системы > UNIX > BSD > FreeBSD

Системные программы FreeBSD каталога /bin

Давно было желание систематизировать в виде маленькой шпаргалки краткие описания команд в стандартных каталогах FreeBSD (/bin /sbin /usr/bin /usr/sbin). Однако, не так давно я обнаружил, что собрался изобретать велосипед. Господин <a href="http://www.lissyara.su/" target="_blank" title="www.lissyara.su">Lissysra</a> уже это сделал давно до меня.

Потому набравшись наглости, и спросив разрешения у автора материала (P.S.: Автор не против.), я просто переношу его в блог, делая свои дополнения и изменения.

Данная информация актуальна для FreeBSD 6.2

Итак, начнем с каталога /bin. Здесь 42 файла.

  • "[" - жесткая ссылка на программу 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


Главная > Операционные системы > UNIX > BSD > FreeBSD