Alterando o prompt

3

Ok, então estou tentando criar um alias, que me permita definir o diretório atual no terminal, o diretório base a ser exibido no prompt. Vamos supor que o alias seja chamado basedir

Por exemplo:

andrepadez@theLookingGlass:~$ cd Shared  
andrepadez@theLookingGlass:~/Shared$ cd development/  
andrepadez@theLookingGlass:~/Shared/development$ cd nodejs/

agora, eu executaria esse alias e receberia o seguinte aviso:

andrepadez@theLookingGlass:~/Shared/development/nodejs$basedir
andrepadez@theLookingGlass:nodejs$

a partir de agora, toda vez que eu mudo para um diretório de redirecionamento, eu recebo os prompts:

andrepadez@theLookingGlass:nodejs$cd project1
andrepadez@theLookingGlass:nodejs/project1$cd static
andrepadez@theLookingGlass:nodejs/project1/static$cd ..
andrepadez@theLookingGlass:nodejs/project1$ ...

(eu realmente não ligo para o que acontece se eu voltar para as pastas por trás do meu diretório base)

Existe uma maneira de criar tal comando?
Eu encontrei algo próximo, mas sempre mostra apenas o diretório atual:

alias basedir="export PS1='\u@\h:\W$ '"

Obrigado

    
por André Alçada Padez 22.11.2012 / 19:16

1 resposta

4

No seu diretório home, há um arquivo oculto (começando com.) chamado .bashrc . Esse arquivo é executado sempre que você faz login e define itens como o prompt (variável de ambiente PS1 ) e alias es. A variável PS1 é definida em vários locais, dependendo do tipo de terminal que você está executando - altere todos ou apenas o que estiver usando. A configuração PS1 existente possui vários códigos que são expandidos para coisas como o caminho atual do diretório de trabalho (o \w ). Edite o arquivo .bashrc (você é o proprietário, portanto, nenhum sudo é necessário). Altere o \w onde quer que o 'PS1 esteja definido para:

${PWD#$BASE}  

Para definir o alias BASE , você pode adicioná-lo à seção # some more ls aliases no arquivo .bashrc . Seu valor é apenas o valor da variável PWD , então

export BASE="$PWD"  

(As aspas lidariam com as esquisitices como espaços em nomes de diretórios).

    
por ubfan1 22.11.2012 / 21:18

Tags