En uno de mis servidores, el mensaje es [usuario @ ruta de host] ... y en realidad puedo presionar "tab" para completar automáticamente la ruta.
Pero en mi nuevo servidor Ubuntu, ¿es solo un signo de dólar?
En uno de mis servidores, el mensaje es [usuario @ ruta de host] ... y en realidad puedo presionar "tab" para completar automáticamente la ruta.
Pero en mi nuevo servidor Ubuntu, ¿es solo un signo de dólar?
Respuestas:
Como estás haciendo dos preguntas, responderé ambas.
Debido a que su shell no lo admite o la finalización de la pestaña no está activada.
Para resolver esto, primero debe descubrir cuál es su shell. En la máquina cuyo shell disfrutas, corre
echo $SHELL
Puede ver lo común /bin/bash
, o algo menos común /bin/tcsh
, /bin/zsh
o algo completamente diferente.
Ahora, puede cambiar su shell en la máquina Ubuntu. En esa máquina, primero asegúrese de que existe el shell que desea. Dado que el shell puede no estar en la misma ubicación en la máquina Ubuntu que en la otra, verifique la ubicación escribiendo
which bash
Esto le dará el camino de la cáscara que desee, algo así como /bin/bash
, /usr/bin/bash
o /usr/local/bin/bash
. Por supuesto, si quieres una cáscara distintos de fiesta, que va a decir which tcsh
, which zsh
o similar.
Si no ve una ruta, pero en su lugar ve bash not found
, deberá instalar el paquete apropiado y volver a utilizarlo which
para averiguar dónde se instaló el shell.
Con el camino de su shell elegido, finalmente puede cambiar su shell ejecutando
chsh -s /bin/bash
reemplazando /bin/bash
con cualquiera que sea el camino apropiado para su caparazón de elección.
Debido a las variables de entorno rápidas $PS1
, $PS2
y así sucesivamente. Estas cosas no tienden a ser portátiles entre los shells, así que aquí hay algunos enlaces para posibles candidatos:
bash
tiene un extenso manual , con páginas sobre Variables Bash (incluyendo PS1
, & c) e Imprimiendo un Aviso (que describe PROMPT_COMMAND
, el nombre largo para PS1
). Agregue la siguiente línea a su~/.bashrc
export PS1='[\u@\h \w] '
tcsh
tiene un manual en línea (solo su página de manual), con una sección sobre las variables de entorno de solicitud . Agregue la siguiente línea a su~/.tcshrc
set prompt='[%n@%m %~] '
zsh
tiene una guía del usuario , con una guía simple de avisos , así como un manual , con una referencia muy detallada sobre Expansión de avisos . Agregue la siguiente línea a su~/.zshrc
export PS1='[%n@%m %~] '
Bash no es el único caparazón.
Su problema podría ser una simple cuestión de no tener un .profile o .bashrc que establezca PS1, o podría ser que su shell de inicio de sesión no sea bash en absoluto.
Bash se usa gnu readline
para cosas como completar pestañas. Este es un tema complicado y readline incluso tiene su propio archivo de configuración por usuario.
Ver man bash
, man sh
y man 3 readline
. Bash responde --version
. En muchos sistemas Linux, en /bin/sh
realidad no es bash, pero generalmente es una versión paralizada de ash
.
dash
lugar de ash
? pensé que había leído algo como esto
Supongo que no estás usando bash, pero sh y tu prompt no está configurado correctamente (si esto es posible con sh).
puede obtener su shell actual escribiendo: echo $SHELL
si quieres comenzar bash, solo escribe bash
sh
. Echoing $SHELL
imprimirá una variable de entorno llamada SHELL
. Esta variable de entorno simplemente apunta al shell, y solo se establece mediante bash. Es aproximadamente inútil determinar qué shell se está ejecutando, ya que solo indica, débilmente, que algún padre del proceso actual puede haber sido bash.
/bin/sh
sí. Pero no conozco ningún shell cuyo nombre sea sh
. No puedo pensar en ash
, ksh
, csh
, bash
, zsh
, y tcsh
. El primero es el habitual / bin / sh en Linux y NetBSD, el último es el habitual shell de FreeBSD y los otros son shells opcionales. Muchos entornos de escritorio cambian el shell de inicio de sesión de los usuarios a bash mientras dejan / bin / sh como ceniza.
sh
es el shell Bourne. es.wikipedia.org/wiki/Bourne_shell Algunos sistemas (Solaris) todavía vienen con una versión de Bourne Shell que no es solo una copia de una de las implementaciones (ash, dash, bash, ksh, zsh).
Debe establecer una variable llamada PS1 en uno de sus scripts de inicio de sesión, por ejemplo / etc / profile o ~ / .bashrc. Dependerá de su distribución.
Ejemplo: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
pwd
para imprimir el nombre del directorio de trabajo actual. ¿Y estás diciendo que la finalización de tabulación tampoco funciona? (En algunas máquinas que uso, recibo ese breve mensaje solo si inicio sesión como root, y felizmente lo dejo en su lugar como una buena advertencia. Como rara vez, si alguna vez, necesita iniciar sesión como root: no está utilizando root , ¿y tú?)