Краткое знакомство с командной строкой и ее возможностями
Примечание: все команды которые мы будем использовать в статье выполняются от root'a, поэтому sudo (переход в режим суперпользователя) перед командами не пишется.
В этой статье я попробую провести краткий курс "молодого бойца" по управлению Ubuntu и познакомлю Вас с несколькими полезными псевдографическими утилитами.
Терминал (командная строка) *NIX подобных систем - очень мощная штука! С его помощью можно делать практически все: серфить в Интернете, используя текстовый браузер, слушать музыку, качать файлы, даже смотреть видео!
В десктопной (настольной) версии Линукс Ubuntu, которая изначально устанавливается с пользовательским графическим интерфейсом (иксами), командный интерпретатор запускается следующим образом:
Итак, начнем мы наше знакомство с командной строкой Линукс с каталогов, расположенных в корне файловой системы.
Файловая система ОС Linux отличается от привычной Windows, где есть логические диски «C», «D» и так далее. Здесь она выглядит, как древовидная структура. Все начинается с корня - /, дальше идут директории с различными назначениями. Ниже приведен их список с нашими комментариями.
- /bin — важные двоичные (binary) приложения
- /boot — файлы, необходимые для загрузки компьютера (ОС)
- /dev — раздел устройств (device)
- /etc — конфигурационные сценарии загрузки и т.п.
- /home — домашние (home) каталоги локальных пользователей
- /lib — системные библиотеки (libraries)
- /lost+found — обеспечивает систему lost+found для файлов, существующих под корневым каталогом
- /media — присоединенные сменные носители (media), такие как CD-диски, цифровые камеры и т.д.
- /mnt — смонтированные (mount) файловые системы
- /opt — местоположение, в которое можно устанавливать дополнительные (optional) приложения
- /proc — специальный динамический каталог, в котором содержатся сведения о состоянии системы, включая запущенные процессы (process)
- /root — домашний каталог пользователя root
- /sbin — важные системные двоичные файлы (system binaries)
- /srv — местоположение для хранения данных, используемых серверами (servers)
- /sys — сведения о системе (system)
- /tmp — временные (temporary) файлы, очищается при каждой загрузке ОС
- /usr — приложения и данные, которые, в основном, доступны всем пользователям (users)
-
/var — переменные (variable) данные, такие как журналы событий и базы данных
Также по другому в Линукс представлены и устройства. Если в Windows устройство (принтеры, диски и т.д.) выглядят как папка, то в *NIX системах это - файл, с которым можно по разному взаимодействовать.
В *NIX ОС обычно нет расширений фалов (*.avi, *.doc и т.д.). Многие форматы предусматривают указание в начале "тела" файла строки, исходя из которой следует интерпретировать дальнейшую информацию о нем: как об исполняемой программе, исходных данных для текстового редактора, странице HTML, звукового файла, изображения или чего-то другого.
Права доступа к файлам и папкам
В *NIX подобных системах используются права доступа вида 777, 750 и т.п. Например: 777 - самые широкие права, 000 - доступ есть только у root'a.
Права состоят из 3-х цифр. Первая цифра это - права доступа для владельца (хозяина, - owner) файла. Вторая - для группы в которой состоит "хозяин". Третья цифра - для всех остальных пользователей.
Закономерный вопрос: как же понять и разобраться, что эти цифры значат? Очень просто! Права доступа можно представить в виде битовой строки, в которой каждые 3 бита определяют права доступа для соответствующей категории пользователей, как представлено в таблице:
rwx | rwx | rwx |
421 | 421 | 421 |
user | group | others |
владелец группа остальные
То есть:
- r (Read) = 4 - чтение
- w (Write) = 2 - запись
-
x (eXecute) = 1 - выполнение
Допустим, нам нужно задать права на какой-нибудь файл, чтобы владелец мог читать его, писать, выполнять, пользователи которые находятся в его группе могли читать и писать, а все остальные только читать. Для этого сложим права доступа для владельца 4+2+1=7, для группы 4+2=6, для остальных 4. В итоге мы получили нужные права доступа к файлу - 764.
Права доступа для каталогов не столь очевидны. Это, в первую очередь, связано с тем, что система трактует операции чтения и записи для каталогов отлично от файлов. Право чтения каталога позволяет нам получить имена (и только имена) файлов, находящихся в данном каталоге.
Чтобы получить дополнительную информацию о файлах каталога, например: подробный листинг команды ls -l, системе придется "заглянуть" в метаданные самих файлов, что потребует уже прав на выполнение для всего каталога. Право на выполнение также потребуется для директории, в которую мы захотитм перейти (т.е. сделать ее текущей) с помощью команды cd.
Правила и рекомендации
Имена файлов и папок к которым нужно обратиться и в имени которых содержится пробел, должны быть заключены в двойные кавычки (“directory name”) или экранированы обратным слешем (directoru/ name). Имена файлов/папок - регистрозависимы. Например: «file_name» и «File_name» это разные имена, следовательно - в папке могут находиться, на первый взгляд, одинаковые файлы.
Конечно, так делать не рекомендуется, хотя для *NIX систем это и допустимо (могут появиться проблемы при копировании на другие файловые системы отличные от EXT*, например - разделы NTFS или флешки FAT*/exFAT). Как говорится, что для Linux'a хорошо, то для Windows - “смерть”! :)
В терминале используется очень удобная функция - авто дополнение команд и путей файлов. Например: имея файл с длинным именем вроде «large_file_name_plus_extension» можно написать larg и нажать клавишу Tab. Терминал сам допишет имя файла/папки/команды (если есть несколько файлов/команд с похожими именами, то текст дополнится только до первого символа различия, что не мешает указав нужный символ нажать Tab еще раз).
Также можно посмотреть, какие файлы/команды с именем начинающимся на large уже есть в папке, где расположен целевой файл. Для этого нужно дважды быстро нажать Tab и отобразится список файлов/команд.
Авто дополнение работает в большинстве случаев ввода команд. Исключение - работа от пользователя su, так как это скрывает некоторые потенциально опасные команды, что, впрочем, можно обойти, вписав команду полностью вручную, или использовать уже знакомое нам sudo su -
Имя пользователя и пароль также регистрозависимы. Обратите внимание, что во всех *NIX операционных системах при вводе пароля через консоль, на мониторе ничего не отображается (в MS Windows показываются звездочки/точки вместо символов). Это сделано для того, чтобы люди, стоящие у нас за спиной, не знали даже количества символов пароля. Вот такая вот секретность! :)
Смотрите продолжение статьи - на следующей странице.