การเรียนรู้การใช้งาน Terminal เบื้องต้น

บทความนี้เป็นบทความแรกในการที่จะสอนพื้นฐานของ Linux ซึ่งครอบคลุมการเริ่มต้นใช้งาน terminal หรือ command line ของ Linux และการใช้งานคำสั่งต่าง ๆ หากคุณเป็นผู้เริ่มต้นใช้งานใน Linux การทำความเข้าใจกับ terminal จะช่วยให้คุณสามารถทำงานกับเซิร์ฟเวอร์ Linux ได้อย่างมีประสิทธิภาพ เนื่องจาก terminal เป็นวิธีการหลักในการสื่อสารกับเซิร์ฟเวอร์ Linux

Terminal Emulator

Terminal Emulator คือโปรแกรมที่ช่วยให้เราใช้ terminal ในระบบปฏิบัติการที่มีกราฟิก (GUI) โดยปกติแล้วผู้ใช้จะใช้ระบบปฏิบัติการที่มี GUI สำหรับการใช้งานทั่วไป ดังนั้น Terminal Emulator จึงเป็นสิ่งที่จำเป็นสำหรับผู้ใช้เซิร์ฟเวอร์ Linux

ต่อไปนี้เป็น Terminal Emulator ที่ใช้กันอย่างแพร่หลายและสามารถใช้ได้ฟรี แบ่งตามระบบปฏิบัติการ:

  • Mac OS X: Terminal (ค่าเริ่มต้น), iTerm 2
  • Windows: ConEmu, Windows Terminal, PuTTy
  • Linux: Gnome Terminal, Konsole, XTerm

แต่ละโปรแกรมมีคุณสมบัติที่แตกต่างกัน แต่ทั่วไปแล้ว terminal emulator ในปัจจุบันควรมีฟังก์ชันเช่น การเปิดหลายแท็บพร้อมกันและการไฮไลต์ข้อความ

Shell

ในระบบ Linux Shell คือส่วนที่ใช้รับคำสั่งจากผู้ใช้และส่งคำสั่งเหล่านั้นไปยังระบบปฏิบัติการเพื่อทำงาน ซึ่งมีหลาย shell ที่ใช้กันอย่างแพร่หลาย เช่น Bourne-Again shell (bash) และ Z shell (zsh) แต่ละ shell มีคุณสมบัติและวิธีการรับคำสั่งที่แตกต่างกันเล็กน้อย แต่ทั้งหมดสามารถทำงานได้คล้าย ๆ กัน เช่น การเปลี่ยนเส้นทางของข้อมูล (input/output redirection), การใช้ตัวแปร, และการทดสอบเงื่อนไข

บทความนี้ใช้ Bourne-Again shell หรือที่เรียกว่า bash ซึ่งเป็น shell ที่ใช้กันทั่วไปใน Linux หลายรุ่น เช่น Ubuntu, Fedora และ RHEL

Command Prompt

เมื่อคุณเข้าสู่ระบบเซิร์ฟเวอร์ สิ่งแรกที่คุณจะพบคือ Message of the Day (MOTD) ซึ่งมักเป็นข้อความให้ข้อมูลเกี่ยวกับเซิร์ฟเวอร์ เช่น เวอร์ชันของ Linux ที่ใช้งานอยู่ จากนั้นคุณจะถูกนำไปที่ command prompt หรือ shell prompt ซึ่งเป็นจุดที่คุณสามารถพิมพ์คำสั่งเพื่อใช้งานเซิร์ฟเวอร์ได้

ข้อมูลที่แสดงบน command prompt สามารถปรับแต่งได้โดยผู้ใช้ ต่อไปนี้คือตัวอย่าง command prompt ของ Ubuntu 20.04

john@server:~$

คำอธิบายของ prompt นี้:

  • john: ชื่อผู้ใช้ปัจจุบัน
  • server: ชื่อเซิร์ฟเวอร์
  • ~: ไดเรกทอรีปัจจุบัน โดยใน bash เครื่องหมาย ~ หรือ tilde จะแสดงถึงไดเรกทอรีของผู้ใช้ที่ล็อกอินอยู่ ซึ่งในที่นี้คือ /home/john
  • $: เครื่องหมายที่สิ้นสุด command prompt ซึ่งบอกให้รู้ว่าตอนนี้พร้อมรับคำสั่งใหม่แล้ว

นี่คือตัวอย่างของ command prompt เมื่อเข้าสู่ระบบในฐานะ root และอยู่ในไดเรกทอรี /var/log

root@server:/var/log#

สังเกตว่าเครื่องหมายสิ้นสุด command prompt เปลี่ยนเป็น # ซึ่งเป็นเครื่องหมายมาตรฐานของ root ใน Linux ซึ่ง root คือบัญชีผู้ใช้พิเศษที่มีสิทธิ์จัดการระบบทุกอย่าง

การรันคำสั่ง

คำสั่งสามารถพิมพ์ใน command prompt โดยการระบุชื่อของไฟล์โปรแกรมที่ต้องการ ซึ่งอาจจะเป็นโปรแกรมที่เขียนเป็นไฟล์ไบนารีหรือสคริปต์ โดยคำสั่งใน Linux มีหลายแบบที่ติดตั้งมากับระบบปฏิบัติการ เช่น คำสั่งสำหรับนำทางในระบบไฟล์, ติดตั้งและจัดการโปรแกรม, และกำหนดค่าระบบหรือแอปพลิเคชันต่าง ๆ

เมื่อคำสั่งทำงาน จะถูกเรียกว่า process ซึ่งเมื่อรันคำสั่งในแบบ foreground (โหมดหลัก) ผู้ใช้ต้องรอจนกระทั่ง process นั้นเสร็จสิ้นก่อน จึงจะสามารถพิมพ์คำสั่งถัดไปได้

สิ่งสำคัญที่ควรทราบคือใน Linux ทุกอย่างมีความไวต่อการใช้ตัวอักษรเล็ก-ใหญ่ (case-sensitive) เช่น ชื่อไฟล์ ชื่อโฟลเดอร์ คำสั่ง ข้อความเสริม และตัวเลือก ถ้าอะไรไม่ทำงานตามที่คาดไว้ ให้ตรวจสอบการสะกดและตัวพิมพ์ของคำสั่งอีกครั้ง

คำสั่งแบบไม่มี Argument หรือ Option

การรันคำสั่งโดยไม่ระบุ argument หรือ option ให้พิมพ์ชื่อคำสั่งแล้วกด Enter

การทำงานของคำสั่งในรูปแบบนี้จะเป็นไปตามค่าเริ่มต้น ซึ่งแตกต่างกันไปตามคำสั่ง เช่น การใช้คำสั่ง cd โดยไม่มี argument จะนำเรากลับไปที่ไดเรกทอรีหลักของผู้ใช้ ในขณะที่ ls จะแสดงรายการไฟล์และไดเรกทอรีในไดเรกทอรีปัจจุบัน และคำสั่ง ip จะพิมพ์วิธีการใช้งานคำสั่งนี้

ลองรันคำสั่ง ls โดยไม่มี argument เพื่อดูรายการไฟล์และไดเรกทอรีในไดเรกทอรีปัจจุบัน (ซึ่งอาจจะมีไฟล์หรือไม่มีเลย)

ls

คำสั่งที่มี Argument

หลายคำสั่งรับ argument หรือพารามิเตอร์ที่มีผลกับการทำงานของคำสั่ง ตัวอย่างเช่น การใช้คำสั่ง cd ที่มักจะใส่ argument ระบุว่าเราต้องการเปลี่ยนไปที่ไดเรกทอรีไหน เช่น

cd /usr/bin

cd คือคำสั่ง และ /usr/bin คือ argument ที่ระบุไดเรกทอรีที่ต้องการเปลี่ยนไป สังเกตว่าข้อมูลเส้นทางปัจจุบันใน command prompt จะอัปเดตตาม

คำสั่งที่มี Options

หลายคำสั่งรับ options หรือที่เรียกว่า flags หรือ switches ที่ปรับเปลี่ยนการทำงานของคำสั่ง โดย options จะตามหลังคำสั่ง และแสดงด้วยเครื่องหมาย – แล้วตามด้วยตัวอักษรเล็กหรือใหญ่ ส่วน options ที่เป็นคำยาว ๆ จะเริ่มด้วย —

ตัวอย่างการใช้ options เช่น คำสั่ง ls มี options ที่นิยมใช้ดังนี้:

  • -l: แสดงรายการแบบ “long listing” ที่มีรายละเอียดเพิ่มเติม เช่น สิทธิ์การเข้าถึง, เจ้าของไฟล์, ขนาดไฟล์, และเวลา
  • -a: แสดงไฟล์ทั้งหมดรวมถึงไฟล์ที่ซ่อนอยู่ (ขึ้นต้นด้วย .)

การใช้ option -l กับ ls จะเป็นดังนี้

ls -l

สังเกตว่าการแสดงผลจะมีข้อมูลเพิ่มเติมเกี่ยวกับแต่ละไฟล์

โดย option สามารถรวมกันได้ ถ้าต้องการใช้ทั้ง -l และ -a เราสามารถพิมพ์ ls -l -a หรือรวมเป็น ls -la

ls -la

ผลลัพธ์จะแสดงไดเรกทอรีที่ซ่อนอยู่ด้วย เช่น . และ .. เนื่องจากเราใช้ option -a

คำสั่งที่มี Options และ Arguments

สามารถรวมการใช้ options และ arguments ได้ในคำสั่งเดียวกัน

ตัวอย่างเช่น หากต้องการตรวจสอบไฟล์ในไดเรกทอรี /home โดยไม่ต้องเปลี่ยนไดเรกทอรีปัจจุบัน สามารถใช้คำสั่งนี้

ls -la /home

ls คือคำสั่ง, -la คือ options และ /home คือ argument ที่ระบุไดเรกทอรี ผลลัพธ์จะแสดงไฟล์ในไดเรกทอรี /home พร้อมรายละเอียดของผู้ใช้ทั้งหมดในเซิร์ฟเวอร์

Environment Variables (ตัวแปรสภาพแวดล้อม)

Environment Variables คือค่าที่ตั้งไว้เพื่อปรับเปลี่ยนการทำงานของคำสั่งและ process โดยปกติแล้วเมื่อคุณเข้าสู่ระบบ ตัวแปรเหล่านี้จะถูกตั้งตามไฟล์กำหนดค่าเริ่มต้น

ดูตัวแปร Environment ทั้งหมด

หากต้องการดูตัวแปร Environment ที่ตั้งไว้ในเซสชันนี้ สามารถใช้คำสั่ง env

env

คำสั่งนี้จะแสดงรายการตัวแปรทั้งหมด ดูตัวแปรที่ชื่อ PATH

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

ตัวแปร PATH เป็นรายการของไดเรกทอรีที่ใช้ในการค้นหาโปรแกรมหรือสคริปต์

การดูค่าของตัวแปร

ค่าของ environment variable สามารถดึงมาใช้ได้โดยใส่เครื่องหมาย $ นำหน้าชื่อตัวแปร การทำแบบนี้จะทำให้ระบบแสดงค่าของตัวแปรที่เรียกใช้ออกมา

ตัวอย่างเช่น ถ้าต้องการดูค่าของตัวแปร PATH สามารถใช้คำสั่ง echo ดังนี้

echo $PATH

หรือใช้ตัวแปร HOME ซึ่งกำหนดเป็นไดเรกทอรีหลักของผู้ใช้โดยค่าเริ่มต้น เพื่อกลับไปที่ไดเรกทอรีของผู้ใช้แบบนี้

cd $HOME

หากพยายามเรียกใช้ environment variable ที่ยังไม่ได้ถูกตั้งค่า มันจะถูกแสดงเป็นค่าว่าง หรือเป็นสตริงเปล่า ๆ

การตั้งค่า Environment Variable

เมื่อรู้วิธีดูค่า environment variable แล้ว เรามาดูวิธีการตั้งค่าตัวแปรเหล่านี้กัน

ในการตั้งค่า environment variable ให้เริ่มด้วยชื่อของตัวแปร ตามด้วยเครื่องหมาย = และตามด้วยค่าที่ต้องการตั้งให้กับตัวแปรนั้น

VAR=value

โปรดสังเกตว่า หากตั้งค่าตัวแปรที่มีอยู่แล้ว ค่าที่ตั้งไว้เดิมจะถูกเขียนทับ หากตัวแปรยังไม่เคยถูกตั้งค่ามาก่อน ตัวแปรนั้นจะถูกสร้างขึ้นมาใหม่ Bash มีคำสั่ง export ซึ่งจะทำการส่งออก (export) ตัวแปร เพื่อให้ตัวแปรนี้ถูกใช้งานได้ใน process ที่เกิดจากเซสชันนี้ คำสั่งนี้มีประโยชน์เมื่อคุณต้องการให้สคริปต์ที่อ้างอิงถึงตัวแปรที่ export ไว้สามารถเข้าถึงได้

สามารถใช้ตัวแปรที่มีอยู่แล้วเมื่อตั้งค่าตัวแปรใหม่ได้ด้วย เช่น หากคุณติดตั้งแอปพลิเคชันไว้ที่ /opt/app/bin และต้องการเพิ่มเส้นทางนี้ในตัวแปร PATH ให้ใช้คำสั่งดังนี้

export PATH=$PATH:/opt/app/bin

หลังจากนั้น ลองตรวจสอบดูว่า /opt/app/bin ถูกเพิ่มเข้าไปในท้ายของตัวแปร PATH โดยใช้คำสั่ง echo

echo $PATH


โปรดจำไว้ว่า การตั้งค่า environment variable ในวิธีนี้จะมีผลแค่ในเซสชันปัจจุบันเท่านั้น ซึ่งหมายความว่าถ้าคุณออกจากระบบ หรือเปลี่ยนไปใช้เซสชันใหม่ การเปลี่ยนแปลงตัวแปรที่ทำไว้จะไม่ถูกเก็บไว้

Was this article helpful?

Related Articles