Команда Linux ls: вывод содержимого

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Представьте, что вы детектив, расследующий загадочную папку. Команда ls - это ваше увеличительное стекло, которое раскрывает скрытые подсказки и разгадывает секреты вашей файловой системы. Давайте начнем наше расследование!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/InputandOutputRedirectionGroup(["Input and Output Redirection"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/TextProcessingGroup -.-> linux/sort("Text Sorting") linux/InputandOutputRedirectionGroup -.-> linux/pipeline("Data Piping") subgraph Lab Skills linux/ls -.-> lab-219205{{"Команда Linux ls: вывод содержимого"}} linux/sort -.-> lab-219205{{"Команда Linux ls: вывод содержимого"}} linux/pipeline -.-> lab-219205{{"Команда Linux ls: вывод содержимого"}} end

Вход в файловую систему

Откройте терминал, и давайте начнем наше расследование!

Нажмите на значок Xfce Terminal на рабочем столе, чтобы открыть новое окно терминала.

Значок Xfce Terminal на рабочем столе

Теперь давайте сделаем первое обзорное осмотре с использованием базовой команды ls.

Ввод:

ls

Вывод:

data_file.txt test test_file.txt
Пример вывода команды ls

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

Поздравляем! Вы только что вывели содержимое каталога. Это те видимые "следы", которые есть в нашей загадочной комнате. Давайте разберем, что мы видим:

  • data_file.txt и test_file.txt - это файлы. В Linux расширения файлов (например, .txt) часто используются для указания типов файлов, но они не являются обязательными.
  • test - скорее всего, это каталог (папка). Обратите внимание, что у него нет расширения файла.

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

Раскрытие скрытых секретов

Теперь, когда мы увидели очевидные следы, давайте поищем скрытые. В мире Linux скрытые файлы и каталоги начинаются с точки (.). Чаще всего это конфигурационные файлы или каталоги, которые не должны мешать вашему обычному просмотру.

Ввод:

ls -a

Вывод:

... data_file.txt test test_file.txt

Опция -a показывает все файлы, включая скрытые. Давайте разберем, что мы видим:

  • . представляет текущий каталог. Это ярлык, который вы можете использовать в командах.
  • .. представляет родительский каталог (каталог на один уровень выше). Это полезно для навигации.
  • Другие файлы, которые мы видели ранее, по-прежнему перечислены.

Возможно, вы задаетесь вопросом: "Почему я не вижу никаких настоящих скрытых файлов?" В данном случае наш каталог не содержит скрытых файлов, кроме . и ... Во многих каталогах, особенно в вашей домашней папке, вы часто будете видеть файлы, такие как .bashrc или .config.

Если вы привыкли к Windows, это может показаться странным. В Windows скрытые файлы - это атрибут, в то время как в Linux это определяется именем файла. Любой файл, начинающийся с точки, считается скрытым.

Сбор детальной информации

Хороший детектив нуждается в детальной информации. Давайте используем опцию -l, чтобы получить расширенный формат списка. Это предоставит нам гораздо больше информации о каждом файле и каталоге.

Ввод:

ls -l

Вывод:

total 8
-rw-rw-r-- 1 labex labex 12 Aug  7 11:23 data_file.txt
drwxrwxr-x 2 labex labex  6 Aug  7 11:23 test
-rw-rw-r-- 1 labex labex 27 Aug  7 11:23 test_file.txt

Вау, это много информации! Давайте разберем ее по частям:

  1. Права доступа к файлам: Первая колонка (например, -rw-rw-r--) показывает права доступа к файлу.

    • Первый символ указывает на тип файла (- для обычного файла, d для каталога).
    • Следующие три символа показывают права доступа владельца.
    • Следующие три - права доступа группы.
    • Последние три - права доступа для других.
    • r означает чтение, w - запись, а x - выполнение.
  2. Количество ссылок: Число сразу после прав доступа (1 для файлов, 2 для каталога в этом примере).

  3. Имя владельца: Имя пользователя, являющегося владельцем файла (в данном случае - labex).

  4. Имя группы: Группа, имеющая доступ к файлу (здесь также labex).

  5. Размер файла: Размер в байтах (12 для data_file.txt, 6 для каталога test и 27 для test_file.txt).

  6. Дата и время последнего изменения: Когда файл был последний раз изменен (7 августа 11:23 для всех файлов здесь).

  7. Имя файла или каталога: Имя файла или каталога.

Обратите внимание, что в начале прав доступа у test стоит d? Это означает, что это каталог! Также его размер составляет 6 байт, что является типичным для пустого или почти пустого каталога в некоторых файловых системах.

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

Представление размеров файлов в удобном для человека формате

Размеры файлов в байтах могут быть сложно понять, особенно для больших файлов. Давайте сделаем их более удобными для человека, используя опцию -h вместе с -l.

Ввод:

ls -lh

👆 Советы от LabEx: Нажмите "Объяснить код" в правом нижнем углу блока кода, чтобы пообщаться с Labby AI и уточнить код.

Вывод:

total 8.0K
-rw-rw-r-- 1 labex labex 12 Aug  7 11:23 data_file.txt
drwxrwxr-x 2 labex labex  6 Aug  7 11:23 test
-rw-rw-r-- 1 labex labex 27 Aug  7 11:23 test_file.txt

Теперь мы видим, что общий размер равен 8.0 КБ, что намного проще понять, чем видеть его в байтах!

Опция -h означает "человекочитаемый" (human-readable). Она преобразует размеры файлов в формат, который легче понять человеку. Вот как это работает:

  • Файлы размером менее 1 КБ показываются в байтах (как мы видим с нашими файлами здесь).
  • Файлы размером от 1 КБ до 1 МБ показываются в КБ (К).
  • Файлы размером от 1 МБ до 1 ГБ показываются в МБ (М).
  • Файлы размером более 1 ГБ показываются в ГБ (Г).

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

Вы, возможно, заметите, что даже несмотря на то, что мы добавили опцию -h, мы по-прежнему использовали опцию -l. Это потому, что -h изменяет вывод расширенного формата списка. Если бы мы использовали только ls -h, мы вообще бы не увидели размеры файлов!

Комбинирование наших детективных инструментов

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

Ввод:

ls -alh

Вывод:

total 12K
drwxr-xr-x 1 labex labex   60 Aug  7 11:23.
drwxr-x--- 1 labex labex 4.0K Aug  7 11:24..
-rw-rw-r-- 1 labex labex   12 Aug  7 11:23 data_file.txt
drwxrwxr-x 2 labex labex    6 Aug  7 11:23 test
-rw-rw-r-- 1 labex labex   27 Aug  7 11:23 test_file.txt

Эта команда объединяет все, что мы узнали:

  • -a показывает все файлы, включая скрытые
  • -l предоставляет расширенный формат списка с детальной информацией
  • -h делает размеры файлов человекочитаемыми

Давайте разберем, что мы видим:

  1. Общий объем дискового пространства, используемый каталогом (12 КБ).
  2. Текущий каталог (.) и его родительский (..), которые мы видели ранее с помощью ls -a.
  3. Наши файлы и каталоги с всей детальной информацией, которую мы видели с помощью ls -l.
  4. Размеры файлов в человекочитаемом формате благодаря опции -h.

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

Также обратите внимание, что порядок опций не имеет значения. ls -alh, ls -hal, ls -lha все дадут одинаковый вывод. Это справедливо для большинства команд Linux, что делает их очень гибкими!

Сортировка наших уликов

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

Сначала отсортируем файлы по времени изменения, начиная с самых новых:

Ввод:

ls -lt

Эта команда выводит файлы в расширенном формате (-l), отсортированными по времени изменения (-t), начиная с недавно измененных.

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

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

Ввод:

ls -ltr

Опция r изменяет порядок сортировки. Опять же, если все файлы имеют одинаковое время изменения, вы не заметите различия.

Вот некоторые другие полезные опции сортировки:

  • -S: Сортировка по размеру файла, начиная с самого большого
  • -X: Сортировка по расширению файла в алфавитном порядке
  • -v: Сортировка по версии (полезно для файлов с номерами)

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

Помните, в Linux вы часто можете комбинировать опции, чтобы создать мощные, настроенные под себя команды!

Просмотр содержимого каталогов

До сих пор мы рассматривали содержимое текущего каталога. Но что, если мы хотим изучить содержимое подкаталога, не переходя в него? Мы можем использовать команду ls с именем каталога в качестве аргумента.

Ввод:

ls -l test

Эта команда выведет содержимое каталога test, в то время как мы остаемся в текущем расположении. Если каталог test пуст, вы увидите такое сообщение:

total 0

Это означает, что каталог существует, но не содержит файлов.

Если в каталоге test есть файлы, вы увидите их в списке, как и содержимое текущего каталога.

Возможность "поглядеть" в каталоги очень полезна при исследовании файловой системы или поиске конкретных файлов. Вы даже можете использовать подстановочные знаки для одновременного просмотра нескольких каталогов. Например:

ls -l ./

Это покажет содержимое всех непосредственных подкаталогов в текущем расположении.

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

Веселый трюк - говорящая корова и изучение опций цветного вывода

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

Сначала попробуем трюк с cowsay:

Ввод:

ls | cowsay

Вы должны увидеть что - то вроде этого:

 _________________________________________
/ data_file.txt test test_file.txt        \
\                                         /
 -----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Не забавно ли? Мы только что заставили корову сказать содержимое нашего каталога!

Возможно, вы удивляетесь, что значит символ | между ls и cowsay. Это называется "канал" (pipe), и это мощная функция в Linux, которая соединяет команды между собой. Не волнуйтесь, если вы сейчас не понимаете, как это работает - это абсолютно нормально! Мы будем больше узнавать о каналах в будущих уроках. Пока просто наслаждайтесь говорящей коровой!

Теперь давайте углубимся в изучение команды ls. Знаете ли вы, что ls может выводить информацию в разных цветах? По умолчанию на многих системах Linux цветной вывод включен автоматически. Но мы можем контролировать это поведение. Давайте попробуем использовать ls с специальной опцией, чтобы отключить цвета:

Ввод:

ls --color=never

Теперь вы должны увидеть содержимое каталога без каких - либо цветов. Это обычный, неокрашенный вывод команды ls.

Опция --color в команде ls может принимать три значения:

  • never: Никогда не использовать цвета (то, что мы только что попробовали)
  • always: Всегда использовать цвета, даже при отправке вывода в файл или другую команду
  • auto: Использовать цвета при выводе непосредственно в терминал, но не при отправке вывода куда - то еще

Использование ls --color=never может быть полезно в скриптах или когда вы хотите обеспечить последовательный вывод, независимо от настроек вашего терминала.

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

Итоги

Поздравляем, детектив! Вы освоили основы команды ls. Давайте повторим, что мы узнали:

  1. Базовое использование: ls - выводит список файлов и каталогов в текущем каталоге.
  2. Показ скрытых файлов: ls -a - отображает все файлы, включая скрытые.
  3. Подробный список: ls -l - показывает подробную информацию о файлах и каталогах.
  4. Человекочитаемые размеры файлов: ls -h - отображает размеры файлов в формате, легко понятном человеку.
  5. Комбинирование опций: ls -alh - показывает все файлы с подробной информацией и человекочитаемыми размерами.
  6. Сортировка файлов: ls -lt, ls -ltr - сортирует файлы по времени изменения, начиная с самых новых или самых старых.
  7. Вывод содержимого других каталогов: ls [каталог] - позволяет посмотреть содержимое других каталогов без перехода в них.

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

  • -R: Рекурсивно выводить подкаталоги (показать содержимое всех подкаталогов).
  • -S: Сортировать по размеру файла (начиная с самого большого).
  • -X: Сортировать по расширению файла в алфавитном порядке.
  • -1: Выводить по одному файлу в строке (полезно для скриптов).

Помните, вы всегда можете посмотреть справочную страницу по команде ls, введя man ls в терминале, чтобы получить полный список опций и детальные объяснения. Не пугайтесь страниц руководства - они настоящий клад информации, когда вы привыкнете к их чтению!

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

По мере дальнейшего изучения Linux помните эти важные моменты:

  1. Команды Linux часто выглядят короткими и загадочными вначале, но они разработаны так, чтобы быть мощными и эффективными, когда вы их освоите.
  2. Большинство команд имеют множество опций, которые можно комбинировать различными способами. Не бойтесь экспериментировать!
  3. Терминал может показаться пугающим вначале, но это невероятно мощный инструмент, который дает вам точный контроль над системой.
  4. Linux чувствителен к регистру букв. File.txt, file.txt и FILE.txt - это все разные файлы в Linux.
  5. Концепции, которые вы узнали с помощью команды ls (например, опции и аргументы), также применимы к многим другим командам Linux.

Упражнения делают мастером! Попробуйте использовать команду ls с различными комбинациями опций в разных каталогах. Чем чаще вы будете ее использовать, тем более естественно она будет казаться.

Помните, каждый эксперт когда - то был новичком. С терпением и практикой вы скоро будете ориентироваться в файловой системе Linux как профессионал!

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