Zoeken op website

Ontdek waarom 'minder' sneller is dan 'meer' Commando voor effectieve bestandsnavigatie


Meer is een *nix-opdrachtregel die wordt gebruikt om de inhoud van een bestand in een console weer te geven. Het basisgebruik van de opdracht more is om de opdracht uit te voeren op een bestand, zoals hieronder weergegeven:

Lees ook: Leer het verschil tussen de commando's 'cat' en 'tac' met voorbeelden

Leer Linux ‘meer’ Commando

# 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
....

Een andere manier om het more-commando te gebruiken in combinatie (pipe) met andere commando's, zoals het cat-commando, zoals weergegeven in het onderstaande voorbeeld:

cat /var/log/auth.log | more

Om regel voor regel door het bestand te navigeren, drukt u op de Enter-toets of drukt u op de Spatiebalk-toets om per pagina te navigeren, waarbij de pagina uw huidige terminalschermgrootte is. Om de opdracht af te sluiten, drukt u gewoon op de q-toets.

Een handige optie voor meer commando's is de -nummer-schakelaar waarmee u het aantal regels dat een pagina moet bevatten, kunt instellen. Geef bijvoorbeeld het bestand auth.log weer als een pagina van 10 regels:

more -10 /var/log/auth.log

U kunt ook een pagina weergeven vanaf een specifiek regelnummer met behulp van de optie +nummer, zoals hieronder weergegeven:

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 (

Leer Linux ‘minder’ Commando

Net als bij meer kunt u met de opdracht less de inhoud van een bestand bekijken en door het bestand navigeren. Het belangrijkste verschil tussen more en less is dat de opdracht less sneller is omdat niet het hele bestand in één keer wordt geladen en navigatie door het bestand mogelijk is met behulp van paginatoetsen omhoog/omlaag.

In kan worden gebruikt als een op zichzelf staand commando voor een bestand of worden gebruikt met pipelines met een groot aantal Linux-commando's om de schermuitvoer te verkleinen, zodat je door de resultaten kunt bladeren.

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

U kunt regel voor regel door het bestand navigeren door op de Enter-toets te drukken. Paginanavigatie kan worden afgehandeld met de spatiebalkr-toets. Het paginaformaat wordt weergegeven door uw huidige terminalschermgrootte. Om de opdracht af te sluiten, typt u de q-toets, op dezelfde manier als voor meer opdrachten.

Een handige functie van de opdracht less is het gebruik van de optie /word-to-seach. U kunt bijvoorbeeld alle sshd berichten uit een logbestand zoeken en matchen door interactief de /sshd string op te geven.

Om een bestand weer te geven dat naar een specifiek regelnummer staart, gebruikt u de volgende syntaxis:

less +5 /var/log/auth.log

Als u het nummer van elke regel wilt achterhalen met de opdracht less, gebruikt u de optie -N.

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

De enige manier om de opdracht less af te sluiten is standaard door op de q-toets te drukken. Om dit gedrag te veranderen en het bestand automatisch af te sluiten wanneer het einde van het bestand wordt bereikt, gebruikt u de optie -e of -E:

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

Om een bestand te openen bij de eerste keer dat een patroon voorkomt, gebruikt u de volgende syntaxis:

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)

Het bovenstaande commando vertelt less om het auth.log bestand te openen bij de eerste overeenkomst van de sshd string.

Om automatisch de inhoud toe te voegen van een bestand dat is geopend met de opdracht less gebruikt u de toetsencombinatie Shift+f of voert u less uit met de volgende syntaxis.

less +F /var/log/syslog

Hierdoor hoeft u minder in de interactieve modus (live) te draaien en nieuwe inhoud on-fly weer te geven terwijl u wacht tot nieuwe gegevens naar een bestand worden geschreven. Dit gedrag is vergelijkbaar met de opdracht tail -f.

In combinatie met een patroon kunt u het logbestand interactief bekijken met Shift+f toetsaanslag terwijl u een zoekwoord matcht. Om de live-modus te verlaten, drukt u gewoon op de toetsen Ctrl+c.

less +/CRON /var/log/syslog

Of u nu besluit meer of minder te gebruiken, wat een persoonlijke keuze is, onthoud dat minder meer is met meer functies.

Lees ook: Bestanden effectief beheren met hoofd-, staart- en kat-opdrachten