Computer >> คอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

การเริ่มต้นใช้งานคำสั่ง grep

คำแนะนำสั้น ๆ นี้จะช่วยให้คุณเริ่มต้นใช้งานได้โดยใช้คำสั่ง "grep" ที่เป็นประโยชน์อย่างเหลือเชื่อสำหรับ Linux และระบบปฏิบัติการ *nix อื่น ๆ แม้แต่ macOS เวอร์ชันล่าสุด

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

# grep www /etc/httpd/conf/httpd.conf

#ServerName www.example.com:80
DocumentRoot “/var/www/html”
# เช่น www.apache.org (on) หรือ 204.62.129.132 (off)
Alias /icons/ “/var/www/icons/”

ในตัวอย่างด้านบน เราใช้ grep เพื่อค้นหาคำว่า www ในไฟล์ /etc/httpd/conf/httpd.conf . ส่งคืนผลลัพธ์ 4 รายการ เป็นคำสั่งที่ค่อนข้างตรงไปตรงมา grep มาพร้อมกับฟังก์ชันการทำงานที่มากขึ้น อย่าลังเลที่จะเรียกดู manpage สำหรับ grep ซึ่งคุณสามารถเข้าถึงได้โดยเรียกใช้ man grep .

ตอนนี้เราจะดูคุณสมบัติของ grep ที่ช่วยให้คุณสามารถค้นหาคำสองคำในเอกสารโดยใช้คำสั่งเดียว มาแก้ไขคำสั่งที่แสดงด้านบนเพื่อค้นหา www และสำหรับคำว่า เซิร์ฟเวอร์ .

# grep 'www\|เซิร์ฟเวอร์' /etc/httpd/conf/httpd.conf

# SetHandler สถานะเซิร์ฟเวอร์
# อนุญาตรายงานการกำหนดค่าเซิร์ฟเวอร์ระยะไกลด้วย URL ของ
# https://servername/server-info (ต้องโหลด mod_info.c)
#ServerName www.example.com:80
DocumentRoot “/var/www/html”
# e.g., www.apache.org (on) หรือ 204.62.129.132 (off)
Alias ​​/icons / “/var/www/icons/”
# SetHandler server-info
# เปิดใช้งานพร็อกซีเซิร์ฟเวอร์:
# (“เต็ม” เพิ่มเวอร์ชันเซิร์ฟเวอร์; “บล็อก” ลบออกทั้งหมดผ่านทาง :ส่วนหัว)
# ใช้โฮสต์เสมือนตามชื่อเท่านั้น ดังนั้นเซิร์ฟเวอร์จึงไม่ต้องกังวลเกี่ยวกับ
# ชื่อเซิร์ฟเวอร์

อย่างที่คุณเห็นผลลัพธ์มีขนาดใหญ่กว่ามากในคำสั่งที่สอง (ส่งคืน 12 บรรทัด) สังเกตว่าเราแก้ไขคำสั่งแรกและเปลี่ยนคำค้นหาเป็น ‘www\|เซิร์ฟเวอร์’ . อย่างไร . อย่าลืมใช้ เครื่องหมายทับ ( \ ) ก่อนถึง ท่อ มิฉะนั้นคุณจะไม่ได้รับผลลัพธ์แบบเดียวกัน หรือคุณสามารถใช้เครื่องมือ egrep เพื่อเรียกใช้การค้นหาที่คล้ายกันโดยไม่ต้องใช้ เครื่องหมายทับ . ลองสิ่งนี้:

# egrep 'www|เซิร์ฟเวอร์' /etc/httpd/conf/httpd.conf

# SetHandler สถานะเซิร์ฟเวอร์
# อนุญาตรายงานการกำหนดค่าเซิร์ฟเวอร์ระยะไกลด้วย URL ของ
# https://servername/server-info (ต้องโหลด mod_info.c)
#ServerName www.example.com:80
DocumentRoot “/var/www/html”
# e.g., www.apache.org (on) หรือ 204.62.129.132 (off)
Alias ​​/icons / “/var/www/icons/”
# SetHandler server-info
# เปิดใช้งานพร็อกซีเซิร์ฟเวอร์:
# (“เต็ม” เพิ่มเวอร์ชันเซิร์ฟเวอร์; “บล็อก” ลบออกทั้งหมดผ่านทาง :ส่วนหัว)
# ใช้โฮสต์เสมือนตามชื่อเท่านั้น ดังนั้นเซิร์ฟเวอร์จึงไม่ต้องกังวลเกี่ยวกับ
# ชื่อเซิร์ฟเวอร์

คุณยังสามารถเพิ่มไพพ์อื่นและค้นหาคำอื่นได้อีกด้วย คำสั่งของคุณจะมีลักษณะดังนี้ # egrep 'www|server|apache' /etc/httpd/conf/httpd.conf .

เมื่อคุณรวมคำสั่ง grep เข้ากับคำสั่ง find คุณจะไม่สามารถค้นหาตำแหน่งบนคอมพิวเตอร์ของคุณได้มากนัก :)