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:
- Hvernig á að nota GNU ‘sed’ skipun til að búa til, breyta og vinna með skrár í Linux
- 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:
- 14 Gagnleg dæmi um Linux ‘flokka’ skipun – Part 1
- 7 Áhugaverð Linux ‘flokka’ stjórnunardæmi – Part 2
- Hvernig á að finna og raða skrám út frá dagsetningu og tíma breytinga
- 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:
--column
skilgreinir fjölda dálka sem eru búnir til í úttakinu.-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
[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.