กลับไปหน้าบทความ

อ่าน 3 นาที

tcsh

tcsh ( / ˌ t iː ˈ s iː ʃ ɛ l / “tee-see-shell”, / ˈ t iː ʃ ɛ l / “tee-shell”, หรือ “tee see ess aitch”, tcsh ) เป็น เชลล์ Unix ที่อิงตามและ เข้ากันได้ กับ เชลล์ C ( csh )

tcsh

TENEX C Shell
นักพัฒนาเคน กรีเออร์, พอล เพลสเวย์, คริสตอส ซูลาส และคณะ
เวอร์ชันเสถียร
6.24.16 [ 1 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 9 กรกฎาคม 2025 ( 9 กรกฎาคม 2568 )
เขียนเป็นซี
ระบบปฏิบัติการข้ามแพลตฟอร์ม
ผู้มาก่อนซีเชลล์
พิมพ์เชลล์ยูนิกซ์
ใบอนุญาต2002: BSD-3-Clause [ 2 ] [ 3 ] 1991: BSD-4-Clause [ 4 ]
เว็บไซต์www.tcsh.org แก้ไขข้อมูลนี้บนวิกิดาต้า
ที่เก็บข้อมูล
  • github.com/tcsh-org/tcsh

tcsh ( / ˌ t ˈ s ʃ ɛ l / “tee-see-shell”, / ˈ t ʃ ɛ l / “tee-shell”, หรือ “tee see ess aitch”, tcsh) เป็นเชลล์ Unixที่อิงตามและเข้ากันได้กับเชลล์ C ( csh)

เปลือก

tcsh โดยพื้นฐานแล้วคือเชลล์ C ที่มี การเติมคำสั่งบรรทัดอัตโนมัติการ แก้ไข คำสั่งบรรทัดและคุณสมบัติอื่นๆ อีกเล็กน้อย แตกต่างจากเชลล์ทั่วไปอื่นๆ ตรงที่ฟังก์ชันไม่สามารถกำหนดในสคริปต์ tcsh ได้ และผู้ใช้ต้องใช้นามแฝงแทน (เช่นเดียวกับใน csh) มันเป็นเชลล์รูทดั้งเดิมสำหรับระบบที่ใช้ BSD บางระบบ รวมถึงFreeBSD 13 และรุ่นก่อนหน้า (FreeBSD 14 เปลี่ยนเชลล์รูทเริ่มต้นให้shตรงกับเชลล์ผู้ใช้เริ่มต้น[ 5 ]ในขณะที่OpenBSDใช้เชลล์ Kornkshสำหรับทั้งรูทและผู้ใช้ทั่วไป[ 6 ] )

tcsh เพิ่มการเติมชื่อไฟล์และคำสั่งอัตโนมัติ รวมถึงแนวคิดการแก้ไขบรรทัดคำสั่งที่ยืมมาจาก ระบบปฏิบัติการ TENEXซึ่งเป็นที่มาของ “t” [ 7 ] เนื่องจาก tcsh เพิ่มฟังก์ชันการทำงานเท่านั้นและไม่ได้เปลี่ยนแปลงสิ่งที่มีอยู่แล้ว จึงยังคงเข้ากันได้ กับ C shell ดั้งเดิม [ 8 ]แม้ว่าจะเริ่มต้นเป็นสาขาย่อยจากซอร์สโค้ด csh ดั้งเดิมที่Bill Joyสร้างขึ้น แต่ปัจจุบัน tcsh เป็นสาขาหลักสำหรับการพัฒนาอย่างต่อเนื่อง

tcsh มีความเสถียรมาก แต่ยังคงมีการออกเวอร์ชันใหม่ประมาณปีละครั้ง โดยส่วนใหญ่ประกอบด้วยการแก้ไขข้อบกพร่องเล็กน้อย[ 9 ]

ในระบบหลายๆ ระบบ เช่นmacOSและRed Hat Linux ไฟล์ดังcshกล่าวคือไฟล์tcsh.c shell เวอร์ชันปรับปรุงแล้ว โดยปกติแล้วไฟล์ใดไฟล์หนึ่งในสองไฟล์นี้จะเป็นฮาร์ดลิงก์หรือไซโมนิกลิงก์ไปยังอีกไฟล์หนึ่ง ทำให้ชื่อไฟล์ทั้งสองอ้างอิงถึงไฟล์ C shell เวอร์ชันปรับปรุงเดียวกัน (แม้ว่าพฤติกรรมอาจเปลี่ยนแปลงไปขึ้นอยู่กับชื่อที่ใช้)

บนDebianและระบบปฏิบัติการที่พัฒนาต่อยอดจาก Debian บางระบบ (รวมถึงUbuntu ) มีแพ็กเกจที่แตกต่างกันสองแบบคือ csh และ tcsh โดยแพ็กเกจแรกนั้นอิงตามเวอร์ชัน BSD ดั้งเดิมของ csh [ 10 ] [ 11 ]และแพ็กเกจหลังคือ tcsh ที่ได้รับการปรับปรุง[ 12 ] [ 13 ]

ประวัติศาสตร์

ตัวอักษร “t” ในtcshมาจาก “T” ในTENEXซึ่งเป็นระบบปฏิบัติการที่สร้างแรงบันดาลใจให้ Ken Greer จากมหาวิทยาลัย Carnegie Mellonผู้เขียน tcsh ด้วยคุณสมบัติการเติมคำสั่งอัตโนมัติ[ 14 ] Greer เริ่มเขียนโค้ดเพื่อนำการเติมชื่อไฟล์แบบ Tenex มาใช้ในเดือนกันยายน พ.ศ. 2518 และในที่สุดก็รวมเข้ากับ C shell ในเดือนธันวาคม พ.ศ. 2524 [ 7 ] Mike Ellis จาก Fairchild AI Labs เพิ่มการเติมคำสั่งอัตโนมัติในเดือนกันยายน พ.ศ. 2526 [ 7 ] ในวันที่ 3 ตุลาคม พ.ศ. 2526 Greer ได้โพสต์ซอร์สโค้ดไปยังกลุ่มข่าว net.sources [ 7 ]

คุณลักษณะเด่น

  • ประวัติคำสั่ง
    • คำสั่ง ในตัวhistoryจะแสดงคำสั่งที่ป้อนไว้ก่อนหน้านี้
    • การใช้เครื่องหมาย/ ที่บรรทัดคำสั่งเพื่อให้ผู้ใช้สามารถเลือกคำสั่งจากประวัติเพื่อแก้ไข/เรียกใช้งานได้
    • การเรียกใช้คำสั่งก่อนหน้าโดยใช้ประวัติคำสั่ง
      • !!ดำเนินการคำสั่งก่อนหน้า
      • !nดำเนินการคำสั่งลำดับที่ n ที่ถูกดำเนินการไปก่อนหน้านี้
      • !-nดำเนินการคำสั่งที่ถูกดำเนินการไป เมื่อ nคำสั่งที่แล้ว
      • !stringดำเนินการคำสั่งที่เพิ่งดำเนินการล่าสุดซึ่งขึ้นต้นด้วยสตริง
      • !?stringดำเนินการคำสั่งที่เพิ่งดำเนินการล่าสุดซึ่งมีสตริง อยู่
    • การใช้ประวัติคำสั่งในคำสั่งใหม่
      • !*- หมายถึงอาร์กิวเมนต์ทั้งหมดจากคำสั่งก่อนหน้า
      • !$- หมายถึงอาร์กิวเมนต์สุดท้ายจากคำสั่งก่อนหน้า
      • !^- หมายถึงอาร์กิวเมนต์แรกจากคำสั่งก่อนหน้า
      • !:n- หมายถึง อาร์กิวเมนต์ลำดับ ที่ n จากคำสั่งก่อนหน้า
      • !:m-n- หมายถึง อาร์กิวเมนต์ลำดับ ที่ m ถึง n จากคำสั่งก่อนหน้า
      • !:n-$- หมายถึงอาร์กิวเมนต์ลำดับ ที่ n จนถึงอาร์กิวเมนต์สุดท้ายจากคำสั่งก่อนหน้า
  • การแก้ไขบรรทัดคำสั่ง
  • การเติมชื่อไฟล์และตัวแปรโดยอัตโนมัติ รวมถึงการเติมคำสั่งแบบตั้งโปรแกรมได้ที่บรรทัดคำสั่ง
  • ตัวเลือกอาร์กิวเมนต์แบบนามแฝง: ความสามารถในการกำหนดนามแฝงเพื่อรับอาร์กิวเมนต์ที่ป้อนเข้ามาและนำไปใช้กับคำสั่งที่อ้างถึง Tcsh เป็นเชลล์เดียวที่มีคุณสมบัตินี้ (แทนที่ฟังก์ชัน)
    • \!#- ตัวเลือกอาร์กิวเมนต์สำหรับอาร์กิวเมนต์ทั้งหมด รวมถึงนามแฝง/คำสั่งเองด้วย ไม่จำเป็นต้องระบุอาร์กิวเมนต์
    • \!*- ตัวเลือกอาร์กิวเมนต์สำหรับอาร์กิวเมนต์ทั้งหมด ยกเว้นนามแฝง/คำสั่ง; ไม่จำเป็นต้องระบุอาร์กิวเมนต์
    • \!$- ตัวเลือกอาร์กิวเมนต์สำหรับอาร์กิวเมนต์สุดท้าย ไม่จำเป็นต้องระบุอาร์กิวเมนต์ แต่หากไม่ได้ระบุอาร์กิวเมนต์ใดๆ จะถือว่าชื่อนามแฝงเป็นอาร์กิวเมนต์สุดท้าย
    • \!^- ตัวเลือกอาร์กิวเมนต์สำหรับอาร์กิวเมนต์แรก ต้องระบุอาร์กิวเมนต์
    • \!:n- ตัวเลือกอาร์กิวเมนต์สำหรับ อาร์กิวเมนต์ ที่ n ; ต้องระบุอาร์กิวเมนต์; n=0 หมายถึงชื่อนามแฝง/ชื่อคำสั่ง
    • \!:m-n- ตัวเลือกอาร์กิวเมนต์สำหรับอาร์กิวเมนต์ลำดับที่ m ถึงลำดับที่ n ; ต้องระบุอาร์กิวเมนต์
    • \!:n-$- ตัวเลือกอาร์กิวเมนต์สำหรับอาร์กิวเมนต์ตั้งแต่ตัวที่ n จนถึงตัวสุดท้าย โดยต้องระบุอาร์กิวเมนต์อย่างน้อยตัวที่ n
    • \!:n*- ตัวเลือกอาร์กิวเมนต์สำหรับอาร์กิวเมนต์ตั้งแต่ตัวที่ n จนถึงตัวสุดท้าย ไม่จำเป็นต้องระบุอาร์กิวเมนต์ที่เพียงพอ
      #ตั้งชื่อเล่นให้กับคำสั่ง cd เพื่อให้เมื่อคุณเปลี่ยนไดเร็กทอรี เนื้อหาจะแสดงผลทันทีalias cd 'cd \!* && ls'
  • การจับคู่ไวด์การ์ด
    ถ้า( "$input" = ~ [ 0-9 ] * ) แล้วให้แสดงข้อความ"ข้อมูลที่ป้อนขึ้นต้นด้วยจำนวนเต็ม" มิฉะนั้นให้แสดงข้อความ" ข้อมูลที่ป้อนไม่ได้ขึ้นต้นด้วยจำนวนเต็ม"
  • การควบคุมงาน
  • คำสั่ง ในตัวwhereทำงานเหมือนwhichคำสั่งทั่วไป แต่จะแสดง ตำแหน่ง ทั้งหมดของคำสั่งเป้าหมายในไดเร็กทอรีที่ระบุไว้$PATHแทนที่จะแสดงเฉพาะไดเร็กทอรีที่จะถูกใช้งานเท่านั้น

การปรับใช้

Mac OS X เวอร์ชันแรกๆ มาพร้อมกับ tcsh เป็นเชลล์เริ่มต้น แต่เชลล์เริ่มต้นสำหรับบัญชีใหม่จะเปลี่ยนเป็นbashตั้งแต่เวอร์ชัน10.3 เป็นต้น ไป จากนั้น เป็น zshตั้งแต่เวอร์ชัน10.15 (tcsh ยังคงมีให้ใช้งาน และการอัปเกรดระบบปฏิบัติการจะไม่เปลี่ยนแปลงเชลล์ของบัญชีที่มีอยู่) tcsh เป็นเชลล์รูทเริ่มต้นของFreeBSDก่อนเวอร์ชัน 14.0 (เมื่อเปลี่ยนไปใช้เชลล์ที่พัฒนามาจาก Almquistซึ่งเป็นเชลล์ผู้ใช้เริ่มต้นอยู่แล้ว) [ 15 ] และระบบปฏิบัติการ ที่ สืบทอดต่อมา เช่นDragonFly BSDและDesktopBSD

ดูเพิ่มเติม

  • การเผยแพร่ tcsh
  • รายชื่อผู้รับจดหมาย tcsh
  • หน้าคู่มือ tcsh
  • เอกสารเก็บถาวรสำหรับหนังสือของ O'Reilly เรื่อง "การใช้ csh และ tcsh" เก็บถาวรเมื่อวันที่ 25 กุมภาพันธ์ 2011 ที่Wayback Machine
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Tcsh&oldid=1359575714 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ tcsh

tcsh ( / ˌ t iː ˈ s iː ʃ ɛ l / “tee-see-shell”, / ˈ t iː ʃ ɛ l / “tee-shell”, หรือ “tee see ess aitch”, tcsh ) เป็น เชลล์ Unix ที่อิงตามและ เข้ากันได้ กับ เชลล์ C ( csh )

เปลือก

tcsh โดยพื้นฐานแล้วคือ เชลล์ C ที่มี การเติมคำสั่งบรรทัด อัตโนมัติการ แก้ไข คำสั่งบรรทัด และคุณสมบัติอื่นๆ อีกเล็กน้อย แตกต่างจากเชลล์ทั่วไปอื่นๆ ตรงที่ ฟังก์ชัน ไม่สามารถกำหนดในสคริปต์ tcsh ได้ และผู้ใช้ต้องใช้นามแฝงแทน (เช่นเดียวกับใน csh)...

ประวัติศาสตร์

ตัวอักษร “t” ใน tcsh มาจาก “T” ใน TENEX ซึ่งเป็น ระบบปฏิบัติการ ที่สร้างแรงบันดาลใจให้ Ken Greer จาก มหาวิทยาลัย Carnegie Mellon ผู้เขียน tcsh ด้วยคุณสมบัติการเติมคำสั่งอัตโนมัติ [ 14 ] Greer เริ่มเขียนโค้ดเพื่อนำการเติมชื่อไฟล์แบบ Tenex มาใช้ในเดือนกันยายน พ.

คุณลักษณะเด่น

ประวัติคำสั่ง คำสั่ง ในตัว history จะแสดงคำสั่งที่ป้อนไว้ก่อนหน้านี้ การใช้เครื่องหมาย ↑ / ที่บรรทัดคำสั่งเพื่อให้ผู้ใช้สามารถเลือกคำสั่งจากประวัติเพื่อแก้ไข/เรียกใช้งานได้ ↓ การเรียกใช้คำสั่งก่อนหน้าโดยใช้ ประวัติคำสั่ง !! ดำเนินการคำสั่งก่อนหน้า !