Sök…


Introduktion

Skalet kör ett program som svar på dess snabba. När du ger ett kommando söker skalet efter programmet och kör sedan det. När du till exempel anger kommandot ls, söker skalet efter verktyget / programmet som heter ls och kör sedan det i skalet. Argumenten och alternativen som du tillhandahåller med verktygen kan påverka resultatet du får. Skalet är också känt som ett CLI- eller kommandoradsgränssnitt.

Ändrar standardskal

De flesta moderna distributioner kommer med BASH ( B ourne A gain SH ell) förinstallerade och konfigurerade som ett standardskal.

Kommandot (faktiskt en körbar binär, en ELF) som ansvarar för att byta skal i Linux är chsh ( ch ange sh ell).

Vi kan först kontrollera vilka skal som redan är installerade och konfigurerade på vår maskin med chsh -l , vilket ger ett resultat som liknar detta:

[user@localhost ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/bin/fish

I vissa Linux-distributioner är chsh -l ogiltig. I detta fall kan listan över alla tillgängliga skal hittas i filen / etc / shells. Du kan visa filinnehållet med cat :

[user@localhost ~]$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/usr/bin/fish

Nu kan vi välja vårt nya standardskal, t.ex. fish , och konfigurera det genom att använda chsh -s ,

[user@localhost ~]$ chsh -s /usr/bin/fish
Changing shell for user.
Password: 
Shell changed.

Nu är det enda som återstår att göra för att skapa en logo-logon-cykel och njuta av vårt nya standardskal.

Om du vill ändra standardskalet för en annan användare och du har administratörsbehörighet på maskinen kan du göra detta genom att använda chsh som root . Så förutsatt att vi vill ändra user_2 standardskal till fisk, kommer vi att använda samma kommando som tidigare, men med tillägg av den andra användarens användarnamn, chsh -s /usr/bin/fish user_2 .

För att kontrollera vad det nuvarande standardskalet är, kan vi se $SHELL , som pekar på sökvägen till vårt standardskal, så efter vår förändring skulle vi förvänta oss att få ett resultat som liknar detta,

 ~  echo $SHELL                                 
/usr/bin/fish

chsh alternativ:

-s shell

Ställer in skal som inloggningsskal.

-l , - --list-shells

Skriv ut listan med skal som anges i / etc / skal och avsluta.

-h , --help

Skriv ut ett användningsmeddelande och avsluta.

-v , --version

Skriv ut versioninformation och avsluta.

Grundläggande skalverktyg


Anpassa Shell-prompten

Standardkommandotolken kan ändras så att den ser annorlunda och kort ut. Om den aktuella katalogen är lång blir standardkommandotolken för stor. Att använda PS1 blir användbart i dessa fall. Ett kort och anpassat kommando ganska och elegant. I tabellen nedan har PS1 använts med ett antal argument för att visa olika former av skalmeddelanden. Standardkommandotolken ser ut så här: user@host ~ $ i mitt fall ser det ut så här: bruce@gotham ~ $ . Det kan ändras enligt tabellen nedan:

Kommando Verktyg
PS1 = '\ w $' ~ $ skalprompt som katalognamn. I detta fall är rotkatalogen root.
PS1 = '\ h $' gotham $ shell prompt som värdnamn
PS1 = '\ u $' bruce $ shell prompt som användarnamn
PS1 = '\ t $' 22:37:31 $ i 24-timmarsformat
PS1 = '@ $' 10:37 PM skalprompt i 12 timmars tidsformat
PS1 = "! $ ' 732 visar historiknumret för kommandot i stället för skalprompt
PS1 = 'kille $' dude $ kommer att visa skalet som du vill

Några grundläggande skalkommandon

Kommando Verktyg
Ctrl-k skär / kill
Ctrl-y yank / klistra
Ctrl-a tar markören till början av raden
Ctrl-e tar markören till slutet av raden
Ctrl-d tar bort tecknet efter / vid markören
Ctrl-l kommer att rensa skärmen / terminalen
Ctrl-u kommer att rensa allt mellan snabb och markör
Ctrl-_ kommer att ångra det sista som skrivs på kommandoraden
Ctrl-c kommer att avbryta / stoppa jobbet / processen som körs i förgrunden
Ctrl-r omvänd sökning i historien
~/.bash_history lagrar de senaste 500 kommandona / händelserna som används på skalet
history kommer att visa kommandohistoriken
history | grep <key-word> visar alla kommandon i historiken som har nyckelord <nyckelord> (användbart i de fall du kommer ihåg en del av kommandot som använts tidigare)

Skapa ditt eget kommandolias

Om du är trött på att använda långa kommandon i bash kan du skapa ditt eget kommandoalias.

Det bästa sättet att göra detta är att ändra (eller skapa om den inte finns) en fil som heter .bash_aliases i din hemmapp. Den allmänna syntaxen är:

alias command_alias='actual_command'

där actual_command är det kommando du byter namn på och command_alias är det nya namnet du har gett det. Till exempel

alias install='sudo apt-get -y install'

kartlägger det nya kommandot alias install till det faktiska kommandot sudo apt-get -y install . Detta betyder att när du använder installation i en terminal tolkas detta av bash som sudo apt-get -y install .

Leta reda på en fil på ditt system

Med bash kan du enkelt hitta en fil med kommandot locate . Till exempel säger att du letar efter filen mykey.pem:

locate mykey.pem

Ibland har filer konstiga namn, till exempel kan du ha en fil som random7897_mykey_0fidw.pem . Låt oss säga att du letar efter den här filen men du kommer bara ihåg mykey och pem-delarna. Du kan kombinera locate med grep med ett rör som så här:

locate pem | grep mykey

Vilket skulle få fram alla resultat som innehåller båda dessa stycken.

Observera att inte alla system har locate installerat och många som inte har aktiverat det. locate är snabbt och effektivt eftersom det regelbundet skannar ditt system och cachar namn och platser för varje fil på den, men om den datainsamlingen inte är aktiverad kan den inte säga något till dig. Du kan använda updatedb att manuellt initiera filsystemets skanning för att uppdatera cache-informationen om filer på ditt filsystem.

Om du inte har en fungerande locate , kan du falla tillbaka på find verktyget:

find / -name mykey.pem -print

är ungefär likvärdigt med att locate mykey.pem men måste skanna dina filsystem (er) varje gång du kör den för filen i fråga, snarare än att använda cache-data. Detta är uppenbarligen långsammare och mindre effektivt, men mer realtid. Den find verktyget kan göra mycket mer än hitta filer, men en fullständig beskrivning av sin kapacitet är utanför ramen för detta exempel.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow