2. Basic Linux Commands (พื้นฐานคำสั่งลินุกซ์)

ระบบปฏิบัติการที่เหมาะสมที่สุดสำหรับการใช้งาน ROS2 คือ Ubuntu (ซึ่งเป็น Linux Distribution หนึ่ง) โดยการสั่งงานส่วนใหญ่จะกระทำผ่านหน้าต่างดำๆ ที่เรียกว่า Terminal

ในบทนี้ เราจะเรียนรู้คำสั่งพื้นฐานที่จำเป็นสำหรับนักพัฒนาหุ่นยนต์ ตั้งแต่การจัดการไฟล์ไปจนถึงการตรวจสอบสถานะของระบบ

2.1. File System Structure (โครงสร้างไฟล์)

ก่อนเริ่มพิมพ์คำสั่ง จำเป็นต้องเข้าใจโครงสร้างการเก็บไฟล์ของ Linux ซึ่งแตกต่างจาก Windows เล็กน้อย

  • Root Directory (/): เปรียบเสมือนรากแก้วของต้นไม้ หรือ C:\ ใน Windows ไฟล์ทุกอย่างในระบบจะอยู่ภายใต้เครื่องหมาย / นี้

  • Home Directory (~): คือพื้นที่ส่วนตัวของผู้ใช้งาน (User) ปกติจะอยู่ที่ /home/username เครื่องหมาย ~ (Tilde) คือทางลัดที่ใช้แทนตำแหน่งนี้

_images/2.1.png

2.3. File Management (การจัดการไฟล์และโฟลเดอร์)

คำสั่งสำหรับการสร้าง คัดลอก ย้าย และลบไฟล์ เป็นทักษะที่ต้องใช้งานตลอดเวลา

Command

Action

Example

mkdir

Make Directory

mkdir robot_ws (สร้างโฟลเดอร์ใหม่)

touch

Create empty file

touch test.py (สร้างไฟล์เปล่า)

cp

Copy

cp file1.txt file2.txt (สำเนาไฟล์)

mv

Move / Rename

mv file1.txt folder/ (ย้าย) หรือ mv old.txt new.txt (เปลี่ยนชื่อ)

rm

Remove file

rm test.py (ลบไฟล์ กู้คืนไม่ได้)

rm -r

Remove folder

rm -r my_folder (ลบโฟลเดอร์และของข้างในทั้งหมด)

Warning

ระวัง: คำสั่ง rm (Remove) ใน Linux ไม่มีการถามยืนยันและไม่มีถังขยะ (Recycle Bin) ไฟล์ที่ลบแล้วจะหายไปทันที

2.4. Text Editors (การแก้ไขไฟล์ข้อความ)

เมื่อต้องการเขียนโค้ดหรือแก้ไขไฟล์ Config เราต้องเรียกใช้โปรแกรมแก้ไขข้อความ (Text Editor) ซึ่งมี 2 แบบหลักๆ

2.4.1. GUI Editor (gedit)

ใช้งานเหมือน Notepad บน Windows มีหน้าต่างให้ใช้เมาส์คลิกได้ เหมาะสำหรับมือใหม่

# Opens a window to edit the file
gedit my_code.py
_images/2.4.1.png

2.4.2. Terminal Editor (nano)

ทำงานในหน้าจอ Terminal เลย (ไม่มีหน้าต่างแยก) จำเป็นมากเมื่อเรารีโมท (SSH) เข้าไปที่ตัวหุ่นยนต์และไม่มีหน้าจอ

# Opens file inside the terminal
nano my_code.py
_images/2.4.2.png

ปุ่มลัดสำหรับ nano:

  • Ctrl + O, Enter: บันทึกไฟล์ (Save)

  • Ctrl + X: ออกจากโปรแกรม (Exit)

2.5. System Management (การจัดการระบบ)

2.5.1. Superuser (sudo)

บางคำสั่งที่มีผลกระทบต่อระบบ เช่น การติดตั้งโปรแกรม จำเป็นต้องขอสิทธิ์ผู้ดูแลระบบ (Administrator) โดยใช้คำสั่ง sudo นำหน้า (ระบบจะถามรหัสผ่าน)

2.5.2. Package Manager (apt)

Ubuntu มีระบบติดตั้งโปรแกรมที่สะดวกสบายผ่านคำสั่ง apt (Advanced Package Tool)

1# 1. Update the list of available packages (Do this first)
2sudo apt update
3
4# 2. Upgrade installed packages to the latest version
5sudo apt upgrade
6
7# 3. Install a new program
8sudo apt install python3-pip

2.5.3. Monitoring (top & htop)

ใช้สำหรับดูว่าโปรแกรมไหนกิน CPU หรือ RAM เท่าไหร่ (เหมือน Task Manager)

  • top: ติดตั้งมาพร้อมเครื่อง แสดงผลเป็นตัวหนังสือล้วน

  • htop: แสดงผลเป็นกราฟแท่งสีสวยงาม ดูง่ายกว่า (แนะนำ)

กรณีศึกษา: ติดตั้งและใช้งาน htop

หากลองพิมพ์ htop แล้วระบบแจ้งว่า command not found ให้ทำการติดตั้งดังนี้:

1# 1. Install htop
2sudo apt install htop
3
4# 2. Run it
5htop
_images/2.5.3.png

(กด F10 หรือ q เพื่อออกจาก htop)


2.6. Mission: File Manipulation (โจทย์ทบทวนความเข้าใจ)

เพื่อให้คุ้นเคยกับคำสั่ง ให้ลองทำตามภารกิจต่อไปนี้ทีละขั้นตอน

โจทย์:

  1. สร้างโฟลเดอร์ชื่อ playground ที่หน้า Home

  2. เข้าไปในโฟลเดอร์นั้น

  3. สร้างไฟล์ชื่อ note.txt

  4. สร้างโฟลเดอร์ซ้อนข้างในชื่อ backup

  5. คัดลอกไฟล์ note.txt ไปไว้ใน backup

  6. เปลี่ยนชื่อไฟล์ต้นฉบับจาก note.txt เป็น readme.txt

  7. ลบโฟลเดอร์ backup ทิ้งไป

คลิกเพื่อดูเฉลย (Click to show solution)
 1# 1. Create folder at Home (~)
 2cd ~
 3mkdir playground
 4
 5# 2. Enter the folder
 6cd playground
 7
 8# 3. Create a file
 9touch note.txt
10
11# 4. Create sub-folder
12mkdir backup
13
14# 5. Copy file into sub-folder
15cp note.txt backup/
16
17# 6. Rename the original file
18mv note.txt readme.txt
19
20# 7. Remove the sub-folder and everything inside
21rm -r backup
22
23# (Optional) Check the result
24ls
25# Should see only: readme.txt