find,正則表示式,linux三劍客之grep
筆記
1、每個月的3號、5號和15號,而且這天是星期六時執行
00 00 3,5,15 * 6
2、每天的3點到15點,每隔3分鐘執行一次
*/3 3-15 * * *
3、每週六早上2點半執行
30 02 * * 6
4、每隔兩個月的一號下午10點執行
00 22 01 */2 *
5、root密碼忘記了的解決辦法
1、重啟
2、在啟動選擇系統核心介面,按e鍵進入單使用者模式
3、找到linux16開頭行,刪除ro,並且在ro處新增rw init=/sysroot/bin/sh
4、按ctrl+x進行系統重新引導
5、執行chroot /sysroot
6、執行passwd root
7、執行touch /.autorelabel
8、執行ctrl+D重啟系統
6、yum私有倉庫的搭建步驟
1、安裝工具
yum install createrepo yum-utils nginx -y
2、建立目錄
mkdir /opt/test
3、建立包目錄
mkdir /opt/test/Packages
4、下載安裝包,下載到Packages目錄中
https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zsh-5.0.2-34.el7_8.2.x86_64.rpm
5、初始化倉庫
createrepo /opt/test
6、修改nginx的配置檔案
[root@localhost /mnt]# vim /etc/nginx/nginx.conf
# include /etc/nginx/conf.d/*.conf;
root /opt/test;
autoindex on;
7、啟動nginx
systemctl start nginx
8、新增yum源
yum-config-manager --add-repo=http://192.168.15.101
9、測試
yum install zsh -y
find
根據檔案的名稱或者屬性查詢檔案
語法格式:
find [查詢範圍] [引數]
引數:
-name:按照檔案的名字查詢檔案
-iname:按照檔案的名字查詢檔案(忽略大小寫)
-size:按照檔案的大小查詢檔案
+:大於 -:小於 沒符號:等於
-mtime:按照修改時間去查詢
+(可以省略):n天以前
-:n天以內
-atime
-ctime
-user:按照使用者的屬主查詢
-group:按照使用者的屬組查詢
-type:按照檔案的型別查詢
d:資料夾
l:連結檔案
s:套接字檔案
p:管道檔案
c:字元檔案
b:磁碟檔案
f:普通檔案
-perm:按照檔案的許可權查詢
-inum:根據index node號碼查詢
-a:並且(可以省略,預設時並且)
-o:或者
-maxdepth:查詢的目錄深度(必須放置於第一個引數位)
-exec:將find處理好的結果交給其它命令繼續處理
知識儲備:
dd:生成檔案
if:從什麼地方讀
of:寫入到什麼檔案
bs:每次寫入多少內容
count:寫入多少次
案例:
案例1:查詢/etc目錄下hosts檔案
[root@localhost ~]# find /etc/ -name 'hosts'
案例2:查詢/etc目錄下名稱中包含hosts的檔案
· [root@localhost ~]# find /etc/ -name '*hosts*'
案例3:要求把/etc目錄下,所有的普通檔案打包壓縮到/tmp目錄
[root@localhost /tmp]# tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`
知識儲備
|:前面一個命令的結果交給後面一個命令處理
xargs:把處理的文字變成以空格分割的一行
'':提前執行命令,然後將結果交給其它命令來處理
grep
linux三劍客之一,文字過濾器(根據文字內容過濾檔案)
語法格式:
grep [引數] [匹配規則] [操作物件]
引數:
-n:過濾文字時,將過濾出來的內容在檔案內的行號顯示出來
-A:匹配成功之後,將匹配行的後n行顯示出來
-B:匹配成功之後,將匹配行的前n行顯示出來
-C:匹配成功之後,將匹配行的前後各n行顯示出來
-c:只顯示匹配成功的行數
-o:只顯示匹配成功的內容
-v:方向過濾
-q:靜默輸出
-i:忽略大小寫
-l:匹配成功之後,將文字的名稱打印出來
-R | -r:遞迴匹配
-E:使用拓展正則,等價於egrep
知識儲備
$?:上一行命令執行的結果,0代表執行成功,其它數字代表執行失敗
wc:匹配行數
-l:列印匹配行數
-c:列印匹配的位元組數
在/etc目錄下,有多少個檔案包含root
[root@localhost ~]# grep -rl 'root' /etc/ | wc -l
正則表示式
1、正則表示式的分類(grep)
1、普通正則表示式
2、拓展正則表示式
2、普通正則表示式
^:以某字元開頭
$:以某字元結尾
.:匹配除換行符之外的任意單字元
*:匹配前導字元的任意個數
[]:某組字串的任意一個字元
[^]:取反
[a-z]:匹配小寫字母
[A-Z]:匹配大寫字母
[a-zA-Z]:匹配大小寫字母
[0-9]:匹配數字
\:取消轉義
():分組
\n:代表第n個分組
3、拓展正則
{}:匹配的次數
{n}:匹配n次
{n,}:至少匹配n次
{n,m}:匹配n到m次
{,m}:最多匹配m次
+:匹配至少有一個前導字元
?:匹配一個或零個前導字元
|:或
案例:
案例1:在/etc/passwd檔案中,匹配已ftp開頭的行
[root@localhost ~]# grep '^ftp' /etc/passwd
案例2:在/etc/passwd檔案中,匹配已bash結尾的行
[root@localhost ~]# grep 'bash$' /etc/passwd
案例3:匹配本機中有哪些ip
[root@localhost ~]# ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
案例4:要求將/etc/fstab中的去掉包含#開頭的行,且要求#後至少有一個空格
[root@localhost ~]# grep -vE '^#\ +' /etc/fstab
案例5:找出檔案中至少有一個空格的行
[root@localhost ~]# grep -E '\ +' xxx
案例6:將nginx.conf 檔案中已# 開頭的行和空行,全部刪除
[root@localhost ~]# grep -vE '^\ *#|^$' /etc/nginx/nginx.conf