GNU/Linux >> Belajar Linux >  >> Linux

Apa shell favorit Anda untuk pekerjaan sysadmin?

Anda mungkin pernah mendengar ungkapan, "ketika semua yang Anda miliki hanyalah palu, semua masalah terlihat seperti paku." Itu tidak berlaku untuk dunia luar biasa dari cangkang POSIX. Bagi yang belum tahu, satu layar hitam menyala dengan teks hijau sama dengan layar hitam menyala lainnya yang berisi teks hijau, tetapi banyak sysadmin tahu bahwa shell yang Anda pilih dapat mengubah setiap aspek cara Anda berinteraksi dengan komputer.

Tidak jarang menemukan ini dengan cara yang sulit, biasanya di bawah tekanan. Namun, begitu Anda mengalami ketidakmampuan memasukkan sintaks yang salah ke dalam shell yang tidak dikenal, Anda dengan cepat mengembangkan lampiran ke shell yang Anda rasa nyaman. Meski begitu, kebanyakan shell yang populer memiliki kelebihan yang menyebabkan sysadmin yang berbeda menetapkannya sebagai antarmuka default. . Jika Anda menghabiskan sedikit waktu dengan masing-masing, Anda mungkin menemukan bahwa Anda mengembangkan favorit baru, atau setidaknya Anda dapat menyesuaikan diri dengan shell cadangan yang andal.

Berikut adalah beberapa shell yang paling populer, dan apa yang disukai pengguna tentang shell tersebut.

Abu dan Dash

Cangkang Almquist dikembangkan sebagai tiruan dari cangkang Bourne yang terkenal (jangan dikelirukan dengan Bourne Again Shell, atau dikenal sebagai Bash). Itu sengaja dibuat ringan, mungkin karena alasan yang sama, pengeditan baris dan riwayat awalnya dikecualikan:Kenneth Almquist merasa bahwa fungsi UX tambahan berada di luar shell. Puluhan tahun kemudian, cangkang masih menjadi cangkang kecil dan dasar favorit. Itu dikirimkan dengan rilis awal Android, dan itu adalah shell default umum untuk lingkungan boot minimal distribusi Linux selama bertahun-tahun.

Seperti banyak shell POSIX, menggunakan Ash secara nominal akrab bagi siapa saja yang terbiasa dengan konsol. Anda mengetik perintah; Anda mendapatkan keluaran. Beberapa fitur tambahan ada di sana, sementara yang lain tidak ada. Misalnya, jika Anda terbiasa menggunakan pintasan keyboard gaya Emacs atau Vim, Anda tidak akan menemukannya di Ash. Namun, Anda dapat mengaktifkannya (asalkan telah disertakan pada waktu kompilasi) dengan -E (untuk Emacs) atau -V (untuk Vim) pilihan. Sejarah (sebenarnya fc perintah bawaan di Ash) juga tidak diberikan, tergantung pada bagaimana Ash dikompilasi. Tidak ada larik, dan perintah trap bawaan tidak menerima opsi.

Dash adalah shell Almquist, dan sebenarnya merupakan port Ash dari NetBSD ke Debian Linux, dan merupakan singkatan dari Debian Almquist Shell .

Fitur terbaik Ash juga merupakan batasan terbesarnya. Ini adalah cangkang minimal, jadi jika Anda mencari kesederhanaan, maka ini adalah cangkang untuk Anda.

Bash

Bourne-Again Shell (Bash) dibuat oleh proyek GNU untuk menggantikan cangkang Bourne yang dipatenkan (yang dengan sendirinya dibuat untuk menggantikan cangkang Ken Thompson). Saat ini, Bash lebih dari sekadar shell:ini adalah bahasa pemrograman yang sah, salah satu alat utama sysadmin yang banyak akal, dan hampir menjadi ikon budaya untuk non-programmer yang membutuhkan otomatisasi cepat dan kotor. Jika Anda dapat menghabiskan satu hari di shell Linux, maka Anda dapat mengembangkan skrip Bash untuk menggantikan diri Anda sendiri. Sederhana, langsung, dan sangat kuat, dengan fitur yang mencakup array, tumpukan direktori, traps, penguraian substring, pintasan keyboard Emacs atau Vim, dan banyak lagi.

Satu argumen umum melawan Bash adalah ukurannya, yang di sistem saya sekitar 1 MB dibandingkan dengan 200 KB untuk Ash. Lain adalah kompleksitasnya. Bash sangat kaya fitur sehingga sementara skrip yang ditulis dalam POSIX murni akan berjalan di Bash, hal yang sama tidak selalu berlaku untuk skrip Bash yang mencoba dijalankan di shell POSIX murni. Meskipun Bash memang memiliki mode POSIX, "Bashisme" ekstranya biasanya terlalu menarik untuk diabaikan. Kabar baiknya adalah Bash adalah open source, sehingga dapat dengan mudah diinstal untuk menjalankan skrip yang penuh dengan Bash-isme, tetapi beberapa pengguna pada prinsipnya menolak.

Bash adalah shell yang fleksibel dan kuat dan telah menggantikan shell lain sebagai default pada banyak sistem. Pelajari Bash, dan Anda akan mengalami shell modern dan kaya fitur yang menunjukkan setiap tanda menjadi lebih ramah dan bersahabat saat terus berkembang.

[ Unduh sekarang:Panduan sysadmin untuk skrip Bash. ]

Kotak sibuk

BusyBox adalah biner multi-panggilan yang menggabungkan banyak utilitas POSIX umum menjadi satu yang dapat dieksekusi. Dengan kata lain, ini adalah inti POSIX antarmuka pengguna biner all-in-one. Saat diinstal dari kode sumber, ia menempatkan busybox dapat dieksekusi di perpustakaan sistem Anda, dan Anda diharapkan untuk menautkannya saat membuat perintah individual untuk diri sendiri dan pengguna Anda. Misalnya:

$ ln --symbolic /lib64/busybox/busybox gzip
$ gzip --help 
BusyBox v1.28.1 (2020-07-13 11:42:31 NZST) multi-call binary.

Usage: gzip [-cfkdt123456789] [FILE]...

Di bawah 1 MB, Anda mendapatkan sekitar 400 perintah, termasuk ls , cd , cp , mv , grep , ps , sandi , matikan , cetak , sed , utilitas kompresi, manajemen proses, dan banyak lagi. Sebagian besar perintah ini minimal dibandingkan dengan yang setara dengan GNU, tetapi tergantung pada kasus penggunaan Anda, mereka mungkin cukup. Demikian pula, shell interaktif Busybox adalah Ash, sehingga memenuhi spesifikasi POSIX dan menyediakan sedikit yang lain.

Csh atau Tcsh

C Shell (csh ), dan inkarnasi selanjutnya, tcsh , gunakan sintaks seperti C (atau C++ atau Java, jika Anda lebih terbiasa dengan itu). Misalnya, berikut adalah if loop di Bash:

v=1

if [[ $v == 1 ]]
  then
  echo "verbose"
fi

Dan ini sama di Csh:

set v=1

if ($v == 1) then
  echo "verbose"
endif

Perbedaannya tidak kentara, tetapi bagi orang yang terbiasa dengan sintaks C dan bahasa serupa, ada cukup banyak perbedaan kecil untuk meningkatkan pengalaman mereka secara nyata. Beberapa perintah bawaan juga hilang. Misalnya, tidak ada type atau hash perintah dalam tcsh , dan Anda tidak dapat mendefinisikan fungsi Anda sendiri.

Sementara csh agak menderita karena usianya, tcsh adalah pembaruan yang bagus dan memiliki sebagian besar kemampuan yang sama dengan Bash, meskipun dengan beberapa sintaks yang berbeda dari waktu ke waktu.

Ikan

Cangkang Ikan dengan bangga menyebut dirinya "cangkang modern untuk tahun 90-an". Ini memiliki semua manfaat dari shell yang kuat seperti Bash dan Zsh, tetapi dengan fitur tambahan seperti penyorotan sintaks, fish_config perintah, dan banyak lagi. Tujuannya adalah untuk memberikan konteks tambahan kepada pengguna, dan sistem manajemen konfigurasi yang lebih baik daripada hanya satu .bashrc .

Ada sedikit perbedaan sintaks di sana-sini. Misalnya, ini adalah definisi fungsi untuk Bash:

function sshrm() { 
  /usr/bin/sed -i "$1d" $HOME/.ssh/known_hosts
}

Hal yang sama di Ikan, namun:

function sshrm
  /usr/bin/sed -i "$1d" $HOME/.ssh/known_hosts
end

Fans of Fish menyukai kemampuan temanya yang mudah dan cara default ke direktori file konfigurasi daripada .bashrc file yang paling baik bersumber dari file titik lainnya.

Korn

Kulit Korn (ksh ) dikembangkan oleh David Korn dan dirilis pada tahun 1983. Sementara Bash dan tcsh telah dikirimkan sebagai shell default untuk sistem POSIX populer, shell Korn sebagian besar tetap merupakan shell "alternatif". Tetapi saat shell alternatif berjalan, ksh telah berhasil untuk dirinya sendiri, dan ketika Microsoft mempresentasikan Powershell di konferensi teknologi, mereka mengutip shell Korn sebagai pengaruh utamanya.

Ada beberapa versi berbeda dari Korn shell (mksh, ksh93, ksh93u+, ksh2020, dan lainnya), tetapi cabang resmi dipertahankan di Github AT&T.

Untuk pengguna Bash, ksh cenderung merasa cukup akrab. Membaca tutorial tentang skrip Korn hampir sama dengan membaca skrip Bash. Anda dapat menentukan fungsi Anda sendiri, membuat alias, menulis loop, dan bahkan opsi penyelesaian tab program. Ikatan kunci Emacs diaktifkan secara default, tetapi Anda dapat beralih ke vi ikatan kunci menggunakan -o vi pilihan saat peluncuran, atau dengan menempatkan set -o vi di ~/.environ.ksh . Anda file konfigurasi.

Apa kekurangan Kornshell, Anda mungkin tidak akan segera menyadarinya. Misalnya, Anda tidak dapat mengaktifkan atau menonaktifkan perintah bawaan, dan ada perintah bawaan yang disebut whence yang melakukan pekerjaan yang sama dengan which dapat dieksekusi. Tidak ada typeset perintah, tetapi Kornshell memang memiliki array dengan fitur pencarian paling penting yang tersedia. Dengan kata lain, meskipun ada sedikit perbedaan, ksh mudah digunakan bagi siapa saja yang terbiasa dengan Bash atau Fish atau Zsh.

Zsh

Kulit Z (zsh ) adalah shell POSIX mirip Bourne interaktif yang dikenal dengan banyak fitur inovatifnya. Pengguna Z Shell sering menyebut banyak kemudahannya dan memujinya karena peningkatan efisiensi dan kustomisasi ekstensif. Saat pertama kali diluncurkan, Zsh menawarkan beberapa opsi konfigurasi, seperti ukuran riwayat Anda, ikatan kunci (Emacs atau Vim), dan berapa banyak fitur tambahan yang Anda inginkan. Misalnya, Anda dapat membuat cd perintah implisit dengan mengizinkan Zsh untuk memulai perubahan direktori saat Anda memberikan jalur yang tidak dapat dieksekusi tanpa perintah. Ada beberapa fitur tambahan, dan Anda dapat mengatur atau menghapusnya dengan mengedit .zshrc file konfigurasi.

Ada beberapa perbedaan halus dalam sintaks antara Bash dan Zsh, tetapi hanya sedikit perintah yang sering dibuat dalam skrip, sehingga kemungkinan Anda harus mengadaptasi skrip rendah. Misalnya, untuk menonaktifkan perintah bawaan di Bash:

$ enable -n cd

Di Zsh, perintahnya sedikit lebih intuitif:

$ disable cd

Untuk membangun kembali jalur perintah yang di-cache di Bash, Anda harus menghapus yang sudah ada, tetapi di Zsh ada opsi untuk itu:

$ hash -f

Ada keuntungan kecil bagi mereka yang bermigrasi dari cangkang lain juga. Misalnya, Anda dapat menggunakan whence perintah di Z Shell, yang tidak asing bagi pengguna shell Korn.

Zsh adalah perpaduan yang menyenangkan dan dinamis dari fitur lama dan baru, dan memiliki komunitas yang dinamis yang mengembangkan tema dan plugin untuk itu. Ini mudah dipasang dan menambahkan fungsionalitas lebih jauh ke shell Anda, menjadikan Z Shell pesaing untuk shell paling fleksibel yang tersedia.

Pilih cangkang Anda

Seperti biasa dengan open source, Anda sebenarnya tidak harus memilih hanya satu dari alat yang diberikan. Meskipun saya adalah pengguna Bash yang setia di rumah, saya sering menggunakan tcsh karena kebiasaan di tempat kerja, karena banyak skrip di industri efek visual ditulis untuk C Shell. Sampai hari ini, saya secara kompulsif menulis kait Git di tcsh untuk alasan itu.

Anda tidak perlu membenarkan pilihan shell Anda. Gunakan yang terbaik untuk Anda dan tim Anda. Selama itu open source, Anda telah membuat pilihan yang bagus.

[ Kursus online gratis:Tinjauan teknis Red Hat Enterprise Linux. ]


Linux
  1. Apa emulator terminal favorit Anda?

  2. Apa emulator terminal Linux favorit Anda?

  3. Apa distribusi Linux desktop favorit Anda?

  1. Apa alat penangkap layar Linux favorit Anda?

  2. Apa yang dapat dilakukan shell dotfile untuk Anda

  3. Sumber Daya Untuk Pemrograman Shell Portabel?

  1. Apa trik terminal Linux favorit Anda?

  2. Apa manajer paket Linux favorit Anda?

  3. 12 Contoh Bash For Loop untuk Scripting Shell Linux Anda