7 ต.ค. เวลา 06:31 • วิทยาศาสตร์ & เทคโนโลยี

ลินุกซ์พื้นฐาน: ตรวจสอบประเภทของคำสั่งและตัวแปรสภาพแวดล้อม

การตรวจสอบประเภทของคำสั่ง
ในระบบลินุกซ์ คำสั่งที่เราใช้งานสามารถแบ่งออกเป็นสองประเภทหลักๆ ได้แก่ คำสั่งประกอบภายใน (Built-in Commands) และ โปรแกรมคำสั่ง (External Commands) การทราบว่าคำสั่งที่เราใช้เป็นประเภทใดจะช่วยให้เข้าใจการทำงานของระบบได้ดีขึ้น
การใช้คำสั่ง type
ใน Bash Shell มีคำสั่งประกอบภายในที่ชื่อว่า type ไว้สำหรับตรวจสอบประเภทของคำสั่งต่างๆ โดยเพียงแค่พิมพ์ type ตามด้วยชื่อคำสั่งที่ต้องการตรวจสอบ
ตัวอย่างการใช้งาน:
$ type cd
cd is a shell builtin
จากตัวอย่างข้างต้น คำสั่ง cd เป็นคำสั่งประกอบภายในของเชลล์ หมายความว่าเชลล์สามารถทำงานได้ทันทีโดยไม่ต้องอ่านไฟล์ไบนารีจากฮาร์ดดิสก์
$ type ls
ls is aliased to 'ls --color=auto -F'
กรณีนี้แสดงให้เห็นว่าเมื่อเราสั่ง ls เชลล์จะแปลความหมายเป็น ls --color=auto -F โดยอัตโนมัติ ซึ่งเป็นการตั้งค่า alias ไว้
$ type /bin/ls
/bin/ls is /bin/ls
เมื่อระบุ full path ของคำสั่ง จะเป็นการเรียกใช้โปรแกรมคำสั่งโดยตรงจากตำแหน่งที่ระบุ โดยไม่มีการใส่ตัวเลือกเพิ่มเติมใดๆ
ความแตกต่างระหว่างคำสั่งทั้งสองประเภท
คำสั่งประกอบภายใน ทำงานได้ทันทีภายในเชลล์ มีความเร็วในการประมวลผลสูงกว่าเพราะไม่ต้องโหลดโปรแกรมจากดิสก์ ตัวอย่างเช่น cd, echo, export
โปรแกรมคำสั่ง เป็นไฟล์ที่แยกต่างหากจากเชลล์ เมื่อเรียกใช้งานเชลล์จะต้องค้นหาและโหลดโปรแกรมจากดิสก์มาทำงาน ตัวอย่างเช่น ls, cat, grep
ตัวแปรสภาพแวดล้อม (Environment Variables)
ตัวแปรสภาพแวดล้อมเป็นตัวแปรพิเศษที่ใช้เก็บข้อมูลหรือค่าต่างๆ เพื่อใช้ในเชลล์และส่งผลต่อโปรแกรมที่เรียกใช้จากเชลล์นั้นด้วย ตัวแปรเหล่านี้มีบทบาทสำคัญในการกำหนดพฤติกรรมของระบบและโปรแกรมต่างๆ
การกำหนดและใช้งานตัวแปรสภาพแวดล้อม
การสร้างตัวแปรสภาพแวดล้อมทำได้โดยใช้เครื่องหมาย = ในการกำหนดค่า และใช้คำสั่ง export เพื่อประกาศให้ตัวแปรนั้นเป็นตัวแปรสภาพแวดล้อม
ตัวอย่างการกำหนดค่า:
$ PATH=/bin:/usr/bin:/usr/local/bin
$ export PATH
$ echo $PATH
/bin:/usr/bin:/usr/local/bin
หรือสามารถกำหนดในบรรทัดเดียวได้:
$ export PATH=/bin:/usr/bin:/usr/local/bin
การอ้างอิงค่าของตัวแปร
ในการแสดงหรืออ้างอิงค่าของตัวแปร ให้ใช้เครื่องหมายดอลลาร์ ($) นำหน้าชื่อตัวแปร เช่น $PATH หรืออาจใช้วงเล็บปีกกาเพื่อความชัดเจน เช่น ${PATH}
ความแตกต่างระหว่างตัวแปรเชลล์และตัวแปรสภาพแวดล้อม
ตัวแปรเชลล์ธรรมดา มีผลเฉพาะในเชลล์ที่สร้างขึ้นเท่านั้น โปรแกรมที่รันจากเชลล์นั้นจะไม่สามารถเข้าถึงตัวแปรเหล่านี้ได้
ตัวแปรสภาพแวดล้อม ที่ถูก export แล้วจะถูกสืบทอดไปยังโปรแกรมหรือคำสั่งที่ทำงานภายในเชลล์นั้น ทำให้โปรแกรมสามารถรับรู้และใช้งานตัวแปรเหล่านี้ได้
การเพิ่มค่าให้กับตัวแปร PATH
ตัวแปร PATH เป็นตัวแปรสภาพแวดล้อมที่สำคัญ เก็บรายการไดเรกทอรีที่เชลล์จะค้นหาคำสั่งต่างๆ เมื่อต้องการเพิ่มไดเรกทอรีใหม่ควรใช้วิธีการดังนี้:
$ echo $PATH
/usr/bin:/bin:/usr/X11R6/bin
$ export PATH=$PATH:/home/somchai/bin
$ echo $PATH
/usr/bin:/bin:/usr/X11R6/bin:/home/somchai/bin
วิธีนี้จะรักษาค่าเดิมของ PATH ไว้และเพิ่มไดเรกทอรีใหม่ต่อท้าย หากกำหนดค่าใหม่โดยตรงโดยไม่อ้างอิง $PATH เดิม จะทำให้ค่าเดิมหายไปและอาจทำให้เชลล์หาโปรแกรมบางตัวไม่เจอ
ผลกระทบของตัวแปรสภาพแวดล้อมต่อโปรแกรม
โปรแกรมที่รันในเชลล์จะสืบทอดตัวแปรสภาพแวดล้อมจากเชลล์นั้น ทำให้การรันคำสั่งเดียวกันในเชลล์ที่มีการตั้งค่าตัวแปรแตกต่างกันอาจให้ผลลัพธ์ที่แตกต่างกันได้
ตัวอย่างการใช้ตัวแปร LANG:
$ export LANG=en_US
$ date
Wed Oct 8 01:15:31 JST 2003
$ export LANG=th_TH.TIS-620
$ date
พ. 8 ต.ค. 2546 01:16:23 JST
การกำหนดสภาพแวดล้อมเฉพาะคำสั่ง
Bash Shell มีคุณสมบัติพิเศษที่สามารถกำหนดค่าตัวแปรสภาพแวดล้อมเฉพาะคำสั่งที่ต้องการได้ โดยไม่มีผลต่อสภาพแวดล้อมของเชลล์:
$ export LANG=C
$ date
Sun Oct 12 13:57:23 JST 2003
$ LANG=th_TH.TIS-620 date
อา. 12 ต.ค. 2546 13:58:00 JST
$ date
Sun Oct 12 13:59:05 JST 2003
วิธีนี้มีประโยชน์เมื่อต้องการระบุสภาพแวดล้อมชั่วคราวให้กับคำสั่งใดคำสั่งหนึ่งเท่านั้น
ตัวแปรสภาพแวดล้อมที่สำคัญ
การดูตัวแปรสภาพแวดล้อมทั้งหมด
หากต้องการดูตัวแปรสภาพแวดล้อมทั้งหมดในระบบ สามารถใช้คำสั่ง:
$ export -p
หรือ
$ printenv
การตรวจสอบตัวแปรสภาพแวดล้อมมีประโยชน์ในการ debug โปรแกรมหรือระบบ เพราะบางโปรแกรมอาจได้รับผลกระทบจากการตั้งค่าตัวแปรบางตัวโดยไม่ได้ตั้งใจ
สรุป
การเข้าใจประเภทของคำสั่งและการใช้งานตัวแปรสภาพแวดล้อมเป็นพื้นฐานสำคัญในการใช้งานลินุกซ์ คำสั่ง type ช่วยให้เราทราบว่าคำสั่งที่ใช้เป็นคำสั่งภายในหรือโปรแกรมภายนอก ส่วนตัวแปรสภาพแวดล้อมช่วยในการกำหนดพฤติกรรมของเชลล์และโปรแกรมต่างๆ ทำให้สามารถปรับแต่งการทำงานของระบบให้เหมาะสมกับความต้องการได้
ฝากติดตามซีรีส์การใช้ Linux ขั้นพื้นฐานด้วยนะครับ
ติดตามตอนต่อไปได้ที่ - > https://www.blockdit.com/series/68dc9f8ccfbe2a355b6c87d6

ดูเพิ่มเติมในซีรีส์

โฆษณา