Командный словарь юниксоида =)
|
|
Пятница, 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.
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-