Basic Commands
Basic Linux Command Interface
Ctrl + A
ย้าย cursor ไปที่ต้นบรรทัด
Ctrl + E
ย้าย cursor ไปที่ปลายบรรทัด
Alt + F
ขยับ cursor ไปข้างหน้าโดยข้ามไปทีละคำ (word)
Alt + B
ขยับ cursor ถอยหลังโดยข้ามไปทีละคำ (word)
Ctrl + L
ล้างหน้าจอ terminal คล้ายกับคำสั่ง clear
Ctrl + R
ค้นหาคำสั่งที่เคยพิมพ์มาก่อนหน้านี้
Ctrl + C
หยุดการทำงานของโปรแกรม
Ctrl + D
logout หรือออกจากคำสั่งที่กำลังทำงานอยู่
Ctrl + Z
หยุดพักคำสั่งชั่วคราว
mkdir
ใช้สร้างไดเรกทอรี่ใหม่
mkdir (ชื่อไดเรกทอรี่)
เช่น mkdir test1
cd
การเข้าสู่ไดเรกทอรี่ที่ต้องการ
cd (ไดเรกทอรี่ที่ต้องการเข้า)
เช่น cd test1
touch
ใช้สร้างไฟล์ หรืออัพเดตเวลาการแก้ไขไฟล์ล่าสุด
touch test.txt
touch -m test.txt
ls
แสดงไฟล์ที่อยู่ในไดเรกทอรี่
ls
cp
เป็นคำสั่งที่ใช้ในการคัดลอกไฟล์
(ทั้งไฟล์เดียวและหลายไฟล์)
โดยระบุ source และ target
cp (ชื่อไฟล์) (ที่อยู่ที่ต้องการคัดลอกไฟล์ไปไว้)
เช่น cp test.txt test1
คือการ copy file ชื่อ test.txt ไปไว้ในไดเรกทอรี่ test1
mv
เป็นคำสั่งที่ใช้ในการโยกย้ายไฟล์ หรือ
เปลี่ยนชื่อไฟล์
mv (ชื่อไดเรกทอรี่เดิม) (ชื่อไดเรกทอรี่ใหม่ที่ต้องการย้ายไป)
mv file.txt /test1
เปลี่ยนชื่อไฟล์ mv (ชื่อเก่า) (ชื่อใหม่)
mv file.txt newfile.txt
rm
ใช้ในการลบไฟล์โดยสามารถใช้ได้ทั้ง
ไฟล์เดียวหรือหลายไฟล์
rm (ตามด้วยชื่อไฟล์ที่ต้องการลบ)
rm test1.txt
rmdir
ใช้ลบไดเรกทอรี่ ซึ่งสามารถลบได้
เฉพาะไดเรกทอรีว่างเท่านั้น
rmdir directory_name
echo
เป็นคำสั่งที่ใช้ในการแสดงข้อความใดๆ
ที่ต้องการให้ถูกปรากฏบนหน้าต่างเทอร์มินัล หรือสามารถใช้แทรกข้อความลงในไฟล์ได้
echo (ข้อความที่ต้องการแสดง)
echo Hello
echo this is message >> test.txt
cat
ใช้แสดงข้อมูลที่อยู่ในไฟล์ออกมา
แสดงครั้งเดียวพร้อมกันทั้งหมด ในบางครั้งก็
ใช้ในการรวมไฟล์หลายไฟล์เข้าด้วยกันมา
เป็นไฟล์เดียว และสามารถใช้สร้างไฟล์
cat (ไฟล์.txt)
เช่น cat test.txt
clear
ล้าง terminal ให้อยู่ใน init state
clear
df
แสดง ผลได้ทั้งจำนวนพื้นที่ที่มีการใช้งาน
ไปแล้วในระบบ และพื้นที่ว่างที่สามารถใช้งาน
df -h
du
คำสั่งที่ใช้ในการตรวจสอบขนาดการใช้งาน
ไดเรกทอรีที่ชี้อยู่ (mount point) รวมถึง
ไดเรกทอรีย่อยๆลงไปจากตำแหน่งปัจจุบัน
du -h
pwd
แสดงไดเรกทอรี่ที่กำลังใช้งาน
pwd
ifconfig
ตรวจสอบว่ากำลังใช้ Network Interface
Card (NIC) หมายเลขตัวใดอยู่ เช่น eth0
หรือ eth1 เป็นต้น
ifconfig
tar
ใช้สำหรับแตกไฟล์นามสกุล tar
และบีบอัดไฟล์หรือไดเรกทอรี่ให้เป็น
ไฟล์นามสกุล tar
tar cvf (ชื่อไฟล์.tar) (ไดเรกทอรี่หรือไฟล์ที่ต้องการบีบอัด)
เช่น tar cvf test1.tar test1
คำสั่งแตกไฟล์ tar
tar xvf test1.tar
chmod
การกำหนดสิทธิ์ในการเข้าถึงไฟล์
โดยแบ่งสิทธิ์ไว้ 3 กลุ่มคือ Owner Group
publie ซึ่งจะแทนตัวเลข 0-7 ในการกำหนด
สิทธิ์ของแต่ละกลุ่ม เช่น 644 (เลขฐานแปด)หรือเทียบเท่ากับ rw-r--r-- หมายถึง เจ้าของอ่านและเขียนได้ แต่คนอื่น
ทั่วไปอ่านได้อย่างเดียว
chmod (กำหนดสิทธิ์การเข้าถึง) (ชื่อไฟล์)
เช่น chmod 644 test
uname
แสดงชื่อของระบบปฏิบัติการที่ใช้งานอยู่
uname -a
ps aux
ใช้แสดงรายการประมวลผลต่างที่กำลัง
ทำงานอยู่ของระบบแบบระเอียด
ps aux
kill
การส่งสัญญาณเข้าไปขัดจังหวะโปรเซส
เพื่อบอกกับโปรเซสตามวัตถุประสงค์ของสัญญาณ้ส่งไป สามารถดูตัวเลข process
ได้จาก คำสั่ง kill -l
kill (ตัวเลข process) (PID)
เช่น kill –9 203
zip
ใช้บีบอัดไฟล์เป็นนามสกุล zip
zip (ชื่อไฟล์.zip) ไฟล์ที่ต้องการzip
เช่น zip test.zip test
unzip
ใช้แตกไฟล์นามสกุล zip
unzip (ไฟล์.zip)
เช่น unzip test.zip
sudo su
ใช้เมื่อผู้ใช้ต้องการเข้าในฐานะผู้ดูแลระบบ
ที่เรียกว่า Superuser หรือ root
sudo su
Command Sequences
ผู้ใช้สามารถป้อนคำสั่งมากกว่าหนึ่งคำสั่งไปพร้อมกันโดยใช้ตัวดำเนินการควบคุม (Control Operators) ได้แก่ ||
&&
&
;
;;
|
(
)
เป็นต้น ซึ่งการเรียงชุดคำสั่งอย่างง่ายที่สุดในกรณีที่มีมากกว่า 1 คำสั่งเป็นต้นไป จะใช้เครื่องหมาย ;
อัฒภาค (semicolon) shell จะรับคำสั่งและดำเนินการทีละคำสั่งตามลำดับ ในกรณีที่จะมีการตรวจสอบผลลัพธ์การทำงานของแต่ละคำสั่งว่าสำเร็จหรือล้มเหลวนั้น ระบบปฏิบัติการลีนุกซ์จะมีการคืนค่ากลับคือถ้าคืนค่ากลับมาเลขศูนย์จะหมายถึงคำสั่งดำเนินการสำเร็จ แต่ถ้าเป็นตัวเลขอื่นๆจะถือว่าคำสั่งนั้นทำงานล้มเหลว ดังนั้นผู้ใช้สามารถกำหนดเส้นทางการทำงานตามเงื่อนไขที่ออกมาโดยใช้ตัวดำเนินการ AND &&
และ OR ||
ตัวอย่างเช่น
$ ls
android ccache Downloads kernel output.txt Templates workspace
aosp Desktop error.log Music Pictures test.txt
bin Documents git one.txt Public Videos
$ ls test.txt && echo "OK... File exists"
test.txt
OK... File exists
$ ls mail.txt && echo "OK... File exists"
ls: cannot access mail.txt: No such file or directory
จากคำสั่งข้างต้น ไฟล์ test.txt มีอยู่ในไดเรกทอรีจึงทำให้ระบบปฏิบัติการลีนุกซ์คืนค่ากลับมาเป็นศูนย์ คำสั่งถัดไปจึงทำงานต่อได้ แต่ในขณะที่ไฟล์ mail.txt ไม่ได้อยู่ในไดเรกทอรี แสดงถึงการทำงานล้มเหลว ทำให้ไม่มีการทำคำสั่งตัวถัดไป แต่หากใช้ตัวดำเนินการ ||
คำสั่งถัดมาจะถูกทำงานในกรณีที่คำสั่งแรกมีการคืนค่ากลับมาไม่เท่ากับศูนย์ ดังตัวอย่างข้างล่าง
$ ls test.txt || echo "OK... File exists"
test.txt
$ ls mail.txt || echo "No File exists"
ls: cannot access mail.txt: No such file or directory
ON File exists
แต่หากต้องการนำตัวดำเนินการ && และ || มาประยุกต์ใช้ในการตรวจสอบเงื่อนไขเหมือนชุดคำสั่ง if (เงื่อนไข) ..(จริง).. else ..(เท็จ).. หรือ if (เงื่อนไข) ? ..(จริง).. : ..(เท็จ).. ในภาษาโปรแกรมทั่วไป จะมีรูปแบบการเขียนดังนี้
$ ls test.txt && echo "OK...File exists" || echo "Oh Bad... File not found"
test.txt
OK...File exists
$ ls mail.txt && echo "OK...File exists" || echo "Oh Bad... File not found"
ls: cannot access mail.txt: No such file or directory
Oh Bad... File not found
Standard I/O
รายละเอียดขบวนการทำงานของ Shell ในระบบปฏิบัติการลีนุกซ์ จะมีพื้นฐานสำคัญคือ วิธีการเชื่อมต่อระหว่างโปรแกรมและสิ่งแวดล้อมของตัวโปรแกรมเองภายในเทอร์มินัล (Terminal) ที่เรียกว่า I/O ซึ่งรูปข้างล่างนี้เป็นการแสดงการเชื่อมต่อของอุปกรณ์ I/O มาตราฐานพื้นฐานของระบบที่มีอยู่ 3 ชนิด ได้แก่
stdin (Standard Input Stream)
0
สำหรับรับคำสั่งจากผู้ใช้เพื่อส่งต่อให้โปรแกรม อาทิเช่นการรับข้อมูลคำสั่งจากการกดคีย์บอร์ด
stdout (Standard Output)
1
สำหรับแสดงผลลัพธ์ที่ถูกส่งออกมาจากโปรแกรม เพื่อส่งข้อความผลลัพธ์ออกมาแสดงบนจอภาพ
stderr (Standard Error)
2
สำหรับแสดงผลความผิดพลาดเกิดจากการทำงานของโปรแกรมที่รับคำสั่งมาประมวลผล ออกจากหน้าจอภาพ
Redirections
ระบบปฏิบัติการลีนุกซ์นั้นได้เตรียมเครื่องมือตัวดำเนินการที่สามารถควบคุมกลไกการไหลของข้อมูลจากทิศทางหนึ่งไปยังอีกทิศทางหนึ่งหรืออธิบายง่ายๆคือการเปลี่ยนเส้นทางข้อมูลว่าจะให้ออกตัว standard stream ตัวใด โดยการใช้ตัวดำเนินการ <
แทน stdin (Standard Input) และ >
แทน stdout (Standard Output) ซึ่งตัวดำเนินการ redirection นั้นมีอยู่ด้วยกัน 5 แบบตามรายละเอียดในตารางข้างล่าง
< ไฟล์
เปิดไฟล์สำหรับอ่านข้อมูลภายในไฟล์
<< token
ใช้ในกรณีที่เป็นคำสั่งหรือเชลล์สคริปท์ที่ต้องการรับค่าจนกระทั่งเจอ token
> ไฟล์
เปิดไฟล์สำหรับเขียนทับข้อมูลใหม่
>> ไฟล์
เปิดไฟล์สำหรับเขียนต่อท้ายจากข้อมูลเดิม
n>&m
เปลี่ยนเส้นทางของ File Descriptor (FD) เดิม n ไปที่ใหม่ m
ยกตัวอย่างเช่น การใช้งานการส่งอินพุทจากไฟล์ /etc/passwd ให้กับคำสั่ง grep และการส่งอินพุทจากการป้อนข้อความให้กับคำสั่ง sort ดังแสดงข้างล่าง
$ grep -i student < /etc/passwd
student:x:1000:1000:EE-Burapha Student,,,:/home/student:/bin/bash
$ sort << END
> 55233424 Wiroon Sriborrirux
> 55237346 Nayot Kurukitkoson
> 55236477 Panuwat Dankhang
> END
55233424 Wiroon Sriborrirux
55236477 Panuwat Dankhang
55237346 Nayot Kurukitkoson
$ sort -k2 << END
> 55233424 Wiroon Sriborrirux
> 55237346 Nayot Kurukitkoson
> 55236477 Panuwat Dankhang
> END
55237346 Nayot Kurukitkoson
55236477 Panuwat Dankhang
55233424 Wiroon Sriborrirux
เมื่อมีการใช้ตัวดำเนินการ >
ผลลัพธ์จากคำสั่งจะถูกส่งไปเก็บไว้ในไฟล์ /tmp/results แทนที่จะออกหน้าจอ ดังตัวอย่างข้างล่าง
$ grep -i student /etc/passwd > /tmp/results
$ ls /tmp/
CRX_75DAF8CB7768 orbit-student ssh-pqdoFN1336 vmware-root-2
hsperfdata_student pulse-Xti8iSZ9STOh VMwareDnD vmware-student
keyring-27UIsq results vmware-root
$ cat /tmp/results
student:x:1000:1000:EE-Burapha Student,,,:/home/student:/bin/bash
ตัวอย่างการใช้คำสั่ง cat เพื่อแสดงข้อมูลภายในไฟล์ จะมีการแสดงข้อความผิดพลาด (Error message) ออกทางหน้าจอ ถ้าไฟล์นั้นไม่มีอยู่ในไดเรกทอรี
$ cat one.txt two.txt 2>&1
This is the data inside
cat: two.txt: No such file or directory
สามารถกรองข้อความผิดพลาดให้ไปเก็บไว้ในไฟล์ชื่อ error.log ด้วยตัวดำเนินการ 2>
$ cat one.txt two.txt 2> error.log
This is the data inside
ในกรณีที่ไม่ต้องการเก็บข้อความผิดพลาด สามารถทำได้โดยส่งไปให้ไฟล์ชื่อ /dev/null
$ cat one.txt two.txt 2> /dev/null
This is the data inside
บันทึกข้อความผิดพลาดเพิ่มต่อเข้าไปในไฟล์ error.log ด้วยตัวดำเนินการ 2>>
$ cat one.txt two.txt three.txt 2>> error.log
This is the data inside
$ cat error.log
cat: two.txt: No such file or directory
cat: two.txt: No such file or directory
cat: three.txt: No such file or directory
Last updated: July 2023
Authors:
Assoc. Prof. Wiroon Sriborrirux
Thanaluk Pranekunakol (AIC-Researcher), Waratith Sawangboon (AIC-Researcher)
Last updated
Was this helpful?