ค้นหาเว็บไซต์

10 เคล็ดลับบรรทัดคำสั่ง Linux ที่เป็นประโยชน์สำหรับมือใหม่ - ตอนที่ 2


ฉันจำได้ว่าตอนที่ฉันเริ่มใช้ Linux ครั้งแรก และฉันคุ้นเคยกับอินเทอร์เฟซแบบกราฟิกของ Windows ฉันเกลียดเทอร์มินัล Linux จริงๆ ย้อนกลับไปตอนนั้นฉันพบว่าคำสั่งต่างๆ จำยากและใช้งานแต่ละคำสั่งอย่างเหมาะสม เมื่อเวลาผ่านไป ฉันก็ได้ตระหนักถึงความสวยงาม ความยืดหยุ่น และความสามารถในการใช้งานของเทอร์มินัล Linux และบอกตามตรงว่าสักวันหนึ่งจะไม่ผ่านไปโดยไม่ใช้ วันนี้ ฉันอยากจะแชร์กลเม็ดและเคล็ดลับที่เป็นประโยชน์สำหรับผู้มาใหม่ที่ใช้ Linux เพื่อให้การเปลี่ยนไปใช้ Linux ง่ายขึ้น หรือเพียงช่วยให้พวกเขาเรียนรู้สิ่งใหม่ๆ (หวังว่า)

  1. 5 เคล็ดลับและเทคนิคบรรทัดคำสั่งที่น่าสนใจใน Linux - ตอนที่ 1
  2. 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 และวิธีที่คุณสามารถดำเนินการต่างๆ ที่อาจใช้เวลานานกว่ามากบนระบบปฏิบัติการอื่นได้อย่างง่ายดาย