GNU/Linux >> Linux Esercitazione >  >> Linux

Personalizzazione dei comandi del filesystem Linux

Il potere del terminale Linux è che puoi personalizzare rapidamente il tuo ambiente in modo che funzioni meglio e più duramente in base alle tue esigenze. Esistono molti modi diversi per "hackerare" il tuo terminale, alcuni dei quali sono praticamente interi campi dell'informatica in sé, ma ci sono molti piccoli trucchi per i principianti, specialmente quando si tratta di lavorare con il filesystem Linux. Vedi il mio articolo Gestire i file con il terminale Linux per le basi.

Il modo più semplice per personalizzare l'ambiente del tuo terminale di lavoro è modificare il suo file di configurazione, che contiene le tue impostazioni personali della shell. Bash (il Bourne Again Shell ) è la shell più comune su Linux (inclusi Red Hat Enterprise Linux e Fedora) e il file di configurazione di Bash è ~/.bashrc .

Crea un alias

Un primo passo facile nella personalizzazione è la creazione di alias. Gli alias ti consentono di definire i tuoi semplici comandi o ridefinire quelli esistenti. Per aggiungere alias, modifica il tuo file .bashrc in un editor di testo, oppure crearli direttamente dal terminale usando il echo comando.

Ad esempio, per ridefinire ls comando in modo che utilizzi sempre il --classify (-F ) e --almost-all (-a ), aggiungi una regola alias a .bashrc , quindi source (rileggere e caricare) il file di configurazione modificato.

$ echo "alias ls='ls --classify --almost-all'" >> ~/.bashrc
$ source .bashrc
$ ls
bin/
Desktop/
despacer.sh
documentation.zip*
Documents/
Music/
Pictures/
Public/

Una volta che l'alias è stato creato e ricaricato, ls il comando utilizzerà sempre il --classify opzione in modo da poter distinguere i file dalle cartelle e il --almost-all opzione per escludere la notazione punto e doppio punto. Ci sono molte altre opzioni per ls comando. Vedi le ls manuale per maggiori informazioni digitando:

$ man ls

È possibile creare alias per tutti i tipi di attività semplici e ripetitive. Operazioni complesse possono richiedere qualcosa di più robusto di un alias, come uno script di shell, ma gli alias sono un ottimo modo per far funzionare il tuo ambiente per te.

Personalizza la tua spazzatura

Apri una serie di finestre per trovare il file che desideri eliminare. Sposta il file nel Cestino o Cestino icona sul desktop. Quando hai raccolto abbastanza spazzatura e sei sicuro che tutto possa essere rimosso in sicurezza dal tuo sistema, vai al Cestino menu e seleziona Svuota .

Non c'è cestino nel tuo terminale per impostazione predefinita, ma di nuovo, un "cestino" è solo un altro cartella che accetta tutti i file che intendi eventualmente eliminare. I dati sono ancora lì finché non li svuoti. Farlo è banale. Con le lezioni che hai imparato in questo articolo, puoi creare un sistema di spazzatura sicuro e affidabile per il tuo terminale.

Se il tuo computer ha un desktop, come il desktop GNOME su Red Hat Enterprise Linux e Fedora, allora hai già un cestino di sistema che si trova in ~/.local/share/Trash/files . Puoi fare riferimento direttamente a questa cartella o per ridurre la digitazione puoi creare un collegamento simbolico ad essa:

$ ln --symbolic ~/.local/share/Trash/files ~/.trash

Se il tuo computer non ha un desktop, potresti non avere un Cestino cartella, ma puoi crearne una manualmente. Un cestino è davvero solo un'altra cartella. Usa la mkdir comando con --parents (-p ) opzione per creare una serie di cartelle in un unico comando:

$ mkdir --parents ~/.local/share/Trash/files
$ ln --symbolic ~/.local/share/Trash/files ~/.trash

Quando vuoi spostare un file o una cartella nel cestino, usa il mv comando come al solito:

$ mv oldfile.txt ~/.trash

Crea un comando cestino migliore

Un modo ancora più semplice di utilizzare un Cestino cartella è scrivere il tuo nuovo comando chiamato trash , che sposta un file nel tuo ~/.trash cartella. Questo è un esercizio avanzato e introduce alcuni nuovi comandi, ma potresti essere sorpreso di quanto sia facile creare i tuoi comandi personalizzati. In sole due righe di codice Bash, puoi progettare il tuo personale sistema di gestione dei rifiuti.

Prima di creare il tuo comando, hai bisogno di un posto dove archiviare gli script personalizzati. È comune per gli utenti Linux mantenere un ~/bin directory, dove conservano le utilità personali e gli eseguibili binari. Questo non esiste per impostazione predefinita, ma puoi crearlo e aggiungerlo al tuo percorso:

$ mkdir ~/bin
$ echo "export PATH=$PATH:$HOME/bin" >> ~/.bashrc
$ source ~/.bashrc

Ora puoi creare il tuo comando cestino con echo comando:

$ echo '#!/bin/sh' > ~/trash
$ echo 'mv "${@}" ~/.local/share/Trash/files' >> ~/trash

In alternativa, puoi aprire un editor di testo e copiare e incollare il codice al suo interno:

#!/bin/sh
mv "${@}" ~/.local/share/Trash/files

Salva il file come ~/bin/trash .

La prima riga di questo script dichiara quale applicazione è necessaria per eseguirlo. In questo caso, la prima riga specifica che sh shell, che si trova in /bin è richiesta la directory nella radice del filesystem. Dopotutto, questo è uno script di shell:una serie di comandi della shell Bash nell'ordine di esecuzione desiderato.

La seconda riga usa mv comando in combinazione con una speciale variabile Bash, "${@}" , che significa qualsiasi cosa digitata dopo il comando . Questo è ciò che consente a un singolo comando di agire su più file. Non dovrai eseguire il comando una volta per file in questo modo:

$ trash foo
$ trash bar
$ trash baz

Invece, stai programmando il tuo comando per riconoscere più argomenti contemporaneamente:

$ trash foo bar baz

Per confermare che lo script della tua shell sia corretto, usa il cat comando per concatenare il contenuto del file nell'output della shell:

$ cat trash
#!/bin/sh
mv "${@}" ~/.local/share/Trash/files

Per rendere questo comando utilizzabile per te stesso, usa mv per spostarlo in una directory chiamata ~/bin (questa directory non esiste per impostazione predefinita, quindi creala prima):

$ mkdir ~/bin
$ mv trash ~/bin

La tua shell attualmente vede lo script della tua shell come un file pieno di testo. Non hai ancora autorizzato il computer a trattare il tuo script come un comando eseguibile. Questa differenziazione è importante, perché se la tua shell fosse in grado di eseguire tutto come comando senza il tuo esplicito permesso, qualsiasi file sul tuo sistema avrebbe il potenziale di eseguire codice arbitrario (immagina di eliminare tutte le tabelle in un database importante solo perché tu o uno dei tuoi utenti hanno cliccato sul file sbagliato).

Per concedere a un file l'autorizzazione a essere trattato come eseguibile, imposta il bit eseguibile nei suoi attributi di file usando il chmod comando (cambia modalità):

$ chmod +x ~/bin/trash

Ora puoi eseguire il file come comando. Provalo creando un file e quindi spostandolo nel cestino:

$ echo "This is rubbish." >> rubbish.file
$ cat rubbish.file
This is rubbish.
$ ~/bin/trash rubbish.file

Se stai utilizzando un desktop sul tuo computer, apri il cestino e conferma che rubbish.file è ora nel cestino di sistema. Se non stai utilizzando un desktop, controlla il tuo ~/.trash collegamento simbolico. Come filtro ad hoc, invia l'output di ls comando tramite una pipe (| ), utilizzando grep comando per cercare la stringa spazzatura :

$ ls ~/.trash | grep rubbish
rubbish.file

Nota, tuttavia, che stai utilizzando il tuo trash comando senza fornire il percorso completo non funziona come previsto:

$ echo "This is more rubbish." >> rubbish2.file
$ trash rubbish2.file
bash: trash: command not found...

Questo perché non è ancora nel tuo percorso eseguibile.

Di' alla tua shell dove guardare

Alcuni comandi, come cd , pwd e alias , sono integrati nella tua shell. Altri, come ls , mv e echo , sono installati in posizioni designate dalla shell come posizioni di ricerca valide per i comandi. Quando digiti comandi come ls , mv o trash , la tua shell cerca in un elenco di directory che è stato detto contenere file eseguibili. Puoi visualizzare questo elenco di posizioni di ricerca guardando il PATH variabile. L'echo Il comando ti consente di esaminare le variabili anteponendo un segno di dollaro ($ ) prima del nome della variabile:

$ echo $PATH
/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin:/usr/local/sbin

In modo che tu possa usare trash proprio come faresti con qualsiasi altro comando sul tuo sistema, devi aggiungere il tuo ~/bin personale directory nella tua variabile PATH. Le variabili di ambiente della shell vengono caricate all'avvio della shell, quindi sono impostate in ~/.bashrc file di configurazione. Puoi aggiungere questa directory al tuo PERCORSO usando un editor di testo, o semplicemente usare echo comando con un doppio reindirizzamento per aggiungere la regola alla tua configurazione:

$ echo 'export PATH=$PATH:/home/seth/bin' >> ~/.bashrc 

Carica la tua nuova configurazione nella tua shell:

$ source ~/.bashrc

E prova il tuo comando ancora una volta:

$ trash rubbish2.file

Rimuovi definitivamente un file

Alla fine, il cestino della spazzatura deve essere svuotato. Il rm comando rimuove un file dal tuo filesystem (permanentemente, quindi usalo con moderazione e attenzione).

Perché il rm comando può essere dannoso se usato in modo improprio, è una buona idea limitare la tua interazione con esso e limitarne l'ambito quando lo usi. In questo caso, vuoi rm per operare solo all'interno del cestino, quindi puoi creare un alias per ridurre il rischio di digitare il comando in modo errato. Meno volte invochi rm , minori sono le possibilità di rimuovere accidentalmente i file.

Crea un alias chiamato empty digitando quanto segue:

$ echo 'empty="rm --recursive --verbose --force ~/.local/share/Trash/files/*"' >> ~/.bashrc

A differenza del tuo trash comando, empty viene trattato come un comando integrato poiché è un alias anziché uno script esterno. Ciò significa che non devi inserire nulla nel tuo ~/bin directory o aggiungi qualcosa al tuo PATH variabile. Devi solo ricaricare la configurazione della shell, quindi testare il tuo nuovo comando integrato:

$ source .bashrc
$ empty
removed '/home/seth/.trash/rubbish.file
removed '/home/seth/.trash/rubbish2.file

La pratica rende fluente

Ora hai programmato il tuo primo script di shell e personalizzato il tuo ambiente di shell. Piccoli esercizi come questo sono importanti, perché più lavori nella shell, meglio diventi. Cerca di massimizzare il tuo tempo di lavoro nel terminale per metterti a tuo agio. All'inizio non devi svolgere compiti importanti. Inizia in piccolo e fatti strada.

Non c'è momento migliore come il presente, quindi esplora il terminale Linux!


Linux
  1. Comandi Linux:job, bg e fg

  2. 5 Comandi per la risoluzione dei problemi di rete Linux

  3. Come crittografare un singolo filesystem Linux

  4. I miei 8 comandi Linux pratici preferiti

  5. 5 comandi Linux che non uso mai

Comandi FreeDOS per i fan di Linux

Comandi di base di Linux

Comandi Linux - Guida completa

Comandi di gestione dei gruppi in Linux

90 comandi Linux usati frequentemente dagli amministratori di sistema Linux

Comandi della directory Linux:una guida completa