Estoy trabajando en un proyecto de cliente que está alojado en Digital Ocean en un servidor ubuntu, estoy trabajando en él con algunos otros desarrolladores y soy un poco nuevo e hice un montón de comandos y es realmente complicado. ¿Cómo puedo eliminar el historial de comandos hasta cierto punto?
Por ejemplo, me gustaría eliminar todos los comandos que ingresé hoy y dejar todos los comandos anteriores antes de eso, ¿es posible?
Es más fácil para otros desarrolladores encontrar comandos anteriores sin pasar por todos los míos. ¿Es posible borrar bash_history hasta cierto punto, por ejemplo, solo el historial de hoy? Si es así, ¿cómo?
Por favor avise!
¡Gracias!
Respuesta aceptada:
Las líneas en el historial de Bash se guardan como líneas de texto simples sin ninguna metainformación como una marca de tiempo de invocación. Por lo tanto, no es posible borrar automáticamente todo el historial de comandos de un solo día, porque simplemente ya no puede saber qué comando se ejecutó y cuándo.
Si simplemente desea eliminar todo el historial de comandos de su sesión Bash actual (es decir, todo lo que todavía está en la memoria y aún no está escrito en el disco), puede borrar el búfer del historial en memoria o reemplazarlo con el historial anterior contenido del archivo del disco.
-
Borrar el búfer del historial dará como resultado un historial en memoria vacío para su sesión actual, lo que significa que no aparecerá ningún comando si presiona ↑ , etc. Una vez que salga de su sesión de Bash, todos los nuevos comandos que se ingresaron después de la limpieza se agregarán al archivo de historial y en su próxima sesión, verá el historial completo nuevamente, con solo el rango entre el inicio de su última sesión y falta el comando borrar.
history -c
-
Reemplazar el búfer de historial en memoria actual con el contenido del archivo de historial del disco tendrá el mismo resultado final que borrar el búfer de historial, excepto que en su sesión actual tendrá acceso al historial de comandos anterior en lugar de una lista vacía.
history -r
Si eso no le resulta útil porque desea ordenar las entradas de sesiones anteriores o solo de una sesión parcial, el método quirúrgico es lo que necesita:
Sincronice su búfer de historial en memoria actual con el archivo de historial en el disco y luego abra ese archivo en un editor de texto y elimine todas las entradas ofensivas manualmente.
Relacionado:¿Qué carpetas incluir en la copia de seguridad?Para agregar el historial de su sesión actual al archivo de historial manualmente (porque solo ocurre automáticamente cuando sale de su sesión), ejecute esto primero:
history -a
Después de eso, abra el archivo de historial de Bash ~/.bash_history
en su editor de texto favorito (ya que está en un servidor, le sugiero, por ejemplo, nano
) y edite la lista de comandos a su gusto. El archivo enumera todos los comandos grabados en orden cronológico, los comandos más recientes son los últimos. Simplemente elimine las líneas ofensivas y guarde su trabajo.
Después de eso, debe volver a cargar el historial modificado en su búfer de historial en memoria usando el siguiente comando, para evitar que las entradas antiguas de la memoria se agreguen al archivo de historial ordenado cuando salga de su sesión:
history -r