Hur skapar jag alias och skalfunktioner på Linux?

Att känna till kommandoprompt & skalskript är fortfarande nödvändigt om du vill få ut det mesta av GNU / Linux-systemet och ju mer man arbetar på kommandoraden, desto mer kommer man att upptäcka att majoriteten av kommandona som används är mycket liten delmängd av tillgängliga kommandon. De flesta uppgifter är vanliga och användaren du kan köra dessa på samma sätt varje dag.

Medan tillverkarna av många av de vanligaste kommandotjänsterna har försökt eliminera främmande skrivning genom att använda förkortade namn, t.ex. istället för lista skriver vi “ls”& Istället för ändringskatalog skriver vi“CD”. Dessutom behöver många Linux-användare ofta använda ett kommando om och om igen. Att skriva / kopiera samma kommando igen och igen kommer att minska produktiviteten och distrahera användaren från det faktiska arbetet.

Det skulle vara bra om vi spenderar mindre tid på att skriva de långa kommandona. Vi har två kraftfulla sätt att minimera din tid på kommandoraden är skalalias och funktioner, med hjälp av dessa två kan användaren tämja upprepade uppgifter, förkorta långa processer och konfigurera anpassade kommandon med de alternativ som användaren alltid använder och kämpar för att komma ihåg.

Du kan definiera dina kommandon som passar dina specifika behov och för att lindra bördan av upprepade uppgifter.

Alias ​​och skalskript, dvs funktioner gör samma typ av jobb. De låter dig definiera - och namnge - en uppsättning Bash-skalfunktionalitet som sedan kan kallas med namnet du har gett den. Att skriva namnet är enklare och bekvämare än att behöva skriva ut alla steg eller kommandon varje gång du vill använda dem.

Skillnaden mellan ett alias och en funktion är en av komplexitet och skala. Skript är bättre på att hålla längre och mer detaljerade bitar av kod. Alias ​​är perfekta för att hålla kortare, kortare, uppsättningar av kommandon.

Skalalias

Ett skalalias är en anpassad genväg för att referera till ett kommando eller en uppsättning kommandon som körs med eller utan anpassade alternativ. Dessa alias är alternativa, lätt att komma ihåg namn för långa kommandon som du behöver utföra ofta. När du skriver på kommandoraden letar skalet först efter vad du skrev i aliaslistan. Om en matchning hittas ersätts den med alias med motsvarande text. efter att ha slutfört det, skulle det igen titta på hela den resulterande kommandoraden och kör den.

Chansen är stor att du kanske redan har använt alias på Linux-systemet eftersom de flesta Linux-distributioner lägger till åtminstone några av de populära alias som standard i ".bashrc ” användarkontots fil.

Utöver alias: Shell-funktioner

Block med liknande men inte identiska koder kan inte ersättas med alias. De kan inte hantera fel eller returnera anpassade utgångskoder, göra flödeskontroll eller använda variabler. Om du behöver göra något av det här är det dags att använda skalfunktioner.

Shell-funktioner är kodblock strukturerade som kompletta underskript, skrivna en gång och anropas från alla skript som behöver det.

Syntax för alias:

Att skapa alias i bash är väldigt enkelt. Syntaksen är som följer:

alias alias_name = ”command_to_run”

Skapa ett nytt bash-alias under den aktuella sessionen

  1. Skriv "alias
  2. Förklara sedan aliasnamnet
  3. Följt av ett likhetstecken
  4. Och kommandot som körs när alias anropas.

Kommandot måste ingå i citattecken och utan avstånd runt likhetstecknet. Mellanrum här bryter kommandot. Varje alias måste deklareras på en ny rad.

Låt oss få det klargjort genom exemplet. På Linux-kommandoraden är ett av de mest använda kommandona “ls”. För det mesta används "ls" -kommandot med "la”-Omkopplare som visar alla filer och kataloger med dolda filer i den långa listans format. Nu ska vi skapa ett enkelt bash-alias “ll”Som kommer att vara en genväg tillls -la kommando.

  1. Öppna en terminalfönster
  2. Typ:
    alias ll = "ls -la"

    & Tryck stiga på

  3. Nu i konsol typ “ll”Och tryck stiga på
  4. Utgången blir densamma som genom att skriva ls -la.

Det ovan definierade aliaset ”ll” kommer endast att finnas tillgängligt under den aktuella shell-sessionen. Om du stänger sessionen eller ett nytt sessionfönster initierat från en annan terminal kommer det ovan definierade aliaset “ll” inte att vara tillgängligt.

Vi kommer att diskutera det senare om hur man gör aliaset beständigt. Exemplen här är för bash-skalet, men alla begrepp och de flesta av koden gäller även för andra skal.

Fördefinierade alias

Vissa alias är fördefinierade för dig. För att känna till listan över alla alias som är definierade i systemet använder vi kommandot “alias” utan några parametrar:

alias

Det här är aliasen på Ubuntu-testmaskinen som den här artikeln har undersökts om. Alla anpassade alias dyker också upp i den här listan.

Det finns en massa olika alias för ls-kommandot, och det finns en grupp alias som ger färgutdata till grep-kommandofamiljen, t.ex. med alias definierade som ovan, när du skriver:

grep

Det kommer att tolkas som:

grep - färg = auto

Detta visar en viktig punkt med alias. De kan ha samma namn som befintliga kommandon. De kan till och med innehålla det ursprungliga kommandot i sig själva.

Här är definitionen av grep-aliaset.

alias grep = 'grep --color = auto'
  1. Alias-kommandot används för att definiera ett alias.
  2. Namnet på aliaset ges därefter. I det här exemplet är det “grep”.
  3. Likhetstecknet ansluter aliasets namn tillkropp av aliaset. För alla utom mycket enkla alias är aliasens kropp innesluten inom enstaka citattecken.
  4. Aliasens kropp är det avsnitt som körs när aliaset används på kommandoraden.
  5. I detta alias kallas bara kommandot grep med alternativet –color = auto.

Alert Alias

Högst upp i listan finns det ett komplicerat alias som hetervarna. Som ett snabbt tillfälle, och så att du vet vad det gör, används aliaset för att meddela dig när ett kommando har slutförts. Det anger också om kommandot slutförts framgångsrikt eller inte. Det ger en grafisk systemvarning högst upp på skärmen.

Här är ett enkelt exempel. Sömnkommandot kommer att sova i fem sekunder. Alarmalias kommer då att anropas. Aliaset kontrollerar svaret från föregående kommando. Det extraherar det sista kommandot från historikfilen. Det avgör om kommandot har slutförts framgångsrikt eller inte. Därefter presenteras resultaten i en systemvarning.

Om kommandot slutförts som förväntat är ikonen i systemvarningen ett litet terminalfönster. Om kommandot returnerade en felkod är ikonen i systemvarningen en röd felikon.

sova 5; varna

Efter fem sekunder ser vi denna systemvarning:

Ikonen är ett litet terminalfönster, vilket betyder att allt gick bra. Låt oss försöka igen med ett kommando som vi vet kommer att misslyckas:

Dömd att misslyckas; varna

Vår systemvarning har nu en felikon.

Definiera ett Trivial Alias

Som vi har sett använder vi kommandot alias för att definiera ett alias.

Vi ska skapa en pseudonym för det tydliga kommandot. Vårt alias kommer att kallas cls och det kommer att kalla det tydliga kommandot.

Vår aliasdefinition är så trivial att den inte motiverar att vara förpackad i enstaka citattecken. Om aliasens kropp är något mer komplex än detta, eller om den innehåller mellanslag, slå in den i enstaka citat. Vi definierar aliaset, använder ls för att lägga lite utdata i terminalfönstret och använder sedan våra nya aliascls för att rensa skärmen.

alias cls = klart ls -l cls

Skärmen rensas. Framgång, om än kortlivad. Aliaset kommer bara att överleva så länge detta terminalfönster förblir öppet. När fönstret är stängt försvinner aliaset.

För att göra alias permanenta med ".bashrc" -filen

Du kanske undrar var de förpackade aliasen definieras. det finns i ".bashrc" -filen i din hemmapp. Den här filen läses och kommandona inuti den körs när du startar ett interaktivt skal. Det är när du öppnar ett terminalfönster.

Skriv följande kommando i din hemmapp för att se innehållet i ".bashrc" -filen med syntaxmarkering.

gedit .bashrc

Detta kommer att startageditredigeraren med filen ".bashrc" laddad i den.

De markerade områdena visar två områden där alias definieras.

Bläddring genom dokumentet avslöjar två andra avsnitt relaterade till alias:

Den första av dessa är definitionen av varningsaliaset. Den andra är ett if-uttalande. Det översätts till, "om filen".bash_aliases”Finns, läs den i.”

Om du bara har några alias som du vill definiera, kan du lägga dem i din ".bashrc" -fil. Stoppa dem under avsnittet som innehåller ls-alias.

Om du ska skapa många alias, eller om du bara gillar tanken på att ha dina alias inkapslade i den egna filen, kan du definiera dem i din ".bash_aliases" -fil. En fördel med att skapa dem i din ".bash_aliases" -fil är att du av misstag inte kan ändra någon av inställningarna i ".bashrc" -filen. En annan fördel är att dina alias enkelt kopieras till nya system eftersom de är separerade från ".bashrc" -filen.

Aliaset ska namnges på ett sätt som är lätt att komma ihåg. Det rekommenderas också att lägga till en kommentar för framtida referens.

Lagring av alias i .bash_aliases-filen

Filen ".bash_aliases" finns inte som standard, du måste skapa den. Du kan skapa filen med det här kommandot:

tryck på .bash_aliases

Låt oss redigera filen och lägga till några alias till den. Detta kommando öppnar filen ".bash_aliases" i gedit-redigeraren.

gedit .bash_aliases

Vi har lagt till tre alias. Den första är vårclsalias som vi använde tidigare. Nästa kallash. och är ett kortfattat sätt att ringa kommandot historia.

Det tredje alias kallasftc. Detta står för "antal filtyper."

Detta alias är mer involverat, så det är insvept i enstaka citattecken. Den använder en kedja av kommandon kopplade ihop av rör. Det producerar en sorterad lista över olika filtillägg och katalognamn, med ett antal för varje listpost.

När vi har sparat filen ".bash_aliases" kan vi förvänta oss att våra alias ska vara live och tillgängliga. Så är inte fallet. Filen måste läsas in av Bash-skalet innan aliasdefinitionerna är live. Detta görs när ett interaktivt skal öppnas.

Vi kan också använda det inbyggda Bash-skalet. för att läsa och köra kommandona i en fil. Eftersom vår ".bash_alias" -fil läses in när ".bashrc" bearbetas, borde vi utföra vårt test genom att ringa ".bashrc". På det sättet kan vi kontrollera att ".bash_alias" -filen kallas från ".bashrc" och att våra alias lever och har det bra.

Kommandona vi har använt är:

gedit .bash_aliases

För att redigera filen ".bash_aliases".

. .bashrc

Detta kommer att läsa in och utföra kommandona inom ".bashrc", som kommer att kalla ".bash_aliases".

ftc

Detta kommer att kalla ftc-aliaset.

Vårt alias svarar vilket betyder att Bash har läst i både ".bashrc" och ".bash_aliases", och våra nya alias är nu live.

Du kan nu fortsätta och lägga till nya alias i ".bash_aliases" -filen när de uppträder för dig. Om du tycker att du gör saker mer än en eller två gånger, överväg att skapa ett alias för det.

Ta bort alias

Det finns ett kommando att ta bort alias så att Bash inte känner igen dem eller svarar på dem. Uppfriskande direkt kallas kommandotunalias.

För att använda den, ange namnet på det alias du vill att Bash ska glömma. För att få Bash att glömma vårt ftc-alias, använd unalias t.ex. det tidigare använda “ll”Kommando:

unalias ll

Du kan använda unalias för att ta bort alias som du har definierat och alla fördefinierade alias.

För att ta bort alla alias från ditt system, använd alternativet -a (alla):

unalias -a

Bashs minnesförlust kommer dock inte att vara permanent. Nästa gång du öppnar ett terminalfönster kommer de "glömda" aliasen att vara tillbaka. För att verkligen rensa bort dem måste du ta bort dem från dina ".bashrc" - och ".bash_alias" -filer.

Om du tror att du någonsin vill ha tillbaka dem, ta inte bort dem från din .bashrc-fil. Istället kommentera dem genom att lägga till en hash # i början av varje aliasrad. För att göra din “.bash_alias” -fil ineffektiv, byt namn på den. Om din ".bashrc" -fil inte kan se den kommer den inte att läsa den i. Ångra dessa steg för att återställa dina alias är en trivial fråga.

För att tillfälligt kringgå ett alias (säg att vi alias ls till ls -a) kan vi skriva:

\ ls

Följaktligen skulle det vanliga kommandot kallas, inte den aliaserade versionen.

Hjälp för Alias-kommandot:

  • –Hjälpsalternativ: Den visar hjälpinformation.

Syntax:

alias --hjälp

Skalfunktioner

Ibland krävs ett alias som kan acceptera ett eller flera argument, det är då bash-funktioner används.

Syntax

Att skapa en bash-funktion är inte särskilt svårt. De kan deklareras i något av följande två olika format:

funktionsnamn () {[kommandon]}

eller

fungera funktionsnamn {[kommandon]}

Vi kan komprimera denna andra form till en rad och separera kommandona med semikolon. Ett semikolonmåste 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 ".bash_aliases" -filen. Starta gedit och ladda filen ".bashrc" med det här kommandot:

gedit .bashrc

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 där du vill ha det nya avsnittet och trycka på Ctrl + V för att klistra in en kopia av texten. Då är allt du behöver göra att ändra de två platserna där det står ".bash_aliases" till ".bash_funktioner."

Vi kan spara dessa ändringar 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

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:

funktion upp () {

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

nivåer = $ 1

Detta skapar en variabel som kallasnivå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 kommandoradsparametern."

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änggedit.

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

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

cd ./work/backup/ upp 2

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

Håller koll 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ändatyp" 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årftcalias och vår upp-funktion.

skriv ftc skriv upp

Vi får en mycket användbar påminnelse om vilken typ av kommando var och en 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 snygg one-liner eller användbar funktion kan du anpassa och anpassa den och sedan lägga till den i dina ".bash_aliases" eller ".bash_functions" filer. Omfattande användning av dessa kan göra din tid i skalet trevligare och mindre komplex.

Kom ihåg att vara försiktig med att omdefiniera befintliga kommandon med beteende som är potentiellt destruktivt.Även att göra motsatsen och aliasera ett kommando till en säkrare variant (alltid be om bekräftelse innan du tar bort rekursivt, till exempel) kan komma tillbaka för att bita dig första gången du är i ett system utan det när du väl har litat 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.

Facebook Twitter Google Plus Pinterest