Basic Commands
Basic Linux Command Interface
Useful shortcuts
Shortcut | คำอธิบาย |
---|---|
Ctrl + A | ย้าย cursor ไปที่ต้นบรรทัด |
Ctrl + E | ย้าย cursor ไปที่ปลายบรรทัด |
Alt + F | ขยับ cursor ไปข้างหน้าโดยข้ามไปทีละคำ (word) |
Alt + B | ขยับ cursor ถอยหลังโดยข้ามไปทีละคำ (word) |
Ctrl + L | ล้างหน้าจอ terminal คล้ายกับคำสั่ง |
Ctrl + R | ค้นหาคำสั่งที่เคยพิมพ์มาก่อนหน้านี้ |
Ctrl + C | หยุดการทำงานของโปรแกรม |
Ctrl + D | logout หรือออกจากคำสั่งที่กำลังทำงานอยู่ |
Ctrl + Z | หยุดพักคำสั่งชั่วคราว |
Basic Commands
ชุดคำสั่ง | คำอธิบาย | ตัวอย่าง |
---|---|---|
mkdir | ใช้สร้างไดเรกทอรี่ใหม่ | mkdir (ชื่อไดเรกทอรี่) เช่น |
cd | การเข้าสู่ไดเรกทอรี่ที่ต้องการ | cd (ไดเรกทอรี่ที่ต้องการเข้า) เช่น |
touch | ใช้สร้างไฟล์ หรืออัพเดตเวลาการแก้ไขไฟล์ล่าสุด | touch test.txt
|
ls | แสดงไฟล์ที่อยู่ในไดเรกทอรี่ |
|
cp | เป็นคำสั่งที่ใช้ในการคัดลอกไฟล์ (ทั้งไฟล์เดียวและหลายไฟล์) โดยระบุ source และ target | cp (ชื่อไฟล์) (ที่อยู่ที่ต้องการคัดลอกไฟล์ไปไว้) เช่น |
mv | เป็นคำสั่งที่ใช้ในการโยกย้ายไฟล์ หรือ เปลี่ยนชื่อไฟล์ | mv (ชื่อไดเรกทอรี่เดิม) (ชื่อไดเรกทอรี่ใหม่ที่ต้องการย้ายไป)
|
rm | ใช้ในการลบไฟล์โดยสามารถใช้ได้ทั้ง ไฟล์เดียวหรือหลายไฟล์ | rm (ตามด้วยชื่อไฟล์ที่ต้องการลบ)
|
rmdir | ใช้ลบไดเรกทอรี่ ซึ่งสามารถลบได้ เฉพาะไดเรกทอรีว่างเท่านั้น |
|
echo | เป็นคำสั่งที่ใช้ในการแสดงข้อความใดๆ ที่ต้องการให้ถูกปรากฏบนหน้าต่างเทอร์มินัล หรือสามารถใช้แทรกข้อความลงในไฟล์ได้ | echo (ข้อความที่ต้องการแสดง)
|
cat | ใช้แสดงข้อมูลที่อยู่ในไฟล์ออกมา แสดงครั้งเดียวพร้อมกันทั้งหมด ในบางครั้งก็ ใช้ในการรวมไฟล์หลายไฟล์เข้าด้วยกันมา เป็นไฟล์เดียว และสามารถใช้สร้างไฟล์ | cat (ไฟล์.txt) เช่น |
clear | ล้าง terminal ให้อยู่ใน init state |
|
df | แสดง ผลได้ทั้งจำนวนพื้นที่ที่มีการใช้งาน ไปแล้วในระบบ และพื้นที่ว่างที่สามารถใช้งาน |
|
du | คำสั่งที่ใช้ในการตรวจสอบขนาดการใช้งาน ไดเรกทอรีที่ชี้อยู่ (mount point) รวมถึง ไดเรกทอรีย่อยๆลงไปจากตำแหน่งปัจจุบัน |
|
pwd | แสดงไดเรกทอรี่ที่กำลังใช้งาน |
|
ifconfig | ตรวจสอบว่ากำลังใช้ Network Interface Card (NIC) หมายเลขตัวใดอยู่ เช่น eth0 หรือ eth1 เป็นต้น |
|
tar | ใช้สำหรับแตกไฟล์นามสกุล tar และบีบอัดไฟล์หรือไดเรกทอรี่ให้เป็น ไฟล์นามสกุล tar | tar cvf (ชื่อไฟล์.tar) (ไดเรกทอรี่หรือไฟล์ที่ต้องการบีบอัด) เช่น คำสั่งแตกไฟล์ tar
|
chmod | การกำหนดสิทธิ์ในการเข้าถึงไฟล์ โดยแบ่งสิทธิ์ไว้ 3 กลุ่มคือ Owner Group publie ซึ่งจะแทนตัวเลข 0-7 ในการกำหนด สิทธิ์ของแต่ละกลุ่ม เช่น 644 (เลขฐานแปด)หรือเทียบเท่ากับ rw-r--r-- หมายถึง เจ้าของอ่านและเขียนได้ แต่คนอื่น ทั่วไปอ่านได้อย่างเดียว | chmod (กำหนดสิทธิ์การเข้าถึง) (ชื่อไฟล์) เช่น |
uname | แสดงชื่อของระบบปฏิบัติการที่ใช้งานอยู่ |
|
ps aux | ใช้แสดงรายการประมวลผลต่างที่กำลัง ทำงานอยู่ของระบบแบบระเอียด |
|
kill | การส่งสัญญาณเข้าไปขัดจังหวะโปรเซส เพื่อบอกกับโปรเซสตามวัตถุประสงค์ของสัญญาณ้ส่งไป สามารถดูตัวเลข process ได้จาก คำสั่ง kill -l | kill (ตัวเลข process) (PID) เช่น |
zip | ใช้บีบอัดไฟล์เป็นนามสกุล zip | zip (ชื่อไฟล์.zip) ไฟล์ที่ต้องการzip เช่น |
unzip | ใช้แตกไฟล์นามสกุล zip | unzip (ไฟล์.zip) เช่น |
sudo su | ใช้เมื่อผู้ใช้ต้องการเข้าในฐานะผู้ดูแลระบบ ที่เรียกว่า Superuser หรือ root |
|
Command Sequences
ผู้ใช้สามารถป้อนคำสั่งมากกว่าหนึ่งคำสั่งไปพร้อมกันโดยใช้ตัวดำเนินการควบคุม (Control Operators) ได้แก่ ||
&&
&
;
;;
|
(
)
เป็นต้น ซึ่งการเรียงชุดคำสั่งอย่างง่ายที่สุดในกรณีที่มีมากกว่า 1 คำสั่งเป็นต้นไป จะใช้เครื่องหมาย ;
อัฒภาค (semicolon) shell จะรับคำสั่งและดำเนินการทีละคำสั่งตามลำดับ ในกรณีที่จะมีการตรวจสอบผลลัพธ์การทำงานของแต่ละคำสั่งว่าสำเร็จหรือล้มเหลวนั้น ระบบปฏิบัติการลีนุกซ์จะมีการคืนค่ากลับคือถ้าคืนค่ากลับมาเลขศูนย์จะหมายถึงคำสั่งดำเนินการสำเร็จ แต่ถ้าเป็นตัวเลขอื่นๆจะถือว่าคำสั่งนั้นทำงานล้มเหลว ดังนั้นผู้ใช้สามารถกำหนดเส้นทางการทำงานตามเงื่อนไขที่ออกมาโดยใช้ตัวดำเนินการ AND &&
และ OR ||
ตัวอย่างเช่น
จากคำสั่งข้างต้น ไฟล์ test.txt มีอยู่ในไดเรกทอรีจึงทำให้ระบบปฏิบัติการลีนุกซ์คืนค่ากลับมาเป็นศูนย์ คำสั่งถัดไปจึงทำงานต่อได้ แต่ในขณะที่ไฟล์ mail.txt ไม่ได้อยู่ในไดเรกทอรี แสดงถึงการทำงานล้มเหลว ทำให้ไม่มีการทำคำสั่งตัวถัดไป แต่หากใช้ตัวดำเนินการ ||
คำสั่งถัดมาจะถูกทำงานในกรณีที่คำสั่งแรกมีการคืนค่ากลับมาไม่เท่ากับศูนย์ ดังตัวอย่างข้างล่าง
แต่หากต้องการนำตัวดำเนินการ && และ || มาประยุกต์ใช้ในการตรวจสอบเงื่อนไขเหมือนชุดคำสั่ง if (เงื่อนไข) ..(จริง).. else ..(เท็จ).. หรือ if (เงื่อนไข) ? ..(จริง).. : ..(เท็จ).. ในภาษาโปรแกรมทั่วไป จะมีรูปแบบการเขียนดังนี้
Standard I/O
รายละเอียดขบวนการทำงานของ Shell ในระบบปฏิบัติการลีนุกซ์ จะมีพื้นฐานสำคัญคือ วิธีการเชื่อมต่อระหว่างโปรแกรมและสิ่งแวดล้อมของตัวโปรแกรมเองภายในเทอร์มินัล (Terminal) ที่เรียกว่า I/O ซึ่งรูปข้างล่างนี้เป็นการแสดงการเชื่อมต่อของอุปกรณ์ I/O มาตราฐานพื้นฐานของระบบที่มีอยู่ 3 ชนิด ได้แก่
ตารางรายละเอียดพื้นฐานของ Standard I/O
Stream มาตราฐาน | FD | รายละเอียด |
---|---|---|
stdin (Standard Input Stream) | 0 | สำหรับรับคำสั่งจากผู้ใช้เพื่อส่งต่อให้โปรแกรม อาทิเช่นการรับข้อมูลคำสั่งจากการกดคีย์บอร์ด |
stdout (Standard Output) | 1 | สำหรับแสดงผลลัพธ์ที่ถูกส่งออกมาจากโปรแกรม เพื่อส่งข้อความผลลัพธ์ออกมาแสดงบนจอภาพ |
stderr (Standard Error) | 2 | สำหรับแสดงผลความผิดพลาดเกิดจากการทำงานของโปรแกรมที่รับคำสั่งมาประมวลผล ออกจากหน้าจอภาพ |
Redirections
ระบบปฏิบัติการลีนุกซ์นั้นได้เตรียมเครื่องมือตัวดำเนินการที่สามารถควบคุมกลไกการไหลของข้อมูลจากทิศทางหนึ่งไปยังอีกทิศทางหนึ่งหรืออธิบายง่ายๆคือการเปลี่ยนเส้นทางข้อมูลว่าจะให้ออกตัว standard stream ตัวใด โดยการใช้ตัวดำเนินการ <
แทน stdin (Standard Input) และ >
แทน stdout (Standard Output) ซึ่งตัวดำเนินการ redirection นั้นมีอยู่ด้วยกัน 5 แบบตามรายละเอียดในตารางข้างล่าง
ตารางตัวดำเนินการ redirection
ตัวดำเนินการ | รายละเอียด |
---|---|
< ไฟล์ | เปิดไฟล์สำหรับอ่านข้อมูลภายในไฟล์ |
<< token | ใช้ในกรณีที่เป็นคำสั่งหรือเชลล์สคริปท์ที่ต้องการรับค่าจนกระทั่งเจอ token |
> ไฟล์ | เปิดไฟล์สำหรับเขียนทับข้อมูลใหม่ |
>> ไฟล์ | เปิดไฟล์สำหรับเขียนต่อท้ายจากข้อมูลเดิม |
n>&m | เปลี่ยนเส้นทางของ File Descriptor (FD) เดิม n ไปที่ใหม่ m |
ยกตัวอย่างเช่น การใช้งานการส่งอินพุทจากไฟล์ /etc/passwd ให้กับคำสั่ง grep และการส่งอินพุทจากการป้อนข้อความให้กับคำสั่ง sort ดังแสดงข้างล่าง
เมื่อมีการใช้ตัวดำเนินการ >
ผลลัพธ์จากคำสั่งจะถูกส่งไปเก็บไว้ในไฟล์ /tmp/results แทนที่จะออกหน้าจอ ดังตัวอย่างข้างล่าง
ตัวอย่างการใช้คำสั่ง cat เพื่อแสดงข้อมูลภายในไฟล์ จะมีการแสดงข้อความผิดพลาด (Error message) ออกทางหน้าจอ ถ้าไฟล์นั้นไม่มีอยู่ในไดเรกทอรี
สามารถกรองข้อความผิดพลาดให้ไปเก็บไว้ในไฟล์ชื่อ error.log ด้วยตัวดำเนินการ 2>
ในกรณีที่ไม่ต้องการเก็บข้อความผิดพลาด สามารถทำได้โดยส่งไปให้ไฟล์ชื่อ /dev/null
บันทึกข้อความผิดพลาดเพิ่มต่อเข้าไปในไฟล์ error.log ด้วยตัวดำเนินการ 2>>
Last updated: July 2023
Authors:
Assoc. Prof. Wiroon Sriborrirux
Thanaluk Pranekunakol (AIC-Researcher), Waratith Sawangboon (AIC-Researcher)
Last updated