ในการให้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