Linux. Основы командной строки
December 25, 2023

Linux. Основы командной строки. Часть 2-ая.

Hi, Bae, на связи Shady.

Параметры и аргументы.

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

Большинство команд выглядят примерно так:

команда -параметр(ы) аргумент(ы)

Возьмем для примера команду ls.

Команда ls имеет огромное число допустимых параметров, наиболее популярные:

Большинство команд используют параметры, состоящие из одного символа, например: параметр -l. Но многие команды поддерживают параметры с длинными именами, состоящие из слова, которым предшествуют 2 дефиса.

Кроме того, многие команды позволяют объединять вместе параметры с короткими именами.

Например, команде ls передаются 2 параметра: параметр l и параметр t:

ls -lt

Добавим параметр с длинным именем --reverse:

ls -lt --reverse

Параметр -l выводит результаты с использованием длинного формата. То есть формат предусматривает вывод большого количества полезной информации.

Вывод: содержимого каталога /usr/games в системе Ubuntu:

ls /usr/games -l

Вывод: 
итого 20
-rwxr-xr-x 1 root root   299 фев 18  2021 gamemoderun
-rwxr-xr-x 1 root root 14488 мар 23  2022 gamemode-simulate-game

Рассмотрим различные поля для первого файла и их назначение:

-rwxr-xr-x
  • Права доступа к файлу. Первый символ указывает тип файла, например, символом дефиса обозначаются обычные файлы, а символом d — каталоги. Следующие 3 символа показывают права доступа для владельца файла, следующие три — для членов группы, которым принадлежит файл, и последние три — для всех остальных.
1
  • Число жестких ссылок на файл (подробнее об этом поговорим далее).
root
  • Имя пользователя, владеющего файлом.
root
  • Имя группы, владеющей файлом.
299
  • Размер файла в байтах.
фев 18 2021 
  • Дата последнего изменения файла.
gamemoderun
  • Имя файла.

Команда file.

Команда file дает возможность определять тип содержимого файла. Имена файлов в Linux не обязаны отражать тип содержимого файлов.

Например, увидев файл picture.jpg, можно подумать, что он содержит изображение в формате JPEG, но в Linux такие догадки могут не оправдываться.

Вызвать команду file можно так:

file [название файла]

Например:

file picture.jpg

Вывод:
picture.jpg: JPEG image data, JFIF standard 1.01

Команда less.

Команда less — программа для просмотра текстовых файлов.

После запуска программа less позволяет прокручивать текстовый файл взад и вперед.

Команда less используется так:

less [имя файла]

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

less /etc/passwd

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

Некоторые команды программы less:

  • Page Up — прокрутка к началу на 1-ну страницу,
    Page Down — к концу на 1-ну страницу.
  • Стрелка вверх — прокрутка к началу на 1-ну строку,
    Стрелка вниз — к концу на 1-ну строку.
  • G — переход в конец текстового файла,
    g — в начало текстового файла.

Символические ссылки.

Давайте посмотрим содержимое каталога /usr/lib.

ls /usr/lib -l
Вывод:
..
lrwxrwxrwx   1 root root      15 июл  8  2020 libchm.so.1 -> libchm.so.1.0.0
..

Обратили внимание на первую букву l и на присутствие двух имен файлов в конце?

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

Запись выше соответствует символической ссылке с именем libchm.so.1, указывающей на файл разделяемой библиотеки с именем libchm.so.1.0.0. Это означает, что программа ищущая libchm.so.1, фактически получит файл libchm.so.1.0.0.

Когда создается символическая ссылка в действительности, создается файл особого типа, содержащий текстовый указатель на файл или каталог. Можно сказать, они действуют наподобие ярлыков в Windows.

Файл, на который указывает символическая ссылка и сама символическая ссылка почти неотличимы друг от друга.

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

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

Элементом символической ссылкой может быть файл или каталог.

Для того, чтобы создать символическую ссылку воспользуйтесь командой ln и параметром -s:

ln -s [элемент] [ссылка]

Жесткие ссылки.

Жесткие ссылки — это первоначальный способ создания ссылок в Linux; символические ссылки — более позднее изобретение.

По умолчанию каждый файл имеет одну жесткую ссылку, определяющую его имя. Создавая жесткую ссылку, мы создаем дополнительную запись в каталоге для файла. Жесткие ссылки имеют 2 важных ограничения:

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

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

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

ln [файл] [ссылка]

Bye, на связи был Shady.

telegram — https://t.me/tenlapa