Я пытаюсь создать псевдоним, и я добавил эту строку в ~/.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'
«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"
, и он будет работать в большинстве мест.
Я наконец нашел одно подходящее решение для этой проблемы. если есть файл ~/.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
.