Поиск по сайту:

Linux-навигация и управление файлами


Введение

Навигация по файлам и папкам в файловой системе и управление ими — ключевая часть работы с большинством компьютеров. Облачные серверы в основном используют одни и те же общие оболочки Linux и общие команды Linux для работы с файлами и папками. Этот терминал познакомит вас с некоторыми фундаментальными навыками использования этих команд.

Предпосылки и цели

Чтобы следовать этому руководству, вам потребуется доступ к серверу Linux. Если вам нужна информация о первом подключении к вашему серверу, вы можете следовать нашему руководству по подключению к серверу Linux с помощью SSH.

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

Все материалы в этом руководстве можно выполнить с помощью обычной учетной записи пользователя без полномочий root (не администратора). Вы можете узнать, как настроить этот тип учетной записи пользователя, следуя руководству по первоначальной настройке сервера вашего дистрибутива, например, для Ubuntu 22.04.

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

Навигация и исследование

Самые фундаментальные навыки, которыми вам нужно овладеть, — это перемещение по файловой системе и получение представления о том, что вас окружает. В этом разделе вы рассмотрите инструменты, позволяющие это сделать.

Как узнать, где вы находитесь, с помощью команды «pwd»

Когда вы входите на свой сервер, вы обычно попадаете в домашний каталог вашей учетной записи пользователя. Домашний каталог — это каталог, отведенный вашему пользователю для хранения файлов и создания каталогов. Это место в файловой системе, где у вас есть полное владение.

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

  1. pwd
Output
/home/sammy

Домашний каталог назван в честь учетной записи пользователя. Этот каталог находится в каталоге с именем /home, который сам находится в каталоге верхнего уровня, который обычно называется «корневым» каталогом и представлен одиночной косой чертой /.

Просмотр содержимого каталогов с помощью «ls»

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

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

  1. cd /usr/share
  2. pwd
Output
/usr/share

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

  1. ls
Output
adduser groff pam-configs applications grub perl apport grub-gfxpayload-lists perl5 apps hal pixmaps apt i18n pkgconfig aptitude icons polkit-1 apt-xapian-index info popularity-contest . . .

Как видите, в этом каталоге много элементов. Вы можете добавить в команду несколько необязательных флагов, чтобы изменить поведение по умолчанию. Например, чтобы перечислить все содержимое в расширенной форме, вы можете использовать флаг -l (для «длинного» вывода):

  1. ls -l
Output
total 440 drwxr-xr-x 2 root root 4096 Apr 17 2022 adduser drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport drwxr-xr-x 3 root root 4096 Apr 17 2022 apps drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt drwxr-xr-x 2 root root 4096 Apr 17 2022 aptitude drwxr-xr-x 4 root root 4096 Apr 17 2022 apt-xapian-index drwxr-xr-x 2 root root 4096 Apr 17 2022 awk . . .

Этот вид дает нам много информации. Первый блок описывает тип файла (если в первом столбце стоит \d, то это каталог, а если \-, то это обычный файл) и разрешения. Каждый последующий столбец по порядку описывает количество жестких ссылок на этот файл в другом месте системы, владельца, владельца группы, размер элемента, время последнего изменения и имя элемента.

Чтобы получить список всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a. Поскольку в каталоге /usr/share нет настоящих скрытых файлов, давайте вернемся в ваш домашний каталог и попробуем выполнить эту команду. Вы можете вернуться в домашний каталог, набрав cd без аргументов:

  1. cd
  2. ls -a
Output
. .. .bash_logout .bashrc .profile

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

Для записей с точками и двойными точками это не столько каталоги, сколько встроенные методы ссылки на связанные каталоги. Одна точка указывает на текущий каталог, а двойная точка указывает на родительский каталог этого каталога. Это пригодится в следующем разделе.

Перемещение по файловой системе с помощью «cd»

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

Для начала вернитесь в каталог /usr/share:

  1. cd /usr/share

Это пример изменения каталога путем указания абсолютного пути. В Linux каждый файл и каталог находится в самом верхнем каталоге, который называется «корневым» каталогом, но обозначается одной косой чертой в начале \/. Абсолютный путь указывает расположение каталога относительно этого каталога верхнего уровня. Это позволяет нам однозначно обращаться к каталогам из любого места в файловой системе. Каждый абсолютный путь должен начинаться с этой косой черты.

Альтернативой является использование относительных путей. Относительные пути относятся к каталогам по отношению к текущему каталогу. Для каталогов, близких к текущему каталогу в иерархии, это обычно короче, и иногда полезно не делать предположений о том, где находится каталог в более широкой файловой системе. На любой каталог в текущем каталоге можно ссылаться по имени без косой черты. Вы можете перейти в каталог locale внутри /usr/share из вашего текущего местоположения, набрав:

  1. cd locale

Вы также можете перемещать несколько уровней каталогов с относительными путями, указав часть пути, которая следует за путем текущего каталога. Отсюда вы можете перейти в каталог LC_MESSAGES внутри каталога en, набрав:

  1. cd en/LC_MESSAGES

Чтобы вернуться назад, путешествуя к родительскому каталогу текущего каталога, вы можете использовать специальный индикатор двойной точки. Например, сейчас вы находитесь в каталоге /usr/share/locale/en/LC_MESSAGES. Чтобы подняться на один уровень, вы можете ввести:

  1. cd ..

Это приведет нас к каталогу /usr/share/locale/en.

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

cd ~
pwd
/home/sammy

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

Просмотр файлов

В последнем разделе вы узнали, как перемещаться по файловой системе. Вероятно, вы видели какие-то файлы при использовании команды ls в разных каталогах. В отличие от некоторых операционных систем, Linux и другие Unix-подобные операционные системы полагаются на текстовые файлы для обширных частей системы.

Основной способ просмотра файлов в этом руководстве — с помощью команды less. Это то, что называется «пейджером», потому что он позволяет прокручивать страницы файла. В то время как предыдущие команды выполнялись немедленно и возвращали вас в командную строку, less — это приложение, которое продолжайте бежать и занимать экран, пока не выйдете.

Вы откроете файл /etc/services, который представляет собой файл конфигурации, содержащий служебную информацию, о которой знает система:

  1. less /etc/services

Файл будет открыт в формате less, что позволит вам увидеть часть документа, которая помещается в область окна терминала:

Output
# Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, officially ports have two entries # even if the protocol doesn't support UDP operations. # # Updated from http://www.iana.org/assignments/port-numbers and other # sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services . # New ports will be added on request if they have been officially assigned # by IANA and used in the real-world or are needed by a debian package. # If you need a huge list of used numbers please install the nmap package. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp . . .

Для прокрутки вы можете использовать клавиши со стрелками вверх и вниз на клавиатуре. Чтобы перейти на страницу вниз, вы можете использовать пробел, кнопку «Page Down» на клавиатуре или сочетание клавиш CTRL-f.

Для прокрутки вверх можно использовать либо кнопку «Page Up», либо сочетание клавиш CTRL-b.

Чтобы найти какой-либо текст в документе, вы можете ввести косую черту \/, а затем искомое слово. Например, чтобы найти \почта, вы должны ввести:

/mail

Это приведет к поиску вперед по документу и остановке на первом результате. Чтобы получить другой результат, вы можете ввести клавишу n в нижнем регистре:

n

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

N

Чтобы выйти из программы less, вы можете ввести q для выхода:

q

Есть много других способов просмотра файла, которые могут пригодиться в определенных обстоятельствах. Команда cat выводит содержимое файла и немедленно возвращает вас к подсказке. Команда head по умолчанию показывает первые 10 строк файла. Точно так же команда tail показывает последние 10 строк. Эти команды отображают содержимое файла таким образом, чтобы его можно было передать другим программам. Эта концепция будет рассмотрена позже в этой серии руководств.

Управление файлами и каталогами

В этом разделе вы будете создавать файлы и каталоги и управлять ими.

Создайте файл с помощью «touch»

Многие команды и программы могут создавать файлы. Самый простой способ создать файл — использовать команду touch. Это создаст пустой файл с указанным именем и местоположением.

Во-первых, убедитесь, что вы находитесь в своем домашнем каталоге, так как это место, где у вас есть разрешение на сохранение файлов. Затем вы можете создать файл с именем file1, набрав:

  1. cd
  2. touch file1

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

  1. ls
Output
file1

Если вы используете команду touch для существующего файла, она обновляет время «последнего изменения», связанное с этим файлом. Это может быть полезно помнить.

Вы также можете создать несколько файлов одновременно. Вы также можете использовать абсолютные пути. Например, вы можете ввести:

  1. touch /home/sammy/file2 /home/sammy/file3
  2. ls
Output
file1 file2 file3

Создайте каталог с помощью «mkdir»

Подобно команде touch, команда mkdir позволяет создавать пустые каталоги.

Например, чтобы создать каталог в вашем домашнем каталоге с именем test, вы можете ввести:

  1. cd
  2. mkdir test

Вы можете создать каталог в каталоге test с именем example, набрав:

  1. mkdir test/example

Чтобы указанная выше команда работала, каталог test уже должен существовать. Чтобы сообщить mkdir, что он должен создавать любые каталоги, необходимые для создания заданного пути к каталогу, вы можете использовать параметр -p. Это позволяет создавать вложенные каталоги за один шаг. Вы можете создать структуру каталогов, которая выглядит как some/other/directories, набрав:

  1. mkdir -p some/other/directories

Команда сначала создаст каталог some, а затем внутри него создаст каталог other. Наконец, внутри этих двух каталогов будет создан каталог directories.

Перемещение и переименование файлов и каталогов с помощью «mv»

Вы можете переместить файл в новое место с помощью команды mv. Например, вы можете переместить file1 в каталог test, набрав:

  1. mv file1 test

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

  1. cd
  2. mv test/file1 .

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

Таким образом, чтобы переименовать каталог test в testing, вы можете ввести:

  1. mv test testing

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

Копирование файлов и каталогов с помощью «cp»

С помощью команды mv вы могли перемещать или переименовывать файл или каталог, но не могли дублировать его. Команда cp может создать новую копию существующего элемента.

Например, вы можете скопировать file3 в новый файл с именем file4:

  1. cp file3 file4

В отличие от операции mv, после которой file3 перестанет существовать, теперь у вас есть и file3, и file4.

Примечание. Как и в случае с командой mv, можно перезаписать файл, если вы не будете осторожны с именем файла, который вы используете в качестве цели операции. Например, если в приведенном выше примере уже существовал file4, его содержимое было бы полностью заменено содержимым file3.

Чтобы скопировать все каталоги, вы должны включить в команду параметр -r. Это означает «рекурсивный», так как он копирует каталог плюс все содержимое каталога.

Например, чтобы скопировать структуру каталогов some в новую структуру с именем again, вы можете ввести:

  1. cp -r some again

В отличие от файлов, в которых существующее место назначения привело бы к перезаписи, если целью является существующий каталог, файл или каталог копируются в цель:

  1. cp file1 again

Это создаст новую копию file1 и поместит ее в каталог again.

Удаление файлов и каталогов с помощью «rm» и «rmdir»

Чтобы удалить файл, вы можете использовать команду rm.

Примечание. Будьте предельно осторожны при использовании деструктивных команд, таких как rm. В оболочке нет команды «отменить», поэтому можно случайно навсегда уничтожить важные файлы.

Чтобы удалить обычный файл, просто передайте его команде rm:

  1. cd
  2. rm file4

Аналогичным образом, чтобы удалить пустые каталоги, вы можете использовать команду rmdir. Это удастся только в том случае, если в рассматриваемом каталоге ничего нет. Например, чтобы удалить каталог example из каталога testing:

  1. rmdir testing/example

Чтобы удалить непустой каталог, вы будете использовать команду rm с опцией -r, которая рекурсивно удаляет все содержимое каталога, а также сам каталог.

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

  1. rm -r again

Редактирование файлов

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

nano — один из немногих распространенных текстовых редакторов Linux с интерфейсом командной строки, который является отличной отправной точкой для начинающих. Она работает примерно так же, как и программа less, описанная выше, в том смысле, что она занимает весь терминал на время своего использования.

Редактор nano может открывать существующие файлы или создавать файлы. Если вы решите создать новый файл, вы можете дать ему имя при вызове редактора nano или позднее при сохранении содержимого.

Вы можете открыть файл file1 для редактирования, набрав:

  1. cd
  2. nano file1

Приложение nano откроет файл (который в настоящее время пуст). Интерфейс выглядит примерно так:

  GNU nano 4.8                 file1                                         








                                  [ New File ]
^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Text ^T To Spell

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

Чтобы получить помощь в редакторе, нажмите Ctrl+G.

Закончив просмотр справки, нажмите Ctrl+X, чтобы вернуться к документу.

Для этого примера вы можете просто ввести эти два предложения:

Hello there.

Here is some text.

Чтобы сохранить свою работу, нажмите Ctrl+O.

File Name to Write: file1                                                            
^G Get Help          M-D DOS Format       M-A Append           M-B Backup File
^C Cancel            M-M Mac Format       M-P Prepend

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

После сохранения, если вы внесете дополнительные изменения и попытаетесь выйти из программы, вы увидите аналогичную подсказку. Добавьте новую строку и попробуйте выйти из nano, нажав Ctrl+X.

Если вы не сохранили, вам будет предложено сохранить сделанные вами изменения:

Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?                         
 Y Yes
 N No           ^C Cancel

Вы можете нажать Y, чтобы сохранить изменения, N, чтобы отменить изменения и выйти, или Ctrl+C, чтобы отменить выход. Если вы решите сохранить, вам будет предоставлено то же приглашение файла, которое вы получили ранее, подтверждающее, что вы хотите сохранить изменения в том же файле. Нажмите Enter, чтобы сохранить файл и выйти из редактора.

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

  1. less file1
Output
Hello there. Here is some text. Another line.

Другой редактор, который вы можете увидеть в некоторых руководствах, — это vim или vi. Это более продвинутый редактор, очень мощный, но требующий сложного обучения. Если вам когда-нибудь предложат использовать vim или vi, не стесняйтесь использовать вместо них nano. Чтобы узнать, как использовать vim, прочитайте наше руководство по началу работы с vim.

Заключение

К этому моменту вы уже должны понимать, как обойти ваш Linux-сервер и как просмотреть доступные файлы и каталоги. Вы также должны знать команды управления файлами, которые позволят вам просматривать, копировать, перемещать или удалять файлы. Наконец, вы должны уметь редактировать с помощью текстового редактора nano.

Обладая этими несколькими навыками, вы сможете продолжить работу с другими руководствами и узнать, как максимально эффективно использовать свой сервер. В нашем следующем руководстве вы поймете, как просматривать и понимать разрешения Linux.