PDA

Просмотр полной версии : Командный словарь юниксоида



SDA
11.08.2005, 13:11
Файловые команды
mkdir <каталог> - создание каталога. Если тебе нужно построить ветку директорий, укажи дополнительный параметр –p.

touch <file> - создание пустого текстового файла. В случае если файл уже существует, его дата и время доступа изменятся на текущие.

rm <file> - удаление файла. Для удаления каталога - ключ –r. Если хочется удалить непустой каталог, прибавляй параметр –f. Но помни, что с помощью "rm –rf" можно случайно уничтожить важную информацию – будь с ней осторожнее.

ls <dir> - отображение списка файлов в заданном каталоге. Более детальную информацию можно получить при использовании добавочных ключей "-alF". Опция "-R" позволяет выполнить рекурсивный просмотр каталогов.

cp file1 file2 (mv file1 file2) - копирование (перемещение) файла. Чтобы скопировать содержимое каталога, укажи параметр –R. Чтобы сохранить права доступа копируемых объектов, укажи флажок –p.

cat <file> - чтение текстового файла. Бинарные файлы читать не рекомендуется: есть большая вероятность сброса настроек терминала :).

cat > <file> и cat >> <file> - запись и дозапись в файл. Символ ">" в данном контексте выступает как перенаправление потока. Действительно, по сути, выполняется запуск cat без параметров, а после нажатия <CTRL>+d (завершение записи) поток с текстом автоматически перенаправится в файл.

head <file> и tail <file> - чтение десяти первых и последних строк файла соответственно. Опции очень полезны при анализе какого-нибудь увесистого лога. Чтобы вывести заданное количество строк, используй опцию "–n число строк".

grep <строка> <файл> - поиск заданной строки в текстовом файле. Чтобы осуществить реверсивный поиск, существует параметр –v. Ключ –i позволяет игнорировать регистр искомого выражения.

ln <file1> <file2> - создание жесткой ссылки в виде file2 на файл file1. Для того чтобы сделать символическую ссылку, нужно добавить ключ –s. Кстати, жесткие ссылки позволительно создавать только на общем дисковом разделе.

pwd - определение текущего каталога.

cd <каталог> - переход в указанный каталог. На самом деле cd - лишь функция shell'а, которая никак не привязана к бинарнику.

tar zcf file.tar.gz [file|folder] - создание архива с файлом или папкой. Извлекается архивчик с помощью замены параметра "c" на "x". Настоящие юниксоиды довольно часто работают с архивами, поэтому запоминай эти опции и присоединяйся к этой славной армии.

find <path> [options] - поиск файла в каталоге <path>, подпадающего под определенный критерий. У этой команды очень много опций, но наиболее простой запуск выглядит так: find /folder –name *filename*.
locate <file> - поиск файла на диске. Эта операция очень быстрая, так как название файла берется из специальной базы, которая ежедневно обновляется.

Процессы и права

id [user] - просмотр собственных прав. На экране увидишь свой UID, групповой идентификатор и все группы, к которым ты принадлежишь. Если добавить в качестве параметра имя системного пользователя, ты сможешь легко посмотреть его привилегии.

chmod <permissions> <file> - изменение прав доступа к файлу. Права могут указываться как в восьмеричной системе, так и символьным путем. Скажем, параметр +x дает право любому на выполнение бинарника. Соответственно, опции +r и +w расставляют привилегии на чтение и запись.

chown <file.group> <file> - изменение владельца файла. Эту команду имеет право выполнить только владелец файла или root.

su [user] - переключиться на другого пользователя. После ввода этого запроса бинарник su потребует ввести пароль администратора (или пользователя, права которого ты хочешь присвоить).

passwd [user] - смена своего пароля или пароля другого пользователя. Чтобы поменять чужой пароль, необходимо быть администратором системы, то есть предварительно засуидиться на root’а.

ps - отображение собственных процессов. Чтобы увидеть все системные задания, используй опцию –ax. Если есть желание увидеть имя пользователя, под которым запущен процесс, прибавляй ключик –u.

kill [signal] pid - остановка ненужного процесса. Если после просмотра таблицы ты заметишь процесс, который нужно завершить в принудительном порядке, выполняй команду kill -9 идентификатор. Девятый сигнал невозможно проигнорировать, поэтому pid быстро исчезнет из системной таблицы. Для просмотра доступных сигналов используй команду kill –l.

top - тот же вывод процессов, только в интерактивном виде и в более дружелюбной форме.

pstree - вывод процессов в древовидной форме.

renice pid - изменение приоритета процесса. По умолчанию программа запускается с нулевым приоритетом, однако он может колебаться от –20 (самый высокий) до +20 (самый низкий).

Сетевые команды

В консоли имеется огромное количество сетевых клиентов. Важно лишь знать их название и синтаксис. Вот они:

telnet <host> <port> - подключение на произвольный порт заданного узла. Команда Telnet является универсальным средством сетевого обмена. Никто не запрещает использовать этот бинарник в качестве telnet/smtp/pop3-клиента.

ssh [user@]host - соединение по SSH-протоколу на удаленный узел. Если опустить параметр user@, в качестве логина передается текущее имя пользователя.

ftp <host> [port] - интерактивный ftp-клиент. Является незаменимым средством консольного юниксоида. Для разъяснения параметров напиши Help после запуска клиента.
wget <url> - скачивает файл из глобальной Сети. Wget - самый продвинутый консольный download-менеджер, который устанавливается по умолчанию во многих системах.

lynx <url> или links <url> - консольный web-браузер. Оба они понимают таблицы, фреймы, css, скрипты и многое другое.

ping (traceroute) <host> - посылка пакета icmp-echo (трассировка маршрута) на указанный узел.

host <адрес> - определение IP-адреса символьного хоста.

dig <адрес> - то же самое, но в более расширенном формате. Клиент dig имеет множество интересных параметров, является полнофункциональным DNS-клиентом. Смотри Help и просвещайся :).

nmap <host> - твой любимый сканер портов. Кстати, nmap также устанавливается по умолчанию в новых системах. Однако часть опций доступна только администратору сервера
Команды системного администратора
ifconfig - отображение активных сетевых интерфейсов, параметры которых при большом желании можно изменить. Допустим, чтобы присвоить сетевой карте IP-адрес, достаточно написать ipfconfig eth0 ip-address up.

route - просмотр (изменение) таблицы маршрутизации. К примеру, если у тебя два доступа в интернет, нужно грамотно настроить маршрутизацию, чтобы задействовать оба на особо выгодных условиях.

arp - управление ARP-таблицей. Напоминаю: протокол ARP связывает IP- и MAC-адреса.

netstat - отображение сетевой статистики. Без параметров команда покажет активные соединения. Чтобы посмотреть все подключения и открытые порты, используй ключ –a. Для отмены преобразования хостов в IP применяется параметр –n (что значительно ускоряет вывод). Ну и, наконец, чтобы узнать, какой именно процесс привязан к порту, следует заюзать опцию –p.

iptables - вызов встроенного файрвола. Настройка брандмауэра - тема отдельной статьи, которую ты найдешь в этом журнале :).

useradd <user> [-s shell –d /home/directory –g group] - добавление пользователя с указанными реквизитами.

userdel [-r] <user> - удаление пользователя. Ключик –r позволяет удалить не только учетную запись, но и весь домашний каталог, а также почтовую переписку.

reboot - перезагрузка сервера. Синоним: shutdown –r now.

halt - выключение машины. Синоним: shutdown –h now или poweroff.

Справочная литература

Ну и напоследок торжественно передам тебе несколько справочных команд. С помощью справки ты всегда сможешь найти команду, получить список ключей к ней или посмотреть развернутое описание.

man [раздел] <команда> - полное руководство по команде. По умолчанию поиск ведется в первом разделе, однако к одной команде может быть несколько документов. Яркий пример тому - ключевое слово "read" (в первом разделе содержится руководство по ключевому слову "bash", во втором - по функции языка C read).

info <command> [пакет] - более развернутое руководство пользователя. Допустим, запрос info ls coreutls покажет намного больше информации, чем man ls.
apropos <word> - поиск названия руководства по заданному ключевому слову. Например, ты помнишь, что команда содержит подстроку "dir", но не знаешь ее полного имени. Используй запрос apropos dir, и команда быстро найдется.

which <команда> - поиск нужного исполняемого файла в каталогах, объявленных в переменной окружения PATH.

whereis <команда> - эффект тот же, что и для which, только поиск ведется и в каталоге со справочными страницами.

command –-help (или command –h) - очень часто параметр -help выводит частичную справку о параметрах команды. Это значит, что совсем не обязательно читать большое руководство, если ты вдруг забыл командную опцию.

Что же такое команда?

По сути, команда - это вызов внешнего исполняемого файла. Другими словами, введя в интерпретаторе ключевое слово, ты принуждаешь его найти бинарный файл, соответствующий твоему запросу. Если такой бинарник существует, система пытается его запустить, а иначе выдаст сообщение о том, что команда не опознана. Однако бывают исключения, когда вводимая команда - это исключительная особенность shell'а.

Команда uname –a расскажет много интересного о системе, например, имя операционки, версию ядра или тип процессора.

С помощью запроса set можно смотреть/изменять системные переменные окружения. Например, добавлять новый каталог в переменную PATH.

Чтобы узнать информацию о залогиненных пользователях, выполни запрос "w". Команда Last поможет подсмотреть данные людей, которые уже вышли из системы.

Если тебе захочется отправить системное оповещение всем пользователям, используй команду wall < файл_с_сообщением или просто echo "сообщение"|wall.

Muromec
13.08.2005, 20:31
kill [signal] pid - остановка ненужного процесса.
pidof имя_процесса выдает идентификатор ( PID of ).
для прибивания по имени можно делать так:
kill `pidof X`
или
killall X

а если сделать
killall -STOP wget
процесс wget остановится и закачка файла прекратится
killall -CONT wget
вернет процесс в прежнее состояние (вставляем в крон и файл качается по расписанию)


chown <file.group> <file> - изменение владельца файла
точнее chown пользователь:группа файл
ключ -R выполнит команду рекурсивно ( для папок )

команды можно выстраивать в длинные цепочки:
/bin/netstat -nep --inet | grep ":80" | sed "s/wget/качалка/g" > ~/качается_или_нет

netstat выведет такую таблицу:
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 1 212.86.239.6:55160 212.0.132.7:80 SYN_SENT 1000 623801 1222/psi
tcp 0 0 212.86.239.6:47800 131.246.103.200:80 ESTABLISHED 1000 622318 1694/wget

и передаст ее грепу. grep покажет только строчки с 80-тым портом и передаст sedу, sed везде заменит "wget" на "качалка" и запишет результаты в файл ~/качается_или_нет.

cat /proc/`pidof wget`/cmdline
покажет, с какими параметрами была запузена программа. `pidof wget` заменится на значение PID и на самом деле будет вызван
/bin/cat /proc/1694/cmdline

Xen
13.08.2005, 22:39
Одной из незаменимейших команд для ньюбаев является

mc

вызывающая файловый менеджер Midnight Commander ;)))

Muromec
13.08.2005, 22:50
менеджер Midnight Commander

мне кто-то объяснит, что такого особенного в "синих панельках"? ну не понимаю я... неудобно же это
ИМХО для нюбов удобнее и привычнее будет что-то иксовое ( konqueror, nautilus ). лично я использую или консольные команды (cp, rm, chown, nano, tar и прочие) или наоборот konqueror с его kio-slaves.
при чем для операций, требующих права рута - консоль, а для наведения порядка в своем барахле (музыка, кино, картинки) - иксы.

зы. самая главная и незаменимая команда - man (-: