Tentando criar um alias no Ubuntu 12.10 mas não está funcionando

3

Estou tentando criar um alias e adicionei essa linha em ~/.bash_aliases :

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

alias ssh-saad='ssh saad@<my-server>' <my-server> é substituído pelo endereço IP do meu servidor. Então, no meu arquivo ~/.bashrc , essas linhas não são comentadas

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

e no meu ~/.profile :

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

Acredito que sempre que eu inicio o terminal, meus aliases devem funcionar. No entanto, a menos que eu execute o comando source ~/.bash_aliases , não está funcionando. Além disso, para o primeiro server-python alias, estou recebendo um erro:

Couldn't get a file descriptor referring to the console

Eu olhei para estas soluções aqui:
Como criar uma permanente " alias "?
Alias do Ubuntu não aplicado em bashrc

mas ainda não consegue fazê-lo funcionar. Eu realmente apreciaria se alguém pudesse apontar para mim o que estou fazendo errado. Eu sei que o problema é muito trivial, mas devo estar perdendo alguma coisa.

Agora corrijo o erro

Couldn't get a file descriptor referring to the console

usando sensible-browser em vez de open :

alias server-python='sensible-browser http://localhost:8000 && python -m SimpleHTTPServer'
    
por Saad 13.12.2012 / 07:11

2 respostas

2

Eu finalmente encontrei uma solução adequada para esse problema. se houver um arquivo ~/.bash_login e não estiver vazio, o arquivo ~/.bashrc não será carregado automaticamente quando abrirmos o shell. Se movermos esse ~/.bash_login

mv ~/.bash_login ~/.bash_login_old

o arquivo ~/.bashrc será carregado e também o arquivo ~/.bash_aliases , se as seguintes linhas não forem comentadas no arquivo ~/.bashrc .

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

Uma outra solução que posso imaginar é que se você não quiser renomear ou excluir o arquivo ~/.bash_login , o que você pode fazer é quando estiver no shell, basta digitar este comando bash e ele carregará o ~/.bashrc file.

    
por Saad 16.12.2012 / 13:24
0

"open" no ubuntu é /bin/open , descrito por open -h as "Este utilitário ajuda você a iniciar um programa em um novo terminal virtual (VT)."

Você é a coisa mais geral do que o sensible-browser e é gnome-open , que não é instalado por padrão (mais?), e é fornecido pelo 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

Eu acho o gnome open tão útil que tenho o seguinte no meu (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

que permitiria que você fizesse:

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

e funcionaria na maioria dos lugares.

    
por quodlibetor 13.12.2012 / 20:17

Tags