Como renomear o diretório de trabalho atual do shell [duplicado]

2

Estou usando o terminal gnome. Costumo trabalhar em grandes projetos onde há muitos subdiretórios e tenho que compilá-los a partir do terminal. É muito problemático trabalhar com o prompt de terminal de caminho longo enquanto você tem um monitor.

Suponha que você esteja em um diretório,

sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$

Agora, enquanto eu estiver usando o terminal, há algum truque ou atalho para tornar o endereço atual uma string ou texto fictício para facilitar o trabalho. Como se eu quisesse mostrar o endereço acima como

sbmaruf@lenovo:proj1$

em que proj1 = /sys/dev/block/7:6/bdi/subsystem/7:7/power . Eu quero fazer isso em movimento. como enquanto eu estiver usando o terminal posso fazê-lo em um curto período de trabalho.

    
por Maruf 19.12.2017 / 21:00

2 respostas

4

Você pode adicionar esse recurso ao seu shell modificando seu arquivo ~/.bashrc .

Supondo uma configuração padrão, no seu arquivo ~/.bashrc altere a definição de PS1 , que é o prompt, de:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$ '
fi

para o seguinte:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]${PROMPT:-\w}\[3[00m\]$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:${PROMPT:-\w}$ '
fi

Você está substituindo os dois \w s por ${PROMPT:-\w} .

Em uma string de prompt, o \w significa o diretório atual. O ${VAR:-VALUE} significa usar VALUE, a menos que a variável VAR esteja definida e não seja nula. Portanto, é possível sobrescrever a exibição do diretório atual enquanto uma variável do shell é configurada.

Agora você pode definir o alias com:

sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$ PROMPT=proj1
sbmaruf@lenovo:proj1$

E desmarque com:

sbmaruf@lenovo:proj1$ unset PROMPT

Ou defina como nulo:

sbmaruf@lenovo:proj1$ PROMPT=
sbmaruf@lenovo:/sys/dev/block/7:6/bdi/subsystem/7:7/power$
    
por Martin Thornton 19.12.2017 / 22:42
2

Se o seu prompt usar pwd , você poderá definir um link simbólico, por exemplo, no seu diretório pessoal: ln -s /sys/dev/block/7:6/bdi/subsystem/7:7/power ~/proj1 .

Em seguida, cd ~/proj1 e seu prompt deve se tornar (quase) o que você deseja, ou seja, sbmaruf@lenovo:~/proj1$

    
por muclux 19.12.2017 / 21:09