Lær Linux-kommandoer: Avslør typen med `type`-kommandoen!

Utforsk hvordan en kommando blir tolket – er det et alias, en fil på disken, en skallfunksjon, en innebygd kommando eller et reservert ord? Ved å bruke `type`-kommandoen kan du avdekke hvordan Linux-kommandoer utføres og få en dypere forståelse av systemets funksjoner.

Et dypere dykk

Når vi arbeider i terminalvinduet og gir kommandoer til Linux-maskinen, stopper vi sjelden opp for å reflektere over hvilke deler av operativsystemet som faktisk håndterer og utfører disse kommandoene. Vanligvis skriver vi bare inn kommandoen, mottar resultatet, og fortsetter med oppgavene våre.

En forståelse av hvordan kommandoer behandles gir oss en bedre innsikt i selve konstruksjonen av Linux og andre Unix-lignende operativsystemer. Å se under overflaten kan gi oss et mer informert perspektiv.

Kommandoene vi taster inn kan deles inn i følgende kategorier:

  • Alias: En brukerspesifisert (eller systemdefinert) kommando som utløser andre, ofte lengre eller mer kompliserte sekvenser av kommandoer.
  • Diskfil: En binær, kjørbar fil, som for eksempel `/usr/bin/top`.
  • Skallfunksjon: En funksjon som er definert av brukeren (eller systemet) og som kan brukes direkte i kommandolinjen eller inkluderes i skript.
  • Innebygd kommando: En kommando som utføres direkte av selve skallet, som for eksempel `pwd`.
  • Reservert ord: Et ord som er reservert av skallet, slik som `if` eller `elif`. Disse kalles også for nøkkelord.

Kommandoen `type` identifiserer hvilken kategori en gitt Linux-kommando tilhører. Her følger en kort veiledning for å tolke resultatet fra kommandoen.

Utforsking av `type`-kommandoen

La oss se på noen eksempler for hver av de ulike kommando-kategoriene:

type date

Kommandoen `date` er en kjørbar fil på disken.

type ls

Kommandoen `ls` er et alias som indirekte bruker den underliggende `ls`-kommandoen, men med opsjonen `–color=auto` som standard.

type lowdown

Kommandoen `lowdown` er en funksjon som er definert av brukeren. I dette tilfellet gir den en rask oversikt over ressurser som `whoami`, `w`, `free` og `df`.

type pwd

Kommandoen `pwd` er en innebygd kommando i Bash-skallet.

type elif

Kommandoen `elif` er et reservert ord i Bash-skallet.

Bruk av flere kommandoer

Du kan også bruke `type` til å identifisere flere kommandoer samtidig:

type date top ls

`-t`-alternativet

Alternativene til `type`-kommandoen har ingen eksplisitte navn. La oss derfor gi dem egne navn. Om du anser `-t` for å stå for «type» eller «konsis», er du ikke langt unna. Dette alternativet reduserer resultatet fra `type` til et enkelt ord.

type -t date
type -t pwd
type -t lowdown

`-a`-alternativet

La oss kalle dette alternativet «alle». Det viser alle steder kommandoen finnes. Merk at dette alternativet ikke fungerer sammen med `-p`-alternativet.

Om du for eksempel har et alias med samme navn som den underliggende kommandoen, kan du få informasjon om både aliaset og den underliggende kommandoen.

type -a ls

`-f`-alternativet

Alternativet `-f` tvinger `type` til å ignorere bruker- og systemdefinerte funksjoner. Se på dette alternativet som «funksjonssøk av». Om kommandoen er en funksjon, vil `type` rapportere at kommandoen ikke ble funnet.

type -f top
type -f lowdown

`-P`-alternativet

Dersom du bruker alternativet `-P`, vil `type` kun søke i katalogene i `$PATH`. Vi kan kalle dette alternativet for «sti». Merk at dette alternativet bruker en stor «P».

type -P date chmod adduser

`-p`-alternativet

Hvis du bruker alternativet `-p`, vil `type` kun svare dersom kommandoen er en fil på disken. Merk at dette alternativet bruker en liten «p».

type -p mount
type -p ls
type -p -a ls

`type` gir ingen respons for `ls` da dette er et alias og ikke en fil på disken.

Men dersom vi inkludere `-a` slik at `type` leter etter alle instanser av `ls`-kommandoen, vises den underliggende diskfilen som `ls`-aliaset bruker.

Oppsummering

Dette var en enkel, men likevel lærerik gjennomgang.

Vi pleier å tenke på alt vi skriver inn i terminalvinduet som en «kommando» uten å reflektere videre over det. Kommandoer er implementert på flere forskjellige måter i et Linux-system, og `type`-kommandoen lar deg se hvilken kategori en gitt kommando tilhører.