จุดเริ่มต้นของพรอมต์ UNIX $ (ดอลล่าร์) คืออะไร?


83

พรอมต์ UNIX ใช้$สัญลักษณ์เพื่อระบุว่าข้อมูลที่คุณคาดไว้

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


3
แม้ว่าฉันจะไม่เกี่ยวข้องกับการเขียนโปรแกรม แต่แน่นอนว่าเกี่ยวข้องกับคอมพิวเตอร์ดังนั้นฉันจึงคิดว่า Super User ดีกว่า
Joey

ฉันต้องการทราบคำตอบด้วย ฉันจะมองหามันบน SU
Gabriel Hurley

24
มันเป็นพรอมต์ของเชลล์เป้าหมายไม่ใช่พรอมต์ของยูนิกซ์ พรอมต์ csh เริ่มต้นคือ%
wfaulk

1
wfaulk ฉันหวังว่าฉันจะโหวตความคิดเห็นของคุณมากกว่าหนึ่งครั้ง
ริชชี่ Marquez

18
€ยังไม่มีตัวตน ...
mouviciel

คำตอบ:


59

มาสำรวจกันหน่อย:

  • เวอร์ชั่น 8 Unixนั้นง่าย ยังคงมีหน้าคนที่มีอยู่ ไปที่ หน้าsh manและค้นหาพรอมต์ คุณจะไปถึงจุดที่คุณอ่าน:

    สตริงข้อความแจ้งเตือน PS1 หลักโดยค่าเริ่มต้น“ $”

    PS2 สายอักขระรองพรอมต์โดยค่าเริ่มต้น“>”

  • ลองดูว่านั่นเป็นอันแรกหรือเปล่า 7 รุ่น Unixหน้าคนยังคงมีอยู่และหน้าคน ให้คำอธิบายเดียวกันของแจ้งเป็นรุ่นที่ 8sh

  • แล้วรุ่น 6 ล่ะ? เวอร์ชั่น 6 Unix นั้นไม่ยากที่จะติดตาม แต่ หน้าคนของมันshไม่ได้พูดถึงพรอมต์เลย คู่มือ“ เริ่มต้นใช้งาน” มีประโยชน์อยู่ที่นี่ มันกล่าวถึง :

    จุดสูงสุดของความพยายามในการเข้าสู่ระบบของคุณคือเครื่องหมายเปอร์เซ็นต์“%” เครื่องหมายเปอร์เซ็นต์หมายความว่า UNIX พร้อมที่จะรับคำสั่งจากเทอร์มินัล

Aha! ดังนั้นเวอร์ชัน 6 จึงไม่มี เวอร์ชัน 7 เป็นคนแรก! เปิดตัวในปี 1979

มีความสุข? เกลียดฝนในขบวนพาเหรดของคุณ แต่อย่าเป็น :)

ปัญหาคือว่ารุ่น 6 เป็นหนึ่งในแรงบันดาลใจ Unix ดูตัวแปรที่นี่ เป็นไปได้ไหมว่าเครื่องหมาย $ เป็นพรอมต์คำสั่งไม่ได้เริ่มในเวอร์ชัน 7 แต่เป็นหนึ่งในรูปแบบเหล่านี้และจากนั้นแนวคิดจะรวมอยู่ใน 7

ณ จุดนี้ฉันเบื่อที่จะหาเอกสารของระบบปฏิบัติการตั้งแต่ฉันอายุ 6 ขวบอย่างน้อยก็แคบลงมาก เรารู้ว่าเวอร์ชัน 7 เป็นรุ่นแรกของ Bell Labs เพื่อแสดงเครื่องหมาย $ เป็นพรอมต์คำสั่ง สิ่งที่เราต้องแน่ใจก็คือไม่มีตัวแปรรุ่น 6 เหล่านั้นที่นำมาใช้ มันสมเหตุสมผลสำหรับการเปลี่ยนแปลงนี้ที่จะปรากฏในเวอร์ชั่น 7 แม้ว่าจะเป็นรุ่นที่เปิดตัว Bourne shell แทนที่เชลล์ Thompson ที่ใช้ใน Unix รุ่นก่อนหน้า (และMassey shell ที่ใช้ใน Workbench Unix ของโปรแกรมเมอร์)

หนึ่งความคิดที่ผ่านมา:
ในขณะที่ความคิดของ $ เป็นคำแนะนำให้กับเปลือกคำหรือสคริปต์ที่น่าสนใจและทำให้ทุกคนไม่คาดหวังว่าสิ่งนี้จะได้รับการยืนยันอย่างเป็นทางการ การพัฒนา Unix ได้รับการแบ่งปันจากคนกลุ่มใหญ่ที่มีความกังวลในชีวิตมากกว่าการติดตามว่าสัญลักษณ์วิวัฒนาการอย่างไร และโปรแกรมเมอร์พิเศษเหล่านี้บางคนไม่ได้อยู่ในหมู่พวกเราอีกต่อไป

น่าจะเป็นสิ่งที่ดีที่สุดที่คุณคาดหวังจากคำถามที่ว่า "ต้นกำเนิดของพรอมต์ UNIX $ (ดอลลาร์) คืออะไร" เป็นชื่อของเชลล์ Unix ตัวแรกที่นำเสนอ


4
เวอร์ชัน 7 เป็น Unix ตัวแรกที่มี Bourne shell มันแทนที่เชลล์ ธ อมป์สันในเวอร์ชัน 6 ดังนั้นนี่จึงเป็นการแยกแยะระหว่างการแจ้งเตือนของเชลล์ที่สมเหตุสมผล
wfaulk

1
ได้. เราสวยมากสามารถติดตามมันไปที่บอร์นเชลล์ ในฐานะผู้เขียนไม่ต้องสงสัยเลยเกี่ยวกับมัน แต่เขาเป็นพนักงานที่ Bell Labs เหมือนคนอื่น ๆ
คนแคระ

1
นอกจากนี้ยังมีหน้าคนอย่างน้อยที่สุดกลับเป็นเวอร์ชัน 3: minnie.tuhs.org/UnixTree/V3/usr/man/man1
wfaulk

2
ย้อนกลับไปในวันที่หกและก่อนหน้า UNIX ได้รับการแจกจ่ายพร้อมรหัสที่มาแบบเต็ม มหาวิทยาลัยทุกแห่งที่ได้รับมันมักจะทำการปรับเปลี่ยนในท้องถิ่น (นั่นคือที่ที่ BSD มาจาก) ดังนั้นบางทีโปรแกรมเมอร์ระบบบางคนที่ University of Waterloo ถึงแม้ว่าคำว่า "shell" จะดูคล้ายหอยทากและเปลี่ยน% เป็น @ . และอย่างที่คุณพูดมีหลายสายพันธุ์และเมื่อพวกเขากลับมารวมกันใน v7 ไม่ต้องสงสัยเลยว่าต้นกำเนิดของการเปลี่ยนแปลงนั้นเลือนลางอยู่แล้ว
Michael Dillon

3
แหล่งที่มาของแรงบันดาลใจที่เป็นไปได้สำหรับ Bourne: คู่มือMTS FORTRAN-IV / WATFIVจากปี 1978 อธิบายการป้อนข้อมูลของ punch-card: คำสั่ง "บัตรควบคุม" รวมถึง "... ที่เริ่มต้นด้วยสัญลักษณ์ดอลลาร์ ($) ในคอลัมน์ 1 เสมอ"
cxw

9

พรอมต์บอร์นเชลล์เดิมคือเชลล์หอยทาก "@" ฉันจำสิ่งนี้ใน UNIX 6th edition ซึ่งฉันเชื่อว่าก่อนที่ UNIX จะวางขายในเชิงพาณิชย์ ดังนั้นการเปลี่ยนเป็นเครื่องหมาย $ อาจเกี่ยวข้องกับการค้าของ UNIX ตามที่โรเบิร์ตแนะนำนั่นคือ $ Hell


3
Bourne shell ไม่มีอยู่จนกระทั่งเวอร์ชัน 7
wfaulk

2
เราแค่เรียกมันว่า "หอย" ดังนั้นฉันไม่รู้ว่าใครเขียนมัน ฉันจำได้ว่าเคยเห็นโปสเตอร์ที่มีคำสั่งเชลล์ทั้งหมดบันทึกไว้ในเรียงเป็นเกลียวเหมือนหอยทากหรือเครื่องหมาย อาจจะมาจาก O'Reilly แต่ฉันก็ไม่แน่ใจ
Michael Dillon

8

ที่จริงแล้วพรอมต์บรรทัดคำสั่งมาตรฐานใน Linux สำหรับบัญชีผู้ใช้ปกติที่ใช้ Bourne, Bash หรือ Korn เชลล์คือเครื่องหมายดอลลาร์ ($) ในขณะที่รูทพรอมต์เป็นเครื่องหมายแฮช (#) ในทางตรงกันข้ามพรอมต์ C เชลล์แบบดั้งเดิมคือเครื่องหมายเปอร์เซ็นต์ (%)

ถ้าฉันต้องเดาค่า $ จะทำให้ระลึกถึงคำว่า $ hell ซึ่งอาจเป็นเหตุผลว่าทำไมถึงเลือก


4
เขาถามหาต้นกำเนิดจริงไม่ใช่ในสิ่งที่ผู้คนคาดเดา
davr

6
อย่าได้รับการต่อว่าต่อขาน ตัดสินจากคำตอบอื่น ๆ ที่โพสต์ที่นี่ปรากฏว่าไม่มีใครรู้จริงแน่นอนอยู่แล้ว
Robert Harvey

1
ฉันเดาว่า # พรอมต์รูทนั้นถูกเลือกเพื่อให้ตรงกับตัวละครความคิดเห็นลดโอกาสของการวางคำสั่งที่เป็นอันตรายโดยบังเอิญ ... หรืออาจจะไม่! ฉันไม่คิดว่าพวกเขามีวิธีในการตัดและวางกลับมากนักในวันนี้
Sam Watkins

สำหรับสิ่งที่คุ้มค่านี่คือคำตอบที่ฉันกำลังมองหาเพราะฉันจำไม่ได้ว่าอันไหน
John Leidegren

7

น่าเศร้าที่ฉันตอบคำถามไม่ได้ แต่ฉันสามารถให้คำแนะนำคุณได้สองสามข้อ


2

ข้อควรระวัง: สิ่งนี้อาจไม่เป็นความจริง แต่เป็นเพียงการเดาที่เข้มงวด

ฉันมีความรู้สึกที่$เป็นเครื่องเตือนใจด้านจิตใจ

เราต้องจำไว้ว่าในตอนนั้นไม่มีพรอมต์แบบดิจิทัลเพียงแค่มีกระดาษ "โทรพิมพ์" ( tty) และเงินดอลลาร์อาจจะบอกว่า "คุณกำลังเสียกระดาษและเงินเพื่อให้สายโทรศัพท์นี้ขึ้นมาเพียงแค่ป้อนคำสั่งแล้ว !!"

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