Finn ut hvorfor «mindre» er raskere enn «mer»-kommando for effektiv filnavigering


Mer er en *nix-kommandolinje som brukes til å vise innholdet i en fil i en konsoll. Den grunnleggende bruken av kommandoen more er å kjøre kommandoen mot en fil som vist nedenfor:

Les også: Lær forskjellen mellom 'cat' og 'tac'-kommandoer med eksempler

Lær Linux "mer"-kommando

# more /var/log/auth.log
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:02 tecmint CRON[7435]: pam_unix(cron:session): session closed for user root
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
....

En annen måte å bruke mer-kommandoen i forbindelse (pipe) med andre kommandoer, for eksempel cat-kommando, som presentert i eksemplet nedenfor:

cat /var/log/auth.log | more

For å navigere gjennom filen linje for linje, trykk på Enter-tasten eller trykk på mellomrom-tasten for å navigere én side om gangen, siden den nåværende terminalskjermstørrelsen er. For å avslutte kommandoen trykker du bare på q-tasten.

Et nyttig alternativ for mer-kommandoen er -number-bryteren som lar deg angi antall linjer en side skal inneholde. Vis som et eksempel filen auth.log som en side med 10 linjer:

more -10 /var/log/auth.log

Du kan også vise en side som starter fra et spesifikt linjenummer ved å bruke +nummer-alternativet som illustrert nedenfor:

more +14 /var/log/auth.log
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
Apr 12 12:16:01 tecmint mate-screensaver-dialog: gkr-pam: unlocked login keyring
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session closed for user root
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session closed for user root
Apr 12 12:25:01 tecmint CRON[8107]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:25:01 tecmint CRON[8108]: pam_unix(cron:session): session opened for user root by (

Lær Linux "mindre" kommando

I likhet med mer lar kommandoen less deg se innholdet i en fil og navigere gjennom filen. Hovedforskjellen mellom mer og mindre er at kommandoen less er raskere fordi den ikke laster inn hele filen samtidig og tillater navigering gjennom filen ved å bruke side opp/ned-taster.

In kan brukes som en frittstående kommando utstedt mot en fil eller brukt med pipes med en rekke Linux-kommandoer for å begrense deres skjermutgang slik at du kan bla gjennom resultatene.

less /var/log/auth.log
ls /etc | less

Du kan navigere gjennom filen linje for linje ved å trykke Enter-tasten. Sidenavigering kan håndteres med spacebar-tasten. Sidestørrelsen er representert av din nåværende terminalskjermstørrelse. For å avslutte kommando, skriv inn q-tasten, på samme måte som for flere kommandoer.

En nyttig funksjon ved kommandoen less er bruken av /ord-til-søk-alternativet. Du kan for eksempel søke etter og matche alle sshd-meldinger fra en loggfil ved interaktivt å spesifisere /sshd-strengen.

For å vise en fil som stirrer på et spesifikt linjenummer, bruk følgende syntaks:

less +5 /var/log/auth.log

Hvis du trenger å spore opp antallet på hver linje med kommandoen less, bruk -N-alternativet.

less -N /var/log/daemon.log
      1 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
      2 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
      3 Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
      4 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
      5 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
      6 Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
      7 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
      8 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
      9 Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
     10 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
     11 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root

Som standard er den eneste måten å avslutte kommandoen less på å trykke på q-tasten. For å endre denne virkemåten og automatisk avslutte filen når du når slutten av filen, bruk -e eller -E alternativet:

less -e /var/log/auth.log
less -E /var/log/auth.log

For å åpne en fil ved den første forekomsten av et mønster, bruk følgende syntaks:

less +/sshd /var/log/auth.log
Apr 12 16:19:39 tecmint sshd[16666]: Accepted password for tecmint from 192.168.0.15 port 41634 ssh2
Apr 12 16:19:39 tecmint sshd[16666]: pam_unix(sshd:session): session opened for user tecmint by (uid=0)
Apr 12 16:19:39 tecmint systemd-logind[954]: New session 1 of user tecmint.
Apr 12 16:19:48 tecmint sshd[16728]: Received disconnect from 192.168.0.15: 11: disconnected by user
Apr 12 16:19:48 tecmint sshd[16666]: pam_unix(sshd:session): session closed for user tecmint
Apr 12 16:20:01 tecmint CRON[16799]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:20:02 tecmint CRON[16799]: pam_unix(cron:session): session closed for user root
Apr 12 16:25:01 tecmint CRON[17026]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:25:01 tecmint CRON[17025]: pam_unix(cron:session): session opened for user root by (uid=0)

Kommandoen ovenfor forteller less å åpne auth.log-filen ved første samsvar med sshd-strengen.

For å automatisk legge til innholdet i en fil som er åpnet i kommandoen less, bruk Shift+f-tastkombinasjonen eller kjør mindre med følgende syntaks.

less +F /var/log/syslog

Dette gjør mindre å kjøre i interaktiv modus (live) og vise nytt innhold mens du venter på at nye data skal skrives til filen. Denne oppførselen ligner på tail -f-kommandoen.

I kombinasjon med et mønster kan du se loggfilen interaktivt med Shift+f tastetrykk mens du matcher et nøkkelord. For å avslutte live-modus trykker du bare Ctrl+c-tastene.

less +/CRON /var/log/syslog

Enten du velger å bruke mer eller mindre, som er et personlig valg, husk at mindre er mer med mer egenskaper.

Les også: Administrer filer effektivt ved å bruke hode-, hale- og kattekommandoer