ในการให้cd \
ผมได้รับ>
สัญลักษณ์ในขณะที่cd /
การเปลี่ยนแปลงเข้าสู่ระบบในไดเรกทอรีของฉันไป~
/
ls
คำสั่งยังแสดงไดเรกทอรีเช่นdev, root, usr
ในกรณีของcd /
ฉัน
ในการให้cd \
ผมได้รับ>
สัญลักษณ์ในขณะที่cd /
การเปลี่ยนแปลงเข้าสู่ระบบในไดเรกทอรีของฉันไป~
/
ls
คำสั่งยังแสดงไดเรกทอรีเช่นdev, root, usr
ในกรณีของcd /
ฉัน
คำตอบ:
ใน Bash เชลล์ของคุณ\
(แบ็กสแลช) หมายถึงอักขระยกเว้น ควรใช้ในกรณีที่คุณต้องการหลีกเลี่ยงอักขระเช่นช่องว่างอัญประกาศและอักขระอื่น ๆ ที่มีความหมายกับไวยากรณ์เชลล์ แต่คุณต้องการให้มันเผยแพร่เป็นข้อมูลไปยังคำสั่งที่คุณใช้งานอยู่ ด้วยการทำให้สิ่งนี้เป็นตัวละครตัวสุดท้ายของบรรทัดคุณกำลังจะขึ้นบรรทัดใหม่และ Bash กำลังรอการป้อนข้อมูลเพิ่มเติม (หลายบรรทัด)
/
เป็นเพียงเครื่องหมายสแลช (หมายถึงตัวคั่นไดเรกทอรี ) เพียงแค่/
นี้หมายถึงรูทดังนั้นตัวอย่างเช่นls /
รายการเนื้อหาของรูต โดยการเปลี่ยนไดเรกทอรีทำงาน/
เป็นตัวบ่งชี้ในเปลือกของคุณยังเปลี่ยนจาก~
(ย่อมาจากไดเรกทอรีบ้านเช่น/home/gert/
) เป็นไดเรกทอรีที่คุณอยู่ในนั้น ( /
)
$ touch a filename with spaces
$ ls -l
total 0
-rw-rw-r-- 1 gert gert 0 Jul 1 02:33 a
-rw-rw-r-- 1 gert gert 0 Jul 1 02:33 filename
-rw-rw-r-- 1 gert gert 0 Jul 1 02:33 spaces
-rw-rw-r-- 1 gert gert 0 Jul 1 02:33 with
โอ้ noes a filename with spaces
มันเป็นความตั้งใจของผมที่จะสร้างไฟล์ที่มีชื่อ ดังนั้นที่นี่เราใช้\
เพื่อหนีช่องว่าง การทำเช่นนี้จะป้องกันไม่ให้เชลล์จัดเตรียมอาร์กิวเมนต์สี่ตัวให้touch
แต่จะให้ช่องเดียวที่มีช่องว่างอยู่แทน
touch a\ filename\ with\ spaces
$ touch a\ filename\ with\ spaces
$ ls -al
total 24
drwxrwxr-x 2 gert gert 4096 Jul 1 02:35 .
drwxrwxr-x 55 gert gert 20480 Jul 1 02:33 ..
-rw-rw-r-- 1 gert gert 0 Jul 1 02:35 a filename with spaces
แน่นอนว่าการใช้อัญประกาศ ( touch "a filename with spaces"
) สามารถทำได้ในสิ่งเดียวกัน
นอกจากนี้ยังใช้เพื่อประกาศอักขระพิเศษเช่นบรรทัดใหม่:
$ echo -e "bla\nnewline" # \n means a newline character
bla
newline
เราจำเป็นต้อง-e
มีตัวเลือกที่นี่เพื่อดูecho
เพราะเป็น manpage -e enable interpretation of backslash escapes
ใส่มัน
หากคุณใส่เครื่องหมายแบ็กสแลชคุณสามารถป้อนคำสั่งหลายบรรทัดได้ นี่คือความหมายของคำนำหน้า '>'
>
เครื่องหมายหมายความว่าพรอมต์กำลังรอให้คุณต้องใส่มากขึ้นเพราะคำสั่งก่อนหน้ายังไม่สมบูรณ์ cd
คุณสามารถทำซ้ำนี้กับสิ่งที่ไม่ได้เป็นเพียง เพียงแค่พิมพ์และคุณจะได้รับwhateveryouwant\
>
ส่วนที่คุณเห็น~
หมายถึงไดเรกทอรีการทำงานปัจจุบัน ในการเปลี่ยนไดเรกทอรีทำงานคุณใช้คำสั่งcd
ซึ่งหมายถึงเปลี่ยนไดเรกทอรี (โฟลเดอร์) ดังนั้นถ้าคุณทำมันเปลี่ยนแปลงไดเรกทอรีที่จะcd /
/
ถ้าคุณทำcd /usr/bin
มันก็จะเปลี่ยนไป/usr/bin
เรื่อย ๆ
ls
เป็นคำสั่งเพื่อแสดงรายการสิ่งที่อยู่ในไดเรกทอรี / โฟลเดอร์ปัจจุบัน ดังนั้นถ้าคุณทำcd /
(หมายถึงคุณเปลี่ยนไดเรกทอรีเป็น/
) ls
จะแสดงรายการไฟล์และโฟลเดอร์ในนั้น ถ้าคุณทำcd /etc/
แล้วls
มันจะแสดงรายการไฟล์และโฟลเดอร์ที่อยู่ในรายการ/etc/
และอื่น ๆ
>
แสดงว่ากำลังรอ ปกติการแสดงพรอมต์ไดเรกทอรีปัจจุบันซึ่งเป็นเหตุผลที่มันแสดงให้เห็นหลังการใช้/
สั้นมือไดเรกทอรีที่บ้านของคุณซึ่งเป็นเหตุผลที่มันแสดงให้เห็นแทนcd /
~
~
/home/user