Estoy tratando de encontrar dónde alias
se ha declarado un específico . He buscado todos los lugares habituales que sé para buscar alias:
- ~ / .bashrc
- ~ / .bash_profile
- / etc / bashrc
- / etc / profile
Sin suerte
Sé que es alias
porque cuando lo hago which COMMAND
, obtengo:
alias COMMAND='/path/to/command'
/path/to/command
¿Hay alguna manera de encontrar qué archivo declara alias
saber solo el alias
nombre?
set -x
como se sugiere en la parte superior de su y vea si eso lo reduce para usted.set -x
en la parte superior de/etc/bash_profile
o/etc/bashrc
. ¿Por qué no simplemente correrbash -i -x
obash -l -x
?Respuestas:
Yo buscaría
/etc/profile.d/
al ofensoralias
.También puede hacer lo siguiente para encontrarlo:
Esto hará recursivamente a
grep
través de archivos buscando una línea que comience conalias COMMAND
.Si todo lo demás falla, pon esto al final de tu
~/.bashrc
fuente
Hay algunas cosas que puedes probar:
bash -v
para ver qué líneas se leen durante el inicio del shellbash -x
para ver qué comandos se ejecutan durante el inicio del shellbash -v
La
-v
opción hacebash
imprimir cada línea de cada archivo de script que lee mientras lo lee.Comience corriendo
espere 5-10 segundos, luego presione Ctrl+C.
Esto le dará un solo archivo llamado
bash-i.out
que es como todos sus archivos de inicio combinados (o concatenados) juntos.Luego, use
less
para abrir el archivo y busque el alias usando/aliasname
.Ahora, compare dónde aparece ese alias en relación con otras líneas en el archivo. Por ejemplo, en la mayoría de los sistemas,
/etc/bash.bashrc
tiene un comentario en la parte superior que dice/etc/bash.bashrc
y~/.bashrc
tiene uno también.Si está por encima de la parte superior de su
~/.bashrc
, entonces es probable que sea un archivo de inicio/etc
que defina el alias, de lo contrario, está en su~/.bashrc
archivo o en un archivo que incluye a través desource
o.
(comando de punto).Si eso no muestra el alias, intente
Eso le dice a bash que sea un shell de inicio de sesión, que lee algunos archivos de inicio diferentes, por ejemplo,
/etc/profile
y en~/.bash_profile
lugar de/etc/bash.bashrc
y~/.bashrc
.bash -x
Si
bash -v
no le da una respuesta definitiva, intente ejecutarbash -x
, que imprime los comandos que ejecuta el shell, en lugar de las líneas que está leyendo su shell.El método es básicamente el mismo que el anterior, excepto cambiar
-v
a-x
. (Puede usar ambos juntos si es necesario).Ejecutar con un solo archivo de inicio
y mira si tienes el alias.
Intente lo mismo con
rcfile
set to/etc/bash.bashrc
si su sistema lo tiene.Entonces intenta
y haga lo mismo con cada archivo de inicio de bash que tenga
profile
su nombre, por ejemplo, cambie$HOME/.bash_profile
a/etc/profile
.Cualquiera que sea la forma en que aparezca el alias le indica el archivo que debe comenzar a mirar.
fuente
Tal vez tu
.xinitrc
? También debe verificar si su fuente.bashrc
o.bash_profile
cualquier otro archivo en ellos. Por ejemplo, mantengo todos mis alias en un archivo separado al que hace referencia este comando:Algunas preguntas que también podrían ayudar: ¿Es esto para un usuario habitual o root? ¿Qué comando es? ¿Qué sabor de Linux?
fuente
Sigo la práctica muy común de poner mis definiciones de alias en
y luego llamar eso desde .bashrc con
fuente