~là một bí danh $HOMEđược cung cấp bởi một số vỏ, nhưng $HOMEphổ quát hơn. $HOMEthực sự yêu cầu shell chèn (thay thế) biến môi trường HOME ở đây. Có khá nhiều biến môi trường khác nhau có thể được thay thế, hãy thử chạy envcho một danh sách. Lưu ý rằng ~không phải lúc nào cũng được nhận ra khi nó không ở đầu từ. Hãy thử hai lệnh này để so sánh:
ls /~
ls /$HOME
Cái đầu tiên được truyền cho ls thực thi khi /~nó cố gắng xem một tệp được gọi ~trong thư mục gốc, cái thứ hai mở rộng $HOMEvà //home/usersau đó được chuyển đến ls thực thi như một đối số dòng lệnh. Tất cả các hệ thống POSIX (POSIX là tiêu chuẩn cho cách các hệ thống UNIX và Linux hoạt động) cho phép nhiều dấu gạch chéo được xử lý giống như một dấu gạch chéo //home/usergiống như nói /home/user. ~usernamelà một phím tắt để báo cho shell tìm kiếm tên người dùng trong tệp passwd và trả về thư mục chính của họ. Không có biến môi trường tương đương. Tất cả các thay thế này được thực hiện bởi shell và được hỗ trợ bởi hầu hết trong số chúng, nhưng chỉ các biến môi trường như $HOMEđược đảm bảo sẽ được hỗ trợ bởi tất cả các shell. Cũng thế,cdthực sự là một lệnh tích hợp. Đó là một lệnh đặc biệt bảo chính shell thay đổi thư mục. Nó không giống như các trình dựng sẵn shell khác có thể được triển khai như một thực thi riêng biệt giống như echovì nó được sử dụng để thay đổi một thuộc tính cơ bản của quy trình shell. echochỉ đơn thuần là một vỏ được tích hợp sẵn vì lý do hiệu năng, nhưng trong những ngày tốt đẹp của UNIX, chỉ có sẵn khi nó có thể thực thi được /bin/echo.