Введение
🧑💻 Вы новичок в Linux или LabEx? Мы рекомендуем начать с курса Быстрый старт в Linux.
Добро пожаловать в захватывающий мир управления файлами в Linux! В этом руководстве мы отправимся в путешествие, чтобы освоить команду ls — вашего верного помощника в навигации по файловой системе. Независимо от того, являетесь ли вы начинающим системным администратором или любопытным новичком, понимание ls имеет решающее значение для ваших приключений в Linux.
Представьте, что вы детектив, расследующий загадочную папку. Команда ls — это ваша лупа, которая помогает находить скрытые улики и раскрывать секреты файловой системы. Давайте начнем наше расследование!
Вход в файловую систему
Откройте терминал, и давайте начнем наше расследование!
Нажмите на значок Xfce Terminal на рабочем столе, чтобы открыть новое окно терминала.

Теперь давайте впервые осмотримся, используя базовую команду ls.
Ввод:
ls
Вывод:
data_file.txt test test_file.txt

В следующих шагах больше не будут приводиться скриншоты командной строки и результатов вывода. Пожалуйста, вводите команды в терминале, чтобы увидеть результат.
Поздравляем! Вы только что вывели содержимое каталога. Это видимые «улики» в нашей загадочной комнате. Давайте разберемся, что мы видим:
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
Ого, это много информации! Давайте разберем ее по частям:
Права доступа к файлу: Первый столбец (например,
-rw-rw-r--) показывает права доступа.- Первый символ указывает тип файла (
-для обычного файла,dдля каталога). - Следующие три символа показывают права владельца.
- Следующие три показывают права группы.
- Последние три показывают права для остальных пользователей.
rозначает чтение (read),w— запись (write), аx— выполнение (execute).
- Первый символ указывает тип файла (
Количество ссылок: Число сразу после прав доступа (1 для файлов, 2 для каталога в этом примере).
Имя владельца: Имя пользователя, которому принадлежит файл (в данном случае labex).
Имя группы: Группа, имеющая доступ к файлу (здесь также labex).
Размер файла: Размер в байтах (12 для data_file.txt, 6 для каталога test и 27 для test_file.txt).
Дата и время последнего изменения: Когда файл был изменен в последний раз (Aug 7 11:23 для всех файлов здесь).
Имя файла или каталога: Имя файла или каталога.
Заметили, что у 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делает размеры файлов понятными для человека
Давайте разберем, что мы видим:
- Общий объем дискового пространства, занимаемый каталогом (12K).
- Текущий каталог (
.) и его родитель (..), которые мы видели ранее с помощьюls -a. - Наши файлы и каталоги со всей подробной информацией, которую мы видели с помощью
ls -l. - Размеры файлов в удобном для человека формате благодаря параметру
-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. Давайте повторим то, что мы узнали:
- Базовое использование:
ls— выводит список файлов и каталогов в текущем каталоге. - Отображение скрытых файлов:
ls -a— отображает все файлы, включая скрытые. - Подробный список:
ls -l— показывает подробную информацию о файлах и каталогах. - Размеры файлов, понятные человеку:
ls -h— отображает размеры файлов в формате, который легко понять человеку. - Комбинирование параметров:
ls -alh— показывает все файлы с подробной информацией и размерами, понятными человеку. - Сортировка файлов:
ls -lt,ls -ltr— сортирует файлы по времени изменения, начиная с самых новых или самых старых. - Просмотр содержимого других каталогов:
ls [каталог]— заглядывает в другие каталоги, не меняя вашего текущего местоположения.
Существует еще много параметров ls, которые стоит изучить. Вот еще несколько, которые могут оказаться полезными:
-R: Рекурсивный список подкаталогов (показывает содержимое всех подкаталогов)-S: Сортировка по размеру файла (сначала самые большие)-X: Сортировка по алфавиту по расширению записи-1: Вывод по одному файлу в строке (полезно для скриптов)
Помните, что вы всегда можете проверить страницу руководства (man page) для ls, введя man ls в своем терминале, чтобы получить полный список параметров и подробные объяснения. Не пугайтесь страниц руководства — это сокровищница информации, как только вы привыкнете их читать!
Имея в своем распоряжении эти инструменты, вы хорошо подготовлены к исследованию и управлению файлами в любой системе Linux. Команда ls — это только начало вашего пути в Linux, но это важный инструмент, который вы будете использовать ежедневно по мере повышения своего мастерства в работе с операционной системой.
Продолжая исследовать Linux, помните об этих ключевых моментах:
- Команды Linux поначалу часто кажутся короткими и загадочными, но они спроектированы так, чтобы быть мощными и эффективными, как только вы их изучите.
- Большинство команд имеют множество параметров, которые можно комбинировать разными способами. Не бойтесь экспериментировать!
- Терминал поначалу может показаться пугающим, но это невероятно мощный инструмент, который дает вам точный контроль над вашей системой.
- Linux чувствителен к регистру.
File.txt,file.txtиFILE.txt— это разные файлы в Linux. - Концепции, которые вы изучили с помощью
ls(например, параметры и аргументы), применимы и ко многим другим командам Linux.
Практика ведет к совершенству! Попробуйте использовать ls с различными комбинациями параметров в разных каталогах. Чем больше вы будете ее использовать, тем естественнее она станет.
Помните, что каждый эксперт когда-то был новичком. С терпением и практикой вы скоро будете ориентироваться в файловой системе Linux как профессионал!
Удачных исследований, и не стесняйтесь обращаться к этому руководству, когда вам нужно освежить знания о команде ls. Ваше путешествие в мир Linux только началось!



