~
adalah alias untuk yang $HOME
disediakan oleh sejumlah shell, tetapi $HOME
lebih universal. $HOME
sebenarnya meminta shell untuk memasukkan (mengganti) variabel lingkungan HOME di sini. Ada cukup banyak variabel lingkungan berbeda yang dapat diganti, coba jalankan env
untuk daftar. Catatan yang ~
tidak selalu dikenali saat itu tidak di awal kata. Coba dua perintah ini untuk perbandingan:
ls /~
ls /$HOME
Yang pertama dilewatkan ke dieksekusi ls /~
yang kemudian mencoba untuk melihat file yang disebut ~
di direktori root, yang kedua berkembang $HOME
dan menjadi //home/user
yang kemudian diteruskan ke ls dieksekusi sebagai argumen baris perintah. Semua sistem POSIX (POSIX adalah standar untuk bagaimana sistem UNIX dan Linux beroperasi) memungkinkan beberapa garis miring diperlakukan sama dengan satu garis miring sehingga //home/user
sama dengan mengatakan /home/user
. ~username
adalah jalan pintas untuk memberi tahu shell untuk mencari nama pengguna dalam file passwd dan mengembalikan direktori home mereka. Tidak ada variabel lingkungan yang setara. Semua penggantian ini dilakukan oleh shell dan didukung oleh sebagian besar dari mereka, tetapi hanya variabel lingkungan seperti $HOME
yang dijamin akan didukung oleh semua shell. Juga,cd
sebenarnya adalah perintah bawaan. Ini adalah arahan khusus yang memberitahu shell itu sendiri untuk mengubah direktori. Ini tidak seperti built-in shell lain yang dapat diimplementasikan sebagai executable terpisah echo
karena ini digunakan untuk mengubah atribut fundamental dari proses shell. echo
hanyalah shell built-in untuk alasan kinerja, tetapi di masa lalu yang baik dari UNIX, hanya tersedia karena dapat dieksekusi sendiri /bin/echo
.