¿Por qué pasó esto?
MacOS y Ubuntu están configurados de manera diferente para manejar duplicados en el historial de comandos de bash. Estas configuraciones se almacenan en una serie de los llamados " archivos de puntos ". Estos toman la forma de ~ / .bash * así como también el sistema / etc / profile. Todos estos archivos pueden personalizarse a su gusto y diferenciar entre shells interactivos, shells de inicio de sesión, shells remotos, etc. Estos archivos se leen en un orden específico y cumplen funciones específicas.
¿Cómo obtener el mismo comportamiento en macOS?
Si solo desea esta única personalización de "ignorar los duplicados exactos de las líneas de comando", puede ir con algo como la respuesta de Allan, es decir, agregar una sola línea simple, por ejemplo, a su archivo bash_profile. No existe "la forma correcta", sino innumerables opciones.
En caso de que esta no sea la única personalización para su bash, esta podría no ser la mejor opción:
Algunas otras notas:
- Cualquier cosa que debería estar disponible para aplicaciones gráficas O para sh (o bash invocado como sh) DEBE estar en ~ / .profile
- ~ / .bashrc no debe mostrar nada
- Cualquier cosa que solo esté disponible para iniciar sesión en shells debe ir en ~ / .profile
- Asegúrese de que ~ / .bash_login no existe.
Eso significa que, cuando las cosas se vuelven más complejos, es buena idea para extender las personalizaciones en varios archivos, cada uno de ellos especializado y altamente ordenada en sus contenidos:
Todos exports
pueden residir en su propio archivo para una supervisión simplificada.
Cree un archivo que bash lea en la raíz de su directorio de usuario, por ejemplo, llamado .exports
que contiene:
# Omit duplicates and commands that begin with a space from history.
export HISTCONTROL='ignoreboth';
Esto debe "originarse" para que bash lea el archivo en el inicio interactivo:
Aprovisionamiento de archivos
Si tiene muchas configuraciones de shell, es posible que desee dividirlas en varios subarchivos y usar la fuente incorporada para cargarlos desde su .bashrc: con agregarlos source ~/.exports
.
Alternativamente, para garantizar que los archivos realmente existan antes de cargar
if [ -f ~/.exports ]; then
. ~/.exports
fi
El comando . ~/.exports
se originará ~/.exports
en el contexto del shell actualmente en ejecución.
Esto es particularmente útil para agregar alias, el archivo separado hace que sea más fácil volver a cargarlos cuando realiza cambios.
zsh
y personalizar aún más zsh con varios scripts.