sed工具find工具與壓縮打包工具基礎命令詳解

附帶上課練習題與答案

17081909109536locate命令 ?文件查找

系統上預建的文件索引數據庫/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

5a2827f7e4b9a0abe005b1eaeece4500

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95842

(1)
天策天策
上一篇 2018-04-13 16:24
下一篇 2018-04-13 17:32

相關推薦

  • 網絡基礎

    1、網絡的特征
    2、OSI模型的七層結構
    3、LAN組成

    Linux筆記 2018-06-19
  • route命令

    1. ? 使用背景 ??????? 需要接入兩個網絡,一個是部署環境所在內網環境,這個環境是上不了外網, 外網環境很可能是一個無線網絡。如果兩者都連接上,很可能導致有一方不能起作用,即外網或內網上不了,常常需要使用繁瑣的“禁用網絡連接”、“啟用網絡連接”的操作來進行內外網的切換,甚是麻煩。 ??????? 為了解決這個問題,可以使用route命令來使得同時內…

    Linux筆記 2018-05-01
  • 第十一周作業

    1、搭建php-fpm工作方式的LAMP環境,實現wordpress正常訪問

    2、什么是DML?常用SQL舉例,每個命令至少1個例子,最多不超過3個例子

    3、簡述ftp的主動和被動模式,并實現基于pam認證的vsftpd

    4、簡述NFS服務原理及配置

    5、簡述samba服務,并實現samba配置

    2018-07-20
  • Linux上如何管理文件以及創建目錄的簡便方法

    linux中的文件管理類命令;bash的兩個基本特性

    2018-05-23
  • LVS虛擬服務器相關實驗

    本節內容主要是是lvs相關性實驗,及lvs健康性檢查工具Ldirectord

    2018-07-05
欧美性久久久久