Su uno dei miei server, il prompt è [percorso utente @ host] ... e posso effettivamente premere "tab" per riempire automaticamente il percorso.
Ma sul mio nuovo server Ubuntu, è solo un segno di dollaro?
Su uno dei miei server, il prompt è [percorso utente @ host] ... e posso effettivamente premere "tab" per riempire automaticamente il percorso.
Ma sul mio nuovo server Ubuntu, è solo un segno di dollaro?
Risposte:
Dato che stai ponendo due domande, risponderò ad entrambe.
Poiché la shell non lo supporta o il completamento della scheda non è attivato.
Per risolvere questo, devi prima scoprire qual è la tua shell. Sulla macchina di cui ti piace la shell, corri
echo $SHELL
Potresti vedere il comune /bin/bash, o qualcosa di meno comune /bin/tcsh, /bin/zsho qualcos'altro del tutto.
Ora puoi cambiare la shell sulla macchina Ubuntu. Su quella macchina, assicurati innanzitutto che la shell desiderata esista. Poiché la shell potrebbe non trovarsi nella stessa posizione sul computer Ubuntu dell'altra, controllare la posizione digitando
which bash
Questo vi darà il percorso della shell che si desidera, qualcosa di simile /bin/bash, /usr/bin/basho /usr/local/bin/bash. Naturalmente, se si vuole una shell diversa da bash, direte which tcsh, which zsho simili.
Se non vedi un percorso, ma invece vedi bash not found, allora dovrai installare il pacchetto appropriato e usarlo di nuovo whichper scoprire dove è stata installata la shell.
Con il percorso della shell prescelta, puoi finalmente cambiare la shell eseguendo
chsh -s /bin/bash
sostituendo /bin/bashcon qualunque sia il percorso appropriato per la tua shell preferita.
A causa delle variabili di ambiente tempestive $PS1, $PS2e così via. Queste cose non tendono ad essere portatili tra le shell, quindi ecco alcuni link per i probabili candidati:
bashha un ampio manuale , con pagine sulle variabili Bash (incluso PS1, ecc.) e Stampa di un prompt (che descrive PROMPT_COMMANDil nome lungo per PS1). Aggiungi la seguente riga alla tua~/.bashrc
export PS1='[\u@\h \w] '
tcshha un manuale online (solo la sua pagina man), con una sezione sulle variabili d'ambiente del prompt . Aggiungi la seguente riga alla tua~/.tcshrc
set prompt='[%n@%m %~] '
zshha una guida per l'utente , con una semplice guida alle istruzioni , nonché un manuale , con un riferimento molto dettagliato sull'espansione rapida . Aggiungi la seguente riga alla tua~/.zshrc
export PS1='[%n@%m %~] '
Bash non è l'unica shell.
Il tuo problema potrebbe essere una semplice questione di non avere un .profile o .bashrc che imposta PS1, o potrebbe essere che la tua shell di accesso non sia affatto bash.
Bash usa gnu readlinecose come il completamento delle schede. Questo è un argomento complicato e readline ha anche il suo file di configurazione per utente.
Vedi man bash, man she man 3 readline. Bash risponde a --version. Su molti sistemi Linux, in /bin/shrealtà non è bash, ma di solito una versione paralizzata di ash.
dashinvece di ash? pensavo di aver letto qualcosa del genere
suppongo che non stai usando bash, ma sh e il tuo prompt non è impostato correttamente (se ciò è possibile anche con sh).
puoi ottenere la tua shell corrente digitando: echo $SHELL
se vuoi iniziare bash, basta digitare bash
sh. L'eco $SHELLstamperà una variabile d'ambiente chiamata SHELL. Questa variabile d'ambiente punta semplicemente alla shell ed è impostata solo da bash. È quasi inutile nel determinare quale shell è in esecuzione, poiché indica, debolmente, che alcuni genitori del processo corrente potrebbero essere stati bash.
/bin/shsì. Ma non conosco nessuna shell il cui nome è sh. Mi viene in mente ash, ksh, csh, bash, zsh, e tcsh. Il primo è il solito / bin / sh su Linux e NetBSD, l'ultimo è la solita shell di FreeBSD, e gli altri sono shell opzionali. Molti ambienti desktop cambiano la shell di login degli utenti in bash lasciando / bin / sh come ash.
shè la shell Bourne. en.wikipedia.org/wiki/Bourne_shell Alcuni sistemi (Solaris) sono ancora dotati di una versione della shell Bourne che non è solo una copia di una delle implementazioni (ash, dash, bash, ksh, zsh).
Devi impostare una variabile chiamata PS1 su uno dei tuoi script di accesso, ad esempio / etc / profile o ~ / .bashrc. Dipenderà dalla tua distribuzione.
Esempio: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
pwdper stampare il nome della directory di lavoro corrente. E stai dicendo che neanche il completamento con Tab non funziona? (Su alcune macchine che utilizzo, ricevo quel breve prompt solo se eseguo il login come root e li lascio felicemente sul posto come un bel avvertimento. Come raramente, se mai, è necessario accedere come root: non si sta usando root , vero?)