1.將 file.txt 裏的123改爲 456
sed -i 's/123/456/g' file.txt 直接修改原文件
2.lsof 用法小全
lsof abc.txt 顯示開啓文件 abc.txt 的進程
lsof -i :22 知道 22 埠現在運行什麽程式
lsof -c nsd 顯示 nsd 進程現在打開的文件
lsof -g gid 顯示歸屬 gid 的進程情況
lsof +d /usr/local/ 顯示目錄下被進程開啓的文件
lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用 fd 爲4 的進程
lsof -i [i] 用以顯示符合條件的進程情況
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4 位置
service --> /etc/service中的 service name (可以不止一個)
port --> 埠號(可以不止一個)
例子: TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
tcp@www.ccu.edu.tw:ftp
(TCP protocol host:www.ccu.edu.tw service name:ftp)
lsof -n 不將 IP轉換爲 hostname,預設是不加上-n參數
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看進程號爲 12的進程打開了哪些文件
3.將 top的結果輸出到文件中
top -d 2 -n 3 -b >test.txt
把 top 的結果每隔 2秒,列印 3次,這樣後面頁的進程也能夠看見了
4.過濾掉#號打頭的行,和所有的空行(對於查看配置文檔很有用)
awk '/^[^#]/&&/^[^$]/' filename
5.利用現存兩個文件,生成一個新的文件
1) 取出兩個文件的並集(重復的行只保留一份)
cat file1 file2 | sort | uniq
2) 取出兩個文件的交集(只留下同時存在於兩個文件中的文件)
cat file1 file2 | sort | uniq -d
3) 刪除交集,留下其他的行
cat file1 file2 | sort | uniq -u
6.tr高級用法(必看)
7.Unix系列shell程式編寫從入門到精通
8.aaa這檔案內容為 $* $# $1 $$
# i=0;for j in `sed '1 !d' aaa`;do
> i=`expr $i + 1`
> eval A$i='$j';done
# echo $A1 $A2 $A3 $A4
# $* $# $1 $$
You are here: Home > Linux > 有趣的 script (二)