locate命令 ?文件查找
系統上預建的文件索引數據庫/var/lib/mlocate/mlocate.db
updatedb? 更新數據庫
locate -i? 忽略大小寫
locate -n ?只顯示前n行
locate -r? 使用正則表達式
適合搜索不經常修改的文件
find命令? 實時查找文件,按指定路徑搜索
考慮所搜索文件是否有可讀權限問題
語法:find [OPTION]… [查找路徑] [查找條件] [處理動作]
find? /etc/? -name? f1.sh ? ?查找etc下文件名為f1.sh的文件
find ?/etc/? -name? “*f1*” ??包含f1的文件 要加雙引號
find? /date? -inum?? 68???? 指定節點編號
find? -maxdepth 最大搜索目錄深度,指定目錄為第1級
find? -mindepth? 最小搜索目錄深度
find? -iname “文件名稱”:不區分字母大小寫
find ?-samefile name 相同inode號的文件
find ?-links ?·n 鏈接數為n的文件
find? -regex “PATTERN”:以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱
屬主、屬組查找:
find? -user查找屬主為指定用戶(UID)的文件
find? -group 查找屬組為指定組(GID)的文件
find? -uid:查找屬主為指定的UID號的文件
find? -gid:查找屬組為指定的GID號的文件
find? -nouser:查找沒有屬主的文件
find? -nogroup:查找沒有屬組的文件
文件類型查找:
find ?-type? f: 普通文件
d: 目錄文件
l: 符號鏈接文件
s:套接字文件
b: 塊設備文件
c: 字符設備文件
p: 管道文件
空文件或目錄
find? -empty?? 例如find? /app? -type d? -empty
文件大小來查找:
find? -size? [+|-]? #UNIT
常用單位:k, M, G,c(byte)
如:6k 表示(5k,6k]
如:-6k 表示[0,5k]
如:+6k 表示(6k,∞)
根據時間查找
以“天”為單位: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 以分鐘為單位:
-atime [+|-]#, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??-amin
#: [#,#+1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??-mmin
+#: [#+1,∞] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-cmin
-#: [0,#)
-mtime
-ctime
根據權限查找:
-perm [/|-] 權限值
權限值: 精確權限匹配
/權限值:任何一類(u,g,o)對象的權限中只要能一位匹配即可,或關系,+ 從centos7開始淘汰
-權限值:每一類對象都必須同時擁有指定權限,與關系
find -perm 755 會匹配權限模式恰好是755的文件
只要當任意人有寫權限時,find -perm +222就會匹配
只有當每個人都有寫權限時,find -perm -222才會匹配
只有當其它人(other)有寫權限時,find -perm -002才會匹配
例如查找/etc目錄下所有用戶都沒有寫權限的文件
答案 find /etc ! -perm +222 -ls?? ????不用加小括號
處理動作
-print:默認的處理動作,顯示至屏幕
-ls:類似于對查找到的文件執行“ls -l”命令
-delete:刪除查找到的文件
-fls file:查找到的所有文件的長格式信息保存至指定文件中
-ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令,對于每個文件執行命令之前,都會交互式要求用戶確認
-exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令
{}: 用于引用查找到的文件名稱自身
find傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性傳遞給后面的命令
例如
備份配置文件,添加.orig這個擴展名find -name “*.conf” -exec cp {} {}.orig \;
提示刪除存在時間超過3天以上的joe的臨時文件
find /tmp -ctime +3 -user joe -ok rm {} \;
在主目錄中尋找可被其它用戶寫入的文件
find ~ -perm -002 -exec chmod o-w {} \;
查找/data下的權限為644,后綴為sh的普通文件,增加執行權限
find /data –type f -perm 644 -name “*.sh” –exec chmod 755 {} \;
查看/home的目錄
find /home –type d -ls
參數替換xgrgs
find和xargs格式:find | xargs COMMAND
find /sbin -perm +7000 | xargs ls –l
-o? 或者
-a? 與
-not ,! 非
個別使用 ()需要轉義
——————————————————————-
sed工具 行編輯器 ?
使用時加 ‘ ‘
格式 ?sed [option]… ‘script’ inputfile…
script ?: 地址命令
要搜尋地址一行內容不一定選擇全部,可摘選
選項
sed? -n? 不自動打印到屏幕 ???很重要
sed? -e: 多點編輯 ???表示可以操作多次
sed? -f :/PATH/SCRIPT_FILE: 從指定文件中讀取編輯的腳本
sed? -r? :支持使用擴展正則表達式
sed? -i? .bak: 備份文件并原處編輯 ??如果修改加入的內容有空格在加個雙引號
確定地址
不給地址將對全文進行處理
單地址:
#: 指定的行,$:最后一行
/pattern/:被此處模式所能夠匹配到的每一行
地址范圍:
#,#??? 如2,9 表示第二行到第九行
#,+#?? 如10,+30? 表示10到40行
/pat1/,/pat2/?? 匹配到pat1的行到匹配到pat2的行
#,/pat1/
步進
1~2 奇數行 ?表示遞進處理1,3,5
2~2 偶數行 ??同上 ???2,4,6
編輯命令
d : 刪除匹配的行,并立即啟用下一輪循環
p:打印當前模式空間內容,追加到默認輸出之后
a [\]text:在指定行后面追加文本,支持使用\n實現多行追加
i [\]text:在行前面插入文本
c [\]text:替換行為單行或多行文本
w /path/somefile: 保存模式匹配的行至指定文件
r /path/somefile:讀取指定文件的文本至模式空間中匹配到的行后
=: 為模式空間中的行打印行號
!:模式空間中匹配行取反處理
例如2!d? 除了第二行全刪了
\表示開始,這樣可以加入空格
s///:查找替換,支持使用其它分隔符,s@@@,s###
替換標記:
g: 行內全局替換 ??加在s///最后面
p: 顯示替換成功的行
w /PATH/TO/SOMEFILE:將替換成功的行保存至文件中?
————————————————————————–壓縮解壓縮工具
compress ?[-dfvcVr] [-b maxbits] [file …]
-d: 解壓縮,相當于uncompress
-c: 結果輸出至標準輸出,不刪除原文件
-v: 顯示詳情
uncompress 解壓縮
zcat file.Z >file 解壓縮
gzip [OPTION]… FILE
-d: 解壓縮,相當于gunzip
-c: 將 壓縮或解壓縮 的結果輸出至標準輸出 后面可以用 >
-#:1-9,指定壓縮比,值越大壓縮比越大
zcat:??? 可以查看壓縮文件,標準輸出可以解壓縮文件
bzip2 [OPTION]… FILE …
-k: keep, 保留原文件
-d:解壓縮
-#:1-9,壓縮比,默認為9
bzcat:不顯式解壓縮的前提下查看文本文件內容
xz [OPTION]… FILE …
-k : keep, 保留原文件
-d:解壓縮
-#:1-9,壓縮比,默認為6
unxz file? 解壓xz后綴文件
xzcat: 不顯式解壓縮的前提下查看文本文件內容
zip/unzip 打包壓縮
zip ?–r ?/testdir/sysconfig /etc/sysconfig/
解包解壓縮
unzip ?sysconfig.zip
cat ?/var/log/messages | zip messages –
unzip -p ?message > message
tar? 加不加 – 都行
tar -cvfp
-c? 用來創建打包文件定義一個打包后文件名
-f? 表示后面跟個需要打包文件名
-v? 查看打包過程
-r? 追加文件到打包文件
-p? 保留原有屬性
-t?? 預覽打包內容-x? ?解壓縮默認當前目錄 ?不管什么后綴都可以
-C? 指定解壓路徑
-T? 表示要打包那些文件 ?????可以把指定的要打包文件目錄放到新文件夾
-X? 表示那些文件不打包 ?????把指定不打包文件目錄放到一個新文件夾
要切割的文件名? -b? 10M? 分割大文件為多個小文件 ???-d ?表示分割后文件前面加前綴(相當于改名)后面跟數字,默認字母
合并 cat f1.tar* > f1.tar.gz
歸檔并壓縮
-j: ?bzip2, -z: ?gzip, -J: ?xz
cpio 復制文件或歸檔
cpio命令是通過重定向的方式將文件進行打包備份,還原恢復的工具,它可以解壓以“.cpio”或者“.tar”結尾的文件
cpio [選項] > 文件名或者設備名
cpio [選項] < 文件名或者設備名
-o 將文件拷貝打包成文件或者將文件輸出到設備上
-i 解包,將打包文件解壓或將設備上的備份還原到系統
-t 預覽,查看文件內容或者輸出到設備上的文件內容
-v 顯示打包過程中的文件名稱。
-d 解包生成目錄,在cpio還原時,自動的建立目錄
-c 一種較新的存儲方式
本文是我個人上課時對老師講的一些知識點的總結整理,有不足之處還望各位諒解,歡迎指出文中的錯誤,希望可以和大家共同努力共同進步。
練習題答案http://www.www58058.com/95845
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95842