Linux path usr local bin

What are the Default $PATH Values?

But in a minimal chroot environment created by debootstrap , $PATH only contains:

# echo $PATH /usr/sbin:/usr/bin:/sbin:/bin 

Environment path values are stored in .bashrc file in ubuntu.

The system-wide PATH variable is defined in /etc/environment

Thanks — I couldn’t find where this file was actually sourced, but it appears to be included by PAM, in e.g. /etc/pam.d/login (and cron, su, etc)

bash will set PATH to a hard-coded default value if it’s not set in the environment:

$ env -i bash -c 'echo $PATH' /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:. 

We can check that this value is indeed hard-coded, and not read from the environment or some file, using the strings utility:

$ strings /bin/bash | grep /usr/sbin /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:. 

However, I get a different result on my Arch Linux machine:

$ env -i bash -c 'echo $PATH' /usr/local/sbin:/usr/local/bin:/usr/bin 

So, the default is chosen at the time the bash binary was built, which depends on the Linux distribution in use.

PATH

The search path for commands. It is a colon-separated list of directories in which the shell looks for commands (see COMMAND EXECUTION below). A zero-length (null) directory name in the value of PATH indicates the current directory. A null directory name may appear as two adjacent colons, or as an initial or trailing colon. The default path is system-dependent, and is set by the administrator who installs bash. A common value is /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin .

Here, «installs» likely refers to make install (as opposed to installing a pre-built binary using a package manager), so «administrator» would refer to the distribution vendor.

Читайте также:  Cad software for linux

The «INVOCATION» section in the man page describes the startup process, which may affect the initial value of the variable.

Источник

Переменная PATH в Linux

Когда вы запускаете программу из терминала или скрипта, то обычно пишете только имя файла программы. Однако, ОС Linux спроектирована так, что исполняемые и связанные с ними файлы программ распределяются по различным специализированным каталогам. Например, библиотеки устанавливаются в /lib или /usr/lib, конфигурационные файлы в /etc, а исполняемые файлы в /sbin/, /usr/bin или /bin.

Таких местоположений несколько. Откуда операционная система знает где искать требуемую программу или её компонент? Всё просто — для этого используется переменная PATH. Эта переменная позволяет существенно сократить длину набираемых команд в терминале или в скрипте, освобождая от необходимости каждый раз указывать полные пути к требуемым файлам. В этой статье мы разберёмся зачем нужна переменная PATH Linux, а также как добавить к её значению имена своих пользовательских каталогов.

Переменная PATH в Linux

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

На экране появится перечень папок, разделённых двоеточием. Алгоритм поиска пути к требуемой программе при её запуске довольно прост. Сначала ОС ищет исполняемый файл с заданным именем в текущей папке. Если находит, запускает на выполнение, если нет, проверяет каталоги, перечисленные в переменной PATH, в установленном там порядке. Таким образом, добавив свои папки к содержимому этой переменной, вы добавляете новые места размещения исполняемых и связанных с ними файлов.

Для того, чтобы добавить новый путь к переменной PATH, можно воспользоваться командой export. Например, давайте добавим к значению переменной PATH папку/opt/local/bin. Для того, чтобы не перезаписать имеющееся значение переменной PATH новым, нужно именно добавить (дописать) это новое значение к уже имеющемуся, не забыв о разделителе-двоеточии:

Читайте также:  Удаленный доступ через линукс

Теперь мы можем убедиться, что в переменной PATH содержится также и имя этой, добавленной нами, папки:

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

В ОС Ubuntu значение переменной PATH содержится в файле /etc/environment, в некоторых других дистрибутивах её также можно найти и в файле /etc/profile. Вы можете открыть файл /etc/environment и вручную дописать туда нужное значение:

Можно поступить и иначе. Содержимое файла .bashrc выполняется при каждом запуске оболочки Bash. Если добавить в конец файла команду export, то для каждой загружаемой оболочки будет автоматически выполняться добавление имени требуемой папки в переменную PATH, но только для текущего пользователя:

Выводы

В этой статье мы рассмотрели вопрос о том, зачем нужна переменная окружения PATH в Linux и как добавлять к её значению новые пути поиска исполняемых и связанных с ними файлов. Как видите, всё делается достаточно просто. Таким образом вы можете добавить столько папок для поиска и хранения исполняемых файлов, сколько вам требуется.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

How to add usr/local/bin to path environment variable on ubuntu 12.0.4?

And I’m stuck as the guy has a wrong assumption. How do I add usr/local/bin to the path environment variable?

2 Answers 2

You can add this to your ~/.bashrc file:

Читайте также:  Fail log in linux

If you don’t know how, you can just execute this line in a Terminal:

echo "PATH=\$PATH:/usr/local/bin" >> ~/.bashrc 

You can also check what’s in your PATH by typing in the Terminal

Thankyou. Ok this is what i did I entered gedit ~/.bashrc and its showing lots of code. where am I supposed to add the line you mentioned above.

Ive executed the line in the terminal and it shows the following line at the end of the bashrc file PATH=$PATH:/usr/local/bin Now when I type ruby -v its says The program ‘ruby’ can be found in the following packages: * ruby1.8 * ruby1.9.1 Try: sudo apt-get install Does this mean ruby has been installed?

@user2104149 Yes, twice actually 🙂 You seem to be using an old book, you should go for ruby 1.9.2 (or 1.9.1 if it’s already installed in your computer). Versions 1.8.x are not supported anymore.

Yes I but as I dont have any Software background and ruby gets really tricky with versions so I though i should rather start with the 1.8.6 as im actually learning rails. Rails 2 works best with the version 1.8. Once i undesrtand what rails is i will shift to the latest stables version before i start any programming. I was told that its better to undersatand rail 2 before you start on rails 3. I ve just started. With all the help here and nice people like yourself I guess im gonna reach there fast 🙂 Thankyou

Источник

Оцените статью
Adblock
detector