Linux adalah kernel, tidak memiliki perintah. Beberapa distribusi perangkat lunak yang dibangun untuk kernel tersebut mengikuti standar LSB, beberapa lainnya kebijakan Debian, sebagian lainnya tidak ada yang khusus.
Stéphane Chazelas
@ StéphaneChazelas Sementara saya setuju, saya akan mengatakan mengikuti kebijakan Debian hampir mengikuti LSB, karena Debian mendukung LSB (jika tidak secara default, masih melalui lsbpaket).
Secara teknis Anda tidak dapat berasumsi apa-apa , karena Linux-the-kernel digunakan dalam sejumlah konteks tertanam atau semi-tertanam di mana pelengkap penuh utilitas shell akan menjadi pemborosan ruang yang tidak ada gunanya. Jika Anda bertanya-tanya apa yang dapat Anda harapkan untuk diinstal dalam lingkungan shell yang kompatibel dengan Unix "normal", saya tidak akan melihat POSIX atau LSB tetapi pada paket yang dianggap Debian "wajib". Banyak alat manajemen sistem yang penting, misalnya "ip", tidak distandarisasi sama sekali.
[ du install mv strings
ar echo install_initd newgrp strip
at ed ipcrm nice stty
awk egrep ipcs nl su
basename env join nohup sync
batch expand kill od tail
bc expr killall passwd tar
cat false ln paste tee
chfn fgrep locale patch test
chgrp file localedef pathchk tic
chmod find logger pax time
chown fold logname pidof touch
chsh fuser lp pr tput
cksum gencat lpr printf tr
cmp getconf ls ps true
col gettext lsb_release pwd tsort
comm grep m4 remove_initd tty
cp groupadd mailx renice umount
cpio groupdel make rm uname
crontab groupmod man rmdir unexpand
csplit groups md5sum sed uniq
cut gunzip mkdir sendmail useradd
date gzip mkfifo seq userdel
dd head mknod sh usermod
df hostname mktemp shutdown wc
diff iconv more sleep xargs
dirname id mount sort zcat
dmesg infocmp msgfmt split
Banyak dari ini dimasukkan sebagai bagian dari standar POSIX 1003.1-2001 , tetapi berikut ini hanya di LSB, atau memiliki spesifikasi berbeda dari POSIX:
ar echo hostname more sh
at egrep install mount shutdown
awk fgrep install_initd msgfmt su
batch file ipcrm newgrp sync
bc fuser ipcs od tar
chfn gettext killall passwd umount
chsh grep lpr patch useradd
col groupadd ls pidof userdel
cpio groupdel lsb_release remove_initd usermod
crontab groupmod m4 renice xargs
df groups md5sum sed zcat
dmesg gunzip mknod sendmail
du gzip mktemp seq
Sejumlah program 'hanya dari LSB' sebenarnya dari POSIX. Ini termasuk: awk, grep, ls, sed, sh, xargs pasti; Saya harus memeriksa ar, at, batch, bc, crontab. Mungkin ada yang lain juga.
Jonathan Leffler
@ JonathanLeffler Saya pasti telah membuat kesalahan di regex. Akan memperbaikinya ketika saya bisa.
muru
NP. Saya akan menggunakan halaman POSIX 2008 (2013) tingkat atas atau secara khusus daftar utilitas . Ini mencakup semua kemungkinan yang saya sebutkan; Saya juga melihat file, ipcrm, ipcs, m4, patch, dan zcatterdaftar - itu operasi eyeballing daripada verifikasi formal dari daftar.
Secara teknis Anda tidak dapat mengasumsikan apa pun akan hadir, karena Linux-the-kernel digunakan dalam sejumlah konteks tertanam atau semi-tertanam di mana pelengkap penuh utilitas shell akan menjadi pemborosan ruang yang tidak ada gunanya. Misalnya, untuk membangun perangkat IoT yang filesystemnya berisi bootloader, kernel monolitik, kebiasaan /sbin/inityang melakukan segala hal yang perlu dilakukan oleh perangkat, beberapa /deventri, dan tidak ada yang lain , tidak akan keluar dari pertanyaan .
The POSIX.1-2008 "Shell and Utilities" spesifikasi , juga terkait dalam jawaban muru, dimaksudkan untuk membakukan shell sebagai bahasa pemrograman . Oleh karena itu tidak termasuk sebagian besar alat administrasi sistem yang diharapkan ada pada instalasi Unix "tradisional". Sayangnya, ini juga merupakan bekas luka yang masih terlihat dari perpecahan kuno antara Sistem V dan BSD - alat yang akan Anda temukan di Linux tidak sama dengan yang ada di FreeBSD atau OSX atau apa pun. Jadi, sekali lagi, tidak ada garis dasar yang dapat diandalkan.
Untuk memberikan indikasi apa yang hilang dari jawaban maru, ini adalah paket yang Debian (tidak stabil) anggap sebagai "wajib" ( definisi resmi : "Sistem dengan hanya paket yang diperlukan mungkin tidak dapat digunakan, tetapi mereka memiliki cukup fungsionalitas untuk memungkinkan sysadmin untuk boot dan menginstal perangkat lunak lebih. ") dan yang berkontribusi file ke /bin, /sbin, /usr/bin, atau /usr/sbin. Mereka yang ditandai dengan tanda bintang tidak hanya "wajib", tetapi "penting", yang berarti perangkat lunak paket lainnya diizinkan untuk menerima keberadaannya tanpa bergantung padanya.
¹ awk-the-language "penting", tetapi sysadmin dapat memilih apakah mereka menginginkan implementasi "mawk" atau "gawk".
Dan ini adalah paket yang dianggap "penting"; definisi resmi "penting" adalah "orang Unix berpengalaman yang menemukannya hilang akan berkata 'Apa yang sedang terjadi, di mana foo?'":
Perhatikan bahwa set kedua ini termasuk alat administrasi sistem kritis seperti psdan iproute2, tetapi juga hal-hal yang mungkin sama sekali tidak perlu pada beberapa instalasi, seperti atdan dmidecode. Kedua set juga berisi hal-hal yang khusus untuk Debian, seperti dpkgdan apt.
Perhatikan juga bahwa kedua set bersama bukan superset dari fungsionalitas yang diperlukan oleh LSB (atau POSIX + XSI dalam hal ini): utilitas ini tidak ada:
ar gencat lpr msgfmt strings
bc gettext lsb_release patch strip
ed install_initd m4 pax time
file killall mailx remove_initd
fuser lp make sendmail
Daftar utilitas yang ada dalam paket di atas tetapi tidak di LSB panjang dan membosankan, tapi saya tetap menyertakannya untuk menggarisbawahi berapa banyak "alat administrasi sistem kritis" yang disertakan.
Luas. Saya ingin mencatat bahwa adduser (dan keluarga) Debian adalah ... milik Debian. Arch menggunakan Slackware, yang sangat berbeda. Saya hanya memberi nama karena tidak terdengar spesifik Debian, tetapi, bagaimanapun, seperti ipperintah yang Anda sebutkan sebelumnya.
Namun, banyak orang cenderung menelusuri apa yang ada di direktori yang ditunjukkan oleh echo $PATHdan kemudian melihat halaman manual untuk info lebih lanjut.
Melihat di direktori akan memberi tahu Anda apa yang termasuk dalam distribusi spesifik Anda, itu tidak akan memberi tahu apa yang seharusnya . Bagaimana Anda tahu dengan melihat ada sesuatu yang hilang?
busybox --list
. Hanya bercanda.lsb
paket).Jawaban:
Linux Standard Base (LSB) memiliki daftar aplikasi :
Banyak dari ini dimasukkan sebagai bagian dari standar POSIX 1003.1-2001 , tetapi berikut ini hanya di LSB, atau memiliki spesifikasi berbeda dari POSIX:
sumber
file
,ipcrm
,ipcs
,m4
,patch
, danzcat
terdaftar - itu operasi eyeballing daripada verifikasi formal dari daftar.Secara teknis Anda tidak dapat mengasumsikan apa pun akan hadir, karena Linux-the-kernel digunakan dalam sejumlah konteks tertanam atau semi-tertanam di mana pelengkap penuh utilitas shell akan menjadi pemborosan ruang yang tidak ada gunanya. Misalnya, untuk membangun perangkat IoT yang filesystemnya berisi bootloader, kernel monolitik, kebiasaan
/sbin/init
yang melakukan segala hal yang perlu dilakukan oleh perangkat, beberapa/dev
entri, dan tidak ada yang lain , tidak akan keluar dari pertanyaan .The POSIX.1-2008 "Shell and Utilities" spesifikasi , juga terkait dalam jawaban muru, dimaksudkan untuk membakukan shell sebagai bahasa pemrograman . Oleh karena itu tidak termasuk sebagian besar alat administrasi sistem yang diharapkan ada pada instalasi Unix "tradisional". Sayangnya, ini juga merupakan bekas luka yang masih terlihat dari perpecahan kuno antara Sistem V dan BSD - alat yang akan Anda temukan di Linux tidak sama dengan yang ada di FreeBSD atau OSX atau apa pun. Jadi, sekali lagi, tidak ada garis dasar yang dapat diandalkan.
Untuk memberikan indikasi apa yang hilang dari jawaban maru, ini adalah paket yang Debian (tidak stabil) anggap sebagai "wajib" ( definisi resmi : "Sistem dengan hanya paket yang diperlukan mungkin tidak dapat digunakan, tetapi mereka memiliki cukup fungsionalitas untuk memungkinkan sysadmin untuk boot dan menginstal perangkat lunak lebih. ") dan yang berkontribusi file ke
/bin
,/sbin
,/usr/bin
, atau/usr/sbin
. Mereka yang ditandai dengan tanda bintang tidak hanya "wajib", tetapi "penting", yang berarti perangkat lunak paket lainnya diizinkan untuk menerima keberadaannya tanpa bergantung padanya.¹ awk-the-language "penting", tetapi sysadmin dapat memilih apakah mereka menginginkan implementasi "mawk" atau "gawk".
Dan ini adalah paket yang dianggap "penting"; definisi resmi "penting" adalah "orang Unix berpengalaman yang menemukannya hilang akan berkata 'Apa yang sedang terjadi, di mana foo?'":
Perhatikan bahwa set kedua ini termasuk alat administrasi sistem kritis seperti
ps
daniproute2
, tetapi juga hal-hal yang mungkin sama sekali tidak perlu pada beberapa instalasi, sepertiat
dandmidecode
. Kedua set juga berisi hal-hal yang khusus untuk Debian, sepertidpkg
danapt
.Perhatikan juga bahwa kedua set bersama bukan superset dari fungsionalitas yang diperlukan oleh LSB (atau POSIX + XSI dalam hal ini): utilitas ini tidak ada:
Daftar utilitas yang ada dalam paket di atas tetapi tidak di LSB panjang dan membosankan, tapi saya tetap menyertakannya untuk menggarisbawahi berapa banyak "alat administrasi sistem kritis" yang disertakan.
sumber
ip
perintah yang Anda sebutkan sebelumnya.The Wikipedia: daftar perintah Unix dan linuxconfig: Perintah Linux tentu layak lihat.
Namun, banyak orang cenderung menelusuri apa yang ada di direktori yang ditunjukkan oleh
echo $PATH
dan kemudian melihat halaman manual untuk info lebih lanjut.sumber