Artikel ini memperkenalkan beberapa alat, terutama grep
, alat baris perintah Linux® yang dapat Anda gunakan untuk mencari direktori atau file yang cocok dengan ekspresi reguler yang ditentukan.
Apa itu grep
?
Jawaban resmi:
grep
mencari file input bernama (atau input standar jika Anda tidak menentukan file atau menggunakan tanda hubung tunggal (- ) sebagai nama file)untuk baris yang berisi kecocokan dengan pola yang diberikan. Secara default, grep
mencetak garis yang cocok.
Jawaban yang lebih bagus:
Telusuri file, direktori, atau keluaran untuk sesuatu yang spesifik, mirip denganCtrl + f di Windows®. Gunakan fungsi ini untuk menargetkan apa yang Anda butuhkan.
Dasar
Seringkali, cara termudah untuk menunjukkan cara kerja perintah adalah dengan contoh.
Anda dapat melihat semua pengguna di /etc/passwd file dengan perintah berikut:
# cat /etc/passwd
rack❌1001:1001::/home/rack:/bin/bash
apache❌48:48:Apache:/usr/share/httpd:/sbin/nologin
mysql❌27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
sher❌1002:1002::/home/sher:/bin/bash
Menggunakan grep
, Anda dapat mempersempit daftar tersebut untuk menemukan satu pengguna.
Temukan pengguna tertentu :
Buat daftar pengguna tetapi filter output yang hanya menampilkan baris dengan sher di dalamnya.
# cat /etc/passwd | grep 'sher'
sher❌1002:1002::/home/sher:/bin/bash
Atau, temukan pengguna yang sama dengan satu perintah:
# grep 'sher' /etc/passw
rack❌1001:1001::/home/rack:/bin/bash
sher❌1002:1002::/home/sher:/bin/bash
Dalam contoh berikut, temukan semua pengguna dengan akses bash:
# grep 'bash' /etc/passwd
rack❌1001:1001::/home/rack:/bin/bash
sher❌1002:1002::/home/sher:/bin/bash
Bendera
Seperti kebanyakan perintah Linux, grep
menggunakan tanda, biasanya satu atau lebih huruf yang didahului oleh satu atau lebih tanda hubung, untuk menambahkan fungsionalitas tambahan.
-v
:Tampilkan semua yang tidak termasuk pola pencarian yang ditentukan:
# grep -v 'nologin' /etc/passwd
rack❌1001:1001::/home/rack:/bin/bash
sher❌1002:1002::/home/sher:/bin/bash
-i
:Tampilkan kecocokan, abaikan kasing, yang berguna saat Anda tidak tahu persis apa yang Anda butuhkan:
# grep -i 'SHER' /etc/passwd
sher❌1002:1002::/home/sher:/bin/bash
Telusuri beberapa pola
grep
menggunakan simbol pipa (| ) berarti atau memungkinkan Anda untuk mencari lebih dari satu hal sekaligus. Gunakan salah satu metode berikut untuk mencari beberapa hal sekaligus:
\ :Keluar dari karakter berikutnya, sebuah pipa (| ) memungkinkannya berfungsi sebagai atau :
# grep 'sher\|rack' /etc/passwd
rack❌1001:1001::/home/rack:/bin/bash
sher❌1002:1002::/home/sher:/bin/bash
-E :Menafsirkan karakter khusus, seperti | sebagai atau :
# grep -E 'sher|rack' /etc/passwd
rack❌1001:1001::/home/rack:/bin/bash
sher❌1002:1002::/home/sher:/bin/bash
egrep
perintah melakukan hal yang sama:
# egrep 'sher|rack' /etc/passwd
rack❌1001:1001::/home/rack:/bin/bash
sher❌1002:1002::/home/sher:/bin/bash
Menggabungkan flag
Anda dapat menggunakan berbagai tanda dalam kombinasi untuk mempersempit pencarian.
Contoh berikut menunjukkan semua pengguna yang bukan sher atau rak , terlepas dari kasus pola konten file:
# egrep -vi 'SHER|RACK' /etc/passwd
Contoh praktis
Bagian berikut mencakup kegunaan lain untuk grep
dan perkenalkan perintah berguna lainnya.
Abaikan komentar
Di Linux, Anda mengomentari baris dengan menambahkan simbol pound (# ) di awal baris. Dengan cara ini, Anda dapat menambahkan catatan Anda sendiri, dan skrip atau program menandatangani komentar dan tidak menjalankan baris tersebut.
Untuk menampilkan file yang mengabaikan komentar tersebut, gunakan perintah berikut:
# grep -v ^'#' /file
Anda bahkan dapat menjalankan grep
di atas grep
lainnya perintah.
Misalnya, buat daftar file yang mengabaikan baris komentar, lalu cari sesuatu yang spesifik:
# grep -v ^'#' /file | grep 'hello'
Riwayat penelusuran
Sebagian besar sistem Linux menyimpan log dari perintah yang dijalankan, yang dapat Anda akses dengan perintah history
. Saat Anda menggabungkan history
dengan grep
, Anda dapat dengan sangat efektif menyelidiki apa yang telah dijalankan di sistem Anda sejauh ini.
Periksa passwd
perintah dijalankan dan perintah lain yang berisipasswd pola:
# history | grep 'passwd'
Temukan perintah yang dijalankan pada hari tertentu:
# history | grep '2021-05-10'
Periksa perintah mana yang dijalankan pada waktu tertentu:
# history | grep '2021-05-10 11:00:'
Periksa port dan login root
Buat daftar lalu lintas web yang berjalan pada port 80
dan 443
:
# netstat -plnt | egrep '80|443'
Anda dapat menggunakan ^ dalam grep
perintah untuk hanya menampilkan baris yang dimulai dengan pola pencarian Anda.
Misalnya, jalankan perintah berikut untuk memeriksa apakah sistem mengizinkan login root:
# grep ^'Permit' /etc/ssh/sshd_config
Cari log dengan kepala dan ekor
Gunakan top
untuk menampilkan sepuluh baris pertama dari log upaya login:
# head /var/log/secure
Gunakan tail
untuk menampilkan baris di akhir log upaya login:
# tail /var/log/secure
Gunakan last
perintah untuk menampilkan sepuluh baris pertama dari login terbaru:
# last | head -10
Gunakan tail -f
untuk menonton file tumbuh secara real time. Misalnya, Anda dapat melihat upaya login terbaru dan melihat upaya yang sedang berlangsung. Jika seseorang mencoba masuk, Anda dapat melihatnya seperti yang terjadi dengan perintah berikut:
# tail -f /var/log/secure
Ctrl + C to exit
Alat lain
Anda dapat bereksperimen dengan keterampilan baru Anda dengan menggunakan alat di bagian ini.
vim atau nano
vi
, vim
, dan nano
adalah editor teks paling umum di Linux. Anda dapat menggunakannya untuk mengedit file, mirip dengan menggunakan Notepad di Windows.
Buka dan buat file baru, test :
# vim /test
Tindakan | Urutan kunci | Penjelasan |
---|---|---|
Untuk mulai mengetik konten baru: | i | Bersiap untuk menyisipkan teks |
Untuk keluar tanpa menyimpan: | Esc :q! | Keluar dari mode penyisipan dan keluar |
Untuk keluar dan menyimpan: | Esc :wq! | Keluar dari mode penyisipan, tulis, dan keluar |
gema
echo
adalah perintah sederhana yang memberitahu Linux untuk mengulangi apa yang baru saja Anda ketik. Ini efektif untuk menguji grep
perintah tanpa terlebih dahulu membuat file baru.
Misalnya, buat halo tampilan:
# echo 'hello'
hello
Tampilkan halo dan cari huruf tengahnya:
# echo 'hello' | grep 'ell'
hello
Anda bahkan dapat menggunakan echo
untuk menampilkan beberapa baris dengan menggunakan -e
dan \n
tambahkan baris baru.
Tampilkan hai dan ho pada baris terpisah:
# echo -e 'hi\nho'
hi
ho
Tampilkan hai dan ho pada baris terpisah dan telusuri hai :
# echo -e 'hi\nho' | grep 'hi'
hi
sed
Seperti grep
, sed
memiliki banyak kegunaan, tetapi Anda terutama menggunakan perintah ini untuk mencari dan mengganti konten tertentu. Berikut adalah beberapa contoh dasar tentang cara memilih baris tertentu:
Pertama, Gunakan vim
untuk membuat file:
# vim /test
Saat editor terbuka, masukkan baris berikut:
1 Hi
2 How
3 Are
4 You
Tampilkan file baru:
# cat test
1 Hi
2 How
3 Are
4 You
Gunakan sed
untuk mengembalikan semuanya kecuali baris pertama:
# sed 1d test
2 How
3 Are
4 You
Kembalikan hanya baris pertama:
# sed 1q test
atau
# sed '1!d' test
1 Hi
Kembalikan hanya baris kedua hingga keempat:
# sed '2,4!d' test
2 How
3 Are
4 You
Kesimpulan
Ada banyak alat lain yang dapat Anda gunakan, seperti awk
, cut
, sort
, xargs
,dan seterusnya. Sekarang Anda tahu cara membuat file dengan menggunakan echo
, Anda dapat bereksperimen lebih efektif dengan mereka.