12 Kmandi Utli Għall-Iffiltrar tat-Test għal Operazzjonijiet Effettivi tal-Fajl fil-Linux
F'dan l-artikolu, se nirrevedu numru ta 'għodod tal-linja tal-kmand li jaġixxu bħala filtri fil-Linux. Filtru huwa programm li jaqra input standard, iwettaq operazzjoni fuqu u jikteb ir-riżultati fuq output standard.
Għal din ir-raġuni, tista 'tintuża biex tipproċessa l-informazzjoni b'modi b'saħħithom bħal output ta' ristrutturar biex tiġġenera rapporti utli, timmodifika test fil-fajls u ħafna kompiti oħra ta 'amministrazzjoni tas-sistema.
B'dak li ntqal, hawn taħt hemm xi wħud mill-filtri utli tal-fajl jew tat-test fil-Linux.
1. Kmand Awk
Awk hija lingwa ta 'skanjar u pproċessar ta' mudell notevoli, tista 'tintuża biex tibni filtri utli fil-Linux. Tista 'tibda tużah billi taqra s-serje Awk tagħna Parti 1 sa Parti 13.
Barra minn hekk, aqra wkoll il-paġna man awk għal aktar informazzjoni u għażliet ta 'użu:
$ man awk
2. Sed Kmand
sed huwa editur tan-nixxiegħa b'saħħtu għall-iffiltrar u t-trasformazzjoni tat-test. Diġà ktibna żewġ artikli utli dwar sed, li tista’ tgħaddi minnha hawn:
- Kif tuża l-Kmand GNU ‘sed’ biex Toħloq, Teditja, u timmanipula fajls fil-Linux
- 15 Suġġerimenti u Tricks Utli tal-Kmand ‘sed’ għal Kompiti ta’ Kuljum ta’ Amministrazzjoni tas-Sistema Linux
Il-paġna man sed żiedet għażliet ta' kontroll u struzzjonijiet:
$ man sed
3. Kmandi Grep, Egrep, Fgrep, Rgrep
Dawn il-filtri joħorġu linji li jaqblu ma 'mudell partikolari. Huma jaqraw linji minn fajl jew input standard, u jistampaw il-linji kollha li jaqblu awtomatikament għall-output standard.
Nota: Il-programm ewlieni qed juża għażliet grep speċifiċi kif hawn taħt (u għadhom qed jintużaw għal kompatibilità b'lura):
$ egrep = grep -E $ fgrep = grep -F $ rgrep = grep -r
Hawn taħt hawn xi kmandi bażiċi grep:
[email ~ $ grep "aaronkilik" /etc/passwd aaronkilik:x:1001:1001::/home/aaronkilik: [email ~ $ cat /etc/passwd | grep "aronkilik" aaronkilik:x:1001:1001::/home/aaronkilik:
Tista 'taqra aktar dwar X'Differenza Bejn Grep, Egrep u Fgrep fil-Linux?.
4. Kap Kmand
head tintuża biex turi l-ewwel partijiet ta 'fajl, toħroġ l-ewwel 10 linji awtomatikament. Tista' tuża l-marka -n
num biex tispeċifika n-numru ta' linji li għandhom jintwerew:
[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
Tgħallem kif tuża l-kmand tar-ras bil-kmandi tad-denb u tal-qtates għal użu effettiv fil-Linux.
5. Kmand tad-denb
tail joħroġ l-aħħar partijiet (10 linji awtomatikament) ta 'fajl. Uża l-iswiċċ -n
num biex tispeċifika n-numru ta' linji li għandhom jintwerew.
Il-kmand hawn taħt joħroġ l-aħħar 5 linji tal-fajl speċifikat:
[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.
Barra minn hekk, denb għandu għażla speċjali -f
biex tara bidliet f'fajl f'ħin reali (speċjalment log files).
Il-kmand li ġej jippermettilek tissorvelja l-bidliet fil-fajl speċifikat:
[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.
Aqra l-paġna man tail għal lista kompluta ta 'għażliet ta' użu u istruzzjonijiet:
$ man tail
6. issortja Kmand
sort huwa użat biex issolvi linji ta 'fajl test jew minn input standard.
Hawn taħt hemm il-kontenut ta' fajl bl-isem 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
Tista' tmexxi kmand ta' sort sempliċi biex issolvi l-kontenut tal-fajl hekk:
[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
Tista' tuża l-kmand tal-issortjar f'ħafna modi, tgħaddi minn uħud mill-artikoli utli dwar il-kmand tal-issortjar kif ġej:
- 14 Eżempji Utli ta’ Kmand ta’ ‘sort’ Linux – Parti 1
- 7 Eżempji ta’ Kmand Interessanti ta’ ‘sort’ Linux – Parti 2
- Kif Sib u Issortja Fajls Ibbażat fuq id-Data u l-Ħin tal-Modifikazzjoni
- Kif Issortja l-Output tal-Kmand ‘ls’ Skont l-Aħħar Data u Ħin Modifikat
7. Kmand uniq
Il-kmand uniq jintuża biex jirrapporta jew iħalli barra linji ripetuti, jiffiltra linji minn input standard u jikteb ir-riżultat għall-output standard.
Wara li taħdem issortja fuq fluss ta 'input, tista' tneħħi linji ripetuti b'uniq bħal fl-eżempju hawn taħt.
Biex tindika n-numru ta' okkorrenzi ta' linja, uża l-għażla -c
u injora d-differenzi fil-każ waqt li tqabbel billi tinkludi l-għażla -i
:
[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
Aqra l-paġna man uniq għal aktar informazzjoni dwar l-użu u bnadar:
$ man uniq
8. Kmand fmt
fmt formatter tat-test ottimali sempliċi, jifformattja l-paragrafi fil-fajl speċifikat u jistampa r-riżultati għall-output standard.
Dan li ġej huwa l-kontenut estratt mill-fajl domain-list.txt:
1.linux-console.net 2.news.linux-console.net 3.linuxsay.com 4.windowsmint.com
Biex tifforma mill-ġdid il-kontenut ta' hawn fuq għal lista standard, mexxi l-kmand li ġej bi -w
swiċċ jintuża biex tiddefinixxi l-wisa 'massimu tal-linja:
[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 Kmand
kmand pr jikkonverti fajls ta 'test jew input standard għall-istampar. Pereżempju fuq is-sistemi Debian, tista’ telenka l-pakketti installati kollha kif ġej:
$ dpkg -l
Biex torganizza l-lista f'paġni u kolonni lesti għall-istampar, agħti l-kmand li ġej.
[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 .....
Il-bnadar użati hawn huma:
--kolonna
jiddefinixxi n-numru ta' kolonni maħluqa fl-output.-l
jispeċifika t-tul tal-paġna (default huwa 66 linja).
10. tr Kmand
Din l-għodda tittraduċi jew tħassar karattri minn input standard u tikteb ir-riżultati għall-output standard.
Is-sintassi għall-użu tr hija kif ġej:
$ tr options set1 set2
Agħti ħarsa lejn l-eżempji hawn taħt, fl-ewwel kmand, set1([:upper:] )
tirrappreżenta l-każ ta’ karattri ta’ input (kollha majju).
Imbagħad set2([:lower:])
tirrappreżenta l-każ li fih se jkunu l-karattri li jirriżultaw. Hija l-istess ħaġa fit-tieni eżempju u s-sekwenza tal-ħarba
tfisser output tal-istampar fuq linja ġdida:
[email ~ $ echo "WWW.TECMINT.COM" | tr [:upper:] [:lower:] linux-console.net [email ~ $ echo "news.linux-console.net" | tr [:lower:] [:upper:] NEWS.TECMINT.COM
11. aktar Kmand
aktar kmand huwa filtru utli tal-perusal tal-fajl maħluqa bażikament għall-wiri taċ-ċertifikat. Juri l-kontenut tal-fajl f'format bħal paġna, fejn l-utenti jistgħu jagħfsu [Enter] biex jaraw aktar informazzjoni.
Tista' tużaha biex tara fajls kbar bħal dan:
[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. inqas Kmand
inqas huwa l-oppost ta 'aktar kmand hawn fuq iżda joffri karatteristiċi żejda u huwa ftit aktar mgħaġġel b'fajls kbar.
Użaha bl-istess mod bħal aktar:
[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 :
Tgħallem Għaliex inqas huwa Faster Than aktar Kmand għal navigazzjoni effettiva tal-fajls fil-Linux.
Dak kollu għalissa, għarrafna bi kwalunkwe għodda utli tal-linja tal-kmand mhux imsemmija hawn, li jaġixxu bħala test filtri fil-Linux permezz tat-taqsima tal-kummenti hawn taħt.