Linux
- 一、基礎
- 01- 執行環境準備
- 02- linux的版本分類
- 02.1 內核版本
- 02.2 發行版本
- 02.3 內核和發行版本的區別:
- 03- 虛擬機安裝
- 04- 啟動linux
- 二、系統操作
- 05- 幫助命令
- 05.1 man 幫助
- 05.2 help 幫助
- 05.2.1 內部命令
- 05.2.2 外部命令
- 05.3 info 幫助
- 06- ls命令
- 06.1 -r
- 06.2 -rt
- 06.3 -R
- 06.4 -a
- 07- cp
- 08- 文本查看命令
- 08.1 cat
- 08.2 head
- 08.3 tail
- 08.4 wc
- 09- 打包壓縮 和 解壓縮
- 09.1 打包壓縮
- 09.1.1 先打包,后壓縮
- 09.1.2 直接打包并壓縮
- 09.2 解壓縮
- 10- 文本編譯器vi
- 10.1 正常模式 normal mode
- 10.2 插入模式 insert mode
- 10.3 命令模式 command mode
- 10.3.1 復制
- 10.3.2 刪除
- 10.3.3 光標移動
- 10.4 可視模式 visual mode
- 10.4.1 v 字符可視模式
- 10.4.2 V 行可視模式
- 10.4.2 ctrl V 塊可視模式
- 11- 用戶和用戶組管理及密碼管理
- 11.1 用戶
- 11.2 用戶組
- 12- su
- 12.1 普通用戶 切換到 root
- 12.1.1 su
- 12.1.2 su -
- 12.2 root 切換到 普通用戶tester
- 12.2.1 su
- 12.2.2 su -
- 13- sudo
- 14- 文件與目錄權限的表示方法
- 14.1 類型
- 14.2 權限
- 14.2.1 對于文件
- 14.2.2 對于目錄
- 14.2 chmod
- 14.3 chown
- 三、Shell
- 15- 什么是shell
- 16- 執行腳本的不同方式
- 16.1 bash filename.sh
- 16.2 ./filename.sh
- 16.3 source ./filename.sh
- 16.4 . filename.sh
- 17- 管道
- 18- 重定向
- 18.1 輸入重定向
- 18.2 輸出重定向
- 18.3 錯誤輸出重定向
- 18.4 輸出(不管錯誤還是正確)重定向
- 19- 變量
- 19.1 定義
- 19.2 變量賦值
- 19.3 變量的引用
- 19.4 取變量值
- 19.5 變量的作用范圍
- 19.6 環境變量
- 19.7 預定義變量
- 19.8 位置變量
- 20- 數組
- 21- 運算符
- 21.1 expr 用于整數值計算
- 21.2 let
- 22- 特殊字符之 括號
- 22.1 圓括號 () 和 (())
- 22.2 方括號 [] 和 [[]]
- 22.3 尖括號 重定向符號 <>
- 22.4 花括號 {}
- 23- expr
- 23.1 用expr計算一個整數運算
- 23.2 用" ` `"(兩個反引號) 將計算的結果賦值給新的變量
- 23.3 用 $() 將計算的結果賦值給新的變量
- 24- for的使用
- 25- 使用循環處理未知參數
- 26- 腳本優先級控制
- 27- 一次性計劃任務
- 28- 周期性計劃任務
- 29- 如果數據不能按照預期時間運行
- 29.1 延遲計劃任務
- 29.2 flock 鎖文件
- 三、文本操作篇
- 30- find
- 30.1 find 目錄 -name 文件名
- 30.2 find 目錄 -regex 文件名
- 30.3 find 目錄 -type x -regex 名字
- 30.4 find 目錄 -xtime xxx
一、基礎
01- 執行環境準備
常見的有三種:
1、云主機 (阿里云騰訊云)
2、無數據的PC(不推薦多系統混跑)
3、虛擬機(推薦) (在windows/mac上安裝虛擬機) (可以隨時讓虛擬機停下來)
02- linux的版本分類
02.1 內核版本
版本號 由 主版本號、次版本號、末版本號 組成
如 5.0.15
(次版本號是奇數為開發版,偶數為穩定版)
https://www.kernel.org
02.2 發行版本
開源的,經常見到的發行版本有5種
02.2.1 RedHat Enterprise Linux
軟件經過專業人員測試,有部分要收費
02.2.2 Fedora
通過組建社區來免費提供操作系統,沒有專業測試,不穩定
02.2.3 CentOS
基于RedHat Enterprise 源代碼編譯的, 免費
(結合上面兩個操作系統)
02.2.4 Debian
為linux定制了華麗的界面
02.2.5 Ubuntu
為linux定制了華麗的界面
02.3 內核和發行版本的區別:
內核版本安裝完成后沒有用戶界面和軟件,是提供硬件抽象層、硬盤以及文件系統控制的核心程序
(linux核心只有內核部分,安裝完后,用戶界面/軟件都沒有。內核是系統的心臟,是linux中最基層的代碼)
發行版本是在內核的基礎上加入了用戶界面和各種軟件的支持
(linux發行版,就是在內核的基礎上,加入用戶界面,各種軟件的支持。比如CentOS、小紅帽等等。在內核的基礎上,開發不同應用程序,組成的一個完整的操作系統)
03- 虛擬機安裝
推薦 安裝VirtualBox虛擬機
,然后在虛擬機中安裝linux系統
04- 啟動linux
登錄的shell(終端)
圖形終端
命令行終端
遠程終端(SSH、VNC)
二、系統操作
05- 幫助命令
05.1 man 幫助
man + 命令名稱
man ls
05.2 help 幫助
1、首先用type來檢測命令是內部還是外部命令
type + 命令名稱
如果顯示 xx is a shell builtin
, 這說明是內部命令
如果顯示 xx is aliased to ls --color=auto
, 這說明是外部命令
比如type cd
cd is a shell builtin
說明 cd 是 內部 命令type ls
ls is aliased to `ls --color=auto'
說明 ls 是 外部 命令
05.2.1 內部命令
help + 命令名稱
help cd
05.2.2 外部命令
命令名稱 --help
ls --help
05.3 info 幫助
info 命令名稱
info ls
linux基本操作命令是命令行
06- ls命令
06.1 -r
r(reverse) 意為逆向(配合-l使用)
06.2 -rt
ls -l -r `默認是按照文件名逆向顯示的`
ls -l -r -t `按照時間逆向顯示`
06.3 -R
06.4 -a
ls -R 遞歸顯示文件以及文件夾
ls -a 顯示隱藏文件
07- cp
cp -v 顯示復制的進度條
cp -p 復制時保留原有時間
cp -a 復制時保留原有所有屬性 時間 屬組屬主 權限
08- 文本查看命令
08.1 cat
08.2 head
08.3 tail
cat 文件名 # 顯示文件內容head -行數 文件名 # head -5 fileA 顯示文件前5行內容tail -行數 文件名 # tail -5 fileA 顯示文件最后5行內容tail -f 文件名 # 當文件內容發生變化,同步更新 比如會實時刷新的日志文件
08.4 wc
wc -l 文件名 # 用來 查看文件行數
09- 打包壓縮 和 解壓縮
09.1 打包壓縮
壓縮---> 打包+壓縮
打包
是指將一大堆文件或目錄變成一個總的文件
壓縮
則是將一個大的文件通過一些壓縮算法變成一個小文件
09.1.1 先打包,后壓縮
1). 打包命令 cvf
將dirA 打包為 dirA.tar
tar -cvf dirA.tar dirA
2). 壓縮 分兩種 gzip 或 bzip
gzip xxx.tar
gzip dirA.tar
09.1.2 直接打包并壓縮
將dirA 壓縮為dirA.tgz (tar.gz是tgz的簡稱)
tar -czvf dirA.tgz dirA/
tar -czvf dirA.tar.gz dirA/
將兩個文件夾壓縮成一個tgz
tar -czvf dirAB.tgz dirA/ dirB/
bzip打包壓縮
tar -cjvf dirA.tbz2 dirA
tar -cjvf dirA.tar.bz2 dirA
09.2 解壓縮
解包
tar -xvf dirB.tar -C ./dir # -C 后面的./dir為 執行解的包放的位置
解壓縮
tar -xzvf dirB.tgz -C ./B
tar -xjvf dirB.tar.bz2 ./B
10- 文本編譯器vi
vim 是一個同vi向上兼容的文本編輯器
10.1 正常模式 normal mode
10.2 插入模式 insert mode
有以下從正常模式到插入模式的 進入方式
i # 光標處的前一個字符進入
I # 光標處的當行某個字符前進入a # 光標處的下一個字符進入
A # 光標處的當行末尾字符后進入o # 光標處的下一行進入
O # 光標處的上一行進入
10.3 命令模式 command mode
10.3.1 復制
yy 復制當前行
5yy 復制從當前開始的5行
y$ 復制該行中從當前光標開始到結尾的字符
10.3.2 刪除
dd 刪除當前行
5dd 刪除從當前開始的5行
d$ 刪除該行中從當前光標開始到結尾的字符x 刪除光標所在的字符
r 按r后輸入要替代的字符
10.3.3 光標移動
g 移動到文本第一行
G 移動到文本最后一行^ 移動到當前行最開頭
$ 移動到當前行最末尾
10.4 可視模式 visual mode
10.4.1 v 字符可視模式
以字符來選擇
10.4.2 V 行可視模式
以行來選擇
10.4.2 ctrl V 塊可視模式
選的是上下對齊的塊
適用于刪除或增加一整塊字符
1. 刪除
按ctrl v
鍵盤上下左右選擇要刪的字符塊
按 d
被選中的字符塊就被刪掉了
2. 增加
ctrl v
鍵盤上下移動光標 選擇要添加字符塊的行
按 I (也就是shift i)(光標指向被選字符塊的首行首字符)
輸入要增加的字符 (比如 output:)
按兩次esc
被選中的字符塊的每行前面就會加上剛才新增的字符
11- 用戶和用戶組管理及密碼管理
11.1 用戶
新建用戶 useradd
刪除用戶 userdel
修改用戶密碼 passwd
修改用戶屬性 usermod
-
usermod -d /new/work/directory username
將username用戶的家目錄改為 /new/work/directory -
chage
更改用戶密碼過期信息 -
id username
查看用戶的 uid gid group
11.2 用戶組
usermod -g 用戶組1 用戶1
將 用戶1 的 組 改為 用戶組1
su -
當前用戶為root, 但要臨時切換到普通用戶下測試某功能,測試完成后恢復到原來的root用戶
12- su
su 命令用來做 root和普通用戶的相互切換
切換用戶
切換到root : su 后面 可加 可不加 root
切換到tester : su 后面 必須加 tester
tester是舉的一個普通用戶的例子
12.1 普通用戶 切換到 root
12.1.1 su
$ pwd 查看當前目錄為 /home/tester$ su 輸入root用戶密碼顯示
# pwd # 井號說明已經進入root用戶了, 查看當前目錄為 /home/tester
用 su 切換到了root 身份,但shell環境仍然是普通用戶的shell
工作目錄仍然是普通用戶的工作目錄
12.1.2 su -
$ pwd 查看當前目錄為 /home/tester$ su - 輸入密碼顯示
# pwd # 井號說明已經進入root用戶了, 查看當前目錄為 /root
用 su - 切換到了root 身份,shell環境也切換到root的shell
工作目錄變成了root的工作目錄
12.2 root 切換到 普通用戶tester
12.2.1 su
12.2.2 su -
# pwd # 井號說明當前是root用戶, 查看當前目錄為 /root# su tester shell環境仍然是root, 查看當前目錄為 /root# su - tester shell環境也切換到普通用戶, 查看當前目錄為 /home/tester
13- sudo
sudo 將某些只有root用戶可以執行的命令授權給普通用戶,普通用戶就可以在不知道root密碼時執行root指定的命令
sudo 是 以自己的身份執行其他用戶的指令, 如以普通用戶身份執行root用戶的指令
比如 只有root用戶才能執行關機操作,但如果希望普通用戶也可以執行關機,兩種方法
方法一: 告訴普通用戶root的密碼(不安全,不推薦)
方法二: 使用sudo 命令(推薦)
使用sudo 命令的操作方法
- 首先在root下配置哪些命令可以被哪些用戶執行
root用戶下 執行visudo
添加如下內容 來 賦予 普通用戶1 的shutdown 命令
普通用戶1 ALL=/sbin/shutdown
- 執行sudo 命令來 做被配置的root下的shutdown 命令
sudo shutdown -h
14- 文件與目錄權限的表示方法
0 123 456 789 xxxx xxxxxx xxxxxxxx
類型 <–權限–> 大小 時間 文件名
14.1 類型
- 普通文件
d 目錄
b 塊特殊文件
c 字符特殊文件
l 符號鏈接
f 命名管道
s 套接字文件
14.2 權限
-rw-r-xr--. 1 tester tester 11 Jul 6 17:19 test.sh
權限一共占9個位數,所以用了1-9來表示位數
123 456 789
abc def ghi
權限
abc 文件屬主的權限(用戶的權限)
def 文件屬組的權限(用戶組的權限)
ghi 其他用戶的權限(其他人的權限)
14.2.1 對于文件
r 讀 r=4
w 寫 w=2
x 執行 r=1
-rw-r-xr–. 1 tester tester 11 Jul 6 17:19 test.sh
即表示
屬主權限為rw- ,數字表示為6, 屬主有讀和寫權限
屬組權限為r-x ,數字表示為5, 屬組有讀和執行權限
屬主權限為r-- ,數字表示為4, 其他用戶有讀權限
notes
對于test.sh 文件,表示屬主沒有執行權限,屬組有執行權限
經測試,屬主不能執行
14.2.2 對于目錄
x 進入目錄
rx 顯示目錄內的文件名
wx 修改目錄內的文件名
14.2 chmod
原文件 -rw-r-xr–. 1 tester tester 11 Jul 6 17:19 test.sh
chmod 修改文件、目錄 權限
可以對權限進行 增加 減少 或 直接設置
用字符表示方法
u 對屬主設置
g 對屬組設置
o 對其他設置
> 對屬主 增加執行權限 chmod u+x test.sh> 對屬組 減少執行權限 chmod g-x test.sh> 對其他 設置為執行權限 chmod o=x test.sh> 對屬主 屬組 其他 都增加讀取權限 chmod a+r test.sh> 對屬主 屬組 其他 都增加讀寫執行權限 chmod a+r+w+x test.sh> 用數字表示方法 為所有屬性 都增加讀寫執行權限 chmod 777 test.sh
14.3 chown
chown 來 修改屬主(owner)、屬組(group)
Examples:
chown root /u Change the owner of /u to "root". 將/u的 屬主 更改為“root”chown :staff /u Change the group of /u to "staff". 將/u的 屬組 更改為“staff”chown root:staff /u Likewise, but also change its group to "staff". 將/u的 屬主 更改為“root”, 也將其屬組更改為“staff”chown -hR root /u Change the owner of /u and subfiles to "root". 將/u和子文件的 屬主更改為“root”
三、Shell
15- 什么是shell
shell是命令解釋器,用于解釋用戶對操作系統的操作
shell把用戶執行的命令翻譯給內核, 內核根據命令執行的結果,再把結果反饋給用戶
CentOS 7 默認使用的shell是bash
16- 執行腳本的不同方式
有一個內容如下的文件 /home_local/tester/testMethods.sh
來檢測不同的執行方式的異同
#!/bin/sh
pwdcd /home
16.1 bash filename.sh
在當前的終端上產生一個bash的子進程, 在子進程里執行腳本,執行完成后回到父進程
使用這種方式執行, 發現雖然沒有執行權限, 但也可以執行
腳本中顯示cd到了/home目錄, 但是執行完成后又回到了原來的目錄
執行
bash testMethods.sh結果
/home_local/tester
/home查看 pwd
/home_local/tester
16.2 ./filename.sh
產生子進程
,用#! (Sha-Bang)來解釋腳本
使用這種方式執行, 沒有執行權限時是不能執行的
腳本中顯示cd到了/home目錄, 但是執行完成后又回到了原來的目錄
先給腳本添加可執行的權限
chmod 777 testMethods.sh執行
./testMethods.sh結果
/home_local/tester
/home查看 pwd
/home_local/tester
16.3 source ./filename.sh
在當前的進程中執行
雖然沒有執行權限, 但也可以執行
腳本中顯示cd到了/home目錄, 最終當前目錄是/home
會對當前環境造成影響
執行
source ./testMethods.sh結果
/home_local/tester
/home查看 pwd
/home
16.4 . filename.sh
在當前的進程中執行
雖然沒有執行權限, 但也可以執行
腳本中顯示cd到了/home目錄, 最終當前目錄是/home
會對當前環境造成影響
執行
. testMethods.sh結果
/home_local/tester
/home查看 pwd
/home
17- 管道
管道:用于進程通信
管道符 |
將前一個命令執行的結果傳遞給后面的命令
(將前一個命令的輸出作為后一個命令的輸入)
同時會為兩個命令創建子進程
18- 重定向
將輸出到 標準輸出中的內容 輸出到 文件
18.1 輸入重定向
wc -l filename.sh 顯示文件行數
wc -l 然后在頁面中輸入任意幾行信息,按ctrl D 停止輸入, 結果顯示輸入信息的行數
wc -l < filename.sh 顯示文件行數, 用文件代替用戶輸入
輸入
wc -l testMethods.sh顯示
6 testMethods.sh
輸入
wc -l < testMethods.sh顯示
6
18.2 輸出重定向
echo "xxx" > filename.sh 覆蓋
echo "xxx" >> filename.sh 追加
18.3 錯誤輸出重定向
18.3.1 輸入一條不存在的命令 nocmd, 控制行下方顯示錯誤
bash: nocmd: command not found…
18.3.2 將錯誤輸出重定向到 err.txt
nocmd 2> err.txt
查看err.txt
cat err.txt
bash: nocmd: command not found…
18.4 輸出(不管錯誤還是正確)重定向
nocommand &> all.txt
輸出到標準輸出的輸出到文件
19- 變量
19.1 定義
有意義的變量名
不區分類型
19.2 變量賦值
為變量賦值的過程,稱為變量替換
1) 變量名=變量值 [等號左右不能出現空格]
value=2332) 使用let為變量賦值 [通常let用來計算]
let value=10+333) 將命令賦值給變量
通常是把命令的值賦給變量
l=ls4) 將命令結果賦值給變量,使用$() 或``
let c=$(ls -l /etc)
let c=`ls -l /etc`newed_file=`ls *.html -t | head -1` # 取當前目錄下最新的一個 *.html文件
bak_file="${newed_file%.*}_`date +"%y%m%d%H%M"`" # 名字后加時間戳5) 變量值有空格等特殊字符可以包含在 "" 或 '' 中
string1="hello world"
string2='hello "world"'
19.3 變量的引用
${變量名} 也可以 $變量名
19.4 取變量值
echo ${變量名}
echo $變量名
19.5 變量的作用范圍
變量的默認作用范圍 只針對當前的shell(終端)有效
如果在當前的shell產生新的子shell,或者是當前shell的平行shell或父shell,都是無效的
step1: 舉個例子 命令行中給一個變量賦值
demo_var=333
step2: 然后在一個腳本中調用該變量,并打印值
文件名 testDemo.sh
#!/bin/sh
echo demo_var=$demo_var
step3: 用兩種在當前shell執行的執行方式來執行
source test07.sh #執行結果 demo_var=333
. test07.sh #執行結果 demo_var=333
可以獲取到該變量的值
step4: 用兩種會創建子進程的執行方式來執行
bash test07.sh #執行結果 demo_var=
./test07.sh #執行結果 demo_var=
發現并不能獲取到該變量的值
改變變量的默認作用范圍 用 export
export: 希望在子進程父進程以及其他shell中可以讀到當前shell中定義的變量時, 使用export
在命令行中加上
export demo_var
step5: 加上export后 然后用兩種會創建子進程的執行方式來執行
bash test07.sh #執行結果 demo_var=333
./test07.sh #執行結果 demo_var=333
可以獲取到該變量的值
step6:當不使用變量了,可以對變量刪除, 使用unset
unset demo_var
19.6 環境變量
把變量保存在系統中,使它成為環境變量
環境變量:每個shell打開都可以獲取到的變量
1)現有的環境變量有哪些
用 env 查看
env
用echo $xxx 來輸出值
2) 當前目錄的搜索路徑
echo $PATH
我們在執行 ls echo 這類命令時, 前面是沒有帶路徑的,這些命令都沒有在當前路徑,
linux就是通過 $PATH 這個搜索路徑來找的
輸入
echo $PATH顯示
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
3) 在原來的PATH路徑上加上我們的當前目錄 /home/tester
PATH=$PATH:/home/tester
就有當期的目錄了,可以直接執行
test0717.sh
19.7 預定義變量
echo $? # 上一條命令的執行結果(是否成功)
echo $$ # 顯示進程的id號
echo $0 # 顯示當前的進程名稱
19.8 位置變量
為shell腳本添加參數
test0717.sh
如果第二個參數有值, 則用傳來的值
如果第二個參數沒有值, 則用_來代替
#!/bin/sh
echo para1=$1
echo para2=${2-_}
輸入
./test0717.sh a結果
para1=a
para2=_
輸入
./test0717.sh a bbb結果
para1=a
para2=bbb
20- 數組
定義一個名為IPTS的數組
Array=( 10.0.0.1 10.0.0.2 10.0.0.3)
1)第一個元素
輸入
echo ${Array}顯示 第一個元素
10.0.0.1
2)所有元素的列表
輸入
echo ${Array[@]}顯示 所有元素的列表
10.0.0.1 10.0.0.2 10.0.0.3
3)元素個數
輸入
echo ${#IPTS[@]}顯示 元素個數
3
4)下標值為1的元素
輸入
echo ${IPTS[1]}顯示 下標值為1的元素
10.0.0.2
21- 運算符
21.1 expr 用于整數值計算
1,輸入
expr 4+2 #(錯,要數字與運算符中間要加空格)顯示
4+2
2,輸入
expr 4 + 2顯示
6
3, 輸入
expr 4 + 9.0 #(錯, 數字必須是整數)顯示
expr: non-integer argument
expr算得的值如何賦給變量4, 輸入
add_value=`expr 4 + 2`
echo "add_value=$add_value"顯示
add_value=6
21.2 let
let "變量名=變量值"
1, 輸入
let b=3*4
echo $b顯示
12
值以0開頭為八進制
值以0x開頭為十六進制
雙圓括號是let命令的簡化
((a=10))((a++))echo $((10+22))
22- 特殊字符之 括號
22.1 圓括號 () 和 (())
() 產生子shell 使用圓括號會產生一個子shell,如(xyz=223)數組初始化
(()) 做算術運算 (()) 是 let 命令的簡化 ((a=8+2))
22.2 方括號 [] 和 [[]]
[] 做測試 [ 4 -gt 2 ]
[[]] 測試擴展[[ 4 > 2 ]] 做真正的測試
22.3 尖括號 重定向符號 <>
< 和> 做輸入輸出重定向 比較大小
22.4 花括號 {}
{ } 輸出范圍 ehco {0..9} 輸出0-9的數字
let 變量名=變量值
23- expr
expr (evaluate expressions的縮寫)。“表達式求值”。
Shell expr是一個功能強大。并且比較復雜的命令,它除了可以實現整數計算,還可以結合一些選項對字符串進行處理,例如計算字符串長度、字符串比>較、字符串匹配、字符串提取等。
23.1 用expr計算一個整數運算
expr \( 4 + 2 \) \* 2
12
23.2 用"
"(兩個反引號) 將計算的結果賦值給新的變量
value1=`expr \( 4 + 2 \) \* 2`
echo $value112
23.3 用 $() 將計算的結果賦值給新的變量
value2=$(expr \( 4 + 2 \) \* 2)
echo $value212
24- for的使用
for 參數 in 參數列表
do操作命令
done
參數列表的產生: 使用 命令 / 文本文件
{0..9} ---> 產生1-9的列表
/home/*.sh
for filename in ls `/home/*.shsh`
domv $filename $(basename $filename *.shsh).sh #將后綴為shsh改為sh
done
25- 使用循環處理未知參數
while [ $# -ge 1 ];
doecho "total paras=" $#if [ $1 == help ] ; thenecho '$1' =$1fishift
done
26- 腳本優先級控制
使用nice renice 調整腳本優先級
避免出現 "不可控的"死循環
27- 一次性計劃任務
設置at + 時間 + 命令查看atq
28- 周期性計劃任務
配置crontab -e查看crontab -l
29- 如果數據不能按照預期時間運行
29.1 延遲計劃任務
anacontab
29.2 flock 鎖文件
三、文本操作篇
30- find
30.1 find 目錄 -name 文件名
find /etc -name passwd 查找 /etc 目錄下文件名為passwd的文件
find . -name "*bin" 查找 當前目錄下后綴名為 bin的文件名
30.2 find 目錄 -regex 文件名
find /etc -regex .*wd 查找 /etc 目錄下以wd結尾的文件
find /etc -regex .etc.*wd 查找 /etc 目錄下含 etc且wd結尾的文件
30.3 find 目錄 -type x -regex 名字
find 目錄 -type d -regex 目錄名
find 目錄 -type f -regex 文件名
30.4 find 目錄 -xtime xxx
find 目錄 -atime xxx atime access 訪問時間
find 目錄 -ctime xxx ctime change 改變時間
find 目錄 -mtime xxx mtime modify 修改時間