Linux 中11個比較實(shí)用的命令行
閱讀本文了解組合簡單命令以創(chuàng)建更強(qiáng)大命令的可能性。
1.同時創(chuàng)建不同名稱的文件夾
shell 的{} 運(yùn)算符非常適合此操作。下面是用{} 創(chuàng)建三個子目錄的示例:
- [root@localhost ~]# mkdir -p /tmp/users/{dir1,another,third}
2. 就地編輯文件
在不使用編輯器的情況下替換一個或多個文件上的字符串,可以使用sed 來操作:
- [root@localhost ~]# sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
3. 使用web服務(wù)器快速共享文件
下面可以使用python的http.server搭建一個簡易的web網(wǎng)站,來顯示當(dāng)前目錄的文件,以方便下載:
- [root@localhost ~]# cd /root && python3 -m http.server 8080
- Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...
4. 使用 journalctl 查詢錯誤日志
可以使用 journalctl 以及 sort 和 uniq 的組合來查找最近的錯誤:
- [root@localhost ~]# journalctl --no-pager --grep 'fail|error|fatal' --output json| jq '._EXE'| sort| uniq -c | sort --numeric --reverse --key 1
- 45 null
- 14 "/usr/bin/cat"
- 6 "/usr/lib/systemd/systemd"
- 6 "/usr/libexec/platform-python3.6"
- 6 "/usr/bin/bash"
- 5 "/usr/sbin/useradd"
- 3 "/usr/sbin/rngd"
- 2 "/usr/sbin/groupadd"
- 1 "/usr/sbin/rsyslogd"
5.命令行中向文件寫入內(nèi)容
當(dāng)需要編寫多行文檔時,然后使用自定義的字符EOL來結(jié)束寫入,這是一個很好的技巧:
- [root@localhost ~]# cat << EOL >> /root/documents.txt
- > line 1
- > line 2
- > a b c d ef
- > EOL
6. 不使用 top 監(jiān)控內(nèi)存
使用watch命令每5秒重復(fù)一次free命令,來監(jiān)測內(nèi)存:
- [root@localhost ~]# watch -n 5 -d free -h
7.顯示磁盤分區(qū)大小
使用 lsbk 和 jq 來顯示分區(qū)信息:
- [root@localhost ~]# lsblk --json | jq -c '.blockdevices[] | [.name,.size]'
- ["sda","20G"]
- ["sdb","20G"]
- ["sdc","20G"]
- ["sdd","20G"]
- ["sr0","1024M"]
- ["nvme0n1","20G"]
8.快速顯示文件的類型
下面創(chuàng)建一個函數(shù),調(diào)用stat命令來顯示文件名和輸入的文件類型:
- [root@localhost ~]# function wi { test -n "$1" && stat --printf "%F\n" "$1"; }
- 或者可以檢查多個文件的類型:
- [root@localhost ~]# function wi { test "$#" -gt 0 && stat --printf "%n: %F\n" "$@"; }
9.顯示已安裝 RPM 包的大小
可以使用rpm包管理器的--queryformat選項(xiàng)來查看包的大?。?/p>
- [root@localhost ~]# rpm --queryformat='%12{SIZE} %{NAME}\n' -q adobe-mappings-cmap-20171205-3.el8.noarch
- 13746679 adobe-mappings-cmap
10.查看天氣
使用此功能可以查看天氣:
- [root@localhost ~]# weather() { curl -s --connect-timeout 3 -m 5 http://wttr.in/$1; }
不添加參數(shù),輸出的是當(dāng)前地理位置的天氣,輸入城市名稱可以查看當(dāng)?shù)靥鞖?/p>
11.顯示訪問web服務(wù)器的前 10 個 IP 地址
下面是從access.log文件中獲取前十個訪問web服務(wù)器的ip地址:
- [root@localhost httpd]# cat /var/log/nginx/access.log | cut -f 1 -d ' ' | sort | uniq -c | sort -hr | head -n 10