GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo evitar guardar comandos Bash *con* espacio al frente?

Lo leí, para no guarde los comandos de bash en .bash_history , pones un espacio delante. Esto funcionó en todas mis PC con Linux integrado pero no en mi escritorio con Ubuntu 18.04 LTS. Solo pensé que era una "peculiaridad" de Ubuntu o algo así. Ahora instalé una segunda PC con Ubuntu 18.04 LTS y funciona como se esperaba:¡los comandos con un espacio al frente no se guardan!

Entonces, posiblemente haya algún problema con la primera PC con Ubuntu 18.04 LTS. ¿Cómo puedo averiguar qué está causando esto y solucionarlo para que no lo haga? guardar comandos bash con espacio al frente?

Extracto:

[email protected]:~$ tail -n 5 .bash_history 
./deploy.sh 
./deploy.sh 
upd
 man ls
nano .bash_history 
[email protected]:~$ 

Cosas posiblemente útiles:

[email protected]:~$ cat .bashrc 
alias upd="sudo apt update && sudo apt upgrade && sudo apt autoremove"
export PATH="$PATH:"/opt/microchip/xc8/v1.44/bin""

[email protected]:~$ printenv
CLUTTER_IM_MODULE=xim
LC_MEASUREMENT=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
XDG_MENU_PREFIX=gnome-
KIGITHUB=https://github.com/KiCad
LANG=en_US.UTF-8
MANAGERPID=1252
DISPLAY=:0
INVOCATION_ID=26457eadc1b8429692b7f3bd70c6464f
UNITY_DEFAULT_PROFILE=unity
COMPIZ_CONFIG_PROFILE=ubuntu
GTK2_MODULES=overlay-scrollbar:overlay-scrollbar
GTK_CSD=0
COLORTERM=truecolor
ZEITGEIST_DATA_PATH=/home/mark/.local/share/zeitgeist
USERNAME=mark
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
MANDATORY_PATH=/usr/share/gconf/unity.mandatory.path
LC_NAME=en_US.UTF-8
USER=mark
DESKTOP_SESSION=unity
QT4_IM_MODULE=xim
TEXTDOMAINDIR=/usr/share/locale/
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/24f3cfef_6815_4cfb_8cdc_6c63814db4b6
DEFAULTS_PATH=/usr/share/gconf/unity.default.path
PWD=/home/mark
HOME=/home/mark
JOURNAL_STREAM=9:1719321
TEXTDOMAIN=im-config
QT_ACCESSIBILITY=1
XDG_SESSION_TYPE=x11
COMPIZ_BIN_PATH=/usr/bin/
XDG_DATA_DIRS=/usr/share/unity:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
XDG_SESSION_DESKTOP=unity
LC_ADDRESS=en_US.UTF-8
SSH_AGENT_LAUNCHER=gnome-keyring
LC_NUMERIC=en_US.UTF-8
GTK_MODULES=gail:atk-bridge:unity-gtk-module
PAPERSIZE=letter
WINDOWPATH=3
GNOME_SESSION_XDG_SESSION_PATH=
TERM=xterm-256color
VTE_VERSION=5202
SHELL=/bin/bash
QT_IM_MODULE=ibus
[email protected]=ibus
IM_CONFIG_PHASE=2
XDG_CURRENT_DESKTOP=Unity:Unity7:ubuntu
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GNOME_TERMINAL_SERVICE=:1.617
UNITY_HAS_3D_SUPPORT=true
SHLVL=3
LC_TELEPHONE=en_US.UTF-8
GDMSESSION=unity
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
LOGNAME=mark
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
XAUTHORITY=/run/user/1000/gdm/Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-unity:/etc/xdg
PATH=/home/mark/bin:/home/mark/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/microchip/xc8/v1.44/bin:/opt/microchip/xc8/v1.44/bin:/opt/microchip/xc8/v1.44/bin
LC_IDENTIFICATION=en_US.UTF-8
LD_PRELOAD=libgtk3-nocsd.so.0:libgtk3-nocsd.so.0
SESSION_MANAGER=local/mark:@/tmp/.ICE-unix/19058,unix/mark:/tmp/.ICE-unix/19058
GTK_IM_MODULE=ibus
LC_TIME=en_US.UTF-8

Respuesta aceptada:

Supongo que de alguna manera en tu primera máquina con Ubuntu, el HISTCONTROL el valor de se ha visto comprometido.

Abra ~/.bashrc en un editor, agregue esto al final del archivo:

HISTCONTROL=ignoreboth

Ahora, si abre una nueva terminal, debería ignorar los comandos guardados en el historial cuando comienzan con un espacio.

man bash

CONTROL HIST

Una lista de valores separados por dos puntos que controlan cómo se guardan los comandos en la lista del historial. Si la lista de valores incluye ignorar espacio, las líneas que comienzan con un carácter de espacio no se guardan en la lista de historial. Un valor de ignoreups hace que las líneas que coincidan con la entrada del historial anterior no se guarden. Un valor de ignoreboth es una forma abreviada de ignorespace e ignoreups. Un valor de erasedups hace que todas las líneas anteriores que coincidan con la línea actual se eliminen de la lista del historial antes de que se guarde esa línea. Cualquier valor que no esté en la lista anterior se ignora. Si HISTCONTROL no está configurado o no incluye un valor válido, todas las líneas leídas por el analizador de shell se guardan en la lista de historial, sujetas al valor de HISTIGNORE. La segunda línea y las subsiguientes de un comando compuesto de varias líneas no se prueban y se agregan al historial independientemente del valor de HISTCONTROL.


Ubuntu
  1. ¿Cómo especificar un autocompletado personalizado para comandos específicos?

  2. ¿Cómo cambiar Cron Shell (sh a Bash)?

  3. ¿Cómo leer la penúltima línea en un archivo usando Bash?

  4. ¿Cómo usar kill SIGUSR2 en bash?

  5. ¿Cómo evitar que los usuarios de sudo ejecuten comandos específicos?

Cómo ejecutar un script Bash {7 métodos}

Cómo agregar espacio de intercambio en Ubuntu 18.04

Cómo agregar espacio de intercambio en Ubuntu 20.04

Cómo corregir fácilmente los comandos Bash mal escritos en Linux

Cómo evitar que se agote el tiempo de espera de SSH

¿Cómo listar carpetas usando comandos bash?