GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment empêcher l'enregistrement des commandes Bash * avec * un espace devant?

J'ai lu ça, pour pas enregistrer les commandes bash dans .bash_history , vous mettez un espace devant. Cela a fonctionné sur tous mes PC Linux embarqués mais pas sur mon bureau avec Ubuntu 18.04 LTS. Je pensais juste que c'était une "bizarre" d'Ubuntu ou quelque chose comme ça. Maintenant, j'ai installé un deuxième PC avec Ubuntu 18.04 LTS et cela fonctionne comme prévu :les commandes avec un espace devant ne sont pas enregistrées !

Il y a donc peut-être quelque chose qui ne va pas avec le premier PC avec Ubuntu 18.04 LTS. Comment puis-je comprendre ce qui cause cela et le réparer afin qu'il ne le fasse pas enregistrer les commandes bash avec un espace devant ?

Extrait :

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

Trucs éventuellement utiles :

[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

Réponse acceptée :

Je suppose que d'une manière ou d'une autre sur votre première machine Ubuntu, le HISTCONTROL la valeur de a été compromise avec.

Ouvrez ~/.bashrc dans un éditeur, ajoutez ceci à la fin du fichier :

HISTCONTROL=ignoreboth

Maintenant, si vous ouvrez un nouveau terminal, il devrait ignorer l'enregistrement des commandes dans l'historique lorsqu'elles commencent par un espace.

man bash

CONTRÔLEHIST

Une liste de valeurs séparées par deux-points contrôlant la manière dont les commandes sont enregistrées dans la liste d'historique. Si la liste de valeurs inclut ignorespace, les lignes commençant par un espace ne sont pas enregistrées dans la liste d'historique. Une valeur d'ignoréups fait que les lignes correspondant à l'entrée précédente de l'historique ne sont pas enregistrées. Une valeur de ignoreboth est un raccourci pour ignorespace et ignoreups. Une valeur de erasedups entraîne la suppression de toutes les lignes précédentes correspondant à la ligne actuelle de la liste d'historique avant que cette ligne ne soit enregistrée. Toute valeur ne figurant pas dans la liste ci-dessus est ignorée. Si HISTCONTROL n'est pas défini ou n'inclut pas de valeur valide, toutes les lignes lues par l'analyseur shell sont enregistrées dans la liste d'historique, sous réserve de la valeur de HISTIGNORE. La deuxième ligne et les lignes suivantes d'une commande composée multiligne ne sont pas testées et sont ajoutées à l'historique quelle que soit la valeur de HISTCONTROL.


Ubuntu
  1. Comment utiliser les commandes d'historique de Bash

  2. Comment ajouter un espace d'échange dans Ubuntu 18.04

  3. Comment exécuter une commande Linux bash dans un script PERL ?

  4. Comment changer le shell Cron (sh en bash) ?

  5. Comment changer le nombre de commandes stockées dans l'historique de Bash

Comment exécuter un script bash {7 méthodes}

Comment ajouter un espace d'échange sur Ubuntu 18.04

Comment ajouter un espace d'échange sur Ubuntu 20.04

Comment corriger facilement les commandes Bash mal orthographiées sous Linux

Comment empêcher SSH d'expirer

comment décaler la valeur du tableau dans bash