Основные понятия * Linux и ядро Linux – вообще-то GNU/Linux это не совсем операционная система. Это ядро операционной системы. И оно представляет из себя, скажем так, базовую программу ОС, которая загружается при старте системы, определяет устройства, контроллеры, порты, файловую систему и тд и тп, и вместе со всем этим предоставляет интерфейс для доступа ко всему этому многообразию всем остальным утилитам. Все остальные утилиты вместе с ядром и образуют, собственно, ОС. Набор утилит определяется каждым дистрибутивом отдельно. * Дистрибутивы Linux - дистрибутив Linux, это некая сборка ОС на базе ядра GNU/Linux из набора утилит. В отличае от Windows, в котором понятия дистрибутива не существует априори, дистрибутивы Linux крайне многообразны, фаршируются относительно разными наборами утилит и служат, как правило, для каких-то определенных целей. А так же каждый дистр имеет свою «фишку» - основную идею например, предназначение, или стандартный набор программ. Например медиа дистрибутивы, научные, школьные, общего использования. Каждым дистрибом занимается какая-то группа людей, это может быть одна контора, или несколько контор, плюс сила мысли и кода сторонников этого дистрибутива со всего мира. * Терминал, консоль – если по простому, то консоль, это программа доступа к командной строке, что-то вроде виндовского cmd. C помощью консоли можно выполнять команды без графического интерфейса. Если вы в каком-то руководстве встречаете команду, которую нужно выполнить, ее однозначно нужно выполнять в консоли. В Ubuntu по умолчанию используется программа gnome-terminal. Хотя есть и xterm – стандартная unix консоль. Gnome-terminal можно запустить через меню программ Ubuntu: Программы-Стандартные-Терминал. Иконку терминала лучше вынести на панель вверху экрана простым drug-and-drop - перетаскиванием, так как пользоваться придется часто. * Текстовый редактор – вам он понадобится, как никогда раньше в Windows. Чаще будет удобнее исправить что-либо в настройках программы с помощью правки конфигурационного файла в редакторе, а не с помощью меню конкретной программы. В Ubuntu используется графический редактор gedit, от есть gnome edit – редактор для Gnome. ..... Вот и настал такой момент, в который даже я собрался написать свой mini FAQ для самых «полных и окончательных» начинающих. Он будет касаться самых простых и основных понятий и команд, без которых в линуксе (а в частности в Ubuntu ) вообще никуда и вообще никак. Я постараюсь его сделать маленьким, и одновременно ничего не забыть. Идеей создания этого mini FAQ я обязан одному случаю, в котором моя жена никак не могла отобразить в консоли действие - «отредактировать такой-то текстовый файл под рутом». Для нее это была полнейшая ахинея, и я решил – таких вот «полных и окончательных» начинающих, вероятно, ужасно много. Собственно, когда-то давно и я таким был. Всем таким «окончательным» посвящается данная заметка. Основные понятия o Linux и ядро Linux – вообще-то GNU/Linux это не совсем операционная система. Это ядро операционной системы. И оно представляет из себя, скажем так, базовую программу ОС, которая загружается при старте системы, определяет устройства, контроллеры, порты, файловую систему и тд и тп, и вместе со всем этим предоставляет интерфейс для доступа ко всему этому многообразию всем остальным утилитам. Все остальные утилиты вместе с ядром и образуют, собственно, ОС. Набор утилит определяется каждым дистрибутивом отдельно. o Дистрибутивы Linux - дистрибутив Linux, это некая сборка ОС на базе ядра GNU/Linux из набора утилит. В отличае от Windows, в котором понятия дистрибутива не существует априори, дистрибутивы Linux крайне многообразны, фаршируются относительно разными наборами утилит и служат, как правило, для каких-то определенных целей. А так же каждый дистр имеет свою «фишку» - основную идею например, предназначение, или стандартный набор программ. Например медиа дистрибутивы, научные, школьные, общего использования. Каждым дистрибом занимается какая-то группа людей, это может быть одна контора, или несколько контор, плюс сила мысли и кода сторонников этого дистрибутива со всего мира. o Терминал, консоль – если по простому, то консоль, это программа доступа к командной строке, что-то вроде виндовского cmd. C помощью консоли можно выполнять команды без графического интерфейса. Если вы в каком-то руководстве встречаете команду, которую нужно выполнить, ее однозначно нужно выполнять в консоли. В Ubuntu по умолчанию используется программа gnome-terminal. Хотя есть и xterm – стандартная unix консоль. Gnome-terminal можно запустить через меню программ Ubuntu: Программы-Стандартные-Терминал. Иконку терминала лучше вынести на панель вверху экрана простым drug-and-drop - перетаскиванием, так как пользоваться придется часто. o Текстовый редактор – вам он понадобится, как никогда раньше в Windows. Чаще будет удобнее исправить что-либо в настройках программы с помощью правки конфигурационного файла в редакторе, а не с помощью меню конкретной программы. В Ubuntu используется графический редактор gedit, от есть gnome edit – редактор для Gnome. Он доступен из меню программ Ubuntu через Программы-Стандартные-Текстовый Редактор. Очень классный текстовый редактор, должен заметить. Поддерживает табы для файлов (как в браузере Firefox для страничек), подсветку синтаксиса для любых языков разметки и очень многих языков программирования, также к нему можно подключать разнообразные плагины. А вот несколько редакторов командной строки, работать с которыми можно из консоли – vi, nano, sed. Но о них позже. o Gnome, KDE – это графические менеджеры экрана. GDM – gnome diplay manager. Как бы это так объяснить... В Windows понятия dm нет вообще, потому что вся Windows это глубокая интеграция ядра, программ и dm, они неразрывны. Linux же – понятие сборное, и графических сред в нем тоже полно. KDE и Gnome – лишь одни из самых популярных. Это просто графическая оконная среда. В средах Gnome и KDE поставляются свои текстовые редакторы, программы обработки графики, браузеры, медиа плееры, утилиты настроек конфигурации. Вы можете посмотреть на скриншоты Ubuntu и Kubuntu, которые оснащены соответственно графической средой Gnome, и графической средой KDE, чтобы предствлять, как это все выглядит в действии и на экране: - скриншоты Ubuntu - скриншоты Kubuntu o Файловая система и ее особенности – считается, что родной для Linux является файловая система Ext3, а раньше была Ext2. Но вообще-то ядро Linux поддерживает громадное множество файловых систем: ReiserFS, ext2/3, XFS, NTFS, UFS, AFFS, HPFS, SYSV, ISO9660, UDF, MS-DOS FAT, FAT32, UMSDOS, Minix, SMB и проч. Этот список я почерпнул из статьи VFS – файловая подсистема ядра Linux, и если вам интересно узнать подробности – прошу почитать. Вкратце же дело обстоит так: все доступные на компьютере файловые системы могут быть примонтированы в какую нибудь директорию. Имен в виде одной буквы у разделов на винчестере или CD-Rom-ов, флешек и прочего, как в структуре Windows – нет. Вместо этого каждая из этих файловых систем может быть примонтирована (подключена) с указанием отдельных опций в указанную директорию в иерархии Виртуальной Файловой Системы. Представьте себе, что все ваше медиа пространство (и разделы винчестера, и CD-ROM и флеш карточка и фотоаппарат) живет на одном единственном разделе С, но в таком случае нет смысла давать ему имя С. Это просто ваша файловая система. В корне этого медиа пространства живут основные директории - /dev (двайвера и устройства), /home (пользовательские, домашние, директории), /usr (программы), /bin – (запускаемые файлы), /mnt (примонтированные устройства) и тд. При этом в директорию /home можно примонтировать отдельный, самый большой раздел на винчестере, а в /usr – самый первый раздел, и там будут установлены все программы. В /mnt/cdrom можно монтировать CD, а в /mnt/flash – вашу флеш карточку, таким же образом можно подключать и удаленные сетевые ресурсы и тд. В Ubuntu, например, по умолчанию Fat и NTFS разделы от установленной Windows принято по умолчанию монтировать в дир. /media с названиями типов и номеров разделов. /media/hda1 (ваш бывший диск С), /media/hda2 (бывший D). Надеюсь, теперь стало понятнее. o Нумерация и именование разделов на винчестере – принято, что разделы именуются по типу и по номеру расположения на винчестере. Нумерацию с 1 до 4 принимают основные - Primary - разделы, с 5 и дальше – расширенные – Extended - разделы. Разделы на обычных винчестерах с IDE портом будут зваться hda1, hda2 или hda5, например. Разделы на SATA винчестерах будут звать sda1, sda4 и тд. Для наглядности я сделал скриншот карты разделов из виндовской программы Partition Magic и подписал, как называются разделы в Linux. o Права файлов и каталогов, пользователи и группы – каждый файл или каталог в Linux имеет своего владельца – пользователя, а этот пользователь находится в одной или больше группах. Например, у нас может быть пользователь Vasia, он может быть включен в несколько групп – группу vasia, это его основная группа, группу printer, группу admin. Домашняя директория у него будет /home/vasia в файловой системе, и все файлы в ней будут принадлежать ему. На каждый файл раздается по три права на три группы пользователей системы (в контексте прав на файлы). Права – Чтение, Запись, Запуск. Сокращенно – r w x. Типы пользователей – Пользователь, Группа, Другие, сокращенно – u g o. Исполняемые файлы обычно имеют право x для запуска. Для директорий право x означает разрешение на вход в директорию, а право r – видимость ее вообще как элемента в системе. Что мы имеем? Попытаюсь объяснить на примерах (далее в списках буду указывать три колонки – права, владелец:группа, имя файла): 1) rw-r--r-- vasia:vasia index.html 2) rw-rw-r-- vasia:printer index.html 3) rwxr--r-- kolia:printer script.sh 4) rwxrwxrx printer:printer script.sh 5) rwxr----- root:admin script.sh Теперь поясняю: 1) этот файл может читать и изменять vasia, он не запускаемый; пользователи, входящие в группу vasia могут просто его читать; все остальные могут просто его читать. 2) этот файл может читать и изменять vasia, как владелец файла; читать и изменять пользователи, входящие в группу printer; только читать все остальные. 3) этот файл исполняемый, но запустить его, или изменить может только владелец kolia. Пользователи, входящие в группу printer, могут только прочесть его содержимое. 4) Пользователь printer может читать, изменять и запускать этот скрипт; Пользователи, входящие в группу printer, тоже могут делать все что им захочется; Все остальные пользователи тоже могут читать, менять, запускать этот файл. 5) Владелец этого файла – root. Только он может его читать, менять, запускать на исполнение. Пользователи, входящие в группу admin, могут только прочесть содержимое этого файла, все остальные даже не смогут прочесть его содержимое. o Файлы принадлежащие пользователю root – для запуска, копирования, удаления, чтения или изменения таких файлов (напрмер /etc/fstab) в Ubuntu вам придется писать команду sudo перед вызовом каждой команды, для которой требуется права root. В основном права рута понадобятся для всего, что расположено не в вашей домашней директории. Команда sudo запросит у вас ваш пароль, не пугайтесь, это не пароль рута, который вы не знаете, просто ваш пароль. Примеры: sudo vi /etc/fstab – запрос на редактирование файла, принадлежащего пользователю root. sudo mkdir /var/localsites – создание директории localsites в директории /var/, принадлежащей пользователю root. Что имеем в итоге? В итоге, все что лежит в директории /home/username, принадлежит только этому username. В домашнем компьютере все остальное, как правило, просто принадлежит пользователю root – супер пользователю, администратору. Ну, с базовыми понятиями вроде все, остальное будете постигать постепенно сами. Теперь предлагаю разобраться с основными командами, запускаемыми из консоли. <MainPage> Читать дальше... </MainPage> Основные команды: o ls – распечатка списка файлов Синтаксис: ls [опции] путь_к_директории Набранный без параметров ls просто распечатает список файлов и каталогов в текущей директории в строку, один за другим. ls -la; – распечатает тот же список, только включая скрытые файлы (скрытые файлы в Linux отмечаются точкой в первом символе имени), указывая размер, владельца и права каждого файла, и распечатка будет в виде списка – по одному элементу на строку. o cd – переход в указанную директорию. Синтаксис: cd путь_куда_перейти Примеры: cd /home/vasia; cd /var/www/mysites/site1 Особенности: можно указывать некоторые укороченные понятия. Так, знак ~ (тильда) означает домашнюю директорию пользователя. То есть вместо cd /home/vasia можно написать cd ~ , если вы конечно пользователь с именем vasia.Знак . (одна точка) – означает текущую директорию. Две точки - .. - директория уровнем выше. Знак – (минус или тире), означает «предыдущую директорию». Таким образом, если мы, например, находимся в глубокой ветке файлового дерева /home/vasia/sites/blog/config и хотим подняться на 2 директории выше - /home/vasia/sites, вовсе не нужно писать полный путь – просто cd ../.. Если нам теперь нужно вернуться обратно, то, чтоб не указывать заново весь путь, просто cd - таким образом мы попадем обратно в /home/vasia/sites/blog/config. А теперь в родную домашнюю директорию - cd ~ И обратно в /home/vasia/sites/blog/config cd ./sites/blog/config o cp – копирование. Синтаксис: cp [опции] что куда. Пример 1: cp /home/vasia/sites/index.html /var/www/ - скопирует файл index.html, проживающий в директории /home/vasia/sites/ в директорию /var/www/. Пример 2: cp ./index.html ./index.html.bak - как вы догадались, сделает в текущей директории новый файл, копию index.html только с другим именем. Особенности: можно использовать маски файлов * - любая последовательность символов, например cp /home/vasia/*ml /home/ml скопирует все файлы, заканчивающиеся на ml в директорию /home/ml. Туда попадут и html файлы, и xml, и какие-то еще, соответствующие маске. -r – опция, означающая рекурсивность. То есть включается все что подходит под заданную маску из всех ниже расположенных директорий, например: cp -r /home/vasia/*ml /home/ml то же что и предыдущий пример, только файлы, соответствующие маске *ml будут скопированы не только из директории /home/vasia/, но и из всех поддиректорий. o mv – перемещение файлов, работает аналогично cp, только файл исходник удаляется после копирования. o rm – удаление файлов или каталогов. Пользуйтесь командой осторожно. Страшная сила! В этой команде так же действуют все сокращения и маски, как в командах cd и cp. Примеры: rm /home/vasia/*ml - удалит все *ml файлы из указанной директории. rm -r /home/vasia/*ml - удалит РЕКУРСИВНО все *ml файлы из указанной директории и всех ее поддиректорий. rm /home/vasia/sites - удалит полностью директорию sites по указанному пути. o mkdir – создание директории. Например: mkdir ~/newblog - создание директории newblog в своем домашнем каталоге. mkdir ../newblog - создание директории newblog двумя директориями выше текущей директории. o man, info – запомните эти две великие команды. Они означают "посмотреть мануал/информацию по команде", например: man cp; info rm Работа с консольными текстовыми редакторами o Текстовый редактор vi, он же vim. Для того, чтобы отредактировать или создать новый файл, напишите в консоли vi filename при этом, если такой файл уже есть, он откроется для редактирования, а если нет, то создастся новый файл. Опять таки, если приходится редактировать файл, принадлежащий руту, придется писать sudo vi filename После того как файл откроется, нажмите на кнопку с буквой i, что значит insert (вставка). После этого можно писать, редактировать текст, удалять строки тд. Когда вы напишите все что вам нужно, нажмите Esc:wq. Вот что это значит: Esc – переход в командный режим. Двоеточие – если буквально, то "эй vim, слушай мою команду", wq – write quit, что по-русски значит сохранить и выйти. Если вы открыли файл, например, не для редактирования, а так, посмотреть, и нечаянно в нем что-то написали, не страшно, можно не сохранять. Просто дайте команду Esc:q!. То есть – выйти без сохранения. При поиске в файлах команда Esc:/ запросит строку поиска. Энтер – и вы перейдете на первое же собвпадение. Для перехода к следующему совпадению просто жмите n - то есть next. Для начала этого хватит, а все остальное – милости прошу man vi o Текстовый редактор nano. Вообще-то, с ним и объяснять нечего. После запуска nano в двух нижних строках консоли будут указаны доступные комбинации клавиш – ctrl+G – помощь, ctrl+X – выход, ctrl+O – сохранить и тд. Режим редактирования текста доступен сразу после открытия редактора, без дополнительных команд какв vi. Жмите "помощь" и читайте все сами. Удач, и помните о великих утилитах man и info!
Источник: http://itword.net/modules/myarticles/article.php?storyid=83 |