Em um dos meus servidores, o prompt é [user @ host path] ... e eu posso realmente pressionar "tab" para preencher automaticamente o caminho.
Mas no meu novo servidor Ubuntu, é apenas um cifrão?
Em um dos meus servidores, o prompt é [user @ host path] ... e eu posso realmente pressionar "tab" para preencher automaticamente o caminho.
Mas no meu novo servidor Ubuntu, é apenas um cifrão?
Respostas:
Como você está fazendo duas perguntas, eu responderei as duas.
Como o shell não é compatível ou a conclusão da guia não está ativada.
Para resolver isso, primeiro você precisa descobrir qual é o seu shell. Na máquina cujo shell você gosta, execute
echo $SHELL
Você pode ver o comum /bin/bash
, ou algo menos comum /bin/tcsh
, /bin/zsh
ou algo completamente diferente.
Agora, você pode alterar seu shell na máquina Ubuntu. Nessa máquina, primeiro verifique se o shell que você deseja existe. Como o shell pode não estar no mesmo local na máquina Ubuntu e no outro, verifique o local digitando
which bash
Isto lhe dará o caminho do shell que você quer, algo como /bin/bash
, /usr/bin/bash
ou /usr/local/bin/bash
. Claro, se você quer um shell diferente do bash, você vai dizer which tcsh
, which zsh
ou similar.
Se você não vir um caminho, mas sim bash not found
, então precisará instalar o pacote apropriado e usar novamente which
para descobrir onde o shell foi instalado.
Com o caminho do seu shell escolhido, você pode finalmente mudar seu shell executando
chsh -s /bin/bash
substituindo /bin/bash
por qualquer que seja o caminho apropriado para o seu shell de escolha.
Por causa de suas variáveis de ambiente rápidas $PS1
, $PS2
e assim por diante. Como essas coisas não costumam ser portáveis entre as conchas, aqui estão alguns links para possíveis candidatos:
bash
possui um manual extenso , com páginas sobre variáveis bash (incluindo PS1
, etc.) e Printing a Prompt (que descreve PROMPT_COMMAND
o nome longo para PS1
). Adicione a seguinte linha ao seu~/.bashrc
export PS1='[\u@\h \w] '
tcsh
possui um manual on - line (apenas sua página de manual ), com uma seção sobre variáveis de ambiente de prompt . Adicione a seguinte linha ao seu~/.tcshrc
set prompt='[%n@%m %~] '
zsh
possui um guia do usuário , com um guia simples de prompts e um manual , com uma referência muito detalhada sobre expansão de prompt . Adicione a seguinte linha ao seu~/.zshrc
export PS1='[%n@%m %~] '
Bash não é a única concha.
Seu problema pode ser uma simples questão de não ter um .profile ou .bashrc que defina o PS1, ou pode ser que o seu shell de logon não seja de todo.
O Bash usa gnu readline
para coisas como conclusão de guias. Este é um assunto complicado e a linha de leitura ainda tem seu próprio arquivo de configuração por usuário.
Ver man bash
, man sh
e man 3 readline
. Bash responde --version
. Em muitos sistemas linux, /bin/sh
não é realmente bash, mas geralmente uma versão aleijada do ash
.
dash
vez de ash
? eu pensei que eu li algo assim
Eu acho que você não está usando o bash, mas sh e seu prompt não está definido corretamente (se isso é possível com sh).
você pode obter seu shell atual digitando: echo $SHELL
se você deseja iniciar o bash, basta digitar bash
sh
. O eco $SHELL
imprimirá uma variável de ambiente chamada SHELL
. Essa variável de ambiente simplesmente aponta para o shell e é definida apenas pelo bash. É praticamente inútil determinar qual shell está sendo executado, pois apenas indica, fracamente, que algum pai do processo atual pode ter sido danificado.
/bin/sh
sim. Mas não conheço nenhuma concha cujo nome seja sh
. Eu posso pensar de ash
, ksh
, csh
, bash
, zsh
, e tcsh
. O primeiro é o usual / bin / sh no linux e no NetBSD, o último é o shell FreeBSD usual, e os outros são shells opcionais. Muitos ambientes de desktop alteram o shell de login do usuário para bash, deixando / bin / sh como ash.
sh
é o shell Bourne. pt.wikipedia.org/wiki/Bourne_shell Alguns sistemas (Solaris) ainda vêm com uma versão do shell Bourne que não é apenas uma cópia de uma das reimplementações (ash, dash, bash, ksh, zsh).
Você precisa definir uma variável chamada PS1 em um dos seus scripts de login, por exemplo / etc / profile ou ~ / .bashrc. Depende da sua distribuição.
Exemplo: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
pwd
para imprimir o nome do diretório de trabalho atual. E você está dizendo que o preenchimento de guias também não está funcionando? (Em algumas máquinas que eu uso, recebo esse breve prompt apenas se eu fizer login como root e, felizmente, deixo isso como um bom aviso. Como raramente, se é que alguma vez, é necessário fazer login como root: você não está usando root , é você)?