๐ง ไธ่กๆๅฎ!Linux ็ฎก็ท็ฌฆ่่ๆๅญ่็ๅทฅๅ ทๅฎๆดๆๅญธ
Linux ็ๅผทๅคงไน่,ไธๅ
ๅจๆผๆ ธๅฟๆถๆง,ๆดๅจๆผ้ๆดปๅผทๅคง็「ๆๅญ่็็ๆ
็ณป」。
ๅพๆฅ่ชๅๆ、่จญๅฎๆชไฟฎๆน、ๅฐ่ชๅๅๆนๆฌกไปปๅ,ๅช่ฆๆๅพ้็จ | ็ฎก็ท็ฌฆ่、sed、awk、grep ็ญๅทฅๅ
ท,ไฝ ๅนพไนๅฏไปฅ็จไธ่กๆไปคๅฎๆๆดๅๆต็จ。
๐ ไธ、็ฎก็ท็ฌฆ่(|)— ่ณๆๆต็้้ญ
| ๆๅฐๅไธๅๆไปค็「ๆจๆบ่ผธๅบ(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 ็็็ขๅๅฒๅญธ。
๐ ๅปถไผธ้ฑ่ฎ
- Linux sed ไฝฟ็จๅบ็ค่ชชๆ:ๆๅญๅไปฃ、ๅช้ค่ๅธธ็จ็ฏไพ
- Linux tail ่ๆๅญๆต่็ๆๅทง
- Linux Proxy Server ๅปบ็ฝฎๆๅญธ(Squid ๅฎ่ฃ่่จญๅฎๆๅ)
— WWFandy・Linux ๅฏฆไฝ็ญ่จ
ๆฒๆ็่จ:
ๅผต่ฒผ็่จ