Linux default path change

Переменная 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, но только для текущего пользователя:

Читайте также:  Sed linux вывести строку

Выводы

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

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

Источник

How To View and Update the Linux PATH Environment Variable

How To View and Update the Linux PATH Environment Variable

After installing a command-line program, you may only be able to run it in the same directory as the program. You can run a command-line program from any directory with the help of an environment variable called PATH .

The PATH variable contains a list of directories the system checks before running a command. Updating the PATH variable will enable you to run any executables found in the directories mentioned in PATH from any directory without typing the absolute file path.

For example, instead of typing the following to run a Python program:

Because the /usr/bin directory is included in the PATH variable, you can type this instead:

The directories are listed in priority order, so the ones that will be checked first are mentioned first.

In this tutorial, you will view the PATH variable and update its value.

Prerequisites

For an overview of environment variables, refer to the How To Read and Set Environmental and Shell Variables on Linux article.

Step 1 — Viewing the PATH Variable

You can view the PATH variable with the following command:

An unchanged PATH may look something like this (file paths may differ slightly depending on your system):

Output
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

Some directories are mentioned by default, and each directory in PATH is separated with a colon : . The system checks these directories from left to right when running a program.

When a command-line program is not installed in any of the mentioned directories, you may need to add the directory of that program to PATH .

Step 2 — Adding a Directory to the PATH Environment Variable

A directory can be added to PATH in two ways: at the start or the end of a path.

Adding a directory ( /the/file/path for example) to the start of PATH will mean it is checked first:

Adding a directory to the end of PATH means it will be checked after all other directories:

Multiple directories can be added to PATH at once by adding a colon : between the directories:

Читайте также:  Linux для виртуализации windows

Once the export command is executed, you can view the PATH variable to see the changes:

You will see an output like this:

Output
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/the/file/path

This method will only work for the current shell session. Once you exit the current session and start a new one, the PATH variable will reset to its default value and no longer contain the directory you added. For the PATH to persist across different shell sessions, it has to be stored in a file.

Step 3 — Permanently Adding a Directory to the PATH Variable

In this step, you will add a directory permanently in the shell configuration file, which is ~/.bashrc if you’re using a bash shell or ~/.zshrc if you’re using a zsh shell. This tutorial will use ~/.bashrc as an example.

First, open the ~/.bashrc file:

The ~/.bashrc file will have existing data, which you will not modify. At the bottom of the file, add the export command with your new directory:

Use the methods described in the prior section to clarify whether you want the new directory to be checked first or last in the PATH .

Save and close the file. The changes to the PATH variable will be made once a new shell session is started. To apply the changes to the current session, use the source command:

You can add new directories in the future by opening this file and appending directories separated by a colon : to the existing export command.

Conclusion

The PATH environment variable is a crucial aspect of command-line use. It enables you to run command-line programs, such as echo and python3 , from any directory without typing the full path. In cases where adding the directory to PATH isn’t part of the installation process, this tutorial provides the required steps. For more on environmental variables, see How To Read and Set Environmental and Shell Variables on Linux.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Источник

How to Change the Path Variable in Linux

wikiHow is a “wiki,” similar to Wikipedia, which means that many of our articles are co-written by multiple authors. To create this article, volunteer authors worked to edit and improve it over time.

This article has been viewed 221,348 times.

Operating systems commonly use environment variables to define various global settings for parts of your operating system or to control how applications run. The PATH variable is one of these environment variables and is constantly used without the user realizing it. The variable stores a list of directories where applications (most commonly, your shell) should look for a program whenever you run it as a command.

Читайте также:  Linux google web browser

Image titled Change the Path Variable in Linux Step 1

  • uzair@linux:~$ echo $PATH/home/uzair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games
  • Note: Linux $PATH responds with «:» separators between entries.

Image titled Change the Path Variable in Linux Step 2

Image titled Change the Path Variable in Linux Step 3

  • uzair@linux:~$ echo $PATH/home/uzair/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
  • Remember, the above is only temporary and will be lost at reboot.

Image titled Change the Path Variable in Linux Step 4

Image titled Change the Path Variable in Linux Step 5

Community Q&A

To change the PATH variable, type export PATH=»$PATH:/path/to/new/executable/directory». Or, if you want to make it permanent, edit the .bashrc to say something like this: # what this location has export PATH=»$PATH:/path/to/new/executable/directory»

Thanks! We’re glad this was helpful.
Thank you for your feedback.
As a small thank you, we’d like to offer you a $30 gift card (valid at GoNift.com). Use it to try out great new products and services nationwide without paying full price—wine, food delivery, clothing and more. Enjoy! Claim Your Gift If wikiHow has helped you, please consider a small contribution to support us in helping more readers like you. We’re committed to providing the world with free how-to resources, and even $1 helps us in our mission. Support wikiHow

Источник

How can I reset $PATH to its default value in Ubuntu?

I accidentally unset all the directories of $PATH while trying to add a new one in ~/.bashrc . I opened a new terminal window as I was editing and now $PATH is empty. I’m worried if I boot from another drive to find the $PATH I won’t be able to boot into this drive again. Basically, what is the default result of echo $PATH ?

~/.bashrc is the wrong place to set environment variables though. You should do that in ~/.profile instead.

Yes I figured it out. PATH is still fine in the other terminal window that was open before the new one, so just fixing the export line by adding :$PATH at the end restored the PATH. And yes in ~/.profile there is code to «set PATH so it includes user’s private bin if it exists» i.e. $HOME/bin

4 Answers 4

The answer to your question is:

and works on any POSIX compliant system. The selected answer is the correct way to augment the path without obliterating prior existing content. If you use bash, you might consider:

I had trouble using a lot of commands ( sed: No such file or directory type of trouble) after accidentally setting my PATH to nothing during a very long running process (i.e., I couldn’t restart). I couldn’t use getconf . To reset my path, I used $(export $(cat /etc/environment)»:/usr/bin/additional:/usr/bin/paths») . For the curious: /etc/environment is where the PATH variable is initially set in many Linux flavours.

That working would surprise me. Perhaps «export» without the surrounding «$(. )» stuff might, but it will be whatever happens to be there. Use «source /etc/..». Anyway, try «/usr/bin/getconf» if you cannot even find «getconf».

Источник

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