-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в Admining

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 26.05.2006
Записей:
Комментариев:
Написано: 49


Командный словарь юниксоида =)

Пятница, 03 Ноября 2006 г. 14:33 + в цитатник
Steep_Zero все записи автора Командный словарь юниксоида

Спецвыпуск: Хакер, номер #051, стр. 051-108-1

Докучаев Дмитрий aka Forb

(forb@real.xakep.ru)

Самые полезные команды

Unix - это в первую очередь сетевая многопользовательская система. В отличие от Windows, эта ОС включает в себя множество команд для самых разных операций. Чтобы без труда ориентироваться хотя бы в базовых запросах, ознакомься с этим командным глоссарием.

Файловые команды

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

locate - поиск файла на диске. Эта операция очень быстрая, так как название файла берется из специальной базы, которая ежедневно обновляется.

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

Unix - очень безопасная система, где права пользователя охраняются жестко. Существует ряд команд, которые позволяют смотреть/изменять привилегии и контролировать пользовательские процессы. Вот они.

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

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

chown - изменение владельца файла. Эту команду имеет право выполнить только владелец файла или 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 - подключение на произвольный порт заданного узла. Команда Telnet является универсальным средством сетевого обмена. Никто не запрещает использовать этот бинарник в качестве telnet/smtp/pop3-клиента.

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

ftp [port] - интерактивный ftp-клиент. Является незаменимым средством консольного юниксоида. Для разъяснения параметров напиши Help после запуска клиента.

wget - скачивает файл из глобальной Сети. Wget - самый продвинутый консольный download-менеджер, который устанавливается по умолчанию во многих системах.

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

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

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

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

nmap - твой любимый сканер портов. Кстати, nmap также устанавливается по умолчанию в новых системах. Однако часть опций доступна только администратору сервера.

Рай для администратора

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

ifconfig - отображение активных сетевых интерфейсов, параметры которых при большом желании можно изменить. Допустим, чтобы присвоить сетевой карте IP-адрес, достаточно написать ipfconfig eth0 ip-address up.

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

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

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

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

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

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

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

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

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

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

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

info [пакет] - более развернутое руководство пользователя. Допустим, запрос info ls coreutls покажет намного больше информации, чем man ls.

apropos - поиск названия руководства по заданному ключевому слову. Например, ты помнишь, что команда содержит подстроку "dir", но не знаешь ее полного имени. Используй запрос apropos dir, и команда быстро найдется.

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

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

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

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

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

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

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

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

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

Рубрики:  Unix

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку