Questão Como eu só exibo o diretório base no meu terminal Ubuntu?


No Ubuntu 10.04 Terminal, quando percorro uma longa estrutura de diretórios, todo o caminho é exibido, o que leva a muito desperdício de espaço no meu terminal, onde o cursor vem para a direita. Está causando muita irritação. Qualquer maneira de exibir apenas o diretório base.

Atualmente - ops@ops:/media/Main320/final_code/code/office/c/practice/parsers/proj1$ 

Necessidade - ops@ops:~/proj1$

Eu tenho certeza que é alguma alteração de configuração ou algumas mudanças de preferências de perfil. Alguém...


4


origem


Por favor, pergunte isso Aqui onde você provavelmente obterá ajuda mais específica do que no SuperUser. - Nathan Osman
@george donno tal coisa existia! Vai fazer isso. Obrigado...
possível duplicata de Desafio de código: Encurtador de caminho de prompt do Bash - Dennis Williamson


Respostas:


Mudando o Bash, o prompt é fácil. Apenas atribua um novo valor ao PS1:

PS1="myprompt : "

Agora, o novo prompt será semelhante

myprompt:

O Bash permite que strings de prompt sejam customizadas inserindo-se um número de caracteres especiais com escape de barra invertida que são decodificados da seguinte forma:

* \a : an ASCII bell character (07)
* \d : the date in "Weekday Month Date" format (e.g., "Tue May 26")
* \D{format} : the format is passed to strftime(3) and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required
* \e : an ASCII escape character (033)
* \h : the hostname up to the first '.'
* \H : the hostname
* \j : the number of jobs currently managed by the shell
* \l : the basename of the shell’s terminal device name
* \n : newline
* \r : carriage return
* \s : the name of the shell, the basename of $0 (the portion following the final slash)
* \t : the current time in 24-hour HH:MM:SS format
* \T : the current time in 12-hour HH:MM:SS format
* \@ : the current time in 12-hour am/pm format
* \A : the current time in 24-hour HH:MM format
* \u : the username of the current user
* \v : the version of bash (e.g., 2.00)
* \V : the release of bash, version + patch level (e.g., 2.00.0)
* \w : the current working directory, with $HOME abbreviated with a tilde
* \W : the basename of the current working directory, with $HOME abbreviated with a tilde
* \! : the history number of this command
* \# : the command number of this command
* \$ : if the effective UID is 0, a #, otherwise a $
* \nnn : the character corresponding to the octal number nnn
* \\ : a backslash
* \[ : begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
* \] : end a sequence of non-printing characters

Como exemplo, vamos criar uma string de prompt que exibe a data e o nome do host de hoje:

PS1="\d \h $ "

Saída é como

Dom setembro 04 ubuntu $

Quando você está feliz com a sua string de prompt, você pode torná-lo o prompt padrão, mesmo após a reinicialização, definindo o PS1 var em .bashrc


6



Você pode até mesmo incorporar comandos / scripts via backticks ou $(): PS1='`fortune` $'. Eu tenho o meu configurado para que quando eu estou em um diretório git controlado analisa git branch para me dizer em qual ramo estou atualmente.


Como @ nkr1pt disse, você quer definir PS1

PS1 = '\ u @ \ h \ W \ $'

Verifique também a configuração da variável env PROMPT_COMMAND, que é um comando que é executado toda vez que o bash imprime um prompt. Eu tenho o meu definido para:

PROMPT_COMMAND='echo -ne "\e]0;$USER@${HOSTNAME%%.*}: $(pwd -P)\a"'

Obviamente, com USER e HOSTNAME definido em outro lugar. Isso coloca um caminho completo no título do seu termo.


1





Bash 4 tem uma variável chamada PROMPT_DIRTRIM

user@host:~$ echo $PS1
\u@\h:\w\$
user@host:~$ cd /usr/share/doc/bash/examples
dennis@emperor:/usr/share/doc/bash/examples$ PROMPT_DIRTRIM=2
dennis@emperor:.../bash/examples$

que define o número mínimo de elementos de diretório a serem exibidos.


1





Você pode usar o link simbólico

ln -s /media/Main320/final_code/code/office/c/practice/parsers/proj1 ~/proj1
cd ~/proj1

0