kutombawewe.net

Alias: differenza tra .bash_rc, .bash_aliases e / usr / local / bin

Giocando con Terminal, ho notato che ci sono molti modi per creare alias permanenti.

Sono un novizio di Linux, e da quello che so, sto facendo:

  1. Sudo ln -s /path/to/executable /usr/local/bin/desired_alias
  2. aggiunta di desired_alias = '/path/to/executable' a ~/.bashrc
  3. decommentando quelle righe in ~/.bashrc:

    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
    

    e inserendo desired_alias = '/path/to/executable' in ~/.bash_aliases

tutti hanno lo stesso effetto.

Qual è la differenza tra il primo e il secondo metodo?

8
Strae

Con il primo metodo non si sta creando un alias, si sta creando un collegamento simbolico. I collegamenti simbolici sono abbreviati per 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 corrisponde al percorso di un altro file, il file a cui fa riferimento il collegamento. In altre parole, un collegamento simbolico è un puntatore a un altro nome e non a un oggetto sottostante.

Ulteriori informazioni sui link simbolici qui e qui .

Solo con il secondo metodo, infatti, stai creando un alias.

Gli alias consentono di sostituire una stringa con una parola quando viene utilizzata come prima parola di un semplice comando. Shell mantiene un elenco di alias che possono essere impostati e non impostati con i comandi integrati alias e unalias (vedere COMANDI INCORPORATI Shell di seguito). La prima parola di ogni semplice comando, se non quotata, viene controllata per vedere se ha un alias. In tal caso, quella parola viene sostituita dal testo dell'alias.

È possibile definire un alias ovunque in cui è possibile digitare un comando e fare in modo che Shell ( bash in questo caso) lo interpreti, tuttavia affinché l'alias possa essere disponibile in altre shell deve essere definito in un file interpretato da Shell all'avvio (avvio Shell, non avvio computer).

Per bash questi sono /etc/bash.bashrc (a livello di sistema) e ~/.bashrc. Questi file vengono interpretati all'avvio di Shell in modalità interattiva (come quando si utilizza Terminal). Non parlerò dei file di profilo perché hanno uno scopo diverso.

Quindi, vuoi aggiungere i tuoi alias a ~/.bashrc per renderli disponibili in ogni Shell interattiva.

Il metodo .bash_aliases realizza esattamente la stessa cosa che mettere gli alias in ~/.bashrc ma ha il vantaggio di essere più facile da essere analizzato e manipolato dai programmi.

. ~/.bash_aliases indica l'origine (caricamento) _~/.bash_aliases_ nel contesto della Shell attualmente in esecuzione.

9
Li Lo