Главная страница
Навигация по странице:

  • 3.1. Файловая система

  • 1 (Помощь)

  • 6 (Перемес)

  • 8 (Удалить)

  • 3.1.1. Основные команды

  • Михаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69


    Скачать 3.69 Mb.
    НазваниеМихаил Фленов СанктПетербург бхвпетербург 2010 удк 681 06 ббк 32. 973. 26018. 2 Ф69
    Дата13.03.2022
    Размер3.69 Mb.
    Формат файлаpdf
    Имя файлаlinux_glazami_xakera_3-e_izd.pdf
    ТипДокументы
    #394477
    страница6 из 35
    1   2   3   4   5   6   7   8   9   ...   35
    Глава 3
    Добро пожаловать в Linux
    В
    этой главе мы начнем знакомиться с самим Linux. Надеюсь, что вы уже установили систему, а не просто прочитали предыдущую главу, потому что все
    , что мы будем рассматривать, лучше всего будет тут же проверять на практике
    . Так материал будет лучше откладываться в памяти и усваиваться.
    Нам предстоит поближе познакомиться с файловой системой, основными конфигурационными файлами и командами, которые пригодятся в каждо- дневной работе. ОС Linux может работать в двух режимах — графическом и
    текстовом. Мы будем разбирать одновременно оба режима. И все же, кон- соли будет уделяться достаточно много внимания, потому что зачастую с ее помощью можно быстрее, нежели через графические утилиты, решить какие- либо проблемы.
    Я
    постараюсь показать вам преимущество консоли перед курсором мыши.
    Дело в том, что серверы на предприятиях должны стоять в отдельной комна- те и, возможно, даже без монитора. Управление происходит через удаленную консоль
    , и визуальные возможности Linux не используются. Тогда зачем за- гружать тяжелые графические библиотеки, файлы и другие ресурсы? Это же пустое расходование памяти! Лучше освободить ее для более полезных вещей
    Графический режим необходим для работы с пользовательскими утилитами.
    Он также может быть полезен на первоначальном этапе настройки сервера.
    А
    если учесть, что не все компьютеры на базе Linux являются серверами, и
    домашние станции тоже могут работать на этой ОС, то удобный графиче- ский интерфейс необходим.
    Как видите, возможность работать в двух режимах — это преимущество
    Linux, а не недостаток. Если бы в Windows можно было выгрузить из памяти графическую оболочку и оставить только командную строку, то вы смогли

    Глава
    3
    52
    бы сэкономить драгоценную память и повысить надежность этой ОС. Когда не работают графические библиотеки, то и проблемы с ними отсутствуют.
    Сколько раз мы видели синие экраны с ошибками в драйвере видеокарты?
    В
    консоли Linux этого произойти не может.
    Между прочим, в Windows 2008 есть сервер Windows Core, который запуска- ется в виде окна терминала, в котором можно управлять сервером из команд- ной строки. Создавая эту возможность, Microsoft прислушалась к админист- раторам
    , которые уже давно требуют текстового режима в этой ОС. Ну зачем нужно загружать сложные графические библиотеки простому файловому серверу
    ? Вот и я говорю, что абсолютно не нужно.
    Если вы настраиваете домашний сервер для маленькой сети, то графическую оболочку можно оставить. Но если это промышленный сервер, требующий максимальной доступности, то я рекомендую оставить компьютер в тексто- вом режиме, чтобы обезопаситься от лишних сбоев и повысить производи- тельность
    3.1.
    Файловая
    система
    Прежде чем перейти к настройкам системы, нам нужно познакомиться по- ближе с файловой системой Linux. О ее структуре мы уже немного погово- рили в разд. 2.3, когда разбивали жесткий диск. В табл. 2.1 были перечисле- ны разделы, которые можно создать в Linux, а это не что иное, как основные папки
    , которые находятся в корне файловой системы.
    Теперь
    , наверное, нужно было бы перечислить команды, с помощью которых можно управлять директориями и файлами, а также просматривать и редак- тировать их. Но мы сделаем это чуть позже, а сейчас я хочу рассказать лишь об одной программе: Midnight Commander (MC). Это лучшее средство для решения всех описанных выше задач. Программа присутствует в большинст- ве дистрибутивов. Для ее запуска наберите в командной строке mc и нажмите клавишу
    . Постепенно мы будем знакомиться с этой утилитой, и вы полюбите ее за удобство и мощь, а сейчас рассмотрим только основные воз- можности
    Файловый менеджер Midnight Commander является аналогом знаменитого файлового менеджера Norton Commander, работавшего в MS DOS. Их функ- ции и даже внешний вид очень похожи. Если вы знакомы с той старенькой утилитой
    , то будет очень приятно ностальгировать по старым добрым време- нам
    , сидя в Linux. Программа может работать как в текстовом режиме Linux, так и в окне терминала оконного менеджера.
    Почему я начинаю знакомство с файловой системой с этой программы? Она проста
    , удобна и наглядна. Не нужно запоминать множество команд команд-

    Добро
    пожаловать
    в
    Linux
    53
    ной строки, и с этой утилитой любят работать не только начинающие, но и
    профессионалы.
    Рис
    . 3.1.
    Окно терминала с
    запущенной программой
    Midnight Commander
    На рис. 3.1 показано окно терминала, в котором запущена программа MC.
    Окно состоит из двух независимых панелей, в каждой из которых вы можете видеть файлы и папки текущей директории (имена папок начинаются с пря- мой наклонной черты /). Для перемещения между панелями используется клавиша
    .
    С
    правой стороны показана корневая папка. Это самый верхний уровень ва- шей файловой системы. Посмотрите на список папок в этой панели. Боль- шинство названий нам знакомо из табл. 2.1. Каждая из этих папок может находиться в собственном разделе жесткого диска, если при установке вы его создали
    . Но даже в этом случае в файловой системе вы будете видеть все, как одно целое.

    Глава
    3
    54
    В
    разд. 2.3.3 мы говорили про корневой каталог, который в Linux обозначает- ся как /. Именно он является вершиной пирамиды в иерархии всех папок. На- пример
    , папки пользователя находятся в каталоге /home. Тогда /home/flenov будет определять путь к пользовательскому подкаталогу пользователя flenov.
    Чтобы попасть в эту директорию, нужно навести на нее курсор и нажать
    .
    В
    списке папок и файлов самой первой всегда стоит папка с именем, состоя- щим из двух точек (/..). В реальности каталога с таким именем не существует.
    Это указатель на родительскую директорию, с помощью которого вы можете попасть на уровень выше. Например, вы находитесь в подкаталоге
    /home/flenov. Если войти в папку /.., то вы подниметесь на предыдущий уро- вень и окажетесь в директории /home.
    Внизу окна MC (см. рис. 3.1) можно увидеть строку-приглашение для ввода команд
    . Это та же строка, что мы видели в терминале, и она позволяет вы- полнять те же директивы. Еще ниже расположена строка меню с подсказками о
    назначении клавиш :
    ˆ
    1 (Помощь) — отображение файла помощи по программе;
    ˆ
    2 (Меню) — вызов меню основных команд MC;
    ˆ
    3 (Просмот) — просмотр выделенного файла;
    ˆ
    4 (Правка) — редактирование выделенного файла во встроенном тексто- вом редакторе;
    ˆ
    5 (Копия) — копирование выделенного файла или папки. Если выделить файл и нажать клавишу , то появится окно подтверждения копирова- ния
    . По умолчанию операция выполняется в текущую директорию проти- воположной панели программы MC;
    ˆ
    6 (Перемес) — переместить выделенные файлы или папки. По умолчанию файл будет перенесен в директорию, являющуюся текущей для противо- положной панели программы MC;
    ˆ
    7 (НвКтлог)создать новый каталог в текущем;
    ˆ
    8 (Удалить) — удалить выделенные файлы и папки;
    ˆ
    9 (МенюМС) — вызвать меню программы MC, которое находится вверху окна
    ;
    ˆ
    10 (Выход) — выход из программы.
    Файлы и папки, имена которых начинаются с точки, чаще всего являются конфигурационными
    . Будьте осторожны при их перемещении и редакти- ровании
    . Конфигурационные файлы нуждаются в максимальной защите.

    Добро
    пожаловать
    в
    Linux
    55
    Конечно
    , вы можете создать собственный файл с именем, у которого в самом начале стоит точка, который не будет конфигурационным, а есть множество файлов без точек, являющихся конфигурационными. Так что точка не явля- ется обязательным индикатором, но призвана привлекать внимание.
    3.1.1.
    Основные
    команды
    Давайте рассмотрим основные команды файловой системы, которые мы бу- дем использовать в книге, и заодно подробнее познакомимся с файловой сис- темой
    Linux.
    pwd
    Эта команда выводит на экран полный путь к текущему каталогу. С ее помо- щью вы можете в любой момент узнать, где находитесь, если вдруг заблуди- тесь в этом прекрасном пингвиньем лесу.
    ls
    Команда ls выводит список файлов и подкаталогов указанной директории.
    Если имя каталога (файла) отсутствует в параметрах команды, то отобража- ется содержимое текущего каталога. По умолчанию все настроечные файлы
    (имена которых начинаются с точки) являются скрытыми. Чтобы их вывести, нужно указать ключ
    -a
    : ls -a
    Если мы кроме этого хотим увидеть не только имена (сжатый формат), но и
    полную информацию о файлах в каталоге, нужно добавить ключ
    -l
    . В ре- зультате мы должны выполнить команду:
    ls -al
    Но такая команда отобразит файлы текущего каталога, и не факт, что мы сейчас находимся, например, в каталоге /etc, который хотим просмотреть.
    Чтобы увидеть его содержимое, после ключей (можно и до них) нужно ука- зать требуемую папку: ls -al /etc
    П
    Р И МЕ Ч А Н И Е
    Более подробную информацию о
    команде ls можно получить из справочной системы
    Для этого выполните команду man ls
    Рассмотрим результат вывода команды ls —al
    : drwx------ 3 Flenov FlenovG 4096 Nov 26 16:10 . drwxr-xr-x 5 root root 4096 Nov 26 16:21 ..

    Глава
    3
    56
    -rw-r--r-- 1 Flenov FlenovG 124 Nov 26 16:10 .bashrc
    -rw-r--r-- 1 Flenov FlenovG 2247 Nov 26 16:10 .emacs
    -rw-r--r-- 1 Flenov FlenovG 118 Nov 26 16:10 .gtkrc drwxr-xr-x 4 Flenov FlenovG 4096 Nov 26 16:10 .kde
    По умолчанию список файлов выводится в несколько колонок. Разберем их на примере первой строки:
    ˆ
    drwx------
    — права доступа. О них мы будем подробно говорить в гла-
    ве
    4. Сейчас нам главное знать, что если первая буква "
    d"
    , то это дирек- тория
    ;
    ˆ
    цифра
    3
    — указывает количество жестких ссылок;
    ˆ
    Flenov
    — имя пользователя, являющегося владельцем файла;
    ˆ
    FlenovG
    — группа, которой принадлежит файл;
    ˆ
    4096
    — размер файла;
    П
    Р И МЕ Ч А Н И Е
    На первый взгляд
    , директория
    — не файл и
    не имеет размера
    , но не стоит удивляться
    , что размер директории не равен нулю
    Грубо говоря
    , директории
    — это файлы
    , в
    которых находится список файлов директории
    Размер тоже не случаен
    — четыре килобайта
    (4*1024), что равно блоку памяти
    (
    странице
    ), вы
    - деляемому для работы с
    данными
    Это лирическое отступление
    , которое мо
    - жет и
    не пригодиться в
    реальной жизни
    ˆ
    Nov 26 16:10
    — дата и время последнего изменения файла;
    ˆ
    — имя файла. В данном случае это ссылка на текущую директорию.
    cat
    Команда позволяет вывести на экран содержимое указанного в качестве ар- гумента файла. Например, вы хотите просмотреть текстовый файл need.txt.
    Для этого нужно выполнить команду: cat need.txt
    Это сработает, если файл находится в текущей директории. А если нет?
    В
    этом случае можно указать полный путь: cat /home/root/need.txt
    tac
    Эта команда, обратная для cat
    (даже название команды — это слово cat на- оборот
    ), и она выводит на экран файл в обратном порядке, начиная с послед- ней строки до первой.

    Добро
    пожаловать
    в
    Linux
    57
    cd
    Эта команда позволяет сменить текущий каталог. Для этого необходимо в
    качестве параметра задать нужную папку: cd /home/flenov
    Если вы находитесь в каталоге /home и хотите перейти в папку flenov, кото- рая располагается внутри текущей, то достаточно набрать только имя папки flenov: cd flenov
    Если нужно переместиться на уровень выше, например, из подкаталога
    /home/flenov в каталог /home, нужно выполнить команду: cd ..
    Как мы знаем, папка с именем из двух точек указывает на родительский ка- талог
    . Если перейти в нее, то мы попадем на уровень выше в структуре фай- ловой системы.
    cp
    Это команда копирования файла. С ее помощью можно выполнять несколько различных действий:
    1.
    Копировать содержимое файла в другой документ той же папки: cp /home/root/need.txt /home/root/need22.txt
    Здесь содержимое файла /home/root/need.txt (источник) будет скопировано в
    файл /home/root/need22.txt (назначение).
    2.
    Копировать файл в другой каталог: cp /home/root/need.txt /home/flenov/need.txt или cp /home/root/need.txt /home/flenov/need22.txt
    Обратите внимание, что в этом случае в папке назначения файл может быть как с новым, так и со старым именем.
    3.
    Копировать несколько файлов в новый каталог. Для этого нужно перечис- лить все файлы-источники и последним параметром указать папку: cp /home/root/need.txt /home/root/need22.txt /home/new/
    В
    этом примере файлы /home/root/need.txt и /home/root/need22.txt будут скопированы в директорию /home/new. Можно копировать файлы и из разных каталогов в один: cp /home/root/need.txt /home/flenov/need22.txt /home/new/
    В
    этом примере файлы /home/root/need.txt и /home/flenov/need22.txt будут скопированы в директорию /home/new.

    Глава
    3
    58
    4.
    Копировать группу файлов каталога или все лежащие в нем файлы.
    А
    что если надо скопировать все файлы, начинающиеся на букву "n", из одной директории в другую? Неужели придется их все перечислять? Нет, достаточно указать маску n*
    ,
    где звездочка заменяет любые символы, на- чиная со второго: cp /home/root/n* /home/new/
    Если нужно скопировать все файлы, имена которых начинаются символа- ми "ra" и заканчиваются буквой "t", то маска будет выглядеть как ra*t
    Это далеко не полный список возможностей команды копирования. Она дос- таточно сложная и мощная, и позволяет выполнить за один вызов любую за- дачу копирования.
    find
    Для поиска информации в файловой системе используется команда find
    Файловая система сильно разветвлена, и найти нужный файл бывает непро- сто
    . В простейшем варианте команда выглядит следующим образом: find path –name filename
    После имени команды идет путь к директории, в которой нужно производить поиск
    . Поиск будет включить все поддиректории. Вы можете указать не- сколько директорий подряд, например: find /etc /home –name filename
    Эта команда произведет поиск в /etc и в /home.
    После ключа
    -name можно указать имя файла или шаблон, по которому нуж- но искать файлы. Например, следующая команда найдет на диске все файлы с
    именем passwd: find / –name passwd
    А
    что, если вы не помните, какое точно имя у файла — passwd или password?
    В
    этом случае можно указать следующий шаблон: find / –name passw*d
    Под этот шаблон попадают оба имени файла. Символ звездочки соответству- ет любому набору любых символов и даже отсутствию символов.
    Ключ
    –name
    , наверное, самый популярный ключ для команды поиска, но по- мимо него команда поддерживает так же следующие ключи:
    ˆ
    -size число
    — позволяет указать размер файла, если вы его точно знаете.
    По умолчанию размер указывается в блоках размером в 512. Если нужно указать размер в байтах, то после числа укажите букву c
    ;
    ˆ
    -print
    — заставляет вывести содержимое файла в консоль;

    Добро
    пожаловать
    в
    Linux
    59
    ˆ
    -mtime число
    — в качестве числа можно указать количество дней, про- шедших со дня последнего редактирования файла. Например, если вы вчера редактировали файл с именем note, но не помните, куда его сохра- нили
    , то выполните следующую команду: find / –name note –mtime 1
    ˆ
    -type тип
    — ключ позволяет указать тип файла. В качестве типа можно указывать
    :

    d — каталог;

    f — обычный файл;

    p — именованный канал;

    l — символическая ссылка.
    С
    помощью find можно искать не только имена файлов или директорий, но и
    искать по содержимому файлов. Вот вам интересная команда, которую можно запомнить или записать: find . –type f –name "*" –print | xargs grep "текст, который ищем"
    В
    данном примере в качестве начальной директории для поиска указана точ- ка
    , то есть поиск будет начат с текущей папки, но вы можете указать другое, потому что это просто пример. Потом указываем тип искомых файлов. В ка- честве типа ограничиваемся только файлами, чтобы программа не пыталась мучить директории. В качестве имени указываем только звездочку, что соот- ветствует всем файлам. Ключ
    –print заставляет отображать содержимое файла
    После этого идет самое интересное. После вертикальной линии идет другая команда
    . Это значит, что результат работы команды слева будет передавать- ся команде справа. Команда xargs объединяет полученные на входе данные и
    выполняет указанную команду. А вот команда grep ищет в тексте, который подается на вход, строку, указанную в качестве параметра.
    mkdir
    Создание новой директории. Например, если вы хотите создать подкаталог newdir в текущей директории, то нужно выполнить команду: mkdir newdir
    rm
    Команда позволяет удалить файл или директорию (которая должна быть пуста
    ): rm /home/flenov/need22.txt

    Глава
    3
    60
    В
    качестве имен файлов можно использовать и маски, как в команде cp
    . Для удаления директории может понадобиться указание следующих ключей:
    ˆ
    -d
    — удалить директорию;
    ˆ
    -r
    — рекурсивно удалять содержимое директорий;
    ˆ
    -f
    — не запрашивать подтверждение удаляемых файлов. Будьте внима- тельны при использовании этого параметра, потому что файлы будут уда- ляться без каких-либо предупреждений. Вы должны быть уверены, что команда написана правильно, иначе можно удалить что-то лишнее, осо- бенно если вы работаете под учетной записью root.
    Пример удаления директории рекурсивно и без запроса на подтверждение: rm —rf /home/flenov/dir
    1   2   3   4   5   6   7   8   9   ...   35


    написать администратору сайта