1.查看地理位置:
命令:curl -s 'http://geoiplookup.wikimedia.org/' | sed 's/^.*=\s*//'
結果:{"city":"Wuhan","country":"CN","lat":"30.583300","lon":"114.266701","IP":"61.183.225.66","netmask":"17"}
2.批量下載文件:
curl -O http://www.site.com/img/image[001-175].jpg
3.將第五列中的foo替換爲bar
awk '{gsub("foo","bar",$5)}1' file
4.計算字符串的md5碼
echo -n "password"|md5sum|awk '{print $1}'
5.得到可用內存:
memnum=$(awk '{ print $2 }' /proc/meminfo |head -n1); echo "$memnum / 1024 / 1024" | bc -l
6.年月日轉換爲秒
date -ud "1970/01/01 00:29:36" +%s
7.每行後面增長空行
sed G file.txt
8.排除某幾列
awk '{$1=$3=""}1' file
9.禁止任何人刪除文件
find . -maxdepth 1 -type f -exec chmod +a "everyone deny delete" {} \;
10.pv命令顯示進度:
顯示壓縮進度:pv file | gzip > file.gz
顯示解包的進度:pv <example.tgz|tar zxf -
顯示打包進度:tar cf - /usr |pv|gzip >/tmp/usr.tgz
11.獲取後綴名函數:
filext () { echo ${1##*.}; }
12.圖片分辨率調整:
convert -resize 1024x600 res-127-2011-07-05-14-02-02.jpg small-image.jpg
13.根據cpu排序進程:
ps -ef --sort=-%cpu
14.獲取cpu數量:
grep -c '^$' /proc/cpuinfo
15.大小寫轉換函數:
upper() { echo ${@^^}; }
lower() { echo ${@,,}; }
16.查看開啓的端口:
lsof -Pi | grep LISTEN
netstat -plntu
17.打印某文件的某一行:
tail -n +<N> <file> | head -n 1
sed -n '3p' aaa.txt
sed '3!d' aaa.txt
18.循環建立文件夾和文件:
for i in `seq 100`; do mkdir f${i}; touch ./f${i}/myfile$i ;done
19.獲取機器內存頻率:
/usr/sbin/dmidecode | perl -lne 'print $1 if /Current\s+Speed:\s+(\d+\s+MHz)/'
20.獲取bios信息:
dmidecode --type 0
21.獲取本機ip:
ifconfig|grep 'inet addr:'|grep 'Bcast'|awk '{print $2}'|awk -F : '{print $2}'
ifconfig eth0 |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "
22.將windows文件轉換爲linux文件:
sed 's/.$//' test.sh >test2.sh
tr -d "\r" < dos.txt > linux.txt
23. 批量調整圖片分辨率:
mogrify -resize 600x800! *.jpg
24.將文件名大寫轉爲小寫:
rename 'y/A-Z/a-z/' *
25.利用文字生成透明背景圖片:
convert -background none -pointsize 55 label:"`whoami`" me.png
若是報錯:convert: unable to read font `/usr/share/fonts/default/TrueType/arial.ttf'
則安裝truetype字體包:msfonts.tbz
wget http://www.osresources.com/files/centos-windows-fonts/msfonts.tbz
mkdir /usr/share/fonts/default/TrueType
tar xvjpf msfonts.tbz -C /usr/share/fonts/default/TrueType/
26.將多個文件輸出到一個文件:
cat $(file *.txt | grep ASCII | awk -F: {'print $1'})>3.txt
27.圖片合併:
composite -geometry 296x296+60+70 res-127-2011-07-05-14-02-02.jpg res-41-2011-02-22-16-00-09.jpg image24.jpg
將res-127-2011-07-05-14-02-02.jpg附着在res-41-2011-02-22-16-00-09.jpg上,附着大小爲296.,位置爲x:60,y:70;
28.獲取視頻時長:
tmp=$(date +%N);ffmpeg -i res-4-2011-02-22-15-57-27.mp4 &> _test_$tmp;grep Duration _test_$tmp | awk -F'[, ]' '{print $4}' ;rm -f _test_$tmp ;
29.設置系統時間:
date -s '16:52:00 2011-11-10'
30.將命令執行結果生成圖片:
ifconfig | convert label:@- ip.png
31.查詢最近修改的文件:
find . -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort
32.建立目錄並進入該目錄:
mkdir /home/foo/doc/bar && cd $_
33.刪除某文件超過必定字符數(255)的行:
sed -n '/^.\{255\}/!p' test.txt
34.驗證網站服務器:
curl -Is http://www.google.com | grep -E '^Server'
35.列出目錄名:
ls -l | grep ^d | sed 's:.*\ ::g'
36.只壓縮目錄結構:
find . -type d|xargs tar rf dirstructure.tar --no-recursion
37.列出連接本機的主機:
netstat -nut | sed '/ESTABLISHED/!d;s/.*[\t ]\+.∗:.*/\1/' | sort -u
38.獲取服務器文件大小:
curl -s http://www.asp300.com/adimg/ewaydns.gif |wc -c
39.獲取當前目錄父目錄全路徑:
dirname `pwd`
40.將字符串追加到文件:
sed -i '1s/^/text to prepend\n/' file1
41.統計文件行數:
awk 'END {print NR}' /etc/passwd
42.獲取mac地址:
ifconfig | awk '/HWaddr/ { print $1, $5 }'linux