2013-02-17 2 views
6

Я относительно новичок в Linux и Unix. С помощью Интернета я наконец понял, как $PATH и псевдонимы в моей работе .bashrc.

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

Скажем, я установил Python3.3 в Library/Frameworks и исполняемый /Library/Frameworks/Python.framework/Versions/3.3/bin/python3, но я хочу, чтобы выполнить питона 3.3, просто набрав python3 в свой терминал.

Когда я правильно понимаю, есть (по крайней мере) три способа для достижения этой цели:

1) Я изменяю $ PATH в моем .bashrc:

export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH} 

2) Я установил псевдоним в моем .bashrc:

alias python3=/Library/Frameworks/Python.framework/Versions/3.3/bin 

3) создание символической ссылки (символьная ссылка):

ln -s /Library/Frameworks/Python.framework/Versions/3.3/bin /usr/local/bin 

Что бы вы сказали (из своего опыта), это «рекомендуемый» способ?

+1

Я не думаю, что ваш '' alias' и пер -s' команды являются правильными. Вероятно, вы хотите, чтобы все они использовали 'bin/python3' не просто'/bin' – FoolishSeth

+0

И вы могли бы также добавить 'function' в свой' .bashrc' –

+0

, спасибо, вы правы, это должно быть определенно '... bin/python3' – 2013-02-17 16:02:58

ответ

7

Помещение python3 на ваш путь - это правильный способ вызвать его в любом месте, где бы вы ни находились в своей файловой системе. Символическая ссылка - лучший способ изменить эту команду на python и сохранить ваши сценарии не зависящими от версии (вы можете запустить скрипт, который зависит от python, использовать символическую ссылку и скрипт, для которого python 3.0 специально использует python3, даже если на вашем компьютере они - одно и то же). Символические ссылки по-прежнему являются файлами в вашей файловой системе, поэтому они все равно должны быть на вашем пути.

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

Также символические ссылки хранятся в файловой системе, поэтому после их создания они существуют для всех других пользователей, которые входят в систему, а псевдонимы применяются только к зарегистрированному пользователю, который их определил. Они также могут иметь права доступа к файлам.

Здесь a fun article о вещах, которые вы можете сделать для своего терминала через свой .bash_profile, включая некоторые большие псевдонимы.

+0

Ссылка на интересную статью теперь должна быть: http://digitalformula.net/articles/pimp-my-prompt-like-paul-irish/4/ (но редактирование ответа не работает, потому что редактирование <6 символов). – user766353

+0

К сожалению, об этом. Это отличная статья, рада видеть, что ссылка снова работает. –

0

Я бы предложил пойти для псевдонима, который облегчил бы возникновение конфликтов, если бы вы использовали разные версии Python. Оболочка будет искать переменную PATH и везде, где она соответствует исполняемому файлу Python, она выполнит ее. Псевдоним должен быть помещен в ваш профиль оболочки, например, .bash_profile.

+1

Я думаю, что символьная ссылка в 'PATH' лучше, чем псевдоним, вам не нужно создавать свой профиль bash при изменении приложения по умолчанию. –

4

Во-первых, нет оснований устанавливать Python в каталоге /Library/Frameworks/. Мое предложение состоит в том, что (по крайней мере, для новичков) вы не должны добавлять каталоги верхнего уровня, такие как ваш /Library.Если вы собираете его из исходного кода, вы должны иметь built it со стандартным ./configure (и это, вероятно, идет в /usr/local/)

Я не знаю, хорошо о компиляции Python из исходного кода, но большинство Linux исходного кода получает по умолчанию ./configure -d к /usr/local/ приставки, так что их двоичному идти в /usr/local/bin/, который часто уже по умолчанию в вашем PATH

некоторых дистрибутивов Linux имеет /etc/profile, косвенно, если каталог $HOME/bin/ существует, добавляет ее внутри PATH; в этом случае просто добавление двоичных файлов и скриптов (или символических ссылок) - самый простой способ.

Мой общий совет - избегать очень длинного или очень специфического PATH. В частности, добавление каталога в ваш PATH для каждого продукта является ошибкой IMHO. См. directory-variables section of GNU coding standards, и держите ваш PATH довольно короткий. Лично я добавляю программы только в /usr/local/bin/ (общесистемный) или в $HOME/bin/, возможно, в качестве символических ссылок (поэтому я не меняю свой PATH, так как он уже содержит /usr/local/bin/ и $HOME/bin).

По прошлому опыту, имеющий очень долго PATH это кошмар, и замедляет ваши интерактивные оболочки

+0

Спасибо, это было очень полезно, я постараюсь, чтобы мой путь был коротким. Для установки Python: я мало что знал о Linux/Unix на этом этапе и просто загрузил установщик MacOSX для Python 3.3 с официального сайта python, и это было местом установки по умолчанию. – 2013-02-17 16:10:24

0

Спасибо всем за ваши объяснения.

Как я уже сказал, я довольно новичок в Unix и Linux. Я просто написал статью об этих вещах (псевдонимы, символические ссылки $ PATH) для моего блога для других «новичков». Мне нравится писать об этих вещах, потому что они действительно меня интересуют, и я хочу поделиться своим опытом - я надеюсь, что они полезны и для других людей. Кроме того, это помогает мне углубить свое понимание, если я должен объяснять вещи - и это тоже хорошее будущее!

Было бы неплохо, если бы вы могли быстро пересмотреть статью, и если у меня что-то не так, я был бы очень доволен предложениями!

http://scientific-ocean.com/2013/02/17/an-introduction-to-linuxunix-executables-path-aliases-and-symlinks/

Смежные вопросы