Попытка создать псевдоним в Ubuntu 12.10, но он не работает

Я пытаюсь создать псевдоним, и я добавил эту строку в ~/.bash_aliases:

alias server-python='open http://localhost:8000 && python -m SimpleHTTPServer'

alias ssh-saad='ssh saad@<my-server>' <my-server> заменяется IP-адресом моего сервера. Итак, в моем файле ~/.bashrc эти строки не закомментированы

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

, а в моем ~/.profile:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

я считаю, что всякий раз, когда я запускаю терминал, мои псевдонимы должны работать. Однако, если я не выполню команду source ~/.bash_aliases, она не будет работать. Кроме того, для первого псевдонима server-python я получаю сообщение об ошибке:

Couldn't get a file descriptor referring to the console

Я рассмотрел эти решения здесь:
Как создать постоянный & quot; псевдоним & quot; ?
Псевдоним Ubuntu не применяется в bashrc

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


Теперь я исправил ошибку

Couldn't get a file descriptor referring to the console

, используя sensible-browser вместо open:

alias server-python='sensible-browser http://localhost:8000 && python -m SimpleHTTPServer'
3
задан 23 March 2018 в 09:24

2 ответа

«open» в ubuntu - это /bin/open, описываемое open -h как «Эта утилита поможет вам запустить программу на новом виртуальном терминале (VT)».

Вы более общая вещь, чем Sensible-browser - это gnome-open, который не установлен по умолчанию (больше?) и предоставляется libgnome2-bin:

$ sudo-apt-get install libgnome2-bin
$ gnome-open https://google.com    # opens https://google.com in default browser
$ gnome-open config.txt   # opens config.txt in gedit

Я считаю, что gnome open настолько полезен, что у меня есть следующее в моем (multi-site) bashrc:

if which gnome-open >/dev/null ; then
    alias o=gnome-open
elif which kde-open >/dev/null ; then
    alias o=kde-open
elif which xdg-open >/dev/null ; then
    alias o=xdg-open
fi

, который позволит вам сделать:

alias server-python="o http://localhost:8000 && python -m SimpleHTTPServer"

, и он будет работать в большинстве мест.

0
ответ дан 23 March 2018 в 09:24

Я наконец нашел одно подходящее решение для этой проблемы. если есть файл ~/.bash_login и он не пустой, то файл ~/.bashrc не загружается автоматически при открытии оболочки. Если мы переместим этот ~/.bash_login

mv ~/.bash_login ~/.bash_login_old

, тогда будет загружен файл ~/.bashrc, а также файл ~/.bash_aliases, если в файле ~/.bashrc не закомментированы следующие строки.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Еще одно решение, которое я могу придумать, - это если вы не хотите переименовывать или удалять файл ~/.bash_login, то, что вы можете сделать, это когда вы находитесь в оболочке, просто наберите эту команду bash, и она загрузит файл ~/.bashrc.

0
ответ дан 23 March 2018 в 09:24

Другие вопросы по тегам:

Похожие вопросы: