GNU/Linux >> Tutoriels Linux >  >> Linux

sous-shell commandant de minuit - le partage d'un fichier d'historique avec le shell mc a commencé à partir de

Cela peut être fait avec la commande suivante (avant de démarrer mc) :

export PROMPT_COMMAND="history -a; history -r"

Si vous souhaitez le rendre permanent, vous devez l'ajouter à votre ~/.bashrc . Mais cela rendra toute l'histoire du shell globale, ce qui n'est pas le meilleur. Si vous ne voulez pas cet effet secondaire, alors la ligne suivante doit être ajoutée à la place de celle ci-dessus :

alias mc='PROMPT_COMMAND="history -a; history -r" mc; history -r'

Explication :

PROMPT_COMMAND est exécuté juste avant que bash affiche une invite. Pour en savoir plus, cliquez ici.

history doit être appelé avec le paramètre append, puis avec le paramètre read. Pour en savoir plus, cliquez ici.


Pour une raison quelconque, le PROMPT_COMMAND solution dans un mc alias, comme suggéré par l'utilisateur szkj, ne fonctionnait pas correctement pour moi. Bien qu'il ait conservé les commandes exécutées dans le sous-shell MC, les commandes saisies avant le démarrage de MC ont été perdues après la fermeture.

Enfin, j'utilise ce qui suit dans ~/.bashrc , sans mc alias. Cela semble bien fonctionner malgré le fait que mc écrase $PROMPT_COMMAND .

export HISTCONTROL=ignoreboth
shopt -s histappend
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

Voici ce que j'obtiens :

# echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
1: before starting MC. PROMPT_COMMAND=history -a; history -c; history -r; 

# mc

# echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
2: Inside MC. PROMPT_COMMAND=pwd>&8;kill -STOP $$

# history | tail -3
 3038 echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
 3039 echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
 3040 history | tail -3

# echo "3: Going to exit MC with F10."
3: Going to exit MC with F10.

# echo "4: Back in Bash after MC"
4: Back in Bash after MC

# history | tail -7
 3038 echo "1: before starting MC. PROMPT_COMMAND=$PROMPT_COMMAND"
 3039 echo "2: Inside MC. PROMPT_COMMAND=$PROMPT_COMMAND"
 3040 history | tail -3
 3041 echo "3: Going to exit MC with F10."
 3042 mc
 3043 echo "4: Back in Bash after MC"
 3044 history | tail -7

Mon système est :

# cat /etc/debian_version 
8.1

# bash --version | head -1
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)

# mc --version | head -1
GNU Midnight Commander 4.8.13

# uname -a
Linux afnet 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux

Linux
  1. adb :trouver le PID à partir du shell adb

  2. Lecture d'un fichier CSV avec des requêtes SQL à partir du shell Linux

  3. Pourquoi l'arrêt net rpc échoue-t-il avec les bonnes informations d'identification ?

  4. Comment créer une clé USB bootable à partir d'un ISO bootable avec la ligne de commande sous Linux ?

  5. Encodage en base32 depuis le shell

Télécharger des fichiers avec Wget sur le shell Linux - Explication et exemples

Comment démarrer avec Midnight Commander en 2022

Sécurisez Linux avec le fichier Sudoers

Quel est le moyen le plus rapide d'ajouter du texte à un fichier à partir de la ligne de commande ?

Créer des modèles avec Linux dans un script Shell ?

Comment puis-je ouvrir un fichier avec des numéros de ligne affichés à partir de la ligne de commande dans 'vi' ?