Hvordan oprettes aliaser og shell-funktioner på Linux?

kom også efter den sidste kommando:



funktionsnavn () {kommando1; command2; }

Lika aliaser, Bash shell-funktioner kan defineres i '.bashrc' -filen, men det er ofte pænere at placere dem i deres egen definitionsfil. Vi kalder det '.bash_functions' efter den konvention, der blev brugt til '.bash_aliases' -filen.

Det betyder, at vi skal fortælle '.bashrc' -filen at læse i vores definitioner. Vi kan kopiere og ændre kodestykket, der læser i '.bash_aliases' -filen. Start gedit og indlæs '.bashrc' -filen med denne kommando:



gedit .bashrc

gedit .bashrc-fil



Du skal tilføje det fremhævede afsnit vist nedenfor.



Du kan fremhæve aliasafsnittet og trykke på Ctrl + C og derefter flytte til det sted, hvor du vil have det nye afsnit, og trykke på Ctrl + V for at indsætte en kopi af teksten. Så er alt hvad du skal gøre, at ændre de to steder, hvor der står '.bash_aliases' til '.bash_funktioner.'

Tilføjelse af bash_funktioner i .bashrc-filen

Vi kan gemme disse ændringer og lukke gedit.



Nu skal vi oprette og redigere '.bash_functions' -filen og sætte en funktionsdefinition i den.

tryk på .bash_funktioner gedit .bash_funktioner

Oprettelse og redigering af .bash_funktioner

Dette åbner den tomme '.bash_functions' -fil i gedit.

Vi tilføjer en simpel funktion, der kaldes op. op tager en enkelt kommandolinjeparameter, som er et ciffer. op vil derefter kalde cd .. det antal gange. Så hvis du brugte kommandoen

op 2

op kalder cd .. to gange og bevæger sig op to niveauer i katalogtræet.

Der er forskellige måder at definere en funktion på. Her er en:

funktion op () {

Ordfunktionen er valgfri. Hvis du er traditionel, skal du bruge den. Hvis du ikke kan være generet af at indtaste den, skal du lade den ude.

Her er hele vores funktion i gedit:

Redigering af .bash_functions-filen

funktion op () {

Dette markerer starten på vores funktionsdefinition, og det navngiver funktionen op.

niveauer = $ 1

Dette skaber en variabel kaldet niveauer og indstiller den til værdien af ​​den første parameter. Denne parameter vil være et ciffer, der leveres af brugeren, når de kalder funktionen. $ 1 betyder 'første kommandolinjeparameter.'

mens ['$ levels' -gt '0']; gør

Vi går derefter ind i en sløjfe, som derefter oversættes som “når“ værdi ”Af“ niveauer ”Er positiv eller større end nul, gør hvad der er inde i sløjfens krop.”

Inde i sløjfekroppen har vi to kommandoer. De er:

cd ..

Flyt et niveau op i katalogtræet.

niveauer = $ (($ niveauer - 1))

Indstil niveauer til en ny værdi, som er en mindre end dens aktuelle værdi.

Vi går derefter tilbage til toppen af ​​sløjfen, sammenligningen mellem værdien af ​​niveauer og nul foretages igen. Hvis “niveauer” er mere end nul, udføres sløjfekroppen igen. Hvis det ikke er positivt eller større end nul, er sløjfen færdig, og vi falder igennem til det færdige udsagn, og funktionen er slut.

Gemme disse ændringer og luk gedit .

Vi læser ind og udfører kommandoerne i '.bashrc', som skal læse ind og udføre kommandoerne i vores '.bash_functions' -fil.

. .bashrc

Ring til ..bashrc

Vi kan teste funktionen ved at flytte til et sted i katalogtræet og bruge op til at flytte tilbage til et “højere” punkt i katalogtræet.

cd ./work/backup/ op 2

Funktion op

Funktionen fungerer. Vi er flyttet to katalogniveauer højere i træet.

Holde styr på typen

Når du opbygger en række aliasser og et bibliotek med funktioner, kan det blive svært at huske, om en bestemt kommando er et alias eller en funktion. Du kan bruge “ type' kommando for at minde dig. Det seje her er, at du også får set definitionen.

Lad os bruge typen på vores FTC alias og vores op-funktion.

skriv ftc skriv op

Brug af typen

Vi får en meget nyttig påmindelse om, hvilken type kommando hver er sammen med deres definitioner.

Begynd at indsamle

Aliaser og funktioner kan fremskynde din brug af kommandolinjen enormt. De kan forkorte kommandosekvenser, og de giver dig mulighed for at bage ind de muligheder, du altid bruger med standardkommandoer. Hver gang du ser en smart one-liner eller en nyttig funktion, kan du tilpasse og tilpasse den og derefter tilføje den til dine '.bash_aliases' eller '.bash_functions' filer. Omfattende brug af disse kan hjælpe med at gøre din tid i skallen mere behagelig og mindre kompleks.

Husk at være forsigtig med at omdefinere eksisterende kommandoer med adfærd, der potentielt er destruktiv. Selv at gøre det modsatte og aliasere en kommando til en sikrere variant (for eksempel altid bede om bekræftelse, før du sletter rekursivt) kan komme tilbage og bide dig første gang du er på et system uden det, når du først er kommet til at stole på det . For at finde kandidater, der kan være gode at oprette aliasser til, kan det være en god idé at søge i din historie efter dine mest anvendte kommandoer.

12 minutter læst