Panduan untuk Pemula Scripting Shell 3 Perintah & Rantai Lebih Dasar
Anda telah belajar cara membuat skrip, menggunakan argumen, dan membuat loop. Sekarang, mari kita lihat beberapa perintah dasar, manipulasi file teks, dan mengarahkan input dan output ke file dan perintah lainnya.
Beberapa Perintah Dasar yang Berguna
Kami telah memberi Anda rincian dasar skrip shell dan garis besar contoh untuk loop, tetapi pastikan untuk memeriksa artikel tersebut jika Anda telah melewatkan panduan skrip shell kami sejauh ini.
Baris perintah sangat bagus karena banyak alasan, dan pengalihan adalah salah satu yang paling menonjol. Jika Anda harus membuat catatan dan mereproduksi output dari setiap perintah untuk mengambil tindakan lebih lanjut atau menggunakannya untuk hal lain, maka kita semua sudah gila sejak lama. Pengalihan memungkinkan kita menggunakan output itu dan menyimpannya atau segera menggunakannya sebagai input untuk perintah lain. Kita juga bisa menggunakan file sebagai input untuk perintah lain.
Sebelum kita melanjutkan, mari kita bahas beberapa perintah dasar yang dapat digunakan di banyak tempat berbeda.
gema - Perintah ini hanya mencetak (menampilkan) keseluruhan argumennya pada baris perintah sebagai output
argumen gema dengan spasi
Seperti yang Anda lihat, karakter khusus harus "melarikan diri" sehingga mereka diperlakukan secara normal. Ini dilakukan dengan menggunakan garis miring terbalik (\) di depan karakter. Adalah ide yang lebih baik untuk menggunakan kutipan. Perintah echo juga berfungsi dengan variabel.
Seperti yang Anda lihat, tanda kutip tunggal dan ganda berperilaku berbeda. Untuk informasi lebih lanjut, lihat Apa Perbedaan Antara Kutipan Tunggal dan Ganda di Bash Shell?
kucing - Perintah ini menampilkan isi file teks sebagai output.
file_to_be_read cat
Katakanlah kita membuat file teks ini di nano:
Ketika kita menggunakan perintah cat pada file, kita bisa melihat outputnya.
grep - Ini adalah salah satu perintah paling kuat dan berguna yang tersedia untuk Anda di Linux. Singkatan dari Global / Regular Expression Print. Itu terlihat melalui file dan mencetak garis apa pun yang cocok dengan pola tertentu. Karena pola ini didasarkan pada "ekspresi reguler," garis ringkas dapat menghasilkan banyak pola untuk dicocokkan. Karena tidak, Anda dapat memasukkan tiga barang untuk pencarian.
file pola grep
Saya yakinkan Anda, grep dapat melakukan lebih banyak, tetapi untuk sekarang mari kita tetap pada hal-hal yang lebih mudah.
Mengarahkan Output
Untuk mengarahkan output dari sebuah perintah ke file, kami menggunakan karakter khusus, simbol lebih besar dari (>).
Mari kita ubah daftar kita, ya? Masukkan perintah berikut:
echo pepperoni> daftar
Anda dapat melihat bahwa gema tidak menampilkan garis lagi, dan ketika kita melihat isi file "daftar", kita melihat apa yang kita gema di sana.
Juga perhatikan bahwa isi "daftar" sebelumnya telah dihapus. Coba lagi:
Ini bisa berguna ketika Anda ingin menggunakan kembali file, tetapi seringkali kami hanya ingin menambahkan ke file yang sudah ada. Untuk ini, kami menggunakan dua simbol lebih besar dari berturut-turut:
gema paprika kuning >> daftar
Mudah! Mari kita gunakan perintah ini untuk membuat daftar yang lebih besar?
Itu dia. Saya pikir Anda dapat melihat mengapa begitu banyak Geeks menggunakan command-line untuk membuat to-do list dan sejenisnya, tetapi semakin baik.
Mari kita ambil output dari sebuah perintah dan memasukkannya ke dalam file:
ls -al /> ~ / rootlist
Membuat daftar file, mengeditnya, dan kemudian menjalankan perintah pada yang Anda inginkan tidak pernah semudah ini. Dan, sementara kita melakukan fungsi-fungsi dasar ini di command-line, ini juga bekerja dengan baik dalam skrip.
Perpipaan, atau Rantai
Piping dinamakan demikian karena menggunakan pipa, (|; dibagikan dengan tombol \ pada sebagian besar keyboard). Pada dasarnya, dibutuhkan output dari satu perintah dan langsung mengumpankannya ke perintah lain. Anda dapat membuat rantai panjang perintah untuk mendapatkan output yang diinginkan yang sangat spesifik dengan cara ini, dan sangat nyaman untuk perintah seperti grep.
Kerjanya sangat mirip ">" kecuali itu dapat dirantai beberapa kali dan efeknya lebih umum karena tidak perlu melalui file teks.
Seperti yang Anda lihat, grep peka terhadap huruf besar-kecil. Anda dapat menggunakan flag “-i” untuk membuatnya mengabaikan case.
Mengarahkan Input
Anda juga dapat mengambil input dari file untuk perintah dengan menggunakan simbol kurang dari (<).
kucing < list
“Itu tidak berbeda dengan menggunakan argumen!” Anda mungkin berkata. Nah, Anda benar dalam hal ini. Di mana pengalihan input benar-benar berguna adalah dalam chaining perintah bersama.
Katakanlah kita ingin memfilter setiap kata yang memiliki "pep" di dalamnya dari file "daftar" kita saat ini ke dalam file baru yang disebut "revisi".
revisi grep pep
Mari kita ulangi perintah ini, dan tambahkan beberapa penyortiran.
revisi grep pep
Ini akan menggunakan "pep" sebagai istilah pencarian dari "daftar" file input, mengurutkannya dalam urutan alfabet (semua istilah huruf besar diikuti oleh semua istilah huruf kecil), lalu mengeluarkannya ke file "revisi".
Untuk mengilustrasikan perintah sortir, mari kita lihat contoh berikut:
Seperti yang Anda lihat, menambahkan bendera “-f” ke perintah sortir memungkinkan Anda untuk mengabaikan case. Ini memudahkan kita untuk membuat garis abjad dalam file teks dan mengabaikan huruf besar ketika itu tidak masalah.
Script Sederhana
Mari kita buat skrip yang memiliki bentuk sebagai berikut:
pencarian skrip listfile
Itu akan mengambil istilah dan menggunakan grep untuk mencari melalui file daftar, mengurutkan hasil, dan kemudian output ke file lain.
Inilah direktori tempat kami akan menguji skrip:
Dan, kita bisa membuat daftar apa yang ada di sini, lalu jalankan skripnya.
Ini dia! Semakin banyak Anda mempelajari aturan ekspresi reguler, semakin akurat Anda menyusun perintah pencarian. Dan, segala sesuatu yang valid dalam kutipan dapat menggantikan argumen pertama Anda!
Sejauh pemilahan, Anda dapat melakukan lebih dari sekadar mengurutkan menurut abjad. Lihatlah halaman manual untuk beberapa perintah berikut:
- tsort - fungsi penyortiran topologi yang lebih maju
- tr - memungkinkan Anda memetakan karakter tertentu ke karakter lain, dan menyalinnya.
- uniq - menghapus yang tidak unik (baca: duplikat)
- awk - bahasa / fungsi pemrosesan teks yang sangat canggih yang dapat digunakan untuk memisahkan bidang dalam nama file
- cut, paste / join - perintah yang berguna untuk mengisolasi bidang dari file teks dan menambahkan data baru ke dalam kolom
- look - pencarian seperti halnya grep, tetapi menggunakan file kamus (yang dapat ditentukan pengguna) untuk pencarian
- wc - memungkinkan Anda mendapatkan jumlah kata, jumlah baris, jumlah karakter, dan lainnya
Kami melihat beberapa dasar lagi hari ini yang dapat berguna pada command-line seperti pada skrip. Data berbasis teks seringkali menjadi inti dari hal-hal yang kami gunakan setiap hari, sehingga dapat bekerja dengannya, mencarinya, dan memanipulasinya adalah kuncinya.
Apa saja skrip favorit Anda? Punya skrip penggunaan khusus untuk file berbasis teks? Bagikan apa yang Anda ketahui di komentar!