Добавить в избранное | Сделать стартовой страницей

Большая Linux библиотека для пользователей OS Linux и ПО для нее
Есть что сказать? Нужен совет? Посети наш форум.




Команды и сокращения Linux (фрагмент LNAG).

Источник : Linux Newbie Administrator Guide
Перевод : Константин Фирсов.

Intro. Это - практическая подборка программ, которые мы используем наиболее часто, считаем полезными, и которые присутствуют в наших дистрибутивах Linux (RedHat или Mandrake). Нажмите в пустой командной строке, и вы увидите список всех возможных команд (присутствуюших в вашем PATH). В моей маленькой домашней системе это даст 3786 исполняемых файлов в моём PATH. Многие из этих "команд" могут быть доступны из вашей любимой графической оболочки (наверное, KDE или Gnome) щелчком мыши по меню или кнопке. Все они могут быть выполнены из командной строки (если вы не забыли установить соответствующий пакет, по крайней мере, все они есть на Ваших CD). Программы, требующие графической оболочки должны выполняться из нее, например из терминала, открытого в kde или gnome (к примеру, xterm). Несколько более продвинутых (и, возможно, менее полезных для новичков) программ рассматриваются в главе "Продолжаем изучение Linux".

Замечание для UNIX-новичков:
1. Linux чувствителен к регистру символов. Например: Netscape, NETSCAPE, nEtscape, и netscape будут РАЗНЫМИ командами (но только netscape доступен в моей системе). А так же my_filE, my_file и my_FILE - это три РАЗНЫХ файла. Ваши имя пользователя и пароль так же чувствительны к регистру. (Это пришло из традиционного UNIX и языка программирования C.)
2. Имена файлов имеют длину до 256 символов и могут содержать буквы, цифры, "." (точки), "_" (подчеркивания), "-" (тире), плюс несколько нерекомендованных символов.
3. Файлы с именами, начинающимися с символа "." (они же - dotfiles) обычно не показываются командами ls и dir. Считайте все такие файлы "скрытыми". Используйте ls -a (Список всех файлов), чтобы увидеть эти файлы.
4. "/" - это эквивалент DOS-овского "\" (Корневая директория, являющаяся родительской для всех остальных, или разделитель между именем диркетории и субдиректории или файла). Например, попробуйте cd /usr/doc.
5. Под Linux, все директории объединены в одно дерево директорий (здесь нет DOS-образных букв дисков). Все директории, диски, и устройства помещаются в одно дерево директорий.
6. В конфигурационных файлах строки, начинающиеся с "#", являются комментариями. При изменении конфигурационных файлов лучше не удаляйте старые настройки, а просто добавьте # в начало строки. Всегда вставляйте краткое описание ваших действий (для себя же!).
7. Linux - многопользовательская система. Ваши персональные настройки (и все другие персональные файлы) располагаются в вашей домашней (home) директории /home/ваше_имя_пользователя. Большинство настроек сохраняется в файлах с именами, начинающимися с точки. Чтобы убрать их с глаз долой, см. пункт 3 выше.
8. Общесистемные настройки хранятся в директории /etc .
9. Под Linux, как в любой другой многопользовательской операционной системе, все директории и файлы имеют владельца и права доступа. Обычному пользователю в обычном случае разрешена запись только в свою домашнюю директорию -/home/ваше_имя_пользователя. Научитесь пользоваться правами доступа, иначе многие вещи в Linux будут для вас непонятны.
10. Параметры команд начинаются с "-", если далее следует одна буква, или с "--", когда далее следует более одной буквы. Символ "-" является эквивалентом DOS-овского ключа "/". Например, попробуйте rm --help.
11. Наберите "command&" (имя команды с последующим символом "&") для запуска команды в фоновом режиме. Это предпочтительный способ для запуска программ из терминала X-window.

Избранные горячие клавиши Linux и разумные команды


Переключиться на первый текстовый терминал. Под Linux вы получаете несколько (6 - стандартное количество) одновременно открытых терминалов. Это - клавиатурная комбинация, которая значит: "нажмите вместе клавиши и и держите их. Потом нажмите . И после этого отпустите все клавиши."

(n=1..6)
Переключение на текстовый терминал с номером n. (Nого же можно добиться использованием команды chvt n. "chvt" - значит "сменить виртуальный терминал (change virtual terminal)"). В текстовом терминале (не в X-терминале) вы можете так же использовать (Клавиша здесь не нужна).

tty
Даст вам имя того терминала, в котором вы напечатаете эту команду. Если же вы предпочитаете получить номер терминала вместо его имени, вы можете использовать fgconsole (="активная консоль(foreground console)").


Переключиться на первый графический терминал (точнее, на седьмой терминал, где он обычно находится)

(n=7..12)
Переключиться на графический терминал №n (если графический терминал выполняется в позиции n-1). По умолчанию, первый X-сервер выполняется на терминале под номером 7. По умолчанию, ничто не выполняется на терминалах с 8 по 12--Вы можете использовать их как X-терминалы.


(В текстовом или X-терминале) Автозавершение команд, если есть только одна возможность, иначе - показывает все существующие возможности. В более новых системах может потребоваться нажать . ЭТО ВЕЛИКОЛЕПНАЯ КОМБИНАЦИЯ, она сохранит вам массу времени.


(В текстовом или X-терминале) просмотр и редактирование истории команд. Нажмите для выполнения команды из истории. Используйте для обратного просмотра.


Просмотр истории вывода на терминал. Это работает даже в строке "login", так что вы сможете посмотреть сообщения загрузки. Величина/использование вашей видеопамяти определяет то, насколько глубоко вы можете просмотреть историю. Просмотр в обратном направлении.

<+>
(в X-windows) Сменить разрешение X-сервера на следующее (если вы установили X-сервер более чем на одно разрешение). Для нескольких разрешений для своей стандартной SVGA карты, я использую следующие строки в файле /etc/X11/XF86Config: (Первое разрешение устанавливается по умолчанию, наибольшее определяет размер "виртуального экрана"):
Modes "1024x768" "800x600" "640x480" "512x384" "480x300" "400x300" "1152x864"Z
Конечно же, сначала я сконфигурировал X-сервер, используя Xconfigurator, xf86config, или вручную - редактированием файла /etc/X11/XF86Config, и теперь он поддерживает такие значения разрешения (в основном - благодаря раскомментированию строк, относящихся к моей видеокарте, и определению частот синхронизации для поддержки моего монитора). XFdrake (конфигурационная утилита Mandrake) выполняется из графической оболочки. Так же смотрите команды xvidtune и xvidgen.

<->
(в X-windows) Выбрать предыдущее разрешение X-сервера.


(в X-windows, KDE) Закрыть окно, по которому будет произведен щелчок мыши (указатель мыши превращается в символ смерти). Обычно результат сравним с командой xkill, набранной в X-терминале. Полезно, когда программа в X-window не хочет закрываться сама (зависла, что ли?).


(in X-windows) Закрыть текущий сервер X-windows. Используйте, когда сервер X-windows не хочет закрываться по-хорошему.


(в текстовом терминале) Закрыть систему и перезагрузиться. Это нормальная команда завершения работы системы из текстового режима. Руки прочь от кнопки "reset"!

c
Убивает текущий процесс (работает в маленьких программах текстового режима).

d
(Нажимается в начале пустой строки в режиме ввода команд) Выход из текущего терминала. См. так же следующие команды.

d
Послать [Конец файла(End-Of-File)] текущему процессу. Не нажимайте дважды! (см. предыдущюю команду).

s
Приостановить поток вывода терминала.

q
Возобновить поток вывода терминала. Попробуйте, если ваш терминал мистическим образом перестал отвечать. См. предыдущую команду.

z
Послать текущий процесс в фоновый режим.

exit
Выход из системы. Команда logout дает тот же эффект. (Если вы запустили вторую оболочку командной строки, например, используя bash, эта команда даст вам возможность покинуть ее, не выходя из первой. В этом случае, второе использование exit будет означать выход из системы.)

reset
Восстанавливает перекошенный терминал (терминал показывает забавные символы) в состояние по умолчанию. Используйте, если случайно посмотрели двоичный файл командой "cat". Вы можете не увидеть этой команды, но она все равно сработает.

<Средняя кнопка мыши>
Вставляет текст, выделенный в данный момент в другом месте. Это - обыкновенный способ выполнения операции "копировать-вставить (copy-paste)" в Linux. Такая же, как операция "копировать-вставить" в системе меню. (Это может не сработать в некоторых старых приложениях. Это работает в текстовом терминале, если вы разрешили сервис "gpm" в программе установки. Кроме того, это работает в большинстве диалоговых окон, и т.п. -- это действительно удобно!) Лучше всего выполнять эту операцию с 3-кнопочной мышью, приспособленной для Linux (Logitech или похожей), или используя "эмуляцию 3-х кнопочной мыши (3-mouse button emulation)". <СредняяКнопкаМыши> нормально эмулируется на 2-х кнопочной мыши одновременным нажатием обоих клавиш.

~
(знак "тильда") Моя домашняя директория (/home/мое_имя_пользователя). Например, команда cd ~/my_dir сменит мою рабочую директорию на субдиректорию "my_dir" в моей рабочей директории. Набрать "cd" без параметров - это то же самое, что набрать "cd ~". Я держу все мои файлы в моей домашней директории.

.
(точка) текущая директория. К примеру, ./my_program попробует выполнить программу "my_program" в вашей текущей директории.

..
(Две точки) Директория, родительская для текущей. Например, команда cd .. переместит мою текущую директорию на один уровень вверх.

Несколько дополнительных горячих клавиш для KDE или подобной графической среды (полезных, но необязательных)
Прогулка по окнам. Для прогулки в обратную сторону:
Прогулка по рабочим столам. В обратном направлении:
Показать таблицу активных процессов. Позволяет убить запущенный процесс, или послать ему другой сигнал.
Вызвать K-menu ("Эквивалент меню "Пуск(Start)" MS Windows).
Эмулировать мышь "стрелками" клавиатуры.
Перенести окно. Обычно окно передвигают, перетаскивая его заголовок. С помощью этого сочетания клавиш можно передвигать окно за любую его часть.
Сделать снимок текущего окна в буфер обмена.
Сделать снимок текущего рабочего стола в буфер обмена.
Запереть рабочий стол.
Спрятать/показать рабочий стол (неплохо для того, чтобы убрать пасьянс, когда входит начальник).

<Командная_клавиша>
(Необязательные.) Это - ключевые комбинации, относящиеся к уровню ядра Linux (низший уровнь). Это значит, что шансы использовать эти комбинации представляются в любое время. Эти комбинации используются в отладочных целях и только в случае необходимости, так что для начала можно попробовать другие, более безопасные средства. Клавиша так же известна, как . Комбинации могут быть разрешены/запрещены установкой соответствуюшего параметра ядра в "1" или "0", например : echo "1" > /proc/sys/kernel/sysrq
Убить все процессы (включая X), которые выполняются на текущей виртуальной консоли. Эта комбинация известна как "надежная клавиша доступа (secure access key, SAK)".
Послать сигнал TERM всем процессам, кроме init, что должно привести к их завершению.
Послать сигнал KILL всем исполняемым процессам, кроме init. Эта комбинация может преуспеть в уничтожении всех процессов более, чем предыдущая, но многие из процессов могут закончиться ненормально.
Послать сигнал KILL всем процессам, включая init. Система перестанет функционировать.
Выполнить аварийную синхронизацию (запись кэша на диск) для всех смонтированных файловых систем. Это может предотвратить потерю данных.
Перемонтировать все файловые системы в режиме "только для чтения". Эта комбинация действует так же, как предыдущая, с одной важной особенностью: если операция пройдет успешно, fsck не будет проверять все файловые системы при следующей перезагрузке системы.
Отключить режим непосредственной передачи данных (raw mode) с клавиатуры. Это может пригодиться, если Ваша сессия X-Windows зависнет. После ввода этой команды вам, возможно, удастся нажать .
Перезагрузиться немедленно, без синхронизации и демонтирования дисков. Это чревато ошибками файловой системы.
Выключает систему (Если сконфигурировано и поддерживается).

Выдает на консоль дамп содержимого текущих регистров и флагов.
Выдает на консоль список текущих задач и их информацию.
Выдает на консоль информацию о памяти.
SysRq><цифра> Цифра от '0' до '9'. Устанавливает уровень протокола(log) консоли, указывающий, какие сообщения ядра будут печататься на вашей консоли. Например, '0' позволяет выводить только сообщения об опасности, такие как PANIC или OOPS.
Выводит справку. Кроме того, любая другая комбинация <клавиша> выведет ту же справку.

Команды помощи

какая-то_команда --help |more
Выдаёт на дисплей краткую справку по команде (работает с большинством команд). Например, попробуйте "cp --help |more". Ключ "--help" работает так же, как DOS-овский ключ "/h". Канал(pipe) к команде "more" нужен, когда вывод занимает больше, чем один экран.

man тема
Выводит содержимое страниц системного руководства (справки) по указанной теме. Нажмите "q" для прекращения просмотра. Попробуйте man man, если вам нужны более продвинутые возможности. Команда info тема работает так же, как и man тема, но может содержать более новую информацию. Man-страницы - нелегкое чтение для пользователя, потому что они написаны для программистов UNIX. Попробуйте какая-то_команда --help, чтобы получить краткую и простую справку по команде. Некоторые команды поставляются с README или другими файлами справки -- посмотрите в директории /usr/share/doc. Для вывода информации из определенной секции системного руководства, можно попробовать: man 3 exit (Это выводит информацию о команде exit из секции 3 системного руководства) или man -a exit (это покажет страницы руководства о exit из всех секций). Секции man содержат: 1-Команды пользователя, 2-Системные вызовы, 3-Подпрограммы, 4-Устройства, 5-Форматы файлов, 6-Игры, 7-Разное, 8-Системное администрирование, Остальные секции - новое. Для печати страницы систеного руководства, можно использовать: man тема | col -b | lpr (параметр col -b удаляет специфичные для man символы, затрудняющие печать).

info тема
Выводит сообщение по указанной теме. info является заменой для man и содержит более свежую информацию. Используйте и для перемещения, а "q" - для выхода. Заменой для этой несколько странной системы просмотра справок может послужить pinfo - используйте его, если решите, что он чем-то лучше.

apropos тема
Даст мне список команд, которые смогут что-либо сделать с моей темой.

whatis тема
даст мне краткий список команд соотносящихся с указанной темой. whatis похож на apropos (см. выше)--он, в основном, пользуется теми же данными. Но whatis ищет ключевые слова, тогда как apropos смотрит так же и описания ключевых слов.

help команда
Выдает краткую информацию о встроенных командах bash (оболочка). Использование help без указания команды печатает список встроенных команд оболочки. Краткий список встроенных команд bash включает: alias, bg, cd, echo, exit, export, fg, help, history, jobs, kill, logout, pwd, set, source, ulimit, umask, unalias, unset.

kdehelp
kdehelpcenter
(в X-терминале, две команды, используйте ту, которая сработает в вашей системе). Просмотр полного списка команд в графической среде навигатора справочной информации KDE. Обычно справка KDE активизируется при выборе картинки на панели KDE. gnome-help-browser - эквивалент в среде GNOME.

Информация о системе

pwd
Выводит на экран имя рабочей директории.

hostname
Выводит на экран имя локальной машины (машины, на которой вы работаете). Используйте netconf (как "root") для изменения этого имени.

whoami
Печатает ваше имя пользователя.

id имя_пользователя
Печатает пользовательский идентификатор (uid) и идентификатор группы (gid), а так же - эффективный идентификатор (если он отличается от реального) и дополнительные группы.

date
Выводит на экран текущее время операционной системы, время и часовой пояс. Для стандартного ISO-формата: date -Iseconds
Я могу установить дату и время 2000-12-31 23:57, используя команду: date 123123572000
или используя две команды (проще запомнить):
date --set 2000-12-31
date --set 23:57:00
Для установки аппаратных часов (BIOS) на системное время (Linux), я могу использовать команду (как "root"): setclock

Международный (ISO 8601) стандартный формат для цифровых даты/времени имеет следующую форму: 2001-01-31 (по умолчанию в Linux). Вы можете быть более точными, если хотите, например: 2001-01-31 23:59:59.999-05:00 (представляет одну миллисекунду до 1 февраля 2001, во временной зоне на 5 часов после Гринвича (Universal Coordinated Time (UTC))) . Более "соответстует законам" следующее представление: 20010131T235959,999-0500. Стандарты можно изучить по адресу ftp://ftp.qsl.net/pub/g1smd/8601v03.pdf.
time
Определяет количество времени, которое занимает выполнение другого процесса. Не перепутайте с командой date (см. предыдущий пункт). Например, я могу замерить время вывода списка файлов текущей директории: time ls. Или я могу проверить функцию time sleep 10. (Замерить время выполнения команды, вызывающей десятисекундную задержку).

clock
hwclock
(Две команды, используйте любую). Берет системные дату/время из аппаратных часов (реального времени, BIOS). Вы так же можете использовать эти команды для установки системных часов, но setclock может быть проще (см. выше на 2 команды). Пример: hwclock --systohc --utc устанавливает аппаратные часы (в UTC) из системных часов.

who
Определяет пользователей, зарегистрированных в системе.

w
Определяет пользователей, зарегистрированных в системе + смотрит, что они делают, используемое ими процессорное время, и т.д. Удобная команда для контроля безопасности.

rwho -a
(=remote who) Определяет пользователей, зарегистрированных на других компьютерах вашей сети. Сервис rwho должен быть включен для выполнения этой команды. Если нет - выполните setup (в RedHat) как "root" для разрешения "rwho".

finger имя_пользователя
Системная информация о пользователе. Попробуйте: finger root . Можно использовать finger для любого сетевого компьютера, который предоставляет службу finger во внешний мир. Например, я могу попробовать: [email protected]

last
Показывает список пользователей, входивших в вашу систему в последнее время. Действительно неплохая идея - проверять этот список в качестве меры предосторожности в вашей системе.

lastb
("=last bad") Показывает последние плохие (неудавшиеся) попытки входа в систему. Это не работает в моей системе, но в ней можно сделать так: touch /var/log/btmp

"Весьма разумно, что /var/log/btmp отсутствует во многих разумных вариантах установки - это файл для всеобщего чтения, содержащий ошибки входа в систему. Поскольку одна из наиболее распространенных ошибок входа в систему состоит в печати пароля вместо имени пользователя, /var/log/btmp - просто подарок для хакера." (Спасибо Брюсу Ричардсону (Bruce Richardson)). Возможно, проблема может быть решена изменением прав доступа к файлу для того, чтобы только "root" мог использовать "lastb":
chmod o-r /var/log/btmp
history | more
Показывает последние (1000 или более) команд, выполненных в командной строке текущим пользователем. Выражение "| more" позволяет делать остановки после каждого заполнения экрана выводом команды. Для того, чтобы посмотреть, что другой пользователь делает в вашей системе, войдите как "root" и просмотрите "history". Она хранится в файле .bash_history в домашней директории пользователя (правда, пользователь так же может легко ее изменить).

uptime
Показывает количество времени, прошедшее с последней перезагрузки.

ps
(="print status(печатай состояние)" или "process status(состояние процессов)") Список процессов, выполняемых текущим пользователем.

ps axu | more
Показывает список всех процессов, исполняемых в данный момент, даже если они запущены не с текущего терминала, вместе с именами пользователей, запустивших эти процессы.

top
Показывает список процессов, выполняемых в системе в данный момент, отсортированный по использованию процессора (верхнюю часть списка). Нажмите c, когда просмотрите.

PID = идентификатор процесса(process identification).
USER=имя пользователя - владельца процесса (запустившего процесс).
PRI=приоритет(priority) процесса (чем больше число, тем ниже приоритет, нормально - 0, высший приоритет=-20, низший=20.
NI=уровень любезности(niceness level) (т.е., если процесс пытается быть любезным, уменьшая свой приоритет на указанное число). Чем больше число, тем больше любезность процесса (т.е., приоритет ниже).
SIZE=килобайты кода+данных+стека занимаемых программой.
RSS=килобайты физической (на микросхеме) памяти, занимаемой процессом.
SHARE=килобайты памяти, разделяемой с другими процессами.
STAT=состояние процесса: S-спит(sleeping), R-выполняется(running), T-приостановлен(stopped) или трассируется(traced), D-беспробудно спит(uniterruptable sleep), Z=зомби, не жив не мертв(zombie).
%CPU=процент использования процессора (с момента последнего обновления экрана).
%MEM=процент использования физической памяти.
TIME=общее время использования процессора (с момента старта).
COMMAND=командная строка, запустившая процесс (поосторожнее с паролями, и т.п., в командной строке, потому что все, кто наберет "top", смогут это увидеть!
gtop
ktop
(в X терминале) Два графических варианта top. Мне нравится больше gtop (устанавливается с gnome). В KDE, ktop также доступен из "K"меню в "System"-"Task Manager".

uname -a
(= "Имя Юникс (Unix name)" с параметром "все(all)") Информация о вашем (локальном) сервере. Я могу также использовать guname (в терминале X-windows) для просмотра в более приятном виде.

XFree86 -version
Покажет версию X-windows, установленную в моей системе.

cat /etc/issue
Проверяет, какой дистрибутив вы используете. Вы можете поместить ваше собственное текстовое сообщение--оно будет показано при входе в систему. Но более правильно помещать такие сообщения в файл /etc/motd ("motd"="сообщение дня").

free
Информация о памяти (в килобайтах). "Shared(Разделяемая)" память - это память, которая может разделяться между процессами (например, исполняемый код можно "разделять"). "Buffered(Буферная)" и "cashed(Кэшируемая)" память - это память, хранящая наиболее часто используемые части наиболее часто используемых файлов -- она может сократиться, если процессы потребуют больше памяти.

df -h
(=disk free(Свободное место на диске)) Показывает информацию о всех файловых системах в форме, доступной для человека.

du / -bh | more
(=disk usage(использование диска)) Показывает дисковую память, занимаемую всеми поддиректории, начиная с "/" (корневой) директории (в доступной для человека форме).

cat /proc/cpuinfo
Информация о процессоре(Cpu info)--показывает содержимое файла cpuinfo. Заметьте, что все файлы в директории /proc -- это не настоящие файлы, а просто удобная форма доступа к системной информации.

cat /proc/interrupts
Список используемых прерываний. Может потребоваться для просмотра перед установкой нового оборудования.

cat /proc/version
Версия Linux и другая информация.

cat /proc/filesystems
Показывает список файловых систем, используемых в текущий момент.

cat /etc/printcap |more
Показывает установки принтеров.

lsmod
(= "список модулей(list modules)". Как "root". Используем /sbin/lsmod для просмотра в режиме обычного пользователя.) Показывает загруженные в текущее время модули ядра.

set|more
Показывет значения переменных окружения пользователя (всех). Обычно вывод занимает более одного экрана.

echo $PATH
Показывает содержимое переменной окружения "PATH". Эта команда может быть использована для просмотра других переменных окружения. Используйте set для просмотра всех значений (см. предыдущую команду).

dmesg | less
Печатает сообщения ядра (содержимое так называемого буфера ядра). Нажмите "q" для выхода из "less". Используйте less /var/log/dmesg чтобы увидеть, что "dmesg" поместил в этот файл при последней загрузке системы.

chage -l my_login_name
Посмотреть информацию о времени истечения моего пароля.

quota
Посмотреть мою дисковую квоту (предел использования диска).

sysctl -a |more
Показывает все конфигурируемые параметры ядра Linux.

runlevel
Показывает предыдущий и текущий уровни выполнения (runlevel). Вывод "N5" значит: "нет предыдущего уровня выполнения" и "5 текущий уровень выполнения". Для смены уровня выполнения используйте "init". Например, init 1 переводит систему в однопользовательский режим.

Уровень выполнения - это режим операций в Linux. Уровень выполнения может быть изменен "на лету", используя команду init. Например, init 3 (как "root") переведет меня на уровень выполнения 3. Следующие уровни выполнения являются стандартными:
0 - Остановка системы(halt) (Не нужно ставить этот уровень по умолчанию :)
1 - Однопользовательский режим
2 - Многопользовательский режим, без NFS (То же что и 3, если у вас нет сети)
3 - Полностью многопользовательский режим
4 - не используется
5 - X11
6 - перезагрузка(reboot) (Не нужно ставить этот уровень по умолчанию :)
Уровень выполнения системы по умолчанию устанавливается в: /etc/inittab .
sar
Просмотр информации о системной активности, представленной в файле (/var/log/sarxx, где xx - номер текущего дня). sar может показать много вариантов системной информации, включая статистику загруженности процессора, статистику ввода/вывода, и статистику сетевого траффика за текущий день и (обычно) за несколько предыдущих.

Основные операции

ls
dir
Список содержимого текущей директории. Команда dir является псевдонимом ls , так что эти две команды на самом деле являются одной. Список файлов обычно подсвечивается: темно-синий = директории, светло-серый = обычные файлы, зеленый = выполняемые файлы, розовый = графические файлы, красный = сжатые (например при помощи zip) файлы, светло синий = символьные ссылки, желтый = файлы устройств, коричневый = FIFO ("First-In First-Out" поименованные каналы).

ls -al |more
Список содержимого текущей директории - всех файлов (даже если они начинаются с точки) в длинном формате. Пропуск вывода через команду "more" предназначен для того, чтобы вывод приостанавливался при каждом заполнении экрана. Команда ls имеет много полезных параметров. Некоторые из них могут иметь собственные псевдонимы. Попробуйте ll (="long ls(длинный ls)", псевдоним к ls -l). Другой вариант, который я часто использую ls -ad (Вывести список всех поддиректорий текущей директории, не показывая их содержимого).

cd Директория
Сменить директорию. Использование "cd" без имени директории перенесет вас в Вашу домашнюю директорию. "cd - " перенесет вас в предыдущую текущую директорию, что открывает наиболее общепринятый путь к переключению между директориями. "cd .." перенесет вас на одну директорию вверх (очень полезно).

./имя_программы
Выполнит исполняемый файл из текущей директории. Знак ./ необходим, если директория не указана в переменной PATH. Выполняемый файл, путь к которому упомянут в PATH запускается проще: имя_программы

shutdown -h now
(как "root") Завершает работу системы. Используется в основном для удаленного выключения. Используйте для перезагрузки с консоли. (Это получится у любого пользователя).

halt
reboot
init 6
(как "root", три команды) Перезагрузить компьютер. Используется для удаленной перезагрузки, проще, чем предыдущая команда. Кроме того она полезна при зависании компьютера. Например, если я теряю контроль с клавиатуры, я использую telnet с другой машины сети и перезагружаю компьютер удаленно. Лучше всего использовать для нормального завершения работы компьютера при работе в консоли.

vlock
(Отсутствует в старых версиях RedHat.) Запирает текущий терминал(в текстовом режиме). Кроме того я использую vlock -a для того, чтобы запереть все терминалы (Возможно, не совсем хорошая идея). Наверное, лучше просто выйти из системы. У вас не получится использовать vlock в графической оболочке -- там можно использовать заставки под паролем и запирающие утилиты (маленькая картинка с висячим замком в KDE, горячие клавиши - ).

Управление файлами

cp источник назначения
Копируем файлы. Например, cp /home/stan/existing_file_name . Скопирует файл в мою текущую рабочую директорию. Используйте параметр "-R" (то есть "recursive(рекурсивно)") для копирования дерева директорий, например , cp -R my_existing_dir/ ~ Скопирует поддиректории текущей директории в мою домашнюю директорию.

mcopy откуда куда
Копирует файлы из/в файловую систему DOS (без монтирования последней). Например, mcopy a:\autoexec.bat ~/junk. Смотрите man mtools для информации о других командах доступа к файлам DOS без монтирования: mdir, mcd, mren, mmove, mdel, mmd, mrd, mformat .... Мы не часто используем команды mtool -- операции с файлами DOS / MS Windows могут быть выполнены при помощи обычных команд Linux после монтирования файловых систем DOS/MS Windows.

mv откуда куда
Перенести или переименовать файл. Одна команда предназначена для переноса и переименования файлов и директорий.

rename строка строка_замены имя_файла
Гибкая утилита для замены части имени файла. Например:
rename .htm .html *.htm

ln откуда куда
Создает жесткую ссылку, называемую куда к файлу, называемому откуда. Ссылка выглядит как копия исходного файла, но в действительности существует только один экземпляр файла, но с двумя (или более) входными точками. Соответственно, любые изменения в файле видны сразу с двух точек. Когда одна из ссылок удаляется, другая(другие) останется(останутся) нетронутыми. На жесткие ссылки есть следующие ограничения: файлы должны принадлежать одной файловой системе, жесткие ссылки на директории и специальные файлы невозможны.

ln -s откуда куда
Создать символьные (мягкие) ссылки, называемые "куда" на файл называемый "откуда". Символьная ссылка просто обозначает путь для поиска "настоящего" файла. В отличие от жестких ссылок, файл и ссылка на него не должны принадлежать одной и той же файловой системе. По сравнению с жесткими ссылками у символьных ссылок есть следующие недостатки: если "настоящий" файл удалить, ссылка "ломается" -- она указывает в никуда; символьные ссылки позволяют создавать циклические ссылки (такие же, как иногда появляются в электронных таблицах и базах данных, например, "a" указывает на "b" и "b" указывает на "a"). Короче, символьные ссылки - это замечательный, хотя и редко используемый, инструмент (реже, чем жесткие ссылки), но они могут создать дополнительный уровень сложности.

rm files
Удаляет файлы. Вы должны быть владельцем файла (или обладать правами "root"). В большинстве систем, у вас спросят подтверждения на удаление; чтобы избежать этого, используйте флаг "-f" (=force(форсировать)), например, rm -f * удалит все файлы из вашей текущей рабочей директории, без всяких вопросов.

mkdir директория
Создать новую директорию.

rmdir директория
Удалить пустую директорию.

rm -r files
(рекурсивное удаление) Удаляет файлы и директории, вместе с их поддиректориями. Поосторожнее с этой программой, если у вас права "root" -- вы легко можете удалить сразу же все файлы вашей системы, и, заметьте, никаких утилит восстановления удаленных файлов в Linux нет (по крайней мере пока). Но если вам действительно хочется знать, как сделать это (на всякий случай), то вот как это делается (под root):
rm -rf /*

rm -rf files
(Рекурсивное удаление без вопросов). То же что и выше, но без вопросов. Осторожнее с этим, особенно с правами "root" -- см. выше.

mc
Загружает файловый менеджер "Midnight Commander" (выглядит как "Norton Commander" для Linux). По мнению некоторых компьютерных динозавров, это - самый лучший файловый менеджер.

konqueror &
(в X-терминале) загружает файловый менеджер KDE. Возможно, это - лучший файловый менеджер. Гораздо лучше чем MS "Windows Explorer". Он поддерживает просмотр Internet, просмотр pdf, и более. Просто здорово.

xwc
(в X-терминале). Другой прекрасный файловый менеджер (называемый также "X Win Commander"). Быстрее чем предыдущий, но не так нагружен возможностями.

nautilus &
(в X-терминале). Действительно хорош. Медленнее чем Konqueror, но дает мне возможность предварительного просмотра содержимого файлов(!). Он даже "предварительно просматривает" содержимое звуковых файлов! Требовательный к скорости, он замечательно работает на моем 1.33 GHz компьютере, но я не могу использовать его на компьютере с процессором 133MHz.

Просмотр и редактирование файлов

cat имя_файла | more
Постраничный просмотр содержимого файла, называемого "имя_файла". Символ "|" означает "pipe(труба, конвейер)" (на большинстве клавиатур делит клавишу с символом "\"). more приостанавливает вывод при каждом заполнении экрана. Для длинных файлов иногда удобны команды head и tail которые показывают начало и конец файла, и less которая позволяет просматривать файл, свободно перемещаясь по нему вверх и вниз. Если вам случится использовать cat с двоичным файлом ваш терминал может начать показывать вам различные забавные символы, вы можете прекратить это использовав команду reset.

cat имя_файла | less
less имя_файла
(две команды, используйте любую) Свободный просмотр текстового файла. Нажмите q, когда закончите. Команда "less" - приблизительный эквивалент команды "more", которая есть даже в DOS, но "less" зачастую гораздо удобнее "more", поскольку позволяет свободно перемещаться по тексту вверх и вниз.

head имя_файла
Печатает первые 10 строк (длинного) текстового файла.

tail имя_файла
Печатает последние 10 строк (растущего) текстового фала. Используйте tail -f имя_файла для просмотра конца растущего файла в процессе роста -- очень удобно для просмотра файлов журнала.

pico имя_файла
Редактировать текстовый файл простым и стандартным текстовым редактором pico. Используйте x для выхода. В Linux очень много текстовых редакторов, включая редакторы с графическим интерфейсом. Имя нового клона pico (GPLed) - nano.

pico -w имя_файла
Редактирование текстового файла, с запретом переноса слов. Удобно для редактирования конфигурационных файлов, например /etc/fstab.

kwrite
(в X-терминале) очень симпатичный и продвинутый текстовый редактор. Поддерживает даже вертикальное выделение текста!

kate
kedit
gedit
(в X-терминале). Простые, но симпатичные текстовые редакторы с графическим интерфейсом.

gxedit
(в X-терминале) Другой многоцелевой и насыщенный возможностями текстовый редактор. Поддерживает автосохранение.

latte
(в X-терминале) Редактор для написания программ.

nedit
(в X-терминале) Другой редактор для программистов. Красивый и мощный.

bluefish
(в X-терминале) редактор html (подсветка синтаксиса, много инструментов и возможностей).

ispell имя_файла
Проверка синтаксиса текстовых файлов. AbiWord, WordPerfect, StarOffice и OpenOffice снабжены проверкой синтаксиса "на лету", но и ispell может вам потребоваться. Новейшие дистрибутивы Linux (например RH7.0) содержат более свежую программу проверки синтаксиса aspell, которая ничем не отличается в использовании от предыдущей.

look термин
Поиск в словаре (/usr/share/dict/words) слов, начинающихся с "термин".

wvHtml документ_ms_word.doc > имя_файла.html
Конвертирует документ MS Word в файл формата html.

Поиск файлов

find / -name "имя_файла"
Найти файл "имя_файла" в вашей файловой системе, начиная с каталога "/". "имя_файла" может содержать маски (*,?).
Это очень мощная команда. У нее есть много параметров, позволяющих производить поиск файлов различными методами, например, по дате, размеру, разрешения на доступ, владелец, .... Так что, некоторые поисковые запросы могут занять несколько минут на составление. Смотрите info find. А здесь приведены несколько примеров использования find.
find $HOME -name core -exec rm -f {} \;
Вышеуказанная команда ищет файлы с именем "core", начиная с вашей домашней директории. Для каждого найденного файла она выполняет команду "rm -f" (Удаление файла без подтверждения). Параметр {} замещается найденным файлом, а символ "\" завершает список команд.

find /dev -user "peter" |more
Вышеуказанная команда ищет список устройств, владельцем которых является "peter". Печать имени файла является "действием по умолчанию" для команды. Его не надо определять специально, если это все что необходимо сделать.

find /home/peter -nouser -exec ls -l {} \; -ok chown peter.peter {} \;
Найти файлы, у которых отсутствует владелец в директории /home/peter. Вывести файлы в длинном формате. При этом присвоить им владельца "peter" и группу "peter". Вам необходимо иметь права "root" для того чтобы сменить владельца файла.

locate имя_файла
Найти файлы, имя которых содержит подстроку "имя_файла". Проще и быстрее, чем предыдущая команда, но основывается на базе данных, которая обновляется в полночь. Чтобы произвести ее обновление на данный момент, я могу (как "root"): updatedb&.

which исполняемый_файл
Показывает путь к исполняемому файлу, который будет выполнен, если набрать в командной строке "исполняемый_файл". Например, эта команда:
which netscape
в моей системе:
/usr/bin/netscape

whereis команда
Печатает расположение двоичных и исходных файлов, а так же файлов руководства "команда".

rgrep -r 'celeste' . |more
grep -r 'celeste' . |more
(Две команды, используйте ту, которая сработает в вашей системе.) Показывает все файлы текущей директории и ее поддиректорий (параметр "-r" значит "рекурсивно") содержащие строку "celeste". Показывает имена файлов и строки, содержащие подстроку поиска.

kfind &
(в X терминале). Графическая оболочка для find и grep. Очень неплохо. Ко всему прочему kfind исполняется в отдельном окне, оставляя терминал свободным для использования.

Основы X-windows

xinit &
Запускает сервер X-windows (без менеджера окон). Символ "&" отправляет команду в фоновый режим.

startx &
Запускает сервер X-windows и менеджер окон. Почти как "win" в DOS с Win3.1.

startx -- :1 &
Запускает другую сессию X-windows на дисплее 1 (по умолчанию используется дисплей 0). вы можете использовать несколько графических терминалов одновременно. Переключайтесь между ними , , etc.

xterm
(в X-терминале) Выполнить простой терминал X-windows. Напечатайте exit, чтобы закрыть его. Вот другие, более продвинутые "виртуальные" терминалы для Xwindows. Мне нравятся следующие: konsole и kvt (поставляется kde)и gnome-terminal (поставляется с gnome). Если вам требуется нечто более красивое, попробуйте Eterm. Более быстрый -rxvt.

startkde
gnome-session
xfce
afterstep
AnotherLevel
fvwm2
fvwm
(в X терминале, 7 различных команд, используйте одну из них для запуска вашего любимого оконного менеджера) Запуск оконного менеджера в голом X-сервере.

Сетевые приложения

mozilla &
(в X-терминале) Запустить web-браузер Mozilla. Текущая версия - Mozilla 1.0.1 (Октябрь 2002), и она очень хороша. Mozilla - это современная замена Netscape (netscape был в старых дистрибутивах). Неплохие альтернативы - это konqueror и galeon (наберите konqueror& или galeon& в вашем X-терминале).

mozilla -display host:0.0 &
(в X-терминале) Запустить Mozilla на текущей машине, перенаправив вывод на машину под названием "host", дисплей 0, экран 0. Ваша машина должна иметь соответствующее разрешение на "host" (обычно выдается при помощи команды "xhost имя_вашей_машины" в x-терминале на машине "host". Другие программы X-windows могут быть выполнены удаленно тем же образом.

lynx file.html
Просмотр файла html или просмотр сети в текстовом режиме. Конечно, внешний вид и удобство использования lynx несравнимо хуже, чем у рассмотренных ранее браузеров, но он легок, надежен и не нуждается в конфигурировании, пока ваша сеть работоспособна.

konqueror &
(в X-терминале) Менеджер файлов и браузер. Хорош, и по многим параметрам - лучше, чем mozilla. Поставляется с KDE.

pine
Хорошая консольная программа чтения почты. Другой хорошей и стандартной программой является elm. Netscape Mail читает почту из почтового ящика, расположенного в Интернете. pine позволяет вам читать "локальную" почту, например, письмо от сына или от процесса "cron" посланные с одного из компьютеров вашей домашней сети. Команда mail также может быть использована для чтения/составления почты, но это было бы неудобно -- ее следует использовать в скриптах, для автоматизации некоторых процессов.

mutt
Действительно базовая, но весьма шустрая и удобная программа чтения почты.

mail
Базовая программа операционной системы для работы с электронной почтой. Предыдущие команды гораздо более пригодны для чтения почты. mail хорош, если вы хотите автоматизировать работу с почтой при помощи командных файлов.

kmail &
(в X-терминале) Симпатичная почтовая программа с графической оболочкой. Я использую kmail, он гораздо лучше, чем netscape mail. У меня может быть много учетных записей и доставка почты как с smtp сервера (локально) и с pop3 серверов (через интернет-провайдера) в один почтовый ящик. Просто и элегантно. Поддерживает цифровые подписи.

licq &
(в X терминале) Клиент icq. Другой хороший вариант - kxicq. В старых дистрибутивах клиенты icq отсутствуют, и может потребоваться скачать его и установить самостоятельно.

knode &
(в X-терминале) Запустить программу чтения групп новостей (usenet reader). Гораздо лучше, чем встроенный в netscape.

talk username1
Поговорить с пользователем, зарегистрированным в настояшее время на локальной машине (или используйте "talk username1@machinename" для разговора с пользователем на другой машине). Чтобы принять приглашение на разговор, наберите команду "talk username2". Если кто-то слишком навязчиво пытается с вами поговорить, мешая вам работать, наберите "mesg n" чтобы запретить прием сообщений. Вы можете использовать команды "who" или "rwho", чтобы получить список пользователей, работающих в настоящий момент в системе. talk - это одна из старомодных "стандартных" программ UNIX, но она ничуть не утратила своей актуальности.

telnet server
Соединиться с другой машиной по протоколу TELNET. Используйте имя или IP-адрес другой машины. У вас спросят имя пользователя(login) и пароль(password) -- вы должны быть зарегистрированы на этой машине. Telnet подсоединяет вас к удаленной машине и позволяет вам работать с ней так, как если бы вы сидели за ее клавиатурой (почти). Telnet не слишком безопасен -- все что вы печатаете идет в сеть в прямом виде (без шифрования), даже ваш пароль! Компетентный системный администратор на одной из машин, "стоящих на пути", сможет прочитать все, что вы напечатали. Используйте ssh (требует настройки) - более мощный аналог telnet с зашифрованной передачей данных.

rlogin server
(=remote login(удаленный вход)) Вход на другую машину. Используются имя пользователя и пароль текущей сессии; Если не удастся, то у вас спросят пароль.

rsh server
(=remote shell(удаленная оболочка)) Другой способ присоединения к текущей машине. Используются имя пользователя/пароль, используемые в текущей сессии; Если не удастся, то у вас спросят пароль.

ssh servername -l username
(=secure shell(безопасная оболочка)) Присоединение к серверу, используя безопасное соединение. ssh безопасен, поскольку все данные, идущие через сеть, шифруются парой RSA "открытый-закрытый" ключ. Если вы не определите имя пользователя, будет использоваться текущее имя.

Сервис ssh должен быть запущен и на клиенте и сервере. Обычно он доступен в новых дистрибутивах Linux (например, RH7.0). Перед использованием ssh, необходимо сделать некоторые установки. Пользователь создает свою пару ключей RSA (для шифрования), используя команду ssh-keygen. Она сохраняет закрытый ключ в директории $HOME/.ssh/identity и публичный ключ $HOME/.ssh/identity.pub в директории пользователя. Для разрешения автоматического входа, пользователь должен скопировать identity.pub из директории $HOME/.ssh/authorized_keys в свою домашнюю директорию на удаленной машине, и после этого пользователь может входить без ввода пароля. Более удобным является использование RSA-аутентификации при использовании агента аутентификации. Смотрите man 1 ssh-agent для дополнительной информации. Если автоматическая аутентентификация не удастся, ssh запросит пароль пользователя. Пароль будет передан на удаленный компьютер для проверки, однако, поскольку весь обмен данными зашифрован, пароль не может быть подсмотрен кем-либо в сети.

From: Benjamin Smith (сокращено):
В последнее время я использую openssh 2.9.2p1 с безпарольным входом. Это потребовало некоторых действий, не описанных ни в одном howto: Ключи SSH2 и DSA, которые вы генерируете с помощью 'ssh-keygen -d', помещаются в ~/.ssh/id_dsa.pub. Нужно скопировать их на директорию удаленного компьютера: .ssh/authorized_keys2 и использовать их вместо "authorized_keys", указанных в howto. Это действительно работает.

ftp server
Вход по протоколу FTP на другую машину. (Есть еще ncftp, обладающая дополнительными возможностями и gftp для работы в графической оболочке .) FTP удобен для копирования файлов с удаленной машины (или на нее). Попробуйте пользователя "anonymous", если у вас нет пользовательской записи на удаленной машине. После соединения, используйте "?" для просмотра списка доступных вам команд ftp. Избранные команды ftp: ls (просмотр файлов в удаленной системе), ASCII, binary (устанавливает текстовый или двоичный режим передачи данных, важно выбрать правильно), get (Скопировать файл из удаленной системы в локальную), mget (то же, но несколько файлов за раз), put (скопировать файлы из локальной системы в удаленную), mput (то же, но несколько файлов за раз), bye (закрытие соединения). Для использования в командных файлах, вам может пригодиться ncftpput и ncftpget, например:
ncftpput -u имя_пользователя -p пароль -a удаленный_сервер.домен удаленная_директория *local.html
"ncftp" может иметь проблемы, если ваш компьютер снабжен средством безопасности firewall -- вам потребуется конфигурировать файл /home/usr_name/.ncftp/firewall. Так же в этом случае вы можете использовать "lftp", например:
lftp -e "mput -a *local.html" -u мое_имя_пользователя,мой_пароль ftp://remote.host.domain
Для создания "зеркала" директории ftp можно использовать fmirror.

wget -m --no-parent http://sunsite.dk/linux-newbie
Копировать файлы с Web-сайта. Пример содержит параметры -m (=mirror(зеркало)) для того, чтобы перенести все файлы с основного сайта этого руководства. Параметр "--no-parent" ограничивает список переносимых файлов указанной директорией и её субдиректориями.

minicom
Программа Minicom предназнасена для эмуляции терминала на последовательном порте. Выглядит и работает, как "Procomm" или "Telix". Полезна для тестирования и отладки соединения через ваш последовательный порт.

rx
Забрать файл через соединение по протоколу Zmodem, Ymodem, или Xmodem. Xmodem требует имени файла. Используйте rx --help для дополнительной информации. Интересно, кто до сих пор использует эти протоколы?

"Я использую Zmodem регулярно. У меня два компьютера с установленным (SuSE) Linux, переносной и настольный. Настольный компьютер не имеет подключения к Internet. Так что для того, чтобы перебросить файл с одного компьютера на другой, я пересылаю его по нуль-модемному кабелю, используя протоколы Minicom и Zmodem. Таким образом я могу даже подключиться с переносного компьютера под управлением Win2000 к моей linux-машине, используя Reflexion (программу эмуляции терминала для win32)" (from Berry Vos, [email protected], 2001 08 28).

(Раз)архивирование файлов

tar -zxvf filename.tar.gz
(=tape archiver(ленточный архиватор)) Разархивирует файл *.tar.gz или *.tgz (такие файлы называют "tarball" или "тарбол").

tar -xvf filename.tar
Распаковывает файл *.tar (собранный, но не сжатый).

tar czvpf /var/backups/mybackup.tar.gz /home
cd /; tar xzvpf /var/backups/mybackup.tar.gz '*/myfile.rtf'
(как "root") Создает резервную копию (backup) каталога /home в сжатый файл. Вторая команда показывает, как восстанавливать файл из резервной копии.

gunzip filename.gz
Разархивирует сжатый файл *.gz или *.z. Используйте gzip (или zip или compress) для архивирования файла в этом формате.

zcat имя_файла.gz | more
(=zip cat) Выводит содержание сжатого файла. Другие программы для работы с сжатыми файлами, без их предварительного разархивирования: zless, zmore, zgrep, ...

bunzip2 имя_файла.bz2
(=big(большой) unzip) Разархивирование файлов (*.bz2) сжатых программой bzip2. Используется для больших файлов.

unzip имя_файла.zip
Разархивирование файлов (*.zip), сжатых программой PKZIP for DOS или совместимой.

zip имя_файла.zip имя_файла1 имя_файла2
Сжать два файла "имя_файла1" и "имя_файла2" в архив zip с именем "имя_файла.zip".

unarj e имя_файла.arj
Разархивировать файл *.arj.

lha e имя_файла.lha
Разархивировать файл lharc.

uudecode -o выходной_файл имя_файла
Декодировать файл, закодированный утилитой uuencode. Такие файлы обычно используются для передачи нетекстовых файлов в электронном письме (uuencode трансформирует любой файл в формат ASCII).

cat имя_файла | mimencode -o имя_файла.mime
cat имя_файла.mime |mimencode -u -o имя_файла
(2 команды.) Кодирует и декодирует файлы в стандартный формат Internet для передачи 7-битных данных, называмый "mime". В более старых дистрибутивах команда (mimencode) называлась mmencode. Обычно вам не требуется выполнять эту команду, потому что ваша почтовая программа выполняет кодирование/декодирование mime самостоятельно.

ar -x мой_архив.a файл1 файл2
(=archiver(архиватор)). Извлекает файлыфайл1 и файл2 из архива, называемого мой_архив.a. Программа архивирования ar обычно используется для поддержки библиотек.

ark &
(в X-терминале). Основанный на Qt архиватор с графическим интерфейсом. Возможно, это - всё, что вам нужно для работы со сжатыми файлами. Так же можно использовать gnozip.


Обсудить данную тему на нашем форуме "Все о Linux"