~ $ หมายถึงอะไร


27

สิ่งที่~$ยืนหยัดเพื่อ? ตัวอย่างเช่น:

user@ubuntu:~$

จนถึงตอนนี้ฉันรู้ว่า$เครื่องหมายเป็นสัญลักษณ์สำหรับผู้ใช้ปกติ ถ้าฉันไม่ผิดrootมี#ในตอนท้าย

ฉันยังพบคำสั่งมากมายในฟอรัมที่ขึ้นต้นด้วย$:

$ sudo apt-get update 

ดังนั้นสำหรับสิ่งที่ไม่$จริงยืนหยัดเพื่อ?

แก้ไข (28.01.2014):

วันนี้ฉันเจอวิดีโอนี้ที่ตอบคำถามของฉันทั้งหมดเมื่อ 8 เดือนที่ผ่านมาและตัดสินใจแบ่งปันที่นี่ :)

ข้อมูลพื้นฐานเกี่ยวกับ BASH - https://www.youtube.com/watch?v=x73WTEltyHU

คำตอบ:


33

~และ$เป็นองค์ประกอบของพรอมต์บรรทัดคำสั่ง นี่บ่งชี้ว่าคอมพิวเตอร์ของคุณ (หรือมากกว่านั้นฉันเดาว่าคุณกำลังใช้เชลล์) กำลังรอการป้อนข้อมูลจากผู้ใช้ มันจะพร้อมท์ให้คุณป้อนคำสั่ง

The $เป็นเพียงตัวคั่นหรือตัวหาร มันแยกพรอมต์คำสั่งจากคำสั่งที่ตามมา เมื่อผู้คนเขียนสิ่งต่าง ๆ เช่น$ sudo apt-get update(ตัวอย่างของคุณ) พวกเขาเพียงแค่บอกคุณว่าในกรณีนี้sudo apt-get updateจำเป็นต้องป้อนคำสั่งในพรอมต์คำสั่ง บางทีการพูดอย่างเคร่งครัดอาจ$ซ้ำซ้อนในบริบทนี้

อาจใช้ตัวคั่นอื่นในสถานการณ์อื่น ตัวอย่างเช่น#ใช้สำหรับรูทเชลล์

~(เรียกว่า 'หนอน') เป็นชวเลขไดเรกทอรีบ้านของคุณ เมื่อปรากฏในพรอมต์คำสั่งเช่นuser@hostame:~$หมายถึงไดเรกทอรีการทำงานปัจจุบันคือไดเรกทอรีบ้าน ดังนั้นหากคุณรันคำสั่ง list lsโดยไม่ระบุไดเรกทอรีใด ๆ โดยเฉพาะมันจะแสดงรายการเนื้อหาของโฮมไดเร็กตอรี่ของคุณ

(โดยวิธี, $HOMEไม่ใช่คำสั่ง, ตามที่คุณแนะนำ, แต่เป็นตัวแปรสภาพแวดล้อม . มันกำหนดตำแหน่งของโฮมไดเร็กตอรี่ของคุณ. คุณสามารถดูค่าของมันได้จากการรัน$ echo $HOME)


10
@FEarBG ฉันคิดว่าคำตอบนี้ล้มเหลวในแง่มุมเล็ก ๆ น้อย ๆ : การแจ้งเตือนนั้นสามารถปรับแต่งได้อย่างสมบูรณ์และเป็นเพียงการตกแต่ง คุณสามารถตัดสินใจว่าจะมีพรอมต์ว่างเปล่าหรือใช้สัญลักษณ์อะไรก็ได้ที่คุณต้องการ (เช่นบนคอมพิวเตอร์ของฉันฉันได้แทนที่$ด้วยสัญลักษณ์ 'prompt' เป็นพรอมต์) คุณสามารถเปลี่ยนการตั้งค่าPS1ตัวแปรสภาพแวดล้อมตามที่คุณต้องการได้
Bakuriu

@Bakuriu สมมติว่าทุบตีแน่นอน กระสุนอื่นอาจแตกต่างกัน
CVn

1
"การพูดอย่างเคร่งครัดบางทีเงินดอลลาร์นั้นซ้ำซ้อนในบริบทนี้" - ใช่นั่นคือเหตุผลที่เรามักต้องการหลีกเลี่ยง$หากไม่จำเป็นต้องใช้ (ซึ่งมีไว้สำหรับการคัดลอกไฟล์บันทึกหรือตัวอย่างผลลัพธ์)
user98085

12

โดยปกติแล้วเชลล์พร้อมต์ลงท้ายด้วย $,% หรือ # หากมันลงท้ายด้วย $ นี่เป็นการระบุว่าเชลล์ที่เข้ากันได้กับเชลล์เป้าหมาย (เช่น POSIX เชลล์หรือ Korn เชลล์หรือ Bash) ถ้ามันจบลงด้วย% นี้หมายถึง C เชลล์ (csh หรือ tcsh) หากลงท้ายด้วย # นี่หมายความว่าเชลล์กำลังทำงานเป็นบัญชี superuser ของระบบ (รูท)

ที่มา : ที่นี่


ในบางระบบ (เก่ามักจะ) คุณมี "#" แม้ในฐานะผู้ใช้ทั่วไป (อาจจะทำให้คุณติดใจ ^^) ... นั่นคือเชลล์เก่าบางรุ่นไม่เปลี่ยนสัญลักษณ์หากคุณรูท - เทียบกับผู้ใช้ปกติ
Olivier Dulac


10
  • ~ ย่อมาจากไดเรกทอรีบ้านของคุณ
  • $มันเป็นตัวแยกสำหรับระบบของคุณมันมาจากคำสั่ง\$จากหน้าคน

ดังนั้นหากคุณพบคำสั่งที่ขึ้นต้นด้วย$เพียงแค่บอกว่าไม่ควรเพิ่มอะไรก่อนหน้านั้น

user@ubuntu:~$

userเป็นชื่อผู้ใช้ที่คุณเข้าสู่ระบบด้วย
@จะบอกว่าที่นี่คือลิงค์
ubuntuเป็นชื่อของระบบที่คุณเข้าสู่ระบบในชื่อ
:~บอกว่าคุณอยู่ในuserโฮมไดเร็กตอรี่ตอนนี้.
$มาจากลำดับหนีใน\$ หน้าคน$PS1

แต่ทั้งหมดนี้สามารถเปลี่ยนแปลงได้โดยการอ่านในหน้าคน ขอบคุณ @demure สำหรับความช่วยเหลือ


2
จะเจาะจงมันเป็น\$ส่วนของ $ PS1 ซึ่งถูกออกแบบมาเพื่อแสดง$หากไม่รูท (มิฉะนั้นจะเป็น#) man page exert
เอียง

@ โปรดอัปเดตคำตอบของฉันหากคุณคิดว่าคุณสามารถปรับปรุงได้โปรดทำเช่นนั้น
Alvar

6

$ ลงนามในตอนท้ายของพรอมต์ในเทอร์มินัลเมื่อคุณเพิ่มคำสั่งเช่นเดียวกับที่คุณแสดงอย่าพิมพ์ใน $ else จะไม่ทำงาน

ดังนั้น$ sudo apt-get update

จะพิมพ์เป็น:

sudo apt-get update 

หวังว่าจะช่วย

แก้ไข

เครื่องหมายย่อย่อมาจากโฟลเดอร์บ้านของคุณ name@pc_name:~/Desktop$จะแสดงว่าคุณอยู่ในโฟลเดอร์โฮม> เดสก์ท็อป


3
อาจแสดงว่าคุณควรป้อนคำสั่งที่พร้อมท์
SimplySimon

4
และเพื่อแยกความแตกต่างระหว่างคำสั่งที่รันโดยผู้ใช้ปกติ (ที่พร้อมท์ $) เทียบกับรูท (พร้อมท์ #)
coneslayer

@FEarBG: มันเป็นกฎเกณฑ์โดยพลการไม่เกี่ยวข้อง (เท่าที่ฉันรู้) ในการใช้$เพื่อแสดงชื่อตัวแปร มีอักขระที่พิมพ์ได้บนแป้นพิมพ์จำนวนมากเท่านั้น DOS และ Windows ใช้>ในการแจ้ง, Unix มักจะใช้หรือ$ %มันบอกคุณว่า "นี่คือพรอมต์" โดยไม่ต้องเสียพื้นที่บนหน้าจอของคุณ (หรือในสมัยก่อนหมึกและกระดาษ)
Keith Thompson

และแน่นอนใน DOS และ Windows %ตัวแปรสภาพแวดล้อมที่ใช้ ดังที่คุณพูดไป มีความต้องการเป็นอย่างมาก แต่มันไม่จำเป็นต้องเหมือนกันทุกที่ (แม้ว่ามันจะดีถ้ามัน)
CVn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.