นี้
-
แตกคำแต่ละคำในบรรทัดคำสั่ง ออกเป็น sort, -n, phonelist, >, และ
phonelist.sorted
-
แยกและวิเคราะห์หน้าที่ของคำทั้งหมด เช่น sort เป็นคำสั่งให้ทำการจัดลำดับ
-n และ phonelist เป็น argument ที่ทำการส่งให้กับคำสั่ง ส่วน > และ
phonelist.sorted เป็นคำสั่งที่เกี่ยวกับเรื่องของ การนำ ข้อมูล/ผลลัพธ์
เข้า-ออก (I/O instruction)
-
กำหนดทิศทางของการนำผลลัพธ์ออก "> phonelist.sorted" ก็คือการนำ
ผลลัพธ์จากอุปกรณ์แสดงผลมาตรฐาน (standard output) ไปเก็บไว้ที่ไฟล์
ที่ชื่อ phonelist.sorted
-
หาคำสั่ง sort (อยู่ในไดเรกทอรี /usr/bin ) และเริ่มทำงานโดยใช้ argument
-n และ phonelist ด้วย
ประวัติของเชลล์
ในระบบยูนิกซ์เราสามารถเลือกใช้เชลล์ได้หลายแบบ ซึ่งค่อนข้างจะแตกต่างจากระบบ
ปฏิบัติการดอสที่เราจะต้องถูกจำกัดให้ใช้เชลล์ที่ติดตั้งมาแล้วกับดอส (command.com)
ได้เพียงโปรแกรมเดียว
สำหรับโปรแกรมเชลล์โปรแกรมแรกนั้น คือโปรแกรม โบนเชลล์ (Bourne Shell) ซึ่ง
ได้ถูกตั้งชื่อตามชื่อของผู้คิดค้นโปรแกรมนี้ขึ้น (สตีเฟน โบน : Steven Bourne) โบน
เชลล์นี้ได้ถูกแจกจ่ายไปพร้อมกับ UNIX version 7 ซึ่งเป็นเวอร์ชั่นที่ได้รับความ
นิยมมากที่สุดตัวหนึ่ง ในปีคศ. 1979
คนส่วนใหญ่จะรู้จักโบนเชลล์จากการเรียกคำสั่งในระบบว่า sh ถึงแม้ว่าในปัจจุบันจะมี
โปรแกรมเชลล์ออกมามากมาย และยูนิกซ์ในปัจจุบันก็ได้รับการพัฒนาไปมากแล้ว โบนเชลล์
ก็ยังถือว่าเป็นโปรแกรมสำคัญพื้นฐานโปรแกรมหนึ่งที่ยูนิกซ์ทุกระบบจะต้องมี รวมทั้ง
โปรแกรมเชลล์ที่ถูกทำการพัฒนาขึ้นมาภายหลังส่วนใหญ่ก็จะมีความเข้ากันได้กับโบนเชลล์
โปรแกรมเชลล์ที่ถูกทำการพัฒนาขึ้นมาภายหลังและได้รับความนิยมอย่างสูงก็คือ C shell
หรือ csh ซึ่ง Bill Joy ซึ่ง (ในเวลานั้น) อยู่ที่มหาวิทยาลัย California at Berkeley
ซึ่งเป็นส่วนหนึ่งของ ระบบยูนิกซ์รุ่นของ Berkeley System Distribution (BSD) หรือ
BSD Unix สาเหตุที่มีการเรียกเชลล์นี้ว่า C shell ก็เนื่องจากว่า มีรูปแบบของคำสั่ง
และการใช้งานที่คล้ายกับโปรแกรมภาษา C ซึ่งจะทำให้ผู้ใช้ที่เป็นโปรแกรมเมอร์มีความ
คุ้นเคยกับการใช้งานเชลล์นี้มาก
โปรแกรมเชลล์อื่นที่ถูกทำการพัฒนาและได้รับความนิยมสูงอีกโปรแกรมหนึ่งก็คือ Korn
Shell (คอร์นเชลล์) หรือ ksh ถูกพัฒนาขึ้นมาโดย David Korn จาก AT&T Bell Lab
ในราวๆกลางทศวรรษ 1980 โปรแกรมคอร์นเชลล์นี้มีความเข้ากันได้กับโบนเชลล์ นั่นหมาย
ความว่าผู้ที่เคยใช้งานโบนเชลล์มาก่อนสามารถจะใช้งาน คอร์นเชลล์ได้โดยง่าย นอกจาก
นี้ คอร์นเชลล์ก็ยังมีรูปแบบพิเศษบางอย่างที่ถูกเพิ่มเติมเข้ามาเพื่อให้ผู้ใช้
สามารถใช้งานได้สะดวกขึ้นด้วย หากคุณต้องการจะศึกษาเกี่ยวกับเรื่องของการเขียน
เชลล์โปรแกรมมิงโดยละเอียดแล้ว ขอแนะนำให้คุณค้นหาหนังสือที่อธิบายเรื่องของ คอร์น
เชลล์ เนื่องจากในปัจจุบันจะถือว่า คอร์นเชลล์ เป็นโปรแกรมเชลล์มาตรฐานของระบบ
ยูนิกซ์
โปรแกรมเชลล์อื่นๆ
นอกจาก โบนเชลล์ ซีเชลล์ และ คอร์นเชลล์แล้ว ยังมีผู้พัฒนาโปรแกรมเชลล์อื่นๆที่มี
คุณภาพสูงออกมาอีกเช่น pdksh (Public Domain Korn shell) และ bash (Bourne
again shell) เนื่องจากการได้รับความนิยมอย่างสูงของคอร์นเชลล์ ทำให้มีผู้ที่พัฒนา
โปรแกรมเชลล์จำนวนมากออกมาโดยอ้างอิงถึงคอร์นเชลล์ แต่ตัวคอร์นเชลล์ไม่ใช่ของที่แจก
จ่ายโดยอิสระ USL (UNIX System Laboratories) ซึ่งปัจจุบันได้ถูกโอนไปอยู่กับบริษัท
SCO Unix เป็นผู้ถือลิขสิทธิ์ของ คอร์นเชลล์อยู่
pdksh จึงถูกพัฒนาขึ้นมาโดยมีความเข้ากันได้กับ ksh ต้นฉบับ และ pdksh นี้สามารถทำ
การแจกจ่ายได้ฟรี (public domain) ส่วน bash นั้นทาง FSF (Free Software Foundation)
ได้เป็นผู้ทำการพัฒนาขึ้นมา ซึ่ง bash จะมีความเข้ากันได้กับ ksh แต่ก็มีความสามารถ
บางส่วนของ csh ด้วย เราสามารถนำเอาโปรแกรมเชลล์ที่ถูกเขียนขึ้นเพื่อใช้กับคอร์น
เชลล์ มาใช้กับ bash ได้ bash สามารถทำการแจกจ่ายได้ฟรีเช่นเดียวกัน
ในระบบลีนุกซ์คุณอาจสามารถเลือกติดตั้งเชลล์ได้หลายแบบ เช่น ash, bash, csh,
tcsh, pdksh และ zsh คุณสามารถตรวจสอบได้ว่าในปัจจุบันคุณกำลังใช้เชลล์อะไรอยู่โดย
ใช้คำสั่งต่อไปนี้
$ echo $SHELL
/bin/bash
ในตัวอย่างนี้แสดงว่ากำลังใช้ bash หรือ Bourne again shell อยู่
หากคุณต้องการจะเปลี่ยนหรือเรียกใช้งานเชลล์ชนิดอื่นๆขึ้นมา ก็สามารถใช้คำสั่งโดย
ป้อนชื่อของเชลล์ที่ต้องการลงไปได้ เช่น
$ bash (call Bourne again shell)
$ csh (call c shell)
หรือสามารถเปลี่ยนแปลงดีฟอลท์เชลล์ ที่จะถูกเรียกขึ้นมาทุกครั้งที่มีการล็อกอินเข้า
ใช้งานระบบ ได้จากแฟ้มข้อมูล /etc/passwd
ในการศึกษาเกี่ยวกับการเขียนโปรแกรมเชลล์นี้ จะอ้างอิงถึง คอร์นเชลล์เป็นหลัก
คุณสามารถใช้ bash หรือ Bourne again shell เป็นเครื่องมือในการศึกษานี้ได้
เนื่องจากคำสั่งส่วนใหญ่ของคอร์นเชลล์สามารถนำไปใช้ใน bash ได้
HTML developed by Kaiwal Development Team (kaiwal@geocities.com)