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

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

Вы можете задаться вопросом: «Почему я не вижу никаких настоящих скрытых файлов?» В данном случае в нашем каталоге нет других скрытых файлов, кроме . и ... Во многих каталогах, особенно в вашей домашней папке, вы часто будете видеть файлы вроде .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 означает чтение (read), w — запись (write), а x — выполнение (execute).
  2. Количество ссылок: Число сразу после прав доступа (1 для файлов, 2 для каталога в этом примере).

  3. Имя владельца: Имя пользователя, которому принадлежит файл (в данном случае labex).

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

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

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

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

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

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

Делаем размеры файлов понятными для человека

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

Ввод:

ls -lh

👆 Советы LabEx: Нажмите "Explain Code" (Объяснить код) в правом нижнем углу блока кода, чтобы пообщаться с 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.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. Наши файлы и каталоги со всей подробной информацией, которую мы видели с помощью ls -l.
  4. Размеры файлов в удобном для человека формате благодаря параметру -h.

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

Также обратите внимание, что порядок параметров не имеет значения. 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 есть файлы, вы увидите их список, точно так же, как мы видели в нашем текущем каталоге.

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

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: Вывод по одному файлу в строке (полезно для скриптов)

Помните, что вы всегда можете проверить страницу руководства (man page) для 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 только началось!