12 Perintah Berguna Untuk Memfilter Teks untuk Operasi File yang Efektif di Linux
Pada artikel ini, kami akan mengulas sejumlah alat baris perintah yang bertindak sebagai filter di Linux. Filter adalah program yang membaca masukan standar, melakukan operasi padanya, dan menulis hasilnya ke keluaran standar.
Oleh karena itu, ini dapat digunakan untuk memproses informasi dengan cara yang ampuh seperti merestrukturisasi keluaran untuk menghasilkan laporan yang berguna, memodifikasi teks dalam file dan banyak tugas administrasi sistem lainnya.
Oleh karena itu, di bawah ini adalah beberapa filter file atau teks yang berguna di Linux.
1. Perintah Awk
Awk adalah bahasa pemindaian dan pemrosesan pola yang luar biasa, dapat digunakan untuk membuat filter yang berguna di Linux. Anda dapat mulai menggunakannya dengan membaca seri Awk Bagian 1 hingga Bagian 13 kami.
Selain itu, baca juga halaman manual awk untuk info lebih lanjut dan opsi penggunaan:
man awk
2. Perintah Sed
sed adalah editor aliran yang hebat untuk memfilter dan mengubah teks. Kami telah menulis dua artikel bermanfaat tentang sed, yang dapat Anda baca di sini:
- Cara menggunakan Perintah 'sed' GNU untuk Membuat, Mengedit, dan Memanipulasi file di Linux
- 15 Tip dan Trik Perintah 'sed' yang Berguna untuk Tugas Administrasi Sistem Linux Harian
Halaman manual sed telah menambahkan opsi dan instruksi kontrol:
man sed
3. Perintah Grep, Egrep, Fgrep, Rgrep
Filter ini menghasilkan garis yang cocok dengan pola tertentu. Mereka membaca baris dari file atau input standar, dan mencetak semua baris yang cocok secara default ke output standar.
Catatan: Program utamanya adalah grep, variasinya sama saja dengan menggunakan opsi grep tertentu seperti di bawah ini (dan masih digunakan untuk kompatibilitas ke belakang):
egrep = grep -E
fgrep = grep -F
rgrep = grep -r
Di bawah ini adalah beberapa perintah dasar grep:
tecmint@TecMint ~ $ grep "aaronkilik" /etc/passwd
aaronkilik:x:1001:1001::/home/aaronkilik:
tecmint@TecMint ~ $ cat /etc/passwd | grep "aronkilik"
aaronkilik:x:1001:1001::/home/aaronkilik:
Anda dapat membaca lebih lanjut tentang Apa Perbedaan Antara Grep, Egrep dan Fgrep di Linux?.
4. Kepala Komando
head digunakan untuk menampilkan bagian pertama file, menghasilkan 10 baris pertama secara default. Anda dapat menggunakan flag -n
num untuk menentukan jumlah baris yang akan ditampilkan:
tecmint@TecMint ~ $ 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)
tecmint@TecMint ~ $ 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
Pelajari cara menggunakan perintah head dengan perintah tail dan cat untuk penggunaan yang efektif di Linux.
5. Perintah ekor
tail menampilkan bagian terakhir (10 baris secara default) dari sebuah file. Gunakan tombol -n
num untuk menentukan jumlah baris yang akan ditampilkan.
Perintah di bawah ini akan menampilkan 5 baris terakhir dari file yang ditentukan:
tecmint@TecMint ~ $ 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.
Selain itu, tail memiliki opsi khusus -f
untuk melihat perubahan dalam file secara real-time (terutama file log).
Perintah berikut akan memungkinkan Anda memantau perubahan pada file yang ditentukan:
tecmint@TecMint ~ $ 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.
Bacalah halaman manual tail untuk daftar lengkap opsi penggunaan dan instruksi:
man tail
6. urutkan Perintah
sort digunakan untuk mengurutkan baris file teks atau dari input standar.
Di bawah ini adalah isi file bernama domains.list:
tecmint@TecMint ~ $ 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
Anda dapat menjalankan perintah pengurutan sederhana untuk mengurutkan konten file seperti:
tecmint@TecMint ~ $ 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
Anda dapat menggunakan perintah sort dengan banyak cara, baca beberapa artikel berguna tentang perintah sortir sebagai berikut:
- 14 Contoh Berguna dari Perintah 'sort' Linux – Bagian 1
- 7 Contoh Perintah 'sort' Linux yang Menarik – Bagian 2
- Cara Mencari dan Mengurutkan File Berdasarkan Tanggal dan Waktu Modifikasi
- Cara Mengurutkan Output Perintah 'ls' Berdasarkan Tanggal dan Waktu Terakhir Dimodifikasi
7. Perintah unik
Perintah uniq digunakan untuk melaporkan atau menghilangkan baris berulang, memfilter baris dari masukan standar dan menulis hasilnya ke keluaran standar.
Setelah menjalankan sort pada aliran masukan, Anda dapat menghapus baris berulang dengan uniq seperti pada contoh di bawah.
Untuk menunjukkan jumlah kemunculan suatu baris, gunakan opsi -c
dan abaikan perbedaan huruf besar-kecil sambil membandingkan dengan menyertakan opsi -i
:
tecmint@TecMint ~ $ cat domains.list
linux-console.net
linux-console.net
news.linux-console.net
news.linux-console.net
linuxsay.com
linuxsay.com
windowsmint.com
tecmint@TecMint ~ $ sort domains.list | uniq -c
2 linuxsay.com
2 news.linux-console.net
2 linux-console.net
1 windowsmint.com
Bacalah halaman manual uniq untuk informasi dan tanda penggunaan lebih lanjut:
man uniq
8. Perintah fmt
fmt pemformat teks sederhana yang optimal, memformat ulang paragraf dalam file tertentu dan mencetak hasilnya ke keluaran standar.
Berikut konten yang diekstrak dari file domain-list.txt:
1.linux-console.net 2.news.linux-console.net 3.linuxsay.com 4.windowsmint.com
Untuk memformat ulang konten di atas ke daftar standar, jalankan perintah berikut dengan saklar -w
yang digunakan untuk menentukan lebar garis maksimum:
tecmint@TecMint ~ $ cat domain-list.txt
1.linux-console.net 2.news.linux-console.net 3.linuxsay.com 4.windowsmint.com
tecmint@TecMint ~ $ fmt -w 1 domain-list.txt
1.linux-console.net
2.news.linux-console.net
3.linuxsay.com
4.windowsmint.com
9. pr Perintah
Perintah pr mengonversi file teks atau input standar untuk pencetakan. Misalnya pada sistem Debian, Anda dapat membuat daftar semua paket yang diinstal sebagai berikut:
dpkg -l
Untuk mengatur daftar dalam halaman dan kolom yang siap dicetak, jalankan perintah berikut.
tecmint@TecMint ~ $ 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
.....
Bendera yang digunakan di sini adalah:
--column
mendefinisikan jumlah kolom yang dibuat pada output.-l
menentukan panjang halaman (defaultnya adalah 66 baris).
10. tr Perintah
Alat ini menerjemahkan atau menghapus karakter dari input standar dan menulis hasilnya ke output standar.
Sintaks penggunaan tr adalah sebagai berikut:
tr options set1 set2
Lihatlah contoh di bawah ini, pada perintah pertama, set1( [:upper:] )
mewakili huruf besar/kecil dari karakter input (semua huruf besar).
Kemudian set2([:lower:])
mewakili kasus di mana karakter yang dihasilkan akan berada. Hal yang sama terjadi pada contoh kedua dan urutan escape \n
berarti keluaran cetak pada baris baru:
tecmint@TecMint ~ $ echo "WWW.TECMINT.COM" | tr [:upper:] [:lower:]
linux-console.net
tecmint@TecMint ~ $ echo "news.linux-console.net" | tr [:lower:] [:upper:]
NEWS.TECMINT.COM
11. lebih banyak perintah
Perintah more adalah filter penelusuran file berguna yang dibuat pada dasarnya untuk melihat sertifikat. Ini menampilkan konten file dalam format seperti halaman, di mana pengguna dapat menekan [Enter] untuk melihat informasi lebih lanjut.
Anda dapat menggunakannya untuk melihat file besar seperti:
tecmint@TecMint ~ $ 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 (buildd@lgw01-21) (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. Kurangnya perintah
kurang adalah kebalikan dari perintah lebih di atas tetapi perintah ini menawarkan fitur tambahan dan sedikit lebih cepat dengan file besar.
Gunakan dengan cara yang sama seperti lainnya:
tecmint@TecMint ~ $ 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 (buildd@lgw01-21) (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
:
Pelajari Mengapa Perintah 'kurang' Lebih Cepat Daripada 'lebih' untuk navigasi file yang efektif di Linux.
Itu saja untuk saat ini, beri tahu kami alat baris perintah berguna apa pun yang tidak disebutkan di sini, yang berfungsi sebagai filter teks di Linux melalui bagian komentar di bawah.