Noen grunnleggende nyttige kommandoer
Vi har allerede gitt deg en grunnleggende sammenstilling av shell-skript og en eksempelbasert oversikt over for looper, men sørg for å sjekke ut disse artiklene hvis du har savnet vår shell scripting guide så langt.
Kommandolinjen er fantastisk av mange grunner, og omdirigering er en av de mest fremtredende. Hvis du måtte legge merke til og reprodusere produksjonen av hver kommando for å ta ytterligere tiltak eller bruke det til noe annet, så ville vi alle blitt galne lenge siden. Omdirigering lar oss bruke den utdataen og lagre den eller bruke den umiddelbart som en inngang for en annen kommando. Vi kan også bruke filer som innganger for andre kommandoer.
Før vi fortsetter, la oss dekke noen grunnleggende kommandoer som kan brukes på mange forskjellige steder.
ekko - Denne kommandoen skriver ut (viser) hele argumentet på kommandolinjen som utgang
echo argument with spaces
katt - Denne kommandoen viser innholdet i tekstfiler som utgang.
cat file_to_be_read
La oss si at vi lager denne tekstfilen i nano:
grep pattern file
Omdirigere utganger
For å omdirigere utgangen av en kommando til en fil, benytter vi et spesialtegn, større enn symbolet (>).
La oss endre vår liste opp, skal vi? Skriv inn følgende kommando:
echo pepperoni > list
Vær også oppmerksom på at det forrige innholdet i "listen" ble fjernet. Prøv igjen:
echo yellow peppers >> list
La oss ta utgangen av en kommando og sette den inn i en fil:
ls –al / > ~/rootlist
Piping, eller Chaining
Rørledning er så oppkalt fordi den bruker røret, (|; delt med -tasten på de fleste tastaturer). I hovedsak tar det utdata fra en kommando og direkte mater den til en annen. Du kan lage lange kjeder med kommandoer for å få en svært bestemt ønsket utgang på denne måten, og det er veldig praktisk for kommandoer som grep.
Som du kan se, er grep saksensitiv. Du kan bruke "-i" -flagget for å gjøre det ignorert.
Omdirigere innganger
Du kan også ta inn data fra filer for kommandoer ved å bruke symbolet mindre enn (<).
cat < list
La oss si at vi vil filtrere et hvilket som helst ord som har "pep" i det fra vår nåværende "list" -fil til en ny fil kalt "revisjoner".
grep pep < list > revisions
grep pep < list | sort > revisions
For å illustrere sorteringskommandoen, la oss se på følgende eksempel:
Et enkelt skript
La oss lage et skript som har følgende skjema:
script searchterm listfile
Det vil ta uttrykket og bruke grep til å søke gjennom en listefil, sortere resultatene, og deretter sende dem til en annen fil.
Så langt som sortering går, kan du gjøre mer enn bare sortere alfabetisk. Ta en titt på man siden for noen av følgende kommandoer:
- tsort - en mer avansert topologisk sorteringsfunksjon
- tr - lar deg kartlegge bestemte tegn til andre tegn og transkribere mellom dem.
- uniq - fjerner ikke-unikt (les: duplikat)
- awk - en veldig avansert tekstbehandling språk / funksjon som kan brukes til å skille felt i filnavn
- klipp, lim inn / delta - kommandoer som er nyttige for å isolere felt fra tekstfiler og legge til nye data i kolonner
- se - søk som grep gjør, men bruker en ordlistefil (som kan være brukerdefinert) for oppslaget
- wc - lar deg få ordtelling, linjetall, karaktertelling og mer
Vi tok en titt på noe mer grunnleggende i dag som kan være like nyttig på kommandolinjen som i skript. Tekstbasert data er ofte hjertet av ting vi bruker daglig, så å kunne jobbe med det, søke det, og manipulere det er nøkkelen.
Hva er noen av favorittskriptene dine? Har du spesielle bruksskript for tekstbaserte filer? Del det du vet i kommentarene!