6 votos

He borrado .bash_history, ahora el historial ya no se guarda (aunque lo he vuelto a crear)

He instalado una nueva copia de El Capitán. Accidentalmente borré .bash_history, así que hice un touch .bash_history de nuevo, esperando que esto resuelva el problema de que mi historial de bash no se recuerde al cerrar y volver a abrir la terminal.

Pero no fue así. Y no tengo ni idea de por qué.

Macbuech:~ josh$ ~/.bash_history
-bash: /Users/josh/.bash_history: Permission denied
Macbuech:~ josh$ ls ~/.bash_history
/Users/josh/.bash_history
Macbuech:~ josh$ echo $HISTSIZE
500
Macbuech:~ josh$ echo $HISTFILESIZE
500
Macbuech:~ josh$ echo $HISTFILE
/Users/josh/.bash_sessions/9817540A-F021-4E1A-93A1-B322BC4738AB.historynew
Macbuech:~ josh$ echo $HISTTIMEFORMAT

He jugado un poco con .bash_profile para conseguir que algunos colores funcionen, según este artículo :

export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
alias ls='ls -GFh'

He vuelto a quitar todas las cosas para asegurarme de que el problema no está ahí. Así que aquí está mi .bash_profile :

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

Este sitio afirma que puede haber un problema con el RVM, y he intentado añadir un .bash_logout con shell_session_update en él, pero sin éxito.

Cualquier ayuda es muy apreciada.

Aquí está mi envase completo:

Macbuech:~ josh$ env
rvm_bin_path=/Users/josh/.rvm/bin
TERM_PROGRAM=Apple_Terminal
GEM_HOME=/Users/josh/.rvm/gems/ruby-2.2.4
SHELL=/bin/bash
TERM=xterm-256color
IRBRC=/Users/josh/.rvm/rubies/ruby-2.2.4/.irbrc
TMPDIR=/var/folders/sq/92dr708946s01kttg916m6xm0000gn/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.9AJd6SsR1y/Render
TERM_PROGRAM_VERSION=361.1
MY_RUBY_HOME=/Users/josh/.rvm/rubies/ruby-2.2.4
TERM_SESSION_ID=9817540A-F021-4E1A-93A1-B322BC4738AB
rvm_stored_umask=0022
USER=josh
_system_type=Darwin
rvm_path=/Users/josh/.rvm
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.gZZeyimp2O/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
rvm_prefix=/Users/josh
PATH=/Users/josh/.rvm/gems/ruby-2.2.4/bin:/Users/josh/.rvm/gems/ruby-2.2.4@global/bin:/Users/josh/.rvm/rubies/ruby-2.2.4/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/josh/.rvm/bin
rvm_loaded_flag=1
PWD=/Users/josh
_system_arch=x86_64
XPC_FLAGS=0x0
_system_version=10.11
XPC_SERVICE_NAME=0
rvm_version=1.26.11 (master)
SHLVL=1
HOME=/Users/josh
LOGNAME=josh
GEM_PATH=/Users/josh/.rvm/gems/ruby-2.2.4:/Users/josh/.rvm/gems/ruby-2.2.4@global
LC_CTYPE=UTF-8
RUBY_VERSION=ruby-2.2.4
rvm_user_install_flag=1
_system_name=OSX
_=/usr/bin/env

0 votos

¿Cuál es la salida para ls -la ~/.bash_history ? ¿Tal vez sea un problema de permisos? Aquí está mi: -rw------- 1 myusername staff 10852 18 gru 20:41 /Users/myusername/.bash_history

0 votos

$ ls -la ~/.bash_history -rw-r--r-- 1 josh staff 3B Dec 31 08:38 /Users/josh/.bash_history

0 votos

¿Has reiniciado el shell (o el propio Terminal) después de tocar .bash_history?

10voto

klanomath Puntos 19587

Me encontré con el mismo problema después de borrar voluntariamente el archivo .bash_history.

La solución sencilla es no sólo tocar el archivo sino también añadir algo de texto - uno o varios saltos de línea son no suficiente:

echo "exit" >> ~/.bash_history

A continuación, salga completamente de Terminal y vuelva a abrirlo. Si has guardado todo tu trabajo en todas las sesiones de Terminal, también puedes simplemente

killall Terminal

Actualización:

He intentado replicar tu entorno en una VM 10.11 y efectivamente es un problema con RVM: comentando todas las líneas relacionadas con rvm en .profile y .bash_profile se vuelven a activar las actualizaciones del archivo .bash_history.

El método de archivo .bash_logout (con el contenido shell_session_update ) parece funcionar de forma fiable aquí. Sólo recuerda siempre entrar en exit antes de cerrar una ventana de la Terminal o salir de ella. Sin entrar en exit el historial no se actualizará.

1 votos

Y ahora la pregunta obvia: ¿por qué? ¿Necesita el archivo un carácter de nueva línea o un carácter cualquiera?

0 votos

No parece que me funcione. Tengo algunas líneas en mi historial, pero no se añaden nuevas entradas.

0 votos

Ls y salir, sin una nueva línea al final: ls\nexit

0voto

DJ RayD Puntos 11

Necesitas recrear el archivo con "nano", no con "touch". Ejecute este comando en la terminal, en su carpeta de inicio (/Users/Your-Username):

nano .bash\_history

Escriba cualquier cosa en el archivo (si no, no se creará), salga y guarde.

Espero que esto ayude.

0 votos

¿En qué se diferencia de la respuesta ya dada?

0 votos

Consigue el resultado esperado de forma más simplificada, es la única diferencia @patrix . Saludos.

0 votos

Tampoco cambia nada. ¿Será porque tengo abiertas diferentes ventanas de terminal, cada una con unas cuantas pestañas?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X