็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿง ไธ€่กŒๆžๅฎš!Linux ็ฎก็ทš็ฌฆ่™Ÿ่ˆ‡ๆ–‡ๅญ—่™•็†ๅทฅๅ…ทๅฎŒๆ•ดๆ•™ๅญธ

    ๐Ÿง ไธ€่กŒๆžๅฎš!Linux ็ฎก็ทš็ฌฆ่™Ÿ่ˆ‡ๆ–‡ๅญ—่™•็†ๅทฅๅ…ทๅฎŒๆ•ดๆ•™ๅญธ

    Linux ็š„ๅผทๅคงไน‹่™•,ไธๅƒ…ๅœจๆ–ผๆ ธๅฟƒๆžถๆง‹,ๆ›ดๅœจๆ–ผ้ˆๆดปๅผทๅคง็š„「ๆ–‡ๅญ—่™•็†็”Ÿๆ…‹็ณป」。 ๅพžๆ—ฅ่ชŒๅˆ†ๆž、่จญๅฎšๆช”ไฟฎๆ”น、ๅˆฐ่‡ชๅ‹•ๅŒ–ๆ‰นๆฌกไปปๅ‹™,ๅช่ฆๆ‡‚ๅพ—้‹็”จ | ็ฎก็ทš็ฌฆ่™Ÿ、sedawkgrep ็ญ‰ๅทฅๅ…ท,ไฝ ๅนพไนŽๅฏไปฅ็”จไธ€่กŒๆŒ‡ไปคๅฎŒๆˆๆ•ดๅ€‹ๆต็จ‹。

    ๐Ÿ“˜ ไธ€、็ฎก็ทš็ฌฆ่™Ÿ(|)— ่ณ‡ๆ–™ๆต็š„้ˆ้ญ‚

    | ๆœƒๅฐ‡ๅ‰ไธ€ๅ€‹ๆŒ‡ไปค็š„「ๆจ™ๆบ–่ผธๅ‡บ(stdout)」็›ดๆŽฅๅ‚ณ้ž็ตฆไธ‹ไธ€ๅ€‹ๆŒ‡ไปค็š„「ๆจ™ๆบ–่ผธๅ…ฅ(stdin)」。

    # ้กฏ็คบ็™ปๅ…ฅไฝฟ็”จ่€…ๆ•ธ้‡
    who | wc -l
    
    # ็ฏฉ้ธๅ‡บ error ไธฆๆŽ’ๅบๅ‡บ็พ้ ป็އ
    dmesg | grep "error" | sort | uniq -c | sort -nr | head
    

    ๐Ÿงฑ ไบŒ、cat + EOF:ๅคš่กŒ่ผธๅ…ฅๅฟซ้€Ÿๅปบ็ซ‹ๆช”ๆกˆ

    ๆ‰€่ฌ‚ EOF(End Of File)่ชžๆณ•ๆ˜ฏ shell ็š„ Here Document,่ƒฝ็›ดๆŽฅๅœจๅ‘ฝไปคไธญๅปบ็ซ‹ๅคš่กŒๆ–‡ๅญ—,้žๅธธ้ฉๅˆ่‡ชๅ‹•ๅŒ–่…ณๆœฌ。

    cat < /etc/nginx/conf.d/blog.conf
    server {
        listen 80;
        server_name blog.wwfandy.com;
        root /var/www/html;
    }
    EOF
    

    ่‹ฅ่ฆๅŒๆ™‚่ผธๅ‡บๅˆฐ็•ซ้ข่ˆ‡ๆช”ๆกˆ,ๅฏ็ตๅˆ tee

    cat </dev/null
    Welcome to WWFandy Linux Server
    Today is $(date)
    EOF
    

    ๐Ÿงฉ ไธ‰、grep:ๅฟซ้€Ÿๆœๅฐ‹่ˆ‡ๆฏ”ๅฐๆ–‡ๅญ—

    grep ๆ˜ฏๆœ€ๅธธ็”จ็š„ๆœๅฐ‹ๆŒ‡ไปค,ๆ”ฏๆดๆญฃ่ฆ่กจ็คบๅผ。

    grep "root" /etc/passwd             # ๆœๅฐ‹้—œ้ตๅญ—
    grep -i "server" nginx.conf         # ๅฟฝ็•ฅๅคงๅฐๅฏซ
    grep -n "error" /var/log/syslog     # ้กฏ็คบ่กŒ่™Ÿ
    grep -r "Listen" /etc/httpd/        # ้ž่ฟดๆœๅฐ‹
    

    ✂️ ๅ››、cut:ๆ“ทๅ–ๆฌ„ไฝๆˆ–ๅญ—ๅ…ƒ

    cut ้ฉๅˆ็”จๆ–ผ็ตๆง‹ๅŒ–่ณ‡ๆ–™ๅˆ†ๆฌ„,ไพ‹ๅฆ‚ /etc/passwd

    cut -d: -f1 /etc/passwd   # ๅ–ๅ‡บไฝฟ็”จ่€…ๅ็จฑๆฌ„ไฝ
    echo "WWFandyBlog" | cut -c1-8
    

    ⚙️ ไบ”、awk:ๆฌ„ไฝๅˆ†ๆž่ˆ‡ๅ ฑ่กจ่ผธๅ‡บ

    awk ๆ˜ฏ Linux ไธญๆœ€ๅผทๅคง็š„ๆ–‡ๅญ—ๅˆ†ๆžๅ™จไน‹ไธ€。

    awk -F: '{printf "%-15s → %s\n",$1,$7}' /etc/passwd
    grep "ERROR" /var/log/syslog | awk '{count++} END {print "Error Count:", count}'
    

    ๐Ÿ”ง ๅ…ญ、sed:ๅ–ไปฃ、ๅˆช้™ค、ๆ’ๅ…ฅ

    sed ๅฏ้€ฒ่กŒๅณๆ™‚็ทจไฟฎ่ˆ‡ๅ…งๅฎนๆ›ฟๆ›。

    sed -i 's/Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf
    echo "Welcome to Linux" | sed 's/Linux/WWFandy Blog/'
    

    ๐Ÿ“Š ไธƒ、wc:ๅฟซ้€Ÿ็ตฑ่จˆ่กŒๆ•ธ、ๅญ—ๆ•ธ่ˆ‡ๅญ—ๅ…ƒ

    wc -l file.txt   # ่กŒๆ•ธ
    wc -w file.txt   # ๅญ—ๆ•ธ
    wc -c file.txt   # ๅญ—ๅ…ƒๆ•ธ
    grep "http" access.log | wc -l
    

    ๐Ÿ“‘ ๅ…ซ、sort + uniq:ๆŽ’ๅบ่ˆ‡ๅŽป้‡

    cat list.txt | sort | uniq
    cat list.txt | sort | uniq -c | sort -nr | head
    

    ๐Ÿ”ก ไน、tr:ๅญ—ๅ…ƒ่ฝ‰ๆ›่ˆ‡ๆธ…็†

    echo "Hello World" | tr 'a-z' 'A-Z'     # ๅ…จ่ฝ‰ๅคงๅฏซ
    cat file.txt | tr -d '\r'               # ็งป้™ค CR
    cat file.txt | tr -s ' '                # ๅˆไฝตๅคš้‡็ฉบๆ ผ
    

    ๐Ÿ“Ž ๅ、paste:ๆฉซๅ‘ๅˆไฝตๆ–‡ไปถ

    paste names.txt phones.txt > contacts.txt

    ๐Ÿš€ ๅไธ€、xargs:ๆ‰นๆฌกๅŸท่กŒๅ‘ฝไปค

    find . -name "*.tmp" | xargs rm -f
    grep -rl "localhost" . | xargs sed -i 's/localhost/blog.wwfandy.com/g'
    

    ๐Ÿงญ ๅไบŒ、tee:ๅŒๆ™‚่ผธๅ‡บ่ˆ‡ๅฏซๅ…ฅๆช”ๆกˆ

    df -h | tee ~/disk_report.txt | grep "root"
    echo "Backup done at $(date)" | tee -a /var/log/backup.log
    

    ๐Ÿงฎ ๅไธ‰、็ถœๅˆๅฏฆไพ‹:่‡ชๅ‹•็”ขๅ‡บ่จญๅฎš่ˆ‡็ตฑ่จˆ

    # 1️⃣ ๅปบ็ซ‹่จญๅฎšๆช”
    cat < /tmp/service.conf
    service=nginx
    port=80
    status=active
    EOF
    
    # 2️⃣ ไฟฎๆ”นๅ…งๅฎน
    sed -i 's/80/8080/' /tmp/service.conf
    
    # 3️⃣ ๆ ผๅผๅŒ–่ผธๅ‡บ
    awk -F= '{printf "%-10s : %s\n",$1,$2}' /tmp/service.conf
    
    # 4️⃣ ็ตฑ่จˆ่กŒๆ•ธ
    wc -l /tmp/service.conf
    

    ๐Ÿ“˜ ็ต่ชž

    ้€™ไบ›ๆ–‡ๅญ—่™•็†ๆŒ‡ไปคๆง‹ๆˆไบ† Linux ็š„「่ณ‡ๆ–™็ฎก็ทš็”Ÿๆ…‹็ณป」: grep ๆœๅฐ‹、cut ๆ“ทๅ–、sed ไฟฎๆ”น、awk ๅˆ†ๆž、tee ่ผธๅ‡บ、xargs ๆ‰นๆฌกๅŸท่กŒ。 ๆŽŒๆกๅฎƒๅ€‘็š„็ต„ๅˆ,ไฝ ๅฐฑ่ƒฝ็”จไธ€่กŒๆŒ‡ไปคๅฎŒๆˆๅ ฑ่กจ็”Ÿๆˆ、่จญๅฎš่‡ชๅ‹•ๅŒ–่ˆ‡ๆ—ฅ่ชŒๅˆ†ๆž,็œŸๆญฃ้ซ”็พ Linux ็š„็”Ÿ็”ขๅŠ›ๅ“ฒๅญธ。


    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・Linux ๅฏฆไฝœ็ญ†่จ˜

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš