Команда Linux ls: Просмотр содержимого

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

Введение

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

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

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

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

Нажмите на иконку 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 (от англ. all) показывает все файлы, включая скрытые. Давайте разберем увиденное:

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

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

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

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

Хорошему детективу нужны подробности. Воспользуемся опцией -l для получения длинного формата вывода (long listing format). Это даст нам гораздо больше информации о каждом файле и директории.

Ввод:

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 означает чтение (read), w — запись (write), x — выполнение (execute).
  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: Нажмите «Explain Code» в правом нижнем углу блока кода, чтобы пообщаться с ИИ Labby для разъяснения кода.

Вывод:

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.0K, что гораздо понятнее, чем просто цифры в байтах!

Опция -h означает «human-readable» (удобный для человека формат). Она преобразует размеры файлов в единицы, которые нам проще осознать:

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

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

Вы могли заметить, что даже добавив -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. Общий объем дискового пространства, занимаемого директорией (12K).
  2. Текущая директория (.) и родительская (..), которые мы видели ранее через ls -a.
  3. Наши файлы и папки со всей подробной информацией.
  4. Размеры файлов в удобном формате благодаря опции -h.

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

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

Сортировка улик

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

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

Ввод:

ls -lt

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

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

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

Ввод:

ls -ltr

Опция -r (reverse) инвертирует порядок сортировки. Опять же, если время изменения совпадает, разницы не будет.

Вот еще несколько полезных вариантов сортировки:

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

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

Помните: в Linux объединение опций позволяет создавать мощные и точные команды!

Заглядываем внутрь директорий

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

Ввод:

ls -l test

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

total 0

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

Если бы в test были файлы, они бы отобразились точно так же, как мы видели ранее.

Эта возможность «подглядывать» в папки очень полезна при изучении файловой системы. Вы даже можете использовать подстановочные знаки (wildcards), чтобы заглянуть в несколько папок сразу. Например:

ls -l */

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

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

Маленькая хитрость — говорящая корова и настройка цветов

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

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

Ввод:

ls | cowsay

Вы должны увидеть нечто подобное:

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

Забавно, не правда ли? Мы только что заставили корову «произнести» список наших файлов!

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

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

Ввод:

ls --color=never

Теперь содержимое отобразится без цветового выделения. Это «чистый» вывод команды.

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

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

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

Эти небольшие эксперименты показывают, что у команд 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: Вывод по одному файлу на строку (удобно для скриптов).

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

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

Продолжая изучение Linux, помните:

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

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

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

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