Андрей Попов Заметки, переводы, ссылки на ресурсы

Каталоги для размещения исполняемых скриптов в Linux


1 Введение

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

В этой статье мы рассмотрим, где можно разместить такие скрипты.

2 Переменная среды PATH

В операционной системе Linux определена переменная PATH, содержащая список каталогов с исполняемыми файлами. Когда мы пытаемся выполнить команду, система ищет исполняемый файл с подходящим именем в этих каталогах.

Посмотрим содержимое переменной PATH:

echo $PATH
/home/karthik/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/karthik/lib/android/cmdline-tools/tools/bin:/home/karthik/lib/android/emulator:/home/karthik/lib/android/platform-tools:/home/karthik/lib/flutter/bin:/usr/local/go/bin:/home/karthik/.spicetify

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

3 Добавление скриптов в стандартные системные каталоги

В большинстве систем в переменную PATH по умолчанию включены некоторые стандартные каталоги, такие как /usr/local/bin и ~/.local/bin. Добавление нашего скрипта в любой из этих каталогов позволяет запускать его из командной строки без указания полного пути.

После копирования скрипта в любой подкаталог /usr, он становится доступным для всей системы. Поэтому все пользователи cмогут использовать его из командной строки. Таким образом, скрипт, который должен быть доступен всем в системе, лучше всего поместить в каталог /usr/local/bin.

Скрипты, предназначенные для личного использования, лучше поместить в подкаталог домашнего каталога ~ (обычно это каталог /home/<ваше имя="">). Стандартное место для размещения личных пользовательских - это каталог ~/.local/bin.

4 Добавление каталогов в PATH

Мы также можем предварительно добавить нужные каталоги в PATH, а затем вызывать скрипты, находящиеся в этих каталогах, по имени. Например, включим в переменную PATH каталог /home/karthik/.flutter/bin:

$ PATH=$PATH:/home/karthik/.flutter/bin
$ export PATH

После добавления этого каталога в переменную PATH все скрипты и исполняемые файлы из него будут доступны для использования из командной строки по имени.

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

Для этого необходимо включить эти строки в файл /etc/profile (тогда команды будут выполняться для всех пользователей в системе) или в файл ~/.profile (если команды нужно выполнять только для себя).

5 Заключение

В этой статье мы узнали, куда помещать пользовательские сценарии, чтобы их можно было использовать из командной строки по имени, без указания полного пути. Мы можем либо добавить эти сценарии в один из каталогов переменной PATH, либо добавить каталог, содержащий сценарии, в переменную PATH.

В идеале скрипты для общесистемного использования следует поместить в каталог /usr, а для личного использования - в свой домашний каталог.


Похожие посты

Содержание