~
เป็นนามแฝงที่$HOME
จัดทำโดยเชลล์จำนวนหนึ่ง แต่$HOME
มีความเป็นสากลมากกว่า $HOME
ที่จริงแล้วขอให้เชลล์ใส่ (แทนที่) HOME ตัวแปรสภาพแวดล้อมที่นี่ มีตัวแปรสภาพแวดล้อมที่แตกต่างกันจำนวนมากที่สามารถทดแทนได้ลองเรียกใช้env
สำหรับรายการ โปรดทราบ~
ว่าไม่ได้รับการจดจำเสมอเมื่อไม่ได้อยู่ที่จุดเริ่มต้นของคำ ลองคำสั่งทั้งสองนี้เพื่อเปรียบเทียบ:
ls /~
ls /$HOME
คนแรกที่ได้รับการส่งผ่านไปยังไฟล์ปฏิบัติการ ls /~
ซึ่งพยายามที่จะดูไฟล์ที่เรียกว่า~
ในไดเรกทอรีรากที่สองขยาย$HOME
และกลายเป็น//home/user
สิ่งที่จะถูกส่งผ่านไปยังไฟล์ปฏิบัติการ ls เป็นอาร์กิวเมนต์บรรทัดคำสั่ง ทุกระบบ POSIX (POSIX เป็นมาตรฐานสำหรับวิธี UNIX และ Linux ทำงาน) อนุญาตทับหลายที่จะได้รับการปฏิบัติเช่นเดียวกับหนึ่งเฉือนเพื่อให้เป็นเช่นเดียวกับการพูดว่า //home/user
เป็นทางลัดสำหรับบอกให้เชลล์ค้นหาชื่อผู้ใช้ในไฟล์ passwd และส่งคืนโฮมไดเร็กตอรี่ของพวกเขา ไม่มีตัวแปรสภาพแวดล้อมที่เทียบเท่า การทดแทนเหล่านี้ทั้งหมดทำโดยเชลล์และได้รับการสนับสนุนโดยส่วนใหญ่ แต่เชลล์เท่านั้นที่รับประกันว่าจะได้รับการสนับสนุนจากตัวแปรสภาพแวดล้อมทั้งหมด นอกจากนี้/home/user
~username
$HOME
cd
เป็นคำสั่งในตัว มันเป็นคำสั่งพิเศษที่บอกให้เชลล์ตัวเองเปลี่ยนไดเรกทอรี มันไม่เหมือนกับเชลล์บิวด์อินอื่น ๆ ที่สามารถนำไปใช้งานได้เหมือนกับการปฏิบัติการแยกต่างหากecho
เพราะมันถูกใช้เพื่อเปลี่ยนคุณสมบัติพื้นฐานของกระบวนการเชลล์ echo
เป็นเพียงเชลล์ในตัวด้วยเหตุผลด้านประสิทธิภาพ แต่ในยุคเก่าที่ดีของ UNIX นั้นมีให้ใช้งานเฉพาะเมื่อมันสามารถเรียกใช้งาน/bin/echo
ได้