GNU/Linux >> Tutoriales Linux >  >> Linux

Subshell de Midnight Commander:se inició el uso compartido de un archivo de historial con Shell mc.

Esto podría hacerse con el siguiente comando (antes de iniciar mc):

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

Si desea que sea permanente, debe agregarlo a su ~/.bashrc . Pero hará que todo el historial de shell sea global, lo cual no es lo mejor. Si no desea este efecto secundario, debe agregar la siguiente línea en lugar de la anterior:

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

Explicación:

PROMPT_COMMAND se ejecuta justo antes de que bash muestre un aviso. Más lecturas aquí.

history debe llamarse con el parámetro append, y luego con el parámetro read. Más lecturas aquí.


Por alguna razón, el PROMPT_COMMAND solución en un mc alias, como lo sugirió el usuario szkj, no funcionó correctamente para mí. Si bien conservó los comandos ejecutados en la subcapa MC, los comandos ingresados ​​antes de iniciar MC se perdieron después de salir.

Finalmente, uso lo siguiente en ~/.bashrc , sin un mc alias. Parece funcionar bien a pesar de que mc sobrescribe $PROMPT_COMMAND .

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

Esto es lo que obtengo:

# 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

Mi sistema es:

# 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. Haz matemáticas en el shell de Linux con GNU bc

  2. Lea y escriba datos desde cualquier lugar con redirección en la terminal de Linux

  3. Comenzando con Zsh

  4. ¿Por qué falla el apagado de net rpc con las credenciales correctas?

  5. ¿Cómo crear un USB de arranque desde un ISO de arranque con la línea de comandos en Linux?

Primeros pasos con el Administrador de archivos de Plesk

Descargar archivos con Wget en Linux Shell - Explicación y ejemplos

Comenzando con ls

¿Encontrar las N palabras más frecuentes en un archivo con una lista de palabras vacías desde la línea de comandos?

Cómo comenzar con Midnight Commander en 2022

Asegure Linux con el archivo Sudoers