วิธีใช้ command-line บน Linux
command-line คืออะไร ?
command-line หรือ command-line interface เขียนย่อๆ ได้ว่า CLI คือ ส่วนติดต่อผู้ใช้แบบพิมพ์คำสั่งทีละบรรทัด โดยผู้ใช้สามารถพิมพ์คำสั่งเพื่อเรียกใช้งานโปรแกรมต่างๆ ได้ และโปรแกรมส่วนใหญ่ก็จะแสดงผลลัพธ์ในรูปแบบของข้อความ (text) ดังรูปด้านล่าง

ทำไมต้องใช้ command-line ?
- เพราะโปรแกรมบางตัวมีให้ใช้เฉพาะบน command-line เท่านั้น
- เพราะโปรแกรมแบบ command-line ใช้ทรัพยากรเครื่องน้อยกว่า, ข้อผิดพลาดน้อยกว่า และทำงานได้เร็วกว่าโปรแกรมแบบ GUI เนื่องจากไม่มีภาระในส่วนของการแสดงผลกราฟิก
- เพราะเครื่องที่จะใช้งานบางเครื่องรองรับเฉพาะการใช้งานผ่าน command-line เท่านั้น เช่น เครื่องที่เป็น Linux Server, เครื่องที่ไม่มีจอภาพ หรือเครื่องที่ต้องรีโมทเข้าใช้งานผ่าน SSH เป็นต้น
- เพราะเราสามารถนำผลลัพธ์จาก command-line ไปใช้งานต่อได้ง่ายกว่าแบบ GUI
- เพราะบางครั้งเราก็ไม่จำเป็นต้องเห็นผลลัพธ์เป็นภาพกราฟิก
วิธีเรียกใช้งาน command-line บน Linux
หากคุณใช้ Linux Server ซึ่งโดยปกติจะทำงานอยู่ในโหมดข้อความ (text-mode) คุณจะสามารถใช้งาน command-line ได้ทันทีที่คุณเปิดเครื่อง และเข้าสู่ระบบ
แต่สำหรับคนที่ใช้ Linux Desktop ซึ่งทำงานอยู่ในโหมดกราฟิก (graphical-mode) หากจะใช้งาน command-line สามารถทำได้ 2 วิธี คือ
- ใช้งาน command-line ผ่านโปรแกรม Terminal (แนะนำ)
- ใช้งาน command-line โดยการสลับไปที่ tty อื่น ซึ่งอยู่ในโหมดข้อความ (text-mode)
วิธีเรียกใช้งานโปรแกรม Terminal (แนะนำ)

วิธีเรียกใช้งานโปรแกรม Terminal ทำได้โดยการคลิกเรียกโปรแกรมจากเมนู วิธีเดียวกับที่เราใช้เรียกโปรแกรมอื่นๆ ในเครื่อง และสำหรับ Linux บางตัว เช่น Ubuntu สามารถเรียกโปรแกรม Terminal ผ่านการกดปุ่มลัด ALT+CTRL+T เป็นต้น
วิธีสลับไปที่ tty อื่น
Linux มักจะมีหลาย tty เช่น Ubuntu มี tty1-7 โดย tty7 จะถูกใช้งานเป็น graphical-mode ส่วน tty1-6 จะเป็น text-mode ที่สามารถใช้งาน command-line ได้ (graphical-mode จะทำงานอยู่ใน tty ไหนก็ได้ แล้วแต่การตั้งค่าของ Linux แต่ละ distro)
การสลับไปมาระหว่าง tty1-7 สามารถทำได้ดังนี
- กรณีที่คุณอยู่ใน graphical-mode ให้กดปุ่ม CTRL+ALT+Fx (Fx คือ F1 ถึง F7)
- แต่ถ้าคุณอยู่ใน text-mode ให้กดปุ่ม ALT+Fx (Fx คือ F1 ถึง F7) ก็พอไม่ต้องกด CTRL
- หรือพิมพ์คำสั่ง sudo chvt x (x คือตัวเลข 1 ถึง 7)
ซึ่งวิธีสลับ tty นี้ แม้แต่ผมเองก็ไม่ค่อยจะได้ใช้สักเท่าไหร่ จะใช้ก็ต่อเมื่อโปรแกรมในโหมดกราฟิคค้างจนใช้งานไม่ได้ และปิดไม่ได้จากในโหมดกราฟิก หรืออยากจะใช้งาน text-mode แบบเต็มหน้าจอเป็นต้น
วิธีพิมพ์คำสั่งลงบน command-line
วิธีพิมพ์คำสั่งบน command-line ผมจะขอยกตัวอย่างเป็น command-line บน Ubuntu ดังนี้
command-line บน Ubuntu จะแสดง prompt เพื่อบอกผู้ใช้ว่าพร้อมรับคำสั่งแล้ว โดย prompt ใน Ubuntu จะประกอบไปด้วย <username>@<hostname>:<working_directory> แล้วปิดท้ายด้วย $ สำหรับ user ทั่วไป หรือปิดท้ายด้วย # สำหรับ root user (ถ้าเป็น Linux distro อื่น หน้าตา prompt อาจแตกต่างออกไป)
- username คือ ชื่อผู้ใช้
- hostname คือ ชื่อเครื่อง
- working_directory คือ ชื่อไดเรคทอรีปัจุบัน จะแสดงเป็นเครื่องหมาย ~ เมื่อเราอยู่ในโฮมไดเรคทอรีของตัวเอง เช่น /home/<your_username> หรือ /root เมื่อชื่อผู้ใช้เป็น root
poundxi@vbox:~$
root@vbox:~#
poundxi@vbox:~$ pwd<ENTER> /home/poundxi poundxi@vbox:~$
คำสั่งบน Linux สำหรับทดลองใช้งาน command-line
คำสั่งต่อไปนี้ เป็นคำสั่งที่จะช่วยให้คุณเข้าใจภาพรวมการใช้งาน command-line เบื้องต้น เพราะเป็นคำสั่งที่ง่าย ไม่ซับซ้อน เมื่อคุณใช้งาน Linux แบบจริงจัง คุณจะรู้ และจดจำคำสั่งอื่นๆ ได้ด้วยตัวคุณเอง
- whoami = แสดงชื่อผู้ใช้ปัจจุบัน
- pwd = แสดงชื่อไดเรคทอรีปัจจุบัน
- ls = แสดงรายชื่อไฟล์ และไดเรคทอรีที่อยู่ในไดเรคทอรีปัจจุบัน
- ls -l = แสดงรายชื่อไฟล์ และไดเรคทอรีที่อยู่ในไดเรคทอรีปัจจุบัน (แสดงแบบ 1 รายการ/บรรทัด)
- cd <directory_name> = ย้ายไปทำงานที่ไดเรคทอรีชื่อ <directory_name>
- mkdir <directory_name> = สร้างไดเรคทอรีชื่อ <directory_name>
- touch <filename> = สร้างไฟล์เปล่าชื่อ <filename>
- echo “sometext” > <filename> = เขียนข้อมูล sometext ลงไปในไฟล์ชื่อ <filename> (เขียนทับ)
- cat <filename> = แสดง/อ่านข้อมูลที่อยู่ในไฟล์ชื่อ <filename>
- rm <filename> = ลบไฟล์ชื่อ <filename>
- rm -r <directory_name> = ลบไดเรคทอรีชื่อ <directory_name>
- man <command> = อ่านคู่มือการใช้งานคำสั่ง <command> อาจแทนด้วยคำสั่ง ls ชื่ออ่านคู่มือการใช้งานคำสั่ง ls และคุณสามารถออกจากคำสั่ง man ด้วยการกดปุ่ม q
ข้อมูลเพิ่มเติม
- https://en.wikipedia.org/wiki/Command-line_interface
- https://askubuntu.com/questions/27339/what-is-tty7-in-the-commandline
- https://askubuntu.com/questions/66195/what-is-a-tty-and-how-do-i-access-a-tty
- https://unix.stackexchange.com/questions/208891/switch-to-a-text-console-in-fedora
- https://unix.stackexchange.com/questions/21280/difference-between-pts-and-tty
- https://askubuntu.com/questions/902998/how-to-check-which-tty-am-i-currently-using
- https://askubuntu.com/questions/761901/how-to-switch-to-a-tty-in-virtual-box-vm