Введение в Bash

Основные команды

Содержание курса

Разбор команды ls

Что такое ls?

Команда ls (от англ. list) используется для вывода списка файлов и директорий в указанном каталоге. Это основная утилита для навигации по файловой системе в Bash и других оболочках.

Основной синтаксис

ls [опции] [файл или директория]

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

Основные опции ls

  • -l — вывод в длинном формате. Показывает подробную информацию: права доступа, количество ссылок, владельца, группу, размер, дату последнего изменения и имя файла.
  • -a — вывод всех файлов, включая скрытые (те, имена которых начинаются с точки .).
  • -h — при использовании с -l (например, ls -lh) размеры файлов выводятся в "читаемом" виде (например, 1K, 234M, 2G).
  • -r — обратная сортировка (реверсивный порядок).
  • -t — сортировка по времени изменения, начиная с самых новых.
  • -S — сортировка по размеру.
  • -R — рекурсивный вывод содержимого каталогов: ls покажет не только файлы текущего каталога, но и их содержимое.
  • --color=auto — вывод с цветовой разметкой (обычно включён по умолчанию в современных системах). Цвета помогают визуально отличать каталоги, файлы, символические ссылки и исполняемые файлы.

Примеры использования

1. Базовый вывод

ls

Выводит список файлов и папок в текущей директории. Это самый простой вариант использования команды.

2. Длинный формат

ls -l

Выводит подробную информацию для каждого файла. Пример строки вывода:

-rw-r--r-- 1 user group 4096 Mar 10 14:23 example.txt

Здесь:

  • -rw-r--r-- — права доступа.
  • 1 — количество ссылок.(см. ниже)
  • user — владелец файла.
  • group — группа.
  • 4096 — размер файла в байтах.
  • Mar 10 14:23 — дата и время последнего изменения.
  • example.txt — имя файла.

3. Скрытые файлы

ls -a

Выводит все файлы, включая те, что начинаются с точки (скрытые файлы, например, .bashrc).

4. Читаемый размер файлов

ls -lh

Опция -h (human-readable) делает вывод размера файлов более понятным: 1K, 234M, 2G и т.д.

5. Сортировка по времени

ls -lt

Отсортирует файлы так, что в начале будут самые недавно изменённые.

6. Рекурсивный вывод

ls -R

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

7. Использование нескольких опций

Комбинировать опции можно для получения более информативного вывода. Например:

ls -alh --color=auto

Выведет все файлы (включая скрытые) в длинном формате с читаемым размером и цветовой разметкой.

Особенности и советы

  • Цветовая разметка:
    Цвета помогают быстро ориентироваться. Например, каталоги обычно отображаются синим цветом, исполняемые файлы — зелёным, символические ссылки — светло-голубым или другим отличительным цветом. Это зависит от настроек терминала и переменной окружения LS_COLORS.

  • Использование шаблонов:
    ls можно комбинировать с подстановочными знаками для фильтрации файлов. Например:

    ls *.txt

    Выведет только файлы с расширением .txt.

  • Сортировка:
    Опции сортировки (-t, -S, -r) полезны для быстрой оценки, какие файлы недавно изменялись или занимают больше всего места.

  • Скрытые файлы:
    Опция -a особенно полезна, когда нужно найти файлы конфигурации или скрытые каталоги (например, .git или .config).

Практическое применение

  • Навигация:
    Перед выполнением операций с файлами полезно увидеть полный список файлов в каталоге, чтобы удостовериться, что нужный файл действительно там присутствует:

    ls -alh /home/username/Documents
  • Скрипты:
    Скрипты могут использовать ls для динамического получения списка файлов. Например, для перебора всех .log файлов:

    for file in *.log; do 
        echo "Обработка файла: $file" 
        # дальнейшая обработка 
    done

Количество жёстких ссылок

Третий столбец вывода ls -l показывает число hard links (жёстких ссылок) на один и тот же inode:

  • Для обычного файла:
    • Начальное значение – 1.
    • При создании новой жёсткой ссылки (ln original newlink) счётчик увеличивается.
  • Для директории:
    • Базово – 2 (записи . и ссылка из родительской директории).
    • Каждая вложенная поддиректория добавляет ещё одну ссылку через свою запись ...
    • Поэтому формула для директории: число ссылок = 2 + количество поддиректорий.

Например:

mkdir demo && cd demo
touch a.txt
ln a.txt b.txt
mkdir sub
  • ls -ld . покажет 3 — это ., .. и поддиректория sub.
  • ls -l для файлов a.txt и b.txt покажет 2 — две ссылки на один и тот же inode.

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

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.