#----------------------------------------------------------#算法
# ====> 紅色字體 -特指煮酒我的所見。加粗則爲須要重點注意。 #shell
煮酒品茶:鬱悶的緊,發佈文章說使用什麼沉餘格式。分兩章寫,作一章看吧。安全
一塊兒學shell之文件處理之一(八)app
http://cwtea.blog.51cto.com/4500217/876608ide
執行命令:xargs工具
---------------------------------------------
查找以POSIX_OPEN_MAX 符號
[root@localhost test]# grep POSIX_OPEN_MAX /dev/null $(find /usr/include -type f |sort)
/usr/include/bits/posix1_lim.h:# define _POSIX_OPEN_MAX 20
/usr/include/bits/posix1_lim.h:# define _POSIX_OPEN_MAX 16
/usr/include/bits/posix1_lim.h:#define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX
-----------------------------------------------
上面有可能報argument list too long錯誤,使用xargs就不會報錯。
[root@localhost test]# find /usr/include -type f |xargs grep POSIX_OPEN_MAX /dev/null
/usr/include/bits/posix1_lim.h:# define _POSIX_OPEN_MAX 20
/usr/include/bits/posix1_lim.h:# define _POSIX_OPEN_MAX 16
/usr/include/bits/posix1_lim.h:#define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX
------------------------------------------------
文件系統的空間信息
Df 磁盤可用空間,
------------------------------------------
[root@localhost test]# df -k
文件系統 1K-塊 已用 可用 已用% 掛載點
/dev/mapper/VolGroup00-LogVol00
39422564 7808928 29578744 21% /
/dev/sda1 101086 12623 83244 14% /boot
tmpfs 271872 0 271872 0% /dev/shm
[root@localhost test]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/VolGroup00-LogVol00
38G 7.5G 29G 21% /
/dev/sda1 99M 13M 82M 14% /boot
tmpfs 266M 0 266M 0% /dev/shm
------------------------------------------------------------------------
Du 磁盤空間用量
------------------------------------
[root@localhost test]# du /tmp
8 /tmp/x
4 /tmp/.ICE-unix
4 /tmp/keyring-9ed8eo
4 /tmp/.X11-unix
4 /tmp/keyring-KdKvoo
4 /tmp/svbna.tmp
4 /tmp/keyring-GEGIIR
8 /tmp/gconfd-root
4 /tmp/keyring-DGM6mE
4 /tmp/keyring-vT4uLQ
64 /tmp
[root@localhost test]# du -s /tmp
64 /tmp
[root@localhost test]# du -s /ar
du: 沒法訪問 「/ar」: 沒有那個文件或目錄
[root@localhost test]# du -s /ar
du: 沒法訪問 「/ar」: 沒有那個文件或目錄
[root@localhost test]# du -s /var
4602912 /var
---------------------------------------------------------
[root@localhost test]# du /tmp
8 /tmp/x
4 /tmp/.ICE-unix
4 /tmp/keyring-9ed8eo
4 /tmp/.X11-unix
4 /tmp/keyring-KdKvoo
4 /tmp/svbna.tmp
4 /tmp/keyring-GEGIIR
8 /tmp/gconfd-root
4 /tmp/keyring-DGM6mE
4 /tmp/keyring-vT4uLQ
64 /tmp
[root@localhost test]# du -s /tmp
64 /tmp
[root@localhost test]# du -s /ar
du: 沒法訪問 「/ar」: 沒有那個文件或目錄
[root@localhost test]# du -s /ar
du: 沒法訪問 「/ar」: 沒有那個文件或目錄
[root@localhost test]# du -s /var
4602912 /var
-h 簡易的,更適合。
[root@localhost test]# du -h /var
200K /var/www/manual/p_w_picpaths
8.0K /var/www/manual/style/latex
..............................
184K /var/run
4.4G /var
[root@localhost test]# du -h -s /var
4.4G /var
------------------------------------------------
--------------------------------------------------
查看/var/下全部空間使用量。
[root@localhost test]# du -s -k /var/* |sort -k1nr
4534260 /var/www
48696 /var/lib
15392 /var/cache
......................
--------------------------------------------------
系統配額(quota)
比較文件:
CMP與DIFF
----------------------------------
CMP對比
[root@localhost test]# cat one
jlksdddn
d'sdf
sdf
sdf
s
dfs
d
fa
d
fa
df
[root@localhost test]# cat two
jlksdddn
dsdsd'sdf
sdfdsd
sdfdsd
ss123
dfs1231
da daf
fadsf
fa
df
Ajkjlj
[root@localhost test]# cmp one two
one two differ: byte 11, line 2
[root@localhost test]# echo $?
1 #非零爲有不一樣。
DIFF比較不一樣之處
------------------------------------------------
[root@localhost test]# diff one two
2,9c2,8
< d'sdf
< sdf
< sdf
< s
< dfs
< d
< fa
< d
---
> dsdsd'sdf
> sdfdsd
> sdfdsd
> ss123
> dfs1231
> da daf
> fadsf
12c11
<
---
> ajkjlj
-----------------------------------------
使用DIFF慣例:將舊文件做爲第一個參數。
不一樣的行會之前置左角括號的方式,對應到左邊的(第一個)文件,而前置右角括號則指的是右邊的文件。最前面的2,9c2,8爲輸入文件行編號的簡潔表示方式,指出不一樣之處以及須要編輯的操做,c表示改變,a增長,d冊除的意思。
Diff的輸出是仔細設計過的,所以其它程序可以使用它的輸出數據,例如版本修訂控制系統就使用diff管理文件連續版本之間的差別。
Patch工具程序
Path工具程序可利用diff的輸出,結合原始文件,以重建另外一個文件,由於相異的部分,一般比原始文件小不少,軟件開發人員常會經過email交換相異處的列表,再使用patch應用它。
-----------------------------------------------------
[root@localhost test]# diff -c one two >test.dif
[root@localhost test]# cat test.dif
*** one 2012-05-24 19:17:59.000000000 +0800
--- two 2012-05-24 19:18:37.000000000 +0800
***************
*** 1,12 ****
jlksdddn
! d'sdf
! sdf
! sdf
! s
! dfs
! d
! fa
! d
fa
df
!
--- 1,11 ----
jlksdddn
! dsdsd'sdf
! sdfdsd
! sdfdsd
! ss123
! dfs1231
! da daf
! fadsf
fa
df
! ajkjlj
[root@localhost test]# patch < test.dif
patching file one
[root@localhost test]# cat one
jlksdddn
dsdsd'sdf
sdfdsd
sdfdsd
ss123
dfs1231
da daf
fadsf
fa
df
ajkjlj
[root@localhost test]# diff one two
-----------------------------------------
文件校驗和匹配:
可使用file checksum取得近似線性的性能,有不少工具可用來計算文件與字符串的校驗和,包括sum、cksum,之前checksum,消息摘要工具md5與md5sum,安全性散列算法工具sha、shalsum、sha256以及sha384。Sum的實例在各平臺間都不相同。Cksum在OSF/1系統上也不相同。
-------------------------------
比較md5值
[root@localhost test]# md5sum one
f1ecea4a79a8c4341df35c324e4893ce one
-------------------------------
數字簽名認證:
Gpg
<完>