12 Gagnlegar skipanir til að sía texta fyrir árangursríkar skráaraðgerðir í Linux


Í þessari grein munum við fara yfir fjölda skipanalínuverkfæra sem virka sem síur í Linux. Sía er forrit sem les staðlað inntak, framkvæmir aðgerð á því og skrifar niðurstöðurnar í staðlað úttak.

Af þessum sökum er hægt að nota það til að vinna úr upplýsingum á öflugan hátt eins og að endurskipuleggja framleiðslu til að búa til gagnlegar skýrslur, breyta texta í skrám og mörgum öðrum kerfisstjórnunarverkefnum.

Með því að segja, hér að neðan eru nokkrar af gagnlegum skrá- eða textasíum í Linux.

1. Awk Command

Awk er merkilegt mynsturskönnunar- og vinnslutungumál, það er hægt að nota til að byggja upp gagnlegar síur í Linux. Þú getur byrjað að nota það með því að lesa í gegnum Awk seríuna okkar Part 1 til Part 13.

Að auki skaltu einnig lesa í gegnum awk man síðuna fyrir frekari upplýsingar og notkunarmöguleika:

$ man awk

2. Sed Command

sed er öflugur straumaritill til að sía og umbreyta texta. Við höfum þegar skrifað tvær gagnlegar greinar um sed, sem þú getur farið í gegnum hér:

  1. Hvernig á að nota GNU ‘sed’ skipun til að búa til, breyta og vinna með skrár í Linux
  2. 15 Gagnlegar „sed“ stjórnráð og brellur fyrir dagleg Linux kerfisstjórnunarverkefni

Sed mannasíðan hefur bætt við stjórnvalkostum og leiðbeiningum:

$ man sed

3. Grep, Egrep, Fgrep, Rgrep skipanir

Þessar síur gefa út línur sem passa við ákveðið mynstur. Þeir lesa línur úr skrá eða venjulegu inntaki og prenta allar samsvarandi línur sjálfgefið í venjulegt úttak.

Athugið: Aðalforritið notar sérstaka grep valkosti eins og hér að neðan (og þeir eru enn notaðir fyrir afturábak eindrægni):

$ egrep = grep -E
$ fgrep = grep -F
$ rgrep = grep -r  

Hér að neðan eru nokkrar helstu grep skipanir:

[email  ~ $ grep "aaronkilik" /etc/passwd
aaronkilik:x:1001:1001::/home/aaronkilik:

[email  ~ $ cat /etc/passwd | grep "aronkilik"
aaronkilik:x:1001:1001::/home/aaronkilik:

Þú getur lesið meira um Hver er munurinn á Grep, Egrep og Fgrep í Linux?.

4. höfuð Stjórn

head er notað til að sýna fyrstu hluta skráar, það gefur út fyrstu 10 línurnar sjálfgefið. Þú getur notað -n num fána til að tilgreina fjölda lína sem á að sýna:

[email  ~ $ head /var/log/auth.log  
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root
Jan  2 10:51:34 TecMint sudo:  tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py
Jan  2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan  2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root
Jan  2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:55:01 TecMint CRON[4099]: pam_unix(cron:session): session closed for user root
Jan  2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 11:05:01 TecMint CRON[4138]: pam_unix(cron:session): session closed for user root
Jan  2 11:09:01 TecMint CRON[4146]: pam_unix(cron:session): session opened for user root by (uid=0)

[email  ~ $ head  -n 5 /var/log/auth.log  
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan  2 10:45:01 TecMint CRON[3383]: pam_unix(cron:session): session closed for user root
Jan  2 10:51:34 TecMint sudo:  tecmint : TTY=unknown ; PWD=/home/tecmint ; USER=root ; COMMAND=/usr/lib/linuxmint/mintUpdate/checkAPT.py
Jan  2 10:51:34 TecMint sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan  2 10:51:39 TecMint sudo: pam_unix(sudo:session): session closed for user root

Lærðu hvernig á að nota höfuðskipun með hala- og kattaskipunum fyrir skilvirka notkun í Linux.

5. hala Stjórn

hali gefur út síðustu hlutana (10 línur sjálfgefið) af skrá. Notaðu -n num rofann til að tilgreina fjölda lína sem á að sýna.

Skipunin hér að neðan mun gefa út síðustu 5 línurnar í tilgreindri skrá:

[email  ~ $ tail -n 5 /var/log/auth.log
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.

Að auki hefur tail sérstakan valmöguleika -f til að horfa á breytingar á skrá í rauntíma (sérstaklega logskrár).

Eftirfarandi skipun gerir þér kleift að fylgjast með breytingum á tilgreindri skrá:

[email  ~ $ tail -f /var/log/auth.log
Jan  6 12:58:01 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 12:58:11 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 12:58:12 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 12:58:12 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Received SIGHUP; restarting.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on 0.0.0.0 port 22.
Jan  6 13:01:27 TecMint sshd[1269]: Server listening on :: port 22.

Lestu í gegnum halamannasíðuna til að fá heildarlista yfir notkunarmöguleika og leiðbeiningar:

$ man tail

6. flokka Skipun

sort er notað til að raða línum í textaskrá eða frá venjulegu inntaki.

Hér að neðan er innihald skráar sem heitir domains.list:

[email  ~ $ cat domains.list
linux-console.net
linux-console.net
news.linux-console.net
news.linux-console.net
linuxsay.com
linuxsay.com
windowsmint.com
windowsmint.com

Þú getur keyrt einfalda flokkunarskipun til að flokka innihald skrárinnar þannig:

[email  ~ $ sort domains.list
linuxsay.com
linuxsay.com
news.linux-console.net
news.linux-console.net
linux-console.net
linux-console.net
windowsmint.com
windowsmint.com

Þú getur notað flokkunarskipun á marga vegu, farðu í gegnum nokkrar af gagnlegum greinum um röðunarskipun eins og hér segir:

  1. 14 Gagnleg dæmi um Linux ‘flokka’ skipun – Part 1
  2. 7 Áhugaverð Linux ‘flokka’ stjórnunardæmi – Part 2
  3. Hvernig á að finna og raða skrám út frá dagsetningu og tíma breytinga
  4. Hvernig á að raða úttak 'ls' skipun eftir síðasta breytta dagsetningu og tíma

7. uniq Command

uniq skipun er notuð til að tilkynna eða sleppa endurteknum línum, það síar línur úr venjulegu inntaki og skrifar útkomuna í staðlað úttak.

Eftir að hafa keyrt flokkun á inntaksstraumi geturðu fjarlægt endurteknar línur með uniq eins og í dæminu hér að neðan.

Til að gefa til kynna fjölda tilvika línu, notaðu -c valmöguleikann og hunsa mun á tilfellum á meðan þú berð saman með því að taka með -i valkostinum:

[email  ~ $ cat domains.list
linux-console.net
linux-console.net
news.linux-console.net
news.linux-console.net
linuxsay.com
linuxsay.com
windowsmint.com

[email  ~ $ sort domains.list | uniq -c 
2 linuxsay.com
2 news.linux-console.net
2 linux-console.net
1 windowsmint.com 

Lestu í gegnum uniq man síðuna til að fá frekari upplýsingar um notkun og fána:

$ man uniq

8. fmt Skipun

fmt einfalt ákjósanlegt textasnið, það endursniður málsgreinar í tilgreindri skrá og prentar niðurstöður í venjulegt úttak.

Eftirfarandi er efnið sem er dregið úr skránni domain-list.txt:

1.linux-console.net 2.news.linux-console.net 3.linuxsay.com 4.windowsmint.com

Til að endursníða ofangreint efni í staðlaðan lista skaltu keyra eftirfarandi skipun með -w rofi er notaður til að skilgreina hámarkslínubreidd:

[email  ~ $ cat domain-list.txt 
1.linux-console.net 2.news.linux-console.net 3.linuxsay.com 4.windowsmint.com

[email  ~ $ fmt -w 1 domain-list.txt
1.linux-console.net 
2.news.linux-console.net 
3.linuxsay.com 
4.windowsmint.com

9. pr Stjórn

pr skipun breytir textaskrám eða venjulegu inntaki til prentunar. Til dæmis á Debian kerfum geturðu skráð alla uppsetta pakka sem hér segir:

$ dpkg -l

Til að skipuleggja listann í síður og dálka sem eru tilbúnar til prentunar, gefðu út eftirfarandi skipun.

[email  ~ $ dpkg -l | pr --columns 3 -l 20  

2017-01-06 13:19                                                  Page 1


Desired=Unknown/Install ii  adduser		ii  apg
| Status=Not/Inst/Conf- ii  adwaita-icon-theme	ii  app-install-data
|/ Err?=(none)/Reinst-r ii  adwaita-icon-theme- ii  apparmor
||/ Name		ii  alsa-base		ii  apt
+++-=================== ii  alsa-utils		ii  apt-clone
ii  accountsservice	ii  anacron		ii  apt-transport-https
ii  acl			ii  apache2		ii  apt-utils
ii  acpi-support	ii  apache2-bin		ii  apt-xapian-index
ii  acpid		ii  apache2-data	ii  aptdaemon
ii  add-apt-key		ii  apache2-utils	ii  aptdaemon-data


2017-01-06 13:19                                                  Page 2


ii  aptitude		ii  avahi-daemon	ii  bind9-host
ii  aptitude-common	ii  avahi-utils		ii  binfmt-support
ii  apturl		ii  aview		ii  binutils
ii  apturl-common	ii  banshee		ii  bison
ii  archdetect-deb	ii  baobab		ii  blt
ii  aspell		ii  base-files		ii  blueberry
ii  aspell-en		ii  base-passwd		ii  bluetooth
ii  at-spi2-core	ii  bash		ii  bluez
ii  attr		ii  bash-completion	ii  bluez-cups
ii  avahi-autoipd	ii  bc			ii  bluez-obexd

.....

Fánarnir sem notaðir eru hér eru:

  1. --column skilgreinir fjölda dálka sem eru búnir til í úttakinu.
  2. -l tilgreinir síðulengd (sjálfgefið er 66 línur).

10. tr Skipun

Þetta tól þýðir eða eyðir stöfum úr venjulegu inntaki og skrifar niðurstöður í staðlað úttak.

Setningafræðin fyrir notkun tr er sem hér segir:

$ tr options set1 set2

Skoðaðu dæmin hér að neðan, í fyrstu skipuninni táknar set1( [:upper:] ) hástafi innsláttarstafa (allir hástafir).

Þá táknar set2([:lower:]) tilvikið sem stafirnir sem myndast verða í. Það er það sama í öðru dæminu og flóttaröðinni þýðir prentúttak á nýrri línu:

[email  ~ $ echo "WWW.TECMINT.COM" | tr [:upper:] [:lower:]
linux-console.net

[email  ~ $ echo "news.linux-console.net" | tr [:lower:] [:upper:]
NEWS.TECMINT.COM

11. meira Skipun

meira skipun er gagnleg skráaskoðunarsía sem er í grundvallaratriðum búin til til að skoða vottorð. Það sýnir skráarefni á síðu eins og sniði, þar sem notendur geta ýtt á [Enter] til að skoða frekari upplýsingar.

Þú getur notað það til að skoða stórar skrár eins og svo:

[email  ~ $ dmesg | more
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.0-21-generic ([email ) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic
 4.4.6)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable
[    0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable
--More--

12. minni stjórn

minna er andstæða meiri skipunar hér að ofan en það býður upp á auka eiginleika og það er aðeins hraðari með stórum skrám.

Notaðu það á sama hátt og fleiri:

[email  ~ $ dmesg | less
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.0-21-generic ([email ) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic
 4.4.6)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b ro quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000a56affff] usable
[    0.000000] BIOS-e820: [mem 0x00000000a56b0000-0x00000000a5eaffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000a5eb0000-0x00000000aaabefff] usable
:

Lærðu hvers vegna „minna“ er hraðari en „meira“ skipun fyrir skilvirka skráaleiðsögn í Linux.

Það er allt í bili, láttu okkur vita af gagnlegum skipanalínuverkfærum sem ekki eru nefnd hér, sem virka sem textasíur í Linux í gegnum athugasemdahlutann hér að neðan.