Pregunta ¿Por qué mi sistema Linux repite cada comando que escribo?


Estoy usando un sistema Ubuntu Linux, y cada comando que ingreso se muestra en la línea siguiente, seguido de la salida del comando. Por ejemplo:

root@dpkube165:~# ls
ls  <--- why is this here?
Desktop  Documents  Downloads 

root@dpkube165:~# date
date  <--- or this?
Mon Mar 19 11:24:59 EDT 2018

root@dpkube165:~# echo "Hello, world!"
echo "Hello, world!" <--- or this?
Hello, world!

Pensé que podría tener que ver con el mensaje, que es el siguiente (PS1):

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

pero revisar las guías en línea para obtener secuencias de escape no resultó ser obvio.


55


origen


También parece haber iniciado sesión como root. ¡No hagas eso! - Toby Speight
Sí, sé que para evitar rootear la mayor parte del tiempo. Esto se realiza en una VM en un entorno de prueba desechable donde se requiere root. - Chad
@TobySpeight esto es trillado, consejo de memoria. - rackandboneman
@TobySpeight En serio, no presiones eso como una regla absoluta. Dime, ¿qué pasa con el uso sudo -i ejecutar una serie de comandos de nivel de raíz? Especialmente cuando estoy depurando algo? - Duncan X Simpson
@TobySpeight si no tienes tiempo para explicarte, no le des un "consejo" general que a menudo no es útil. - Tim


Respuestas:


Parece que tienes -v establecer (algo se está ejecutando set -v)

Para revertir esto, ejecuta set +v.

set [--abefhkmnptuvxBCEHPT] [-o option-name] [arg ...]
set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...]
       Without  options, the name and value of each shell variable are displayed in a
       format that can be reused as input for setting or resetting the currently-set
       variables. Read-only variables cannot be reset. In posix mode, only shell
       variables are  listed. The output is sorted according to the current locale.
       When options are specified, they set or unset shell attributes. Any arguments
       remaining after option processing are treated as values for the positional
       parameters and are assigned, in order, to $1, $2, ...  $n.  Options, if
       specified, have the following meanings:

[...]

-v      Print shell input lines as they are read.

Ver el bash página de manual (bajo la "Comandos Builtin de Shell"sección) para más información sobre set comando incorporado.

Alternativamente ejecutar help set desde adentro bash para un acceso más directo al texto de ayuda.


89



¡Sí! Como una alternativa un poco más conveniente para excavar man bash, tú también puedes help set. - ravron
Usted leyenda ... El tiempo que pasé desplazándome en el bash página de hombre ... ¡gracias! - Attie
Mi primer comando después de comenzar un bash que no me pertenece es siempre set -o vi. Mistype que como set -ovi y obtendrás el comportamiento anterior. - Guntram Blohm
en cuanto al Por qué - Sospecho que hay un script que se origina (es decir, "./scipnombre" en lugar de simplemente "./scriptname") que luego sale antes de que se anule -v, es decir, al final debería "establecer + v" - jmullee
Por cierto, encuentro set -x más útil para el registro, o la depuración de cosas que no sean control-flow, porque expande las variables para mostrar qué comandos son actualmente ejecutarse, p. echo foo en lugar de echo $my_string - Peter Cordes


Al menos en Bash 4.3, este comando tiene un efecto similar a set -v:

trap 'echo "$BASH_COMMAND"' DEBUG

Para verificar si esto te afecta, ejecuta

trap -p DEBUG

Para desarmarlo, ejecuta

trap - DEBUG

11