Форум твоего направления

Форум твоего направления (http://pcvector.ru/forum.php)
-   Статьи и FAQ (http://pcvector.ru/f48)
-   -   FAQ Необходимые основы (http://pcvector.ru/t21)

Vector 01.04.2009 21:32

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

Они освещают следующие темы:
  • работа в консоли
  • суперпользователь
  • редактирование файлов
Многие боятся консоли, но ничего сложного там нет и я это сейчас покажу. Для полноценной работы в Ubuntu вам необходимо знать как открыть консоль, как запускать команды и немного команд для работы с фаловой системой. Также вам может понадобится редактировать конфигурационные файлы, поэтому мы вкратце рассмотрим эту тему. Ну и самое главное - это запуск команд от имени суперпользователя. Я расскажу что это за пользователь и как выполнять команды от его имени.

Vector 01.04.2009 22:35

Консоль
 
По-хорошему, то с чем я буду вас знакомить на самом деле не консоль и не терминал, а просто эмулятор, но, раз он так называется в меню, значит пусть будет так. Запускаем терминал. Applications (Приложения) - Стандартные - Терминал.


Перед нами терминал.


Все, можно запускать команды на исполнение. Далее во всех своих статьях, там где надо будет запустить команду в консоли (терминале), я буду использовать следующий формат:
Код:

команда для исполнения
Код:

ps aux | grep -v grep | grep -i terminal
Чтобы случайно не допустить ошибок, вы можете копировать команду с сайта и вставлять ее в терминал (правой кнопкой мыши - Paste (Вставить)).

После того, как команда написана - нажмите ввод чтобы ее выполнить.

Вернемся к нашему терминалу.

В терминале вы видите "приглашение командной строки" и мигающий курсор вслед за ним, приглашающий ввести команду.

z@x-laptop:~$

Первым идет имя пользователя, который будет запускать данную команду. Через символ @ от него идет имя машины, которое вы вводили при установке. Дальше через двоеточие указывается текущая директория, в которой вы находитесь и после нее символ $ либо # (второй вариант в случае, если вы работаете от имени суперпользователя, что будет рассмотрено далее).

Домашняя директория пользователя

После всего вышесказанного встает вопрос: а что же это за директория, ~, которая показывается при запуске?


Этот символ обозначает вашу домашнюю директорию. Если вы до этого работали только с Windows, то придется немного изменить "мировоззрение" относительно файловой системы. Многие привыкли к тому, что весь винчестер в их распоряжении и на диске D:\, например, обычно получается свалка из каталогов (например, Music, Video, Install) и файлов ("временные" файлы, которые вы обязательно собираетесь куда-нибудь переместить в будущем и которые "живут" там уже не первый год).

Здесь немного иная ситуация. Хотя, в принципе, вы можете сделать тоже самое, решать вам. В Linux-системах, обычно, личные файлы хранятся в домашней директории пользователя. В принципе, есть люди, которые делают тоже самое и в Windows. Пример такой директории: C:\Documents and Settings\логин\My Documents.

Домашняя директория пользователя это такая директория, в которой пользователь является хозяином и может делать там все что угодно. Путь к этой директории следующий:

/home/логин/

Например, в моем случае это:

/home/z/

Все остальные директории нужны для других целей. Например, /bin/ содержит исполняемые файлы, /root/ является домашней директорией суперпользователя, /boot/ нужен для загрузчика и т.д.

Поэтому всякий раз когда вы запускаете консоль, вы попадаете в домашнюю директорию.

Мало того, вы не будете иметь доступ на запись к другим директориям, если только не будете действовать от имени суперпользователя.

Итак, символ ~ служит для обозначения домашней директории.

Несколько команд для работы с файловой системой

Проверим на практике, что символ ~ указывает на вашу домашнюю директорию.

Внимание! Все команды - регистрозависимые. Это значит что pwd и PWD это две разные команды.

Команда pwd показывает, в какой директории вы находитесь в данный момент

Код:

pwd

Отлично, мы узнали где мы. Теперь надо узнать что здесь есть.
Код:

ls

Команда ls показывет содержимое директории.

В зависимости от того, в какой директории вызывается та или иная команда, результат, конечно же, будет разный. Поэтому необходимо научиться изменять текущую директорию.

Давайте попробуем сменить текущую директорию на директорию Examples.

Внимание! Имена файлов и директорий в Linux-системах регистрозависимые! Т.е. это означает что Examples и examples - это две разные директории.

Команда для смены директории - cd. Но прежде чем переходить в эту директорию - я расскажу об одной удобной "фишке": автоматическая подстановка команд и имен файлов и директорий с помощью клавиши Tab.

Введите следующую команду:

Код:

cd E
И нажмите Tab. Имя директории Examples должно автоматически дописаться само.

Код:

cd Examples
Небольшое отступление.

Эта автоподстановка работает как с командами, так и с файлами/директориями.

Например, если вы введете команду ls и нажмете Tab два раза, то вы увидите такую картину:


Несколько команд начинаются с "ls" и вы их все видите. Таким образом, если вы забыли какую-то команду, то можно легко ее вспомнить, если вы хотябы приблизительно знаете с каких символов она начинается.

Вернемся к переходу в другую директорию. Выполняем команду "cd Examples" и переходим в директорию Examples.

Проверим полученные навыки изученных команд: удостоверимся что мы находимся в директории Examples и посмотрим какие файлы в ней находятся.


Теперь нам нужно вернуться назад в домашнюю директорию. Есть несколько путей. Первый, мы можем указать прямой путь к ней, например:

Код:

cd /home/z
Обращаю ваше внимание на то, что home/z и /home/z это совершенно разные вещи! Если самым первым символом идет символ /, то это значит что путь начинается с корневой директории /. Если же этого символа нету, то это значит что путь начинается с текущей директории.

Итак, продолжим. Другой способ.

Как уже известно, символ ~ является заменой пути к домашней директории. Применим это на практике.

Код:

cd ~
И это не единственный путь!

Можно еще проще

Код:

cd
Вот так! Команда cd без аргументов по умолчанию возвращает нас в нашу домашнюю директорию.

Но и это не единственный путь. Вернитесь в директорию Examples и попробуйте так:

Код:

cd ..
Символы .. обозначают "предка" текущей директории.

И если вы, например, находитесь в директории /home/z/drivers/wifi/, то команда cd ../../ вернет вас в вашу домашнюю директорию. Но не загружайтесь особо этим. ;)

По идее, у вас уже не осталось свободного места на экране и появился скроллинг. Чтобы быстро очистить консоль выполните следующую команду:

Код:

clear
Кроме этого, существует горячая клавиша Ctrl+L, которая делает тоже самое, не зависимо от того, находесь ли вы в гноме в терминале или вы в настоящей консоли.

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

Vector 01.04.2009 22:52

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

Как я уже сказал выше, пользователь имеет полноценный доступ только к своей домашней директории. Но это не означает что вы не можете удалить что-нибудь из директории /bin/ или добавить туда что-нибудь новое. Можно, с помощью суперпользователя.

Суперпользователь, это пользователь, который обладает неограниченными правами. Его логин root. Его домашняя директория /root/, такая же как у вас /home/login.

Раньше была практика заводить для этого пользователя свой пароль и при необходимости логиниться и делать что нужно. В Ubuntu эта ситуация кардинальным образом изменилась.

Кроме доступа к директориям и файлам вы также "ограничены" доступом к запуску определенных программ. Для чего это нужно? Эти программы могут влиять на деятельность системы и вы должны знать, что вы делаете. Чтобы ограничить вас от выполнения какой-либо "опасной" программы случайно, используется это ограничение. Также оно нужно, если на компьютере работает несколько пользователей и есть администратор. Он должен выполнять конфигурацию системы, а пользователи могут выполнять обычную работу.

Давайте попробуем создать файл в директории, куда пользователь не имеет доступа. Команда touch создает пустой файл, или обновляет время создания существующего файла. Попробуем создать файл /var/test.

Код:

touch /var/test

Ключевое выражение здесь "Permission denied". Если вы видите такое сообщение или похожее - это означает что вам нужно запустить команду от имени суперпользователя и вы знаете что вы делаете.

Чтобы запустить команду от имени суперпользователя используйте следующий синтаксис.

Код:

sudo команда
Ключевое слово sudo и следующая за ним команда означает запуск этой команды от имени суперпользователя. Давайте попробуем.

Код:

sudo touch /var/test
Вы увидите запрос на ввод пароля.


И вот тут проблемы возникают не только у новичков, но даже у тех кто уже использовал другую систему Linux.

Как я уже сказал, раньше нужно было заводить пароль для пользователя root и действовать от его имени. Теперь же команда sudo позволяет все сделать прозрачно. Как видно на рисунке выше, запрашивается пароль вашего пользователя.

Вводите тот пароль, который вы используете при логине и нажимайте ввод.

При вводе пароля в консоли, вы не увидите никаких символов, даже *. Просто вводите пароль и нажимайте ввод!


Вот и все, файл создан.

Чтобы не засорять файловую систему, удалите файл следующей командой.

Код:

sudo rm /var/test
Обратите внимание на то, что пароль у вас не был запрошен. Это происходит потому, что создалась временная sudo-сессия и ближайшие n минут вам не придется заново вводить пароль.

Если нужно запустить команду от имени суперпользователя, используйте синтаксис sudo команда

GKSU

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

Если открыть пункт меню "System - Администрирование - Окно входа в систему"...


... то вы увидите запрос для ввода пароля суперпользователя.


Как уже было сказано выше, необходимо ввести пароль своего пользователя.

В чем разница между sudo и gksu? Для чего нужна эта разница?

Делают они одно и тоже, разница в том, что sudo запрашивает пароль в консоли, а gksu - показывает ввод пароля в диалоге.

Т.е. если вам нужно выполнить команду в консоли - используйте sudo, а если вы запускаете графическое приложение - используйте gksu.

А как его использовать? Открывать консоль и печатать "gksu команда" ? Да, это сработает, но таким образом вы теряете преимущества команды gksu, т.к. программа будет запущена из консоли и вы не сможете закрыть консоль. Если вы это сделаете - программа закроется...

Можно использовать gksu в ярлыках на запуск программы или используя запуск приложений через горячие клавиши Alt+F2.

Alt+F2

Если вы нажмете Alt+F2, то вы увидите запрос на запуск команды.


Здесь можно запускать любую команду.

Допустим, мы хотим запустить редактор файлов gedit (рассмотрен в следующей статье) с правами суперпользователя. Для этого используйте команду:

Код:

gksu gedit
... где gksu это аналог sudo, но пароль будет запрошен через диалог, а не через консоль.


Если вы напишите команду "sudo gedit" и нажмете Run, то вы ничего не увидите, т.к. консоли, собственно говоря и нету.

Если вам нужно запустить графическую программу, например редактор, с правами суперпользователя - используйте команду gksu команда в диалоге запуска программ (Alt+F2)

Частичная блокировка

Рассмотрим еще один пример, где необходимы права суперпользователя.

Заходим в пункт меню "System - Администрирование - Дата и время".


И что же мы видим?


Мы видим отображение текущего времени и даты. Но мы не можем изменить дату! Т.е. пользователю позволяется посмотреть текущие настройки для каких-то своих целей, но не позволяется их изменять. Это и есть частичная блокировка приложения.

Нажмите Unlock.


Вы увидите запрос пароля. Опять таки, не забываем, что мы вводим пароль своего пользователя.


После этого вы сможете отредактировать дату и время.

Vector 01.04.2009 22:58

Редактирование файлов
 
Осталось рассмотреть еще одну простую, но важную тему.

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

Существует огромное количество редакторов и у каждого отдельного человека свои предпочтения. По умолчанию в Gnome для этих целей есть редактор GEdit, плюс этот редактор наиболее лояльный к новичкам. В будущем вы сами выберите свой редактор уже без моей помощи.

Запускаем GEdit. Applications (Приложения) - Стандартные - Текстовый редактор.


Перед нами самый обыкновенный текстовый редактор, наподобие NotePad из Windows.


Все, можно открывать файл на редактирование.

Есть другой способ открыть файл на редактирование.

В предыдущей статье я показал как запускать графические программы не из консоли и не из меню а через быстрый запуск приложений (горячие клавиши Alt+F2).

GEdit можно запустить через быстрый запуск приложений посредством команды:

Код:

gedit
Но теперь сделаем кое-что еще.

После команды gedit добавим путь к файлу, который мы хотим отредактировать.

Код:

gedit ~/.bashrc

GEdit запускается с открытым файлов, готовым для редактирования.


Вы можете спросить, а зачем нужен "более сложный" способ? Во-первых он, не сложнее чем открыть GEdit через меню, нажать Open и выбрать необходимый файл. Вы можете замерять время, с помощью быстрого запуска приложений у вас это выйдет на порядок быстрее. Во-вторых, в следующих статьях я буду использовать именно такой синтаксис: "gedit путь к файлу", если понадобится отредактировать какой-либо файл. Все что от вас требуется - это скопировать команду и вставить.

Редактирование файлов с привилегиями суперпользователя.

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


Как уже было рассмотрено в предыдущей статье, чтобы запустить графическое приложение с правами пользователя, можно использовать команду gksu. Поэтому чтобы открыть в редакторе файл с правами пользователя, используйте следующую команду:

Код:

gksu gedit путь к файлу

Или можно тоже самое через консоль, но тогда консоль невозможно будет закрыть, пока вы не закроете gedit:

Код:

sudo gedit путь к файлу
Взято с http://zeroed.ru/ubuntu/


Часовой пояс GMT +3, время: 04:47.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd. Перевод:
zCarot
Copyright © 2009 - 2014, pcvector.ru

.