Hvordan lage aliaser og skallfunksjoner på Linux?

kom etter den siste kommandoen også:



funksjonsnavn () {kommando1; command2; }

Lika-aliaser, Bash-skallfunksjoner kan defineres i '.bashrc' -filen, men det er ofte bedre å sette dem i sin egen definisjonsfil. Vi vil kalle det '.bash_functions', etter konvensjonen som ble brukt for '.bash_aliases' -filen.

Det betyr at vi må fortelle '.bashrc' -filen å lese i definisjonene våre. Vi kan kopiere og endre kodebiten som står i '.bash_aliases' -filen. Start gedit og last inn '.bashrc' -filen med denne kommandoen:



gedit .bashrc

gedit .bashrc-fil



Du må legge til den uthevede delen vist nedenfor.



Du kan markere alias-delen og trykke Ctrl + C og deretter flytte dit du vil ha den nye delen, og trykke Ctrl + V for å lime inn en kopi av teksten. Så er alt du trenger å gjøre å endre de to stedene der det står '.bash_aliases' til '.bash_functions.'

Legger til bash_functions i .bashrc-filen

Vi kan lagre disse endringene og lukke gedit.



Nå skal vi lage og redigere '.bash_functions' -filen, og sette en funksjonsdefinisjon i den.

trykk på .bash_functions gedit .bash_functions

Opprette og redigere .bash_functions

Dette åpner den tomme '.bash_functions' -filen i gedit.

Vi skal legge til en enkel funksjon som kalles opp. opp tar en enkelt kommandolinjeparameter, som er et siffer. opp vil da ringe cd .. det antall ganger. Så hvis du brukte kommandoen

opp 2

opp vil ringe cd .. to ganger og vil bevege seg opp to nivåer i katalogtreet.

Det er forskjellige måter å definere en funksjon på. Her er en:

funksjon opp () {

Ordfunksjonen er valgfri. Hvis du er tradisjonalist, bruk den, hvis du ikke kan gidder å skrive den inn, la den være utenfor.

Her er hele funksjonen vår i gedit:

Redigerer .bash_functions-filen

funksjon opp () {

Dette markerer starten på funksjonsdefinisjonen vår, og den navngir funksjonen.

nivåer = $ 1

Dette skaper en variabel som heter nivåer og setter den til verdien av den første parameteren. Denne parameteren vil være et siffer gitt av brukeren når de ringer til funksjonen. $ 1 betyr 'første kommandolinjeparameter.'

mens ['$ levels' -gt '0']; gjøre

Vi går deretter inn i en sløyfe som deretter vil oversettes som 'når' verdi ”Av“ nivåer ”Er positivt eller større enn null, gjør det som er inne i sløyfens kropp.”

Inne i kroppen av løkken har vi to kommandoer. De er:

cd ..

Flytt deg opp et nivå i katalogtreet.

nivåer = $ (($ nivåer - 1))

Sett nivåer til en ny verdi, som er en mindre enn den nåværende verdien.

Vi går deretter tilbake til toppen av løkken, sammenligningen mellom verdien av nivåer og null gjøres igjen. Hvis “nivåer” er mer enn null, utføres sløyfens kropp igjen. Hvis det ikke er positivt eller større enn null, er sløyfen ferdig, og vi slipper gjennom til ferdig uttalelse, og funksjonen er over.

Lagre disse endringene og lukkes gedit .

Vi vil lese inn og utføre kommandoene i '.bashrc' som skal lese inn og utføre kommandoene i vår '.bash_functions' -fil.

. .bashrc

Ring ..bashrc

Vi kan teste funksjonen ved å flytte til et sted i katalogtreet og bruke opp for å flytte tilbake til et 'høyere' punkt i katalogtreet.

cd ./work/backup/ opp 2

Funksjon opp

Funksjonen fungerer. Vi er flyttet to katalognivåer høyere i treet.

Holde oversikt over typen

Når du bygger opp en serie aliaser og et bibliotek med funksjoner, kan det bli vanskelig å huske om en bestemt kommando er et alias eller en funksjon. Du kan bruke “ type' kommando for å minne deg på. Det kule her er at du også får se definisjonen.

La oss bruke typen på vår FTC alias og vår opp-funksjon.

skriv ftc skriv opp

Bruk av typen

Vi får en veldig nyttig påminnelse om hvilken type kommando hver er, sammen med definisjonene.

Begynn å samle

Aliaser og funksjoner kan øke hastigheten på bruken av kommandolinjen. De kan forkorte kommandosekvenser, og de lar deg bake inn alternativene du alltid bruker med standardkommandoer. Hver gang du ser en fin en-liners eller nyttig funksjon, kan du tilpasse og tilpasse den, og deretter legge den til i filene “.bash_aliases” eller “.bash_functions”. Omfattende bruk av disse kan bidra til å gjøre tiden din i skallet morsommere og mindre kompleks.

Husk å være forsiktig med å omdefinere eksisterende kommandoer med atferd som er potensielt ødeleggende. Selv om du gjør det motsatte og aliaserer en kommando til en tryggere variant (for eksempel alltid ber om bekreftelse før du sletter rekursivt), kan du komme tilbake for å bite deg første gang du er på et system uten det når du først har stått på det . For å finne kandidater som det kan være bra å lage aliaser for, kan det være lurt å søke i historikken din etter de mest brukte kommandoene.

12 minutter lest