ls – ผู้ใช้ Unix และผู้ดูแลระบบไม่สามารถขาดคำสั่งสองตัวอักษรนี้ได้ ไม่ว่าคุณจะใช้ 10 ครั้งต่อวันหรือ 100 ครั้งต่อวัน การรู้จักพลังของคำสั่ง ls จะทำให้การใช้งานบรรทัดคำสั่งเป็นประสบการณ์ที่น่าสนุกสนาน
ในบทความนี้ เราจะทบทวน 15 ตัวอย่างปฏิบัติจริงของคำสั่ง ls อันทรงพลัง
1. เปิดไฟล์ที่แก้ไขล่าสุดด้วย ls -t
เพื่อเปิดไฟล์ที่แก้ไขล่าสุดในไดเรกทอรีปัจจุบัน ให้ใช้การรวมของคำสั่ง ls, head และ vi ตามที่แสดงด้านล่าง
ls -t เรียงลำดับไฟล์ตามเวลาการแก้ไข แสดงไฟล์ที่แก้ไขล่าสุดก่อน head -1 เลือกไฟล์แรกนี้
$ vi first-long-file.txt $ vi second-long-file.txt $ vi `ls -t | head -1` [หมายเหตุ: จะเปิดไฟล์ที่คุณแก้ไขล่าสุด (เช่น second-long-file.txt)]
2. แสดงไฟล์ทีละบรรทัดด้วย ls -1
เพื่อแสดงรายการทีละบรรทัด ให้ใช้ตัวเลือก -1 ตามที่แสดงด้านล่าง
$ ls -1 bin boot cdrom dev etc home initrd initrd.img lib
3. แสดงข้อมูลทั้งหมดเกี่ยวกับไฟล์/ไดเรกทอรีด้วย ls -l
เพื่อแสดงข้อมูลรายการแบบยาวของไฟล์/ไดเรกทอรี
$ ls -l -rw-r----- 1 ramesh team-dev 9275204 Jun 13 15:27 mthesaur.txt.gz
- ตัวอักษรที่ 1 – ประเภทไฟล์: ตัวอักษรแรกระบุประเภทของไฟล์
ในตัวอย่างข้างต้น ขีดกลาง (-) ในตัวอักษรแรกบ่งชี้ว่าเป็นไฟล์ทั่วไป ต่อไปนี้คือตัวเลือกประเภทไฟล์ที่เป็นไปได้ในตัวอักษรที่ 1 ของเอาต์พุต ls -l- คำอธิบายฟิลด์
- - ไฟล์ทั่วไป
- d ไดเรกทอรี
- s ไฟล์ซ็อกเก็ต
- l ไฟล์ลิงก์
- ฟิลด์ 1 – สิทธิ์ไฟล์: ตัวอักษร 9 ตัวถัดไประบุสิทธิ์ของไฟล์ ทุก 3 ตัวอักษรหมายถึงสิทธิ์อ่าน เขียน รันสำหรับผู้ใช้ กลุ่ม และคนอื่นๆ ในตัวอย่างนี้ -rw-r----- หมายถึงสิทธิ์อ่าน-เขียนสำหรับผู้ใช้ สิทธิ์อ่านสำหรับกลุ่ม และไม่มีสิทธิ์สำหรับคนอื่น
- ฟิลด์ 2 – จำนวนลิงก์: ฟิลด์ที่สองระบุจำนวนลิงก์สำหรับไฟล์นั้น ในตัวอย่างนี้ 1 หมายถึงมีเพียงลิงก์เดียวไปยังไฟล์นี้
- ฟิลด์ 3 – เจ้าของ: ฟิลด์ที่สามระบุเจ้าของไฟล์ ในตัวอย่างนี้ ไฟล์นี้เป็นของผู้ใช้ 'ramesh'
- ฟิลด์ 4 – กลุ่ม: ฟิลด์ที่สี่ระบุกลุ่มของไฟล์ ในตัวอย่างนี้ ไฟล์นี้อยู่ในกลุ่ม 'team-dev'
- ฟิลด์ 5 – ขนาด: ฟิลด์ที่ห้าระบุขนาดของไฟล์ ในตัวอย่างนี้ '9275204' แสดงขนาดไฟล์
- ฟิลด์ 6 – วันที่และเวลาแก้ไขล่าสุด: ฟิลด์ที่หกระบุวันที่และเวลาของการแก้ไขล่าสุดของไฟล์ ในตัวอย่างนี้ 'Jun 13 15:27' ระบุเวลาแก้ไขล่าสุด
- ฟิลด์ 7 – ชื่อไฟล์: ฟิลด์สุดท้ายคือชื่อของไฟล์ ในตัวอย่างนี้ ชื่อไฟล์คือ mthesaur.txt.gz
4. แสดงขนาดไฟล์ในรูปแบบอ่านง่ายด้วย ls -lh
ใช้ ls -lh (h ย่อมาจาก human readable) เพื่อแสดงขนาดไฟล์ในรูปแบบที่อ่านง่าย เช่น M สำหรับ MB, K สำหรับ KB, G สำหรับ GB
$ ls -l -rw-r----- 1 ramesh team-dev 9275204 Jun 12 15:27 arch-linux.txt.gz* $ ls -lh -rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz
5. แสดงข้อมูลไดเรกทอรีด้วย ls -ld
เมื่อใช้ "ls -l" จะได้รายละเอียดของเนื้อหาในไดเรกทอรี แต่ถ้าต้องการรายละเอียดของไดเรกทอรีเอง ให้ใช้ตัวเลือก -d เช่น หากใช้ ls -l /etc จะแสดงไฟล์ทั้งหมดภายใต้ไดเรกทอรี etc แต่ถ้าต้องการแสดงข้อมูลของไดเรกทอรี /etc/ เอง ให้ใช้ -ld ตามด้านล่าง
$ ls -l /etc total 3344 -rw-r--r-- 1 root root 15276 Oct 5 2004 a2ps.cfg -rw-r--r-- 1 root root 2562 Oct 5 2004 a2ps-site.cfg drwxr-xr-x 4 root root 4096 Feb 2 2007 acpi -rw-r--r-- 1 root root 48 Feb 8 2008 adjtime drwxr-xr-x 4 root root 4096 Feb 2 2007 alchemist $ ls -ld /etc drwxr-xr-x 21 root root 4096 Jun 15 07:02 /etc
6. เรียงไฟล์ตามเวลาแก้ไขล่าสุดด้วย ls -lt
เพื่อเรียงชื่อไฟล์ตามลำดับเวลาแก้ไขล่าสุด ให้ใช้ตัวเลือก -t คุณจะพบว่ามันสะดวกมากเมื่อใช้ร่วมกับตัวเลือก -l
$ ls -lt total 76 drwxrwxrwt 14 root root 4096 Jun 22 07:36 tmp drwxr-xr-x 121 root root 4096 Jun 22 07:05 etc drwxr-xr-x 13 root root 13780 Jun 22 07:04 dev drwxr-xr-x 13 root root 4096 Jun 20 23:12 root drwxr-xr-x 12 root root 4096 Jun 18 08:31 home drwxr-xr-x 2 root root 4096 May 17 21:21 sbin lrwxrwxrwx 1 root root 11 May 17 20:29 cdrom -> media/cdrom drwx------ 2 root root 16384 May 17 20:29 lost+found drwxr-xr-x 15 root root 4096 Jul 2 2008 var
7. เรียงไฟล์ตามเวลาแก้ไขล่าสุด (ย้อนกลับ) ด้วย ls -ltr
เพื่อเรียงชื่อไฟล์ตามเวลาแก้ไขล่าสุดในลำดับย้อนกลับ จะแสดงไฟล์ที่แก้ไขล่าสุดในบรรทัดสุดท้าย ซึ่งสะดวกเมื่อรายการยาวเกินหน้าจอ นี่คือการใช้งาน ls เริ่มต้นของผม ทุกครั้งที่ผมใช้ ls ผมใช้ ls -ltr เสมอเพราะสะดวกมาก
$ ls -ltr total 76 drwxr-xr-x 15 root root 4096 Jul 2 2008 var drwx------ 2 root root 16384 May 17 20:29 lost+found lrwxrwxrwx 1 root root 11 May 17 20:29 cdrom -> media/cdrom drwxr-xr-x 2 root root 4096 May 17 21:21 sbin drwxr-xr-x 12 root root 4096 Jun 18 08:31 home drwxr-xr-x 13 root root 4096 Jun 20 23:12 root drwxr-xr-x 13 root root 13780 Jun 22 07:04 dev drwxr-xr-x 121 root root 4096 Jun 22 07:05 etc drwxrwxrwt 14 root root 4096 Jun 22 07:36 tmp
8. แสดงไฟล์ซ่อนด้วย ls -a (หรือ) ls -A
เพื่อแสดงไฟล์ซ่อนทั้งหมดในไดเรกทอรี ให้ใช้ตัวเลือก '-a' ไฟล์ซ่อนใน Unix เริ่มต้นด้วย '.' ในชื่อไฟล์
$ ls -a [rnatarajan@asp-dev ~]$ ls -a . Debian-Info.txt .. CentOS-Info.txt .bash_history Fedora-Info.txt .bash_logout .lftp .bash_profile libiconv-1.11.tar.tar .bashrc libssh2-0.12-1.2.el4.rf.i386.rpm
จะแสดงไฟล์ทั้งหมดรวมถึง '.' (ไดเรกทอรีปัจจุบัน) และ '..' (ไดเรกทอรีพาเรนต์) หากต้องการแสดงไฟล์ซ่อน แต่ไม่แสดง '.' และ '..' ให้ใช้ตัวเลือก -A
$ ls -A Debian-Info.txt Fedora-Info.txt CentOS-Info.txt Red-Hat-Info.txt .bash_history SUSE-Info.txt .bash_logout .lftp .bash_profile libiconv-1.11.tar.tar .bashrc libssh2-0.12-1.2.el4.rf.i386.rpm [หมายเหตุ: . และ .. ไม่ได้แสดงที่นี่]
9. แสดงไฟล์แบบเรียกซ้ำด้วย ls -R
$ ls /etc/sysconfig/networking devices profiles $ ls -R /etc/sysconfig/networking /etc/sysconfig/networking: devices profiles /etc/sysconfig/networking/devices: /etc/sysconfig/networking/profiles: default /etc/sysconfig/networking/profiles/default:
เพื่อแสดงไฟล์ทั้งหมดแบบเรียกซ้ำ ให้ใช้ตัวเลือก -R หากทำจาก / จะแสดงไฟล์ที่ไม่ซ่อนทั้งหมดในระบบไฟล์ทั้งหมดแบบเรียกซ้ำ
10. แสดงหมายเลข Inode ของไฟล์ด้วย ls -i
บางครั้งคุณอาจต้องการทราบหมายเลข inode ของไฟล์สำหรับการบำรุงรักษาภายใน ใช้ตัวเลือก -i ตามด้านล่างเพื่อแสดงหมายเลข inode โดยใช้หมายเลข inode คุณสามารถลบไฟล์ที่มีอักขระพิเศษในชื่อได้ ตามที่อธิบายในตัวอย่าง #6 ของบทความคำสั่ง find
$ ls -i /etc/xinetd.d/ 279694 chargen 279724 cups-lpd 279697 daytime-udp 279695 chargen-udp 279696 daytime 279698 echo
11. ซ่อนอักขระควบคุมด้วย ls -q
เพื่อพิมพ์เครื่องหมายคำถามแทนอักขระควบคุมที่ไม่ใช่กราฟิก ให้ใช้ตัวเลือก -q
ls -q
12. แสดง UID และ GID ของไฟล์ด้วย ls -n
แสดงผลลัพธ์เหมือน -l แต่แสดง uid และ gid ในรูปแบบตัวเลขแทนชื่อ
$ ls -l ~/.bash_profile -rw-r--r-- 1 ramesh ramesh 909 Feb 8 11:48 /home/ramesh/.bash_profile $ ls -n ~/.bash_profile -rw-r--r-- 1 511 511 909 Feb 8 11:48 /home/ramesh/.bash_profile [หมายเหตุ: แสดง 511 สำหรับ uid และ 511 สำหรับ gid]
13. จำแนกไฟล์ด้วยอักขระพิเศษด้วย ls -F
แทนที่จะใช้ 'ls -l' แล้วตรวจสอบตัวอักษรแรกเพื่อระบุประเภทไฟล์ คุณสามารถใช้ -F ซึ่งจำแนกไฟล์ด้วยอักขระพิเศษต่างๆ สำหรับประเภทไฟล์ต่างๆ
$ ls -F Desktop/ Documents/ Ubuntu-App@ firstfile Music/ Public/ Templates/
ดังนั้นในเอาต์พุตข้างต้น
- / – ไดเรกทอรี
- ไม่มีอะไร – ไฟล์ทั่วไป
- @ – ไฟล์ลิงก์
- * – ไฟล์รันได้
14. จำแนกไฟล์ด้วยสีด้วย ls --color=auto
การจดจำประเภทไฟล์จากสีที่แสดงเป็นอีกวิธีหนึ่งในการจำแนกไฟล์ ในเอาต์พุตข้างต้น ไดเรกทอรีแสดงเป็นสีน้ำเงิน ลิงก์นิยมแสดงเป็นสีเขียว และไฟล์ทั่วไปแสดงเป็นสีเริ่มต้น
$ ls --color=auto Desktop Documents Examples firstfile Music Pictures Public Templates Videos
15. อลิแอสคำสั่ง ls ที่มีประโยชน์
คุณสามารถนำตัวเลือก ls ที่ต้องการจากข้างต้นมาเป็น aliases เราแนะนำดังนี้
- แสดงรายการยาวพร้อมขนาดในรูปแบบอ่านง่าย
alias ll="ls -lh"
- จำแนกประเภทไฟล์โดยต่อท้ายอักขระพิเศษ
alias lv="ls -F"
- จำแนกประเภทไฟล์ด้วยทั้งสีและอักขระพิเศษ
alias ls="ls -F --color=auto"
บทความ Linux ที่น่าสนใจ
ต่อไปนี้คือบทความ 15 ตัวอย่าง ที่น่าสนใจซึ่งคุณอาจพบว่ามีประโยชน์
- Get a Grip on the Grep! – 15 Practical Grep Command Examples
- Linux Crontab: 15 Awesome Cron Job Examples
- Mommy, I found it! — 15 Practical Linux Find Command Examples
- 15 Examples To Master Linux Command Line History