10 เคล็ดลับบรรทัดคำสั่ง Linux ที่เป็นประโยชน์สำหรับมือใหม่ - ตอนที่ 2
ฉันจำได้ว่าตอนที่ฉันเริ่มใช้ Linux ครั้งแรก และฉันคุ้นเคยกับอินเทอร์เฟซแบบกราฟิกของ Windows ฉันเกลียดเทอร์มินัล Linux จริงๆ ย้อนกลับไปตอนนั้นฉันพบว่าคำสั่งต่างๆ จำยากและใช้งานแต่ละคำสั่งอย่างเหมาะสม เมื่อเวลาผ่านไป ฉันก็ได้ตระหนักถึงความสวยงาม ความยืดหยุ่น และความสามารถในการใช้งานของเทอร์มินัล Linux และบอกตามตรงว่าสักวันหนึ่งจะไม่ผ่านไปโดยไม่ใช้ วันนี้ ฉันอยากจะแชร์กลเม็ดและเคล็ดลับที่เป็นประโยชน์สำหรับผู้มาใหม่ที่ใช้ Linux เพื่อให้การเปลี่ยนไปใช้ Linux ง่ายขึ้น หรือเพียงช่วยให้พวกเขาเรียนรู้สิ่งใหม่ๆ (หวังว่า)
- 5 เคล็ดลับและเทคนิคบรรทัดคำสั่งที่น่าสนใจใน Linux - ตอนที่ 1
- 5 คำสั่งที่เป็นประโยชน์ในการจัดการประเภทไฟล์ Linux – ตอนที่ 3
บทความนี้ตั้งใจจะแสดงเคล็ดลับที่เป็นประโยชน์บางประการเกี่ยวกับวิธีใช้เทอร์มินัล Linux อย่างมืออาชีพโดยมีทักษะขั้นต่ำ สิ่งที่คุณต้องมีคือเทอร์มินัล Linux และเวลาว่างเพื่อทดสอบคำสั่งเหล่านี้
1. ค้นหาคำสั่งที่ถูกต้อง
การดำเนินการคำสั่งที่ถูกต้องอาจมีความสำคัญต่อระบบของคุณ อย่างไรก็ตาม ใน Linux มีบรรทัดคำสั่งที่แตกต่างกันมากมายซึ่งมักจะจำได้ยาก ดังนั้นคุณจะค้นหาคำสั่งที่ถูกต้องที่คุณต้องการได้อย่างไร? คำตอบคือประมาณ สิ่งที่คุณต้องทำคือ:
# apropos <description>
ที่ที่คุณควรเปลี่ยน “คำอธิบาย” ด้วยคำอธิบายที่แท้จริงของคำสั่งที่คุณกำลังมองหา นี่เป็นตัวอย่างที่ดี:
# apropos "list directory"
dir (1) - list directory contents
ls (1) - list directory contents
ntfsls (8) - list directory contents on an NTFS filesystem
vdir (1) - list directory contents
ทางด้านซ้ายคุณจะเห็นคำสั่งและคำอธิบายทางด้านขวา
2. ดำเนินการคำสั่งก่อนหน้า
หลายครั้งคุณจะต้องดำเนินการคำสั่งเดิมซ้ำแล้วซ้ำอีก แม้ว่าคุณจะสามารถกดปุ่ม ขึ้น บนแป้นพิมพ์ซ้ำๆ ได้ แต่คุณสามารถใช้คำสั่งประวัติแทนได้ คำสั่งนี้จะแสดงรายการคำสั่งทั้งหมดที่คุณป้อนตั้งแต่คุณเปิดเทอร์มินัล:
# history
1 fdisk -l
2 apt-get install gnome-paint
3 hostname linux-console.net
4 hostnamectl linux-console.net
5 man hostnamectl
6 hostnamectl --set-hostname linux-console.net
7 hostnamectl -set-hostname linux-console.net
8 hostnamectl set-hostname linux-console.net
9 mount -t "ntfs" -o
10 fdisk -l
11 mount -t ntfs-3g /dev/sda5 /mnt
12 mount -t rw ntfs-3g /dev/sda5 /mnt
13 mount -t -rw ntfs-3g /dev/sda5 /mnt
14 mount -t ntfs-3g /dev/sda5 /mnt
15 mount man
16 man mount
17 mount -t -o ntfs-3g /dev/sda5 /mnt
18 mount -o ntfs-3g /dev/sda5 /mnt
19 mount -ro ntfs-3g /dev/sda5 /mnt
20 cd /mnt
...
ดังที่คุณเห็นจากผลลัพธ์ข้างต้น คุณจะได้รับรายการคำสั่งทั้งหมดที่คุณใช้งาน ในแต่ละบรรทัด คุณจะมีตัวเลขระบุแถวที่คุณป้อนคำสั่ง คุณสามารถจำคำสั่งนั้นได้โดยใช้:
!#
โดยที่ # ควรเปลี่ยนด้วยหมายเลขจริงของคำสั่ง เพื่อความเข้าใจที่ดีขึ้น โปรดดูตัวอย่างด้านล่าง:
!501
เทียบเท่ากับ:
# history
3. ใช้ผู้บัญชาการเที่ยงคืน
หากคุณไม่คุ้นเคยกับการใช้คำสั่งเช่น cd, cp, mv, rm คุณสามารถใช้ < แข็งแกร่ง>คำสั่งเที่ยงคืน เป็น Visual Shell ที่ใช้งานง่ายซึ่งคุณสามารถใช้เมาส์ได้:
ด้วยปุ่ม F1 – F12 คุณจึงสามารถทำงานต่างๆ ได้อย่างง่ายดาย เพียงตรวจสอบคำอธิบายที่ด้านล่าง หากต้องการเลือกไฟล์หรือโฟลเดอร์ ให้คลิกปุ่ม “แทรก”
กล่าวโดยย่อคือ คำสั่งเที่ยงคืนเรียกว่า “mc“ หากต้องการติดตั้ง mc บนระบบของคุณ เพียงเรียกใช้:
$ sudo apt-get install mc [On Debian based systems]
# yum install mc [On Fedora based systems]
นี่คือตัวอย่างง่ายๆ ของการใช้ Midnight Commander เปิด mc เพียงพิมพ์:
# mc
ตอนนี้ใช้ปุ่ม TAB เพื่อสลับระหว่างหน้าต่าง - ซ้าย และ ขวา ฉันมีไฟล์ LibreOffice ที่จะย้ายไปยังโฟลเดอร์ “ซอฟต์แวร์”:
หากต้องการย้ายไฟล์ไปยังไดเร็กทอรีใหม่ ให้กดปุ่ม F6 บนแป้นพิมพ์ MC จะขอให้คุณยืนยัน:
เมื่อยืนยันแล้ว ไฟล์จะถูกย้ายไปยังไดเร็กทอรีปลายทางใหม่
อ่านเพิ่มเติม: วิธีใช้ Midnight Commander File Manager ใน Linux
4. ปิดเครื่องคอมพิวเตอร์ตามเวลาที่กำหนด
บางครั้งคุณจะต้องปิดเครื่องคอมพิวเตอร์สักสองสามชั่วโมงหลังจากเวลาทำงานของคุณสิ้นสุดลง คุณสามารถกำหนดค่าคอมพิวเตอร์ของคุณให้ปิดเครื่องตามเวลาที่กำหนดได้โดยใช้:
$ sudo shutdown 21:00
นี่จะเป็นการบอกให้คอมพิวเตอร์ของคุณปิดเครื่องตามเวลาที่คุณระบุไว้ คุณยังสามารถบอกให้ระบบปิดระบบหลังจากผ่านไปตามระยะเวลาที่กำหนด:
$ sudo shutdown +15
ด้วยวิธีนี้ระบบจะปิดตัวลงใน 15 นาที
5. แสดงข้อมูลเกี่ยวกับผู้ใช้ที่รู้จัก
คุณสามารถใช้คำสั่งง่ายๆ เพื่อแสดงรายการผู้ใช้ระบบ Linux ของคุณและข้อมูลพื้นฐานเกี่ยวกับพวกเขา เพียงใช้:
# lslogins
สิ่งนี้ควรให้ผลลัพธ์ต่อไปนี้แก่คุณ:
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
0 root 0 0 Apr29/11:35 root
1 bin 0 1 bin
2 daemon 0 1 daemon
3 adm 0 1 adm
4 lp 0 1 lp
5 sync 0 1 sync
6 shutdown 0 1 Jul19/10:04 shutdown
7 halt 0 1 halt
8 mail 0 1 mail
10 uucp 0 1 uucp
11 operator 0 1 operator
12 games 0 1 games
13 gopher 0 1 gopher
14 ftp 0 1 FTP User
23 squid 0 1
25 named 0 1 Named
27 mysql 0 1 MySQL Server
47 mailnull 0 1
48 apache 0 1 Apache
...
6. ค้นหาไฟล์
บางครั้งการค้นหาไฟล์อาจไม่ง่ายอย่างที่คิด ตัวอย่างที่ดีในการค้นหาไฟล์คือ:
# find /home/user -type f
คำสั่งนี้จะค้นหาไฟล์ทั้งหมดที่อยู่ใน /home/user คำสั่ง ค้นหา มีประสิทธิภาพอย่างยิ่ง และคุณสามารถส่งตัวเลือกเพิ่มเติมเพื่อให้การค้นหาของคุณมีรายละเอียดมากขึ้น หากคุณต้องการค้นหาไฟล์ที่มีขนาดใหญ่กว่าขนาดที่กำหนด คุณสามารถใช้:
# find . -type f -size 10M
คำสั่งดังกล่าวจะค้นหาไฟล์ทั้งหมดที่มีขนาดใหญ่กว่า 10 MB จากไดเร็กทอรีปัจจุบัน ตรวจสอบให้แน่ใจว่าไม่ได้เรียกใช้คำสั่งจากไดเร็กทอรีรากของระบบ Linux เนื่องจากอาจทำให้ I/O สูงในเครื่องของคุณ
หนึ่งในชุดค่าผสมที่ใช้บ่อยที่สุดที่ฉันใช้ find คือตัวเลือก “exec” ซึ่งโดยพื้นฐานแล้วจะช่วยให้คุณสามารถดำเนินการบางอย่างกับผลลัพธ์ของคำสั่ง find ได้
ตัวอย่างเช่น สมมติว่าเราต้องการค้นหาไฟล์ทั้งหมดในไดเร็กทอรีและเปลี่ยนการอนุญาต สามารถทำได้ง่ายๆ ด้วย:
# find /home/user/files/ -type f -exec chmod 644 {} \;
คำสั่งดังกล่าวจะค้นหาไฟล์ทั้งหมดในไดเร็กทอรีที่ระบุแบบวนซ้ำ และจะดำเนินการคำสั่ง chmod กับไฟล์ที่พบ ฉันแน่ใจว่าคุณจะพบการใช้งานคำสั่งนี้อีกมากมายในอนาคต ตอนนี้อ่าน 35 ตัวอย่างของคำสั่งและการใช้งาน 'ค้นหา' ของ Linux
7. สร้างแผนผังไดเร็กทอรีด้วยคำสั่งเดียว
คุณคงรู้ว่าคุณสามารถสร้างไดเร็กทอรีใหม่ได้โดยใช้คำสั่ง mkdir ดังนั้นหากคุณต้องการสร้างโฟลเดอร์ใหม่ คุณจะต้องดำเนินการดังนี้:
# mkdir new_folder
แต่ถ้าคุณต้องการสร้าง 5 โฟลเดอร์ย่อย ภายในโฟลเดอร์นั้นล่ะ การรัน mkdir 5 ครั้งติดต่อกันไม่ใช่วิธีแก้ปัญหาที่ดี คุณสามารถใช้ตัวเลือก -p แทนได้:
# mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}
ท้ายที่สุดคุณควรมี 5 โฟลเดอร์อยู่ใน new_folder:
# ls new_folder/
folder_1 folder_2 folder_3 folder_4 folder_5
8. คัดลอกไฟล์ไปยังหลายไดเร็กทอรี
โดยทั่วไปการคัดลอกไฟล์จะดำเนินการด้วยคำสั่ง cp การคัดลอกไฟล์มักจะมีลักษณะดังนี้:
# cp /path-to-file/my_file.txt /path-to-new-directory/
ทีนี้ลองจินตนาการว่าคุณต้องคัดลอกไฟล์นั้นในหลาย ๆ ไดเร็กทอรี:
# cp /home/user/my_file.txt /home/user/1
# cp /home/user/my_file.txt /home/user/2
# cp /home/user/my_file.txt /home/user/3
นี่มันเป็นเรื่องไร้สาระเล็กน้อย แต่คุณสามารถแก้ไขปัญหาได้ด้วยคำสั่งบรรทัดเดียวง่ายๆ:
# echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1 cp /home/user/my_file.txt
9. การลบไฟล์ขนาดใหญ่
บางครั้งไฟล์อาจมีขนาดใหญ่มาก ฉันเคยเห็นกรณีที่ไฟล์บันทึกไฟล์เดียวมีขนาดใหญ่เกิน 250 GB เนื่องจากทักษะการดูแลระบบไม่ดี การลบไฟล์ด้วยยูทิลิตี้ rm อาจไม่เพียงพอในกรณีเช่นนี้ เนื่องจากมีข้อมูลจำนวนมากที่ต้องลบออก การดำเนินการนี้จะ "หนัก" และควรหลีกเลี่ยง คุณสามารถใช้วิธีแก้ปัญหาง่ายๆ แทนได้:
# > /path-to-file/huge_file.log
แน่นอนว่าคุณจะต้องเปลี่ยนพาธและชื่อไฟล์ให้ตรงกับกรณีของคุณ คำสั่งดังกล่าวจะเขียนเอาต์พุตว่างลงในไฟล์ พูดง่ายๆ ก็คือไฟล์จะล้างไฟล์โดยไม่ทำให้ I/O สูงในระบบของคุณ
10. เรียกใช้คำสั่งเดียวกันบนเซิร์ฟเวอร์ Linux หลายเครื่อง
เมื่อเร็วๆ นี้หนึ่งในผู้อ่านของเราถามในฟอรัม LinuxSay ถึงวิธีดำเนินการคำสั่งเดียวกับกล่อง Linux หลายกล่องพร้อมกันโดยใช้ SSH เขามีที่อยู่ IP ของเครื่องของเขาดังนี้:
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5
ต่อไปนี้คือวิธีแก้ปัญหาง่ายๆ สำหรับปัญหานี้ รวบรวมที่อยู่ IP ของเซิร์ฟเวอร์ในไฟล์เดียวที่เรียกว่า list.txt อีกหนึ่งไฟล์ภายใต้ไฟล์อื่นๆ ดังที่แสดงไว้ด้านบน จากนั้นคุณสามารถเรียกใช้:
# for in $i(cat list.txt); do ssh user@$i 'bash command'; done
ในตัวอย่างข้างต้น คุณจะต้องเปลี่ยน “ผู้ใช้” ด้วยผู้ใช้จริงที่คุณจะบันทึกด้วย และ “คำสั่ง bash” ด้วยคำสั่ง bash จริงที่คุณต้องการดำเนินการ . วิธีการนี้จะทำงานได้ดีขึ้นเมื่อคุณใช้การตรวจสอบสิทธิ์แบบไร้รหัสผ่านด้วยคีย์ SSH ไปยังเครื่องของคุณ เนื่องจากวิธีนี้ทำให้คุณไม่จำเป็นต้องป้อนรหัสผ่านสำหรับผู้ใช้ของคุณซ้ำแล้วซ้ำเล่า
โปรดทราบว่าคุณอาจต้องส่งพารามิเตอร์เพิ่มเติมไปยังคำสั่ง SSH ขึ้นอยู่กับการตั้งค่ากล่อง Linux ของคุณ
บทสรุป
ตัวอย่างข้างต้นเป็นตัวอย่างที่เรียบง่ายจริงๆ และฉันหวังว่าตัวอย่างเหล่านี้จะช่วยให้คุณค้นพบข้อดีบางประการของ Linux และวิธีที่คุณสามารถดำเนินการต่างๆ ที่อาจใช้เวลานานกว่ามากบนระบบปฏิบัติการอื่นได้อย่างง่ายดาย