Saya telah membaca banyak artikel yang mengatakan bahwa shell resmi di FreeBSD adalah tcsh
, dan di Debian, dash
. Namun, ketika saya echo $shell
(FreeBSD) atau env
di Debian, dikatakan bahwa shell adalah csh
dalam kasus pertama, atau bash
di Debian.
Ini dalam instalasi baru. Saya menguji di bawah akun root dan akun pengguna normal. Juga, ketika saya membuat akun baru di FreeBSD, saya memiliki 3 pilihan shell; sh
, csh
atau tcsh
. Jika saya tidak membuat pilihan, csh
adalah default untuk akun.
Apa shell standar dan resmi di bawah sistem itu? Apakah itu tcsh
atau csh
di FreeBSD? Apakah itu dash
atau bash
di Debian?
Apakah saya yang melakukan sesuatu yang salah? Atau apakah artikel dan situs tersebut salah informasi?
Saya ingin mempelajari dua shell:satu untuk Debian dan satu untuk FreeBSD, tetapi saya tidak dapat menemukan mana yang harus saya pelajari, karena tidak jelas mana yang merupakan shell resmi.
Juga, ketika mencari shell mana yang harus saya pelajari, saya menemukan ini:http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
Apakah seseorang yang tidak suka csh
, atau haruskah kita benar-benar menghindari csh
?
Saya menggunakan versi Debian dan FreeBSD terbaru.
Saya mulai tersesat dengan semua opsi shell ini, semuanya terlihat sama bagi saya (kecuali untuk sintaksnya; maksud saya mereka semua terlihat menawarkan kemungkinan yang sama). Itu sebabnya saya ingin mempelajari yang resmi.
Jawaban yang Diterima:
Anda tidak perlu menggunakan shell default untuk sistem tertentu. Baik Debian dan FreeBSD menyediakan sejumlah shell yang berbeda, dan sebagian besar atau semuanya tersedia di keduanya, baik yang sudah diinstal sebelumnya atau yang mudah diinstal.
Perhatikan penamaan. Bukan hal yang aneh untuk /bin/csh
benar-benar menjadi tcsh, atau untuk /bin/sh
menjadi bash atau ksh.
sh
, shell Bourne, adalah shell Unix tertua yang masih umum digunakan. bash
mungkin merupakan turunan sh yang paling banyak digunakan; ksh
dan zsh
juga tersebar luas.
csh
, shell C, dikembangkan untuk BSD oleh Bill Joy. Ini memiliki beberapa fitur yang membuat penggunaan interaktif lebih nyaman daripada sh
(atau setidaknya dari sh
versi lama yang ada pada saat itu). tcsh
diturunkan dari csh
, dan menambahkan banyak fitur baru, sebagian besar ditujukan untuk penggunaan interaktif. Seperti yang telah Anda lihat dengan membaca csh.whynot, csh dan tcsh memiliki beberapa masalah saat menggunakannya untuk skrip, bukan untuk interaktif.
Secara pribadi, saya mulai dengan csh, kemudian beralih ke tcsh saat tersedia. Saya sekarang jarang menggunakan csh untuk scripting, lebih memilih sh atau bash (atau Perl untuk sesuatu yang cukup rumit).
Terkait:Opsi -F untuk ls?(Pembaruan, beberapa tahun kemudian:Saya telah meninggalkan tcsh, dan sekarang saya menggunakan bash secara interaktif.)
Saran saya adalah memilih satu shell dan mempelajarinya dengan baik, menggunakannya di FreeBSD dan Debian. Jika Anda memilih tcsh, saya rasa Anda harus menginstalnya di Debian:sudo apt-get install tcsh
. Jika Anda memilih bash, saya tidak tahu apakah itu sudah diinstal sebelumnya di FreeBSD; jika tidak, pemasangannya harus sama mudahnya.
Tidak perlu menggunakan shell yang sama secara interaktif dan untuk pembuatan skrip, tetapi dapat menghindari kebingungan dan membuat kurva belajar menjadi lebih pendek.
ksh mungkin sama kuatnya dengan bash, dan zsh bahkan lebih kuat (dan memiliki banyak fitur yang belum pernah saya pelajari).
Saya menyarankan bash, untuk FreeBSD dan Debian (dan untuk sistem mirip Unix lainnya yang mungkin Anda gunakan), dan untuk penggunaan interaktif dan skrip. Tapi pilihan lain sangat sah, dan beberapa mungkin lebih cocok untuk Anda.