Главная » Статьи » Операционные систмы » Linux |
Автор: Furet "Что за зверь, этот *nix?", - спросишь ты. Для тех, кто не бродит по ночам в лесу, поясняю.. *nix - это общее название всех оперативок, родственных отцу Unix'у. Если и после этого термина ты чешешь репу, то дальше можешь не читать, для тебя это все пурга. Ага, все-таки читаешь! Ну раз уж ты решился, то в путь, к освоению основных команд *никса! Для начала Первое, что ты должен сделать, - найти в потемках ближайший рынок, где продается любой дистрибутив Linux'a aka пингвина (Red Hat, Black Cat, Mandrake или Debian) и приобрести его за пару буказоидов (не советую начинать свои извращения с Linux SlackWare или BSD - перелом черепа обеспечен!). После этого можешь гордо идти домой, держа компакт так, чтобы все видели, что ты - будущий юниксоид! Прибежав домой и немного отдышавшись, выпей пивка, посмотри телек и займись стиркой... Стиркой ненужного файла на твоем компе, ибо *nix - это тоже существо и требует чистоплотности. Затем, вооружившись Partition Magic, произведи выстрел в воздух, типа я вооружен и опасен, - с помощью этой чудо-проги оборудуй для своего питомца клетку. Для этого тебе понадобится добавить на диск пару разделов: первый и основной раздел формать под ext2 (не менее 2-х метров), а второй - для свопа (размер ОЗУ, помноженный на два). Теперь смело вставляй диск и перегружай комп. Чего видишь? Пингвина? Главное, обрати внимание на его выражение лица. Если он растягивает лыбу, скорее руби провода питания своего компа, вытягивай диск с этим зверем и тащи на рынок. С претензиями к продавцу, мол, продал подделку. Грузим(ся) Как ты уже понял, разделов на диски линуксоиды не предусмотрели, ну да ладно! И в отличие от морали, которая установилась в виндах - разделять каталоги чертой "\", в Linux используется обратная черта "/". К примеру, адрес файла 31337xakep_faq.txt в корневом каталоге пользователя xakep в *nix'e пропишется так: /home/xakep/31337xakep_faq.txt (home - каталог; xakep - подкаталог; 31337xakep_faq.txt - файл). Находим файло Чтобы узнать, инсталлирована на твоей телеге та или иная тулза, в *nix'e есть команда which. Используя ее, найдем, где у тебя расположился Midnight Commander - программа, аналогичная Norton Commander by Петя Нортон: в шелле пишем "which mc" (не вздумай влепить кавычки!). В результате, если тулза установлена, ты получишь путь к ней. Он выглядит примерно так: /usr/bin/mc. Аналогично можно узнать, установлен ли у тебя интерпретатор кульного языка программирования Perl'а. Подай команду зверю - which perl - и в итоге получишь путь - /usr/bin/perl или похожий. Смотрим директории, получаем кучу непоняток Еще одной кульной командой является ls (кто в ясельном возрасте изучал MS-DOS, тот знает, что такое dir. В *nix'e ls - это синоним dir'a). Введи в терминале ls и ты увидишь список файлов каталога, в котором ты сейчас находишься. Заметь, что каталоги и файлы отличаются цветом шрифта. Одним из часто используемых мною ключей является -l, с помощью которого можно получить подробную инфу о каждом файле каталога. Об остальных ключах ты можешь узнать, как говорится, не отходя от кассы, применив еще одну часто используемую команду man. Эта команда работает с так называемыми man-страницами (по-русски - help). Чтобы узнать инфу об интересующей тебя программе или команде, просто введи "man команда". Например, man ls, и узнаешь много нового (и о своей личности тоже...). Теперь самое время разобраться, что за ругань вывела нам команда ls -l. Перед тобой 7 колонок, в каждой из которых какая-то белиберда. Давай разберемся, что к чему. В *nix'e, как в любой многопользовательской операционке, у каждого файла есть свои права доступа. Для хозяина файла - одни, для группы, в которую входит хозяин, - другие, а для остальных пользователей - третьи. Каждый пользователь из этих трех категорий может либо читать файл, либо записывать в него инфу, либо загружать (если он загружаемый). Права доступа и определяют тот набор возможностей для каждой категории пользователей. Эти самые права доступа можно представлять в трех видах: 0727 - восьмеричный вид 111010111 - двоичный вид rwx-w-rwx - строковой вид Восьмеричный вид состоит из четырех цифр: первая 0 - показывает, что мы имеем дело с восьмеричным числом; следующие три цифры определяют права доступа хозяина файла, группы, к которой принадлежит хозяин, и остальных пользователей соответственно. Каждая цифра состоит из суммы цифр (4, 2 и 1). Четверка означает, что пользователь данной группы имеет право на чтение файла, двойка - право на запись, а единица - право на загрузку. Таким образом, хозяин имеет право на все действия с данным файлом; группа, к которой он принадлежит, - может только записывать инфу в данный файл; все остальные же пользователи также могут делать с этим файлом все что угодно. Двоичный вид - это то же самое, что восьмеричный, только в двоичной системе исчисления. Ну а строковый вид самый простой для человеческого восприятия. Здесь каждая буква означает определенное право: r - право на чтение; w - право на запись, x - право на запуск. Возьмем файл mbox из моего каталога /root. Из строкового вида прав доступа (-rw-------) следует, что я могу просматривать и изменять содержимое этого файла, а другие пользователи не имеют никаких прав. Что такое "не имеют никаких прав"? Это очень полезная фишка. Например, этот мой файл mbox никто, кроме меня, даже не сможет прочитать. Он как бы на замке ото всех (кроме меня). На самом деле в строковом виде - десять символов: первый символ указывает на тип файла, а все остальные девять описывают права. Если первый символ "-" - это обычный файл, если символ "d" - каталог. В третьей и в четвертой колонках ты можешь узнать, кто хозяин данного файла и к какой группе он принадлежит, соответственно. В пятой - размер файла (в байтах), а дальше идет месяц, число, время создания файла и само имя файла (заметь, каталог - это тоже файл). Определяем права файлам Теперь неплохо было бы уметь изменять эти самые права доступа, чтобы никакая личность-паразит не смогла прочесть твои личные файлы, а тем более стереть. Для этого существует команда chmod (change mode). Например, чтобы запретить остальным пользователям читать мой файл net.map из каталога /root, я введу такую команду: chmod rw------- net.map или chmod 600 net.map или, чтобы разрешить читать и записывать, - chmod rw-rw-rw net.map Лазаем по каталогам До этого момента ты смог выводить на экран список файлов только того каталога, в котором находишься. Но чтобы посмотреть, какие файлы находятся, например, в каталоге mail, тебе для начала нужно попасть в этот каталог. А это как раз можно осуществить с помощью команды cd. Юзается вот так: cd каталог. А чтобы попасть в домашний каталог пользователя xakep, нужно ввести "cd /home/xakep". Создаем и удаляем каталоги Чтобы создать или удалить пустой каталог, используй команды mkdir и rmdir. mkdir vasya (создается каталог vasya в текущем каталоге) rmdir vasya (удаляется каталог vasya) Копируем и двигаем Теперь неплохо было бы научиться копировать, перемещать и удалять файлы. Для этого используются следующие команды: cp, mv и rm - соответственно. Примеры: cp dir1/file1 dir2 (в итоге file1 будет скопирован в dir2) поместив в командной строке ключ -R или -r, можно скопировать целый фрагмент дерева каталогов cp -r dir1/file1 dir2 (в итоге целая директория dir1, вместе с file1, будет скопирована в директорию dir2) Команда rm удаляет файлы и директории. Например: rm file1 удалит file1. Но помни: rm -r является самой опасной в *nix'e, так как ключ -r говорит системе, что нужно удалять все дерево, не спрашивая подтверждения. И этой командой ты можешь удалить целую иерархию каталогов (большая просьба не выполнять этой команды на удаленном сервере!). За подробным описанием всех перечисленных команд не забудь посмотреть соответствующие man-страницы (команда man). Расширенный поиск Кроме команды which, которая используется только для поиска загружаемых файлов, существует более глобальная, но и в то же время и более медленная команда find, которая имеет много различных ключей и может искать файлы по имени, по дате создания, по правам доступа, по времени изменениям прав доступа и другим параметрам. За полным описанием обратись к man-странице. А я приведу некоторые часто используемые мною команды: find /home -name *xakep* (находит в домашних каталогах всех пользователей все файлы, включающие в название слово xakep) find / -name *.tmp -mtime +7 (находит файлы с расширением tmp, существующие больше недели) find ~ -atime +31 (находит файлы в домашнем каталоге, к которым не было обращения больше месяца; эту команду полезно использовать для определения информации, подлежащей архивированию) find dir -ctime -1 (находит файлы в заданном каталоге, статус которых был изменен в течение последних суток) Процессы Не так давно в мире (компьютерном) существовали оперативки, разрешающие одновременно выполнять только один процесс. Я уже упоминал об одной такой системе выше (MS-DOS). Однако в *nix'e все совсем наоборот! Этот звереныш может выполнять одновременно сколько угодно (в пределах разумного) процессов, лишь бы памяти хватило. Да и в памяти ограничения тоже растяжимы - *nix использует страничную организацию памяти. С помощью этой фишки из памяти могут выгружаться временно неиспользуемые процессы (определяется интуитивно по нескольким параметрам, включая время обращения). Они-то и помещаются на винт в раздел свопа (swap area). А на их место записывается более нужная информация о процессе на данный момент. После того как привилегии выгруженного ранее процесса возрастут, он будет переписан в ОЗУ на место менее используемого процесса, который, в свою очередь, будет выкинут в своп. Настоящая жизнь.. Какие же команды предусмотрели для управления процессами разработчики *nix'a? Лови первую - ps (process status). Эта команда выводит на window (не windows!!!) твоего терминала список процессов. По умолчанию команда ps выводит информацию в четырех колонках. В первой (PID) - идентификатор процесса; во второй (TTY) - терминал; в третьей (TIME) - содержатся данные об использовании процессом времени центрального процессора; и, наконец, в четвертой (CMD) - указано имя выполняемой команды. Использовав ключ -f, ты сможешь пощупать процесс обеими руками, получив инфу в полном формате. А ключ -a сообщит команде выводить процессы, запущенные только с этого терминала. (UID - идентификатор владельца процесса; PPID - идентификатор родительского процесса; С - использование процесса для планирования; STIME - время запуска процесса) Еще одним полезным ключом является -A, с помощью которого команда ps выведет на чистую воду все процессы, выполняемые на твоей телеге. Убиваем Теперь ты готов к главному. Ты готов выполнить команду kill... Был процесс, да сплыл.. А кто его смыл в унитаз?! Его смыл ты. Обговорим это подробнее. Синтаксис этой команды выглядит примерно так: kill [ signal ] job | PID ('job | PID' - означает, что можно указать либо номер задания, либо идентификатор процесса) К сигналам, с которыми тебе необходимо познакомиться в первую очередь, относятся: SIGINT - сигнал, посылаемый обычно от клавиатуры активному процессу при нажатии комбинации клавиш <Ctrl+C>, прерывает выполнение процесса без вывода дампа; SIGTERM - сигнал к завершению выполнения программы, этот сигнал обычно посылают другие процессы; SIGKILL - неперехватываемый сигнал, немедленно завершает выполнение программы, не оставляя ему времени на нормальное завершение (завершение с max ущерба); SIGHUP - сообщает о разрыве соединения, посылается процессам, когда терминал прекращает работу или в случае неожиданного закрытия потока ввода/вывода. Пример: kll -s KILL %2 (процессу с идентификационным номером посылается сигнал KILL, что приведет к его немедленному завершению). Контрольный выстрел Сделай его тихо и незаметно, без свидетелей. А затем переходи к более углубленному изучению монстров под названием *nix (*nix! Звучит гордо. Не правда ли?). А поможет тебе в этом настоящая анатомия *nix'ообразных - "Секреты UNIX" by Джеймс С. Армстронг. Займись также всерьез языком программирования Си, на котором написаны все исходники животного. В первый раз слышишь о таком? Тогда книженция "Язык программирования Си", написанная такими известными авторами, как Б.Керниган и Д.Ритчи, как раз для тебя! Кстати, именно этот бук в свое время привлек так много народу к Си. Ну а если тебя клонит на изврат, можешь себе поставить симулятор UNIX под Windows. Одна из лучших такого рода тулз - UWIN (www.research.att.com). А статью о ней ты можешь прочесть в ближайших номерах X. Ну и, наконец, посещай свой любимый сайт - www.xakep.ru, где ты найдешь не менее интересную инфу обо всем, что связано с компами, и не только! обсудить статью в форуме | |
Категория: Linux | Добавил: Admin (26.02.2008) | |
Просмотров: 773 | Рейтинг: 0.0/0 | |
Всего комментариев: 0 | |
Меню сайта |
Категории каталога | ||||
|
Форма входа |
Поиск |
|
Друзья сайта |
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
Наш опрос |