Giocando con Terminal, ho notato che ci sono molti modi per creare permanenti alias.
Sono un principiante di Linux e, da quello che so, sto facendo:
sudo ln -s /path/to/executable /usr/local/bin/desired_alias
- aggiungendo
desired_alias = '/path/to/executable'
a~/.bashrc
-
decommentando quelle righe in
~/.bashrc
:if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
e inserendo
desired_alias = '/path/to/executable'
nel~/.bash_aliases
tutti hanno lo stesso effetto.
Qual è la differenza tra il primo e il secondo metodo?
Risposta accettata:
Con il primo metodo non stai creando un alias, stai creando un collegamento simbolico. I collegamenti simbolici sono l'abbreviazione di collegamenti simbolici:
I collegamenti simbolici sono file che fungono da
puntatori ad altri file. […] Un collegamento simbolico
è un tipo speciale di file
il cui contenuto è una stringa che
è il percorso di un altro file, il file
a cui si riferisce il collegamento. In altre
parole, un collegamento simbolico è un puntatore a
un altro nome e non a un oggetto
sottostante.
Leggi di più sui link simbolici qui e qui.
Solo con il secondo metodo stai, infatti, creando un alias.
Gli alias consentono di
sostituire una stringa con una parola quando viene utilizzata
come prima parola di un semplice comando.
La shell mantiene un elenco di alias
che possono essere impostati e annullare l'impostazione con i comandi integrati
alias e unalias
(vedere COMANDI INCORPORATI SHELL di seguito).
La prima parola di ogni comando simple
, se non tra virgolette, viene selezionata in
vedi se ha un alias. In tal caso, quella
parola viene sostituita dal testo dell'
alias.
Puoi definire un alias ovunque tu possa digitare un comando e avere la shell (bash in questo caso) interpretarlo, tuttavia affinché l'alias sia disponibile in altre shell deve essere definito in un file interpretato dalla shell all'avvio (avvio della shell, non avvio del computer).
Per bash questi sono /etc/bash.bashrc
(a livello di sistema) e ~/.bashrc
. Questi file vengono interpretati all'avvio della shell in modalità interattiva (come quando si utilizza Terminal
). Non menzionerò i file del profilo perché hanno uno scopo diverso.
Quindi, vuoi aggiungere i tuoi alias a ~/.bashrc
per averli a disposizione in ogni shell interattiva.
Il .bash_aliases
metodo realizza esattamente la stessa cosa che mettere gli alias in ~/.bashrc
ma ha l'ulteriore vantaggio di essere più facile da analizzare e manipolare dai programmi.
Il . ~/.bash_aliases
significa sorgente (carica) _~/.bash_aliases_
nel contesto della shell attualmente in esecuzione.