Hur skapar jag alias och skalfunktioner på Linux?

kom efter det sista kommandot också:



funktionsnamn () {kommando1; command2; }

Lika alias, Bash-skalfunktioner kan definieras i '.bashrc' -filen, men det är ofta snyggare att placera dem i sina egna definitionsfiler. Vi kallar det '.bash_functions', enligt konventionen som används för '.bash_aliases' -filen.

Det betyder att vi måste tala om för '.bashrc' -filen att läsa i våra definitioner. Vi kan kopiera och ändra kodavsnittet som läser i filen '.bash_aliases'. Starta gedit och ladda filen '.bashrc' med det här kommandot:



gedit .bashrc

gedit .bashrc-fil



Du måste lägga till det markerade avsnittet som visas nedan.



Du kan markera aliasavsnittet och trycka på Ctrl + C och sedan flytta dit du vill ha det nya avsnittet och trycka på Ctrl + V för att klistra in en kopia av texten. Allt du behöver göra är att ändra de två platserna där det står '.bash_aliases' till '.bash_functions.'

Lägga till bash_funktioner i .bashrc-filen

Vi kan spara ändringarna och stänga gedit.



Nu ska vi skapa och redigera filen '.bash_functions' och lägga in en funktionsdefinition i den.

peka på .bash_funktioner gedit .bash_funktioner

Skapa och redigera .bash_funktioner

Detta öppnar den tomma '.bash_functions' -filen i gedit.

Vi ska lägga till en enkel funktion som kallas upp. upp tar en enda kommandoradsparameter, vilket är en siffra. upp ringer sedan cd .. det antalet gånger. Så om du använde kommandot

upp 2

upp skulle kalla cd .. två gånger och skulle flytta upp två nivåer i katalogträdet.

Det finns olika sätt att definiera en funktion. Här är en:

funktion upp () {

Ordfunktionen är valfri. Om du är en traditionalist, använd den, om du inte kan bry dig om att skriva in den, lämna den.

Här är hela vår funktion i gedit:

Redigerar .bash_functions-filen

funktion upp () {

Detta markerar början på vår funktionsdefinition och namnger funktionen.

nivåer = $ 1

Detta skapar en variabel som kallas nivåer och sätter den till värdet på den första parametern. Denna parameter kommer att vara en siffra som tillhandahålls av användaren när de anropar funktionen. $ 1 betyder 'första kommandoradsparameter.'

medan ['$ levels' -gt '0']; do

Vi går sedan in i en slinga som sedan översätts som 'när' värde ”Av” nivåer ”Är positivt eller större än noll, gör vad som finns i slingans kropp.”

Inuti slingans kropp har vi två kommandon. Dom är:

CD ..

Flytta upp en nivå i katalogträdet.

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

Ställ in nivåer till ett nytt värde, vilket är ett mindre än dess nuvarande värde.

Vi går sedan tillbaka till toppen av slingan, jämförelsen mellan värdet på nivåer och noll görs en gång till. Om “nivåer” är mer än noll, körs slingans kropp igen. Om det inte är positivt eller större än noll är slingan klar, och vi släpper igenom det färdiga uttalandet och funktionen är över.

Spara dessa ändringar och stäng gedit .

Vi läser in och kör kommandona i '.bashrc' som ska läsa in och utföra kommandona i vår '.bash_functions' -fil.

. .bashrc

Ring ..bashrc

Vi kan testa funktionen genom att flytta till någon plats i katalogträdet och använda uppåt för att flytta tillbaka till en 'högre' punkt i katalogträdet.

cd ./work/backup/ upp 2

Funktion upp

Funktionen fungerar. Vi har flyttat två katalognivåer högre i trädet.

Att hålla reda på typ

När du bygger upp en serie alias och ett bibliotek med funktioner kan det bli svårt att komma ihåg om ett visst kommando är ett alias eller en funktion. Du kan använda typ' kommando för att påminna dig. Det coolaste här är att du också får se definitionen.

Låt oss använda typ på vår FTC alias och vår upp-funktion.

skriv ftc skriv upp

Användning av typ

Vi får en mycket användbar påminnelse om vilken typ av kommando var och en är, tillsammans med deras definitioner.

Börja samla

Alias ​​och funktioner kan påskynda din användning av kommandoraden enormt. De kan förkorta kommandosekvenser och de låter dig baka in de alternativ du alltid använder med standardkommandon. Varje gång du ser en smidig one-liner eller användbar funktion kan du anpassa och anpassa den och sedan lägga till den i dina filer. '.Bash_aliases' eller '.bash_functions'. Omfattande användning av dessa kan göra din tid i skalet roligare och mindre komplex.

Kom ihåg att vara försiktig med att omdefiniera befintliga kommandon med beteende som är potentiellt destruktivt. Även om du gör det motsatta och aliaserar ett kommando till en säkrare variant (alltid ber om bekräftelse innan du tar bort rekursivt, till exempel) kan du komma tillbaka för att bita dig första gången du är i ett system utan det när du har kommit att lita på det . För att hitta kandidater som kan vara bra att skapa alias för kan det vara en bra idé att söka i din historik efter dina mest använda kommandon.

12 minuter läst