2.23/2.24/2.25 find命令
which命令介紹
- 在Linux下搜索文件,which命令
- which命令是在PATH環境變量中去查找那些命令在哪裏
- 可查找某個命令的絕對路徑。
whereis命令介紹
- whereis命令經過預先生成的一個文件列表庫查找與給出的文件名相關文件。
- whereis 【-bms】 【文件名】
- -b:只查找二進制文件
- -m:只查找幫助文件(在man目錄下的文件)
- -s:只查找源代碼文件
locate 命令介紹
- locate命令,須要yum安裝——>yum install -y mlocate
- 在安裝後使用locate命令,會提示:locate: 沒法執行 stat () `/var/lib/mlocate/mlocate.db': 沒有那個文件或目錄——>是由於尚未產生db這個文件,就是這個文件所產生的一個數據庫
- 數據庫天天凌晨四點會自動生成,若想要手動生成,只須要執行updatedb命令便可
- 屬於模糊搜索
[root@hf-01 ~]# yum install -y mlocate
[root@hf-01 ~]# locate ls
locate: 沒法執行 stat () `/var/lib/mlocate/mlocate.db': 沒有那個文件或目錄
[root@hf-01 ~]# updatedb
[root@hf-01 ~]#
- 相似whereis命令,也是經過預先生成的文件列表庫來告訴用戶要查找的文件在哪,後面直接跟文件名
- locate搜索到的文件列表,無論是目錄名仍是文件名,只要包含關鍵詞,都會列出來。
ctrl相關快捷鍵
- ctrl+l 清屏
- ctrl+d 退出一個終端,至關於執行了exit,logout命令
- ctrl+c 至關於取消這條命令
- ctrl+u 在當前命令行,刪除字光標前面全部的字符
- 在命令行輸入一行命令,而後移動光標到第一個字符,按ctrl+d日後刪,是一個一個刪
- ctrl+k 在當前命令行,刪除光標後面全部的字符
- ctrl+e 將光標移動到字符的最後面
- ctrl+a 將光標移動到字符的第一個位置
find命令
which命令
- which 搜索命令的絕對路徑(搜索的目錄,默認爲 echo $ PATH 該變量下的目錄),前提必須得在默認變量下的目錄下,同時還得有執行權限,才能搜索獲得。
whereis、locate命令
- whereis命令是搜索文件的
- whichis命令,經過預先生成的一個文件列表庫查找與給出的文件名相關文件。 (有侷限性)
- whereis 【-bms】 【文件名】
- -b:只查找二進制文件
- -m:只查找幫助文件(在man目錄下的文件)
- -s:只查找源代碼文件
- locate命令——>安裝包 yum install -y mlocate (模糊搜索)
- 經過預先生成的文件列表庫來告訴用戶要查找的文件在哪,後面直接跟文件名 locate搜索到的文件列表,無論是目錄名仍是文件名,只要包含關鍵詞,都會列出來。( locate命令,不會搜索 tmp 下的文件)
- 使用須要先產生庫文件,能夠手動升級 updatedb 更新數據庫
linux基礎快捷鍵
- Linux快捷鍵使用:
- ctrl+l:清屏
- ctrl+d: 退出終端;或者輸入命令瑞出,exit 或者 logout(在行內有字符的狀況下是向後刪)
- ctrl+c:直接取消、暫停當前正在運行的進程、取消當前輸入
- ctrl+u:清除當前光標位置至最前內容
- ctrl+k:清除當前光標位置至最後內容
- ctrl+e:移動光標是末尾
- ctrl+a:移動光標是開頭
- ctrl+z:暫停進程運行 fg 能夠會以前暫停的進程
- ctrl+s:暫停動態運行的進程的屏幕 ctrl+q 恢復屏幕動態
find命令
- 根據名字查找
- find 路徑 -name 「文件名字 」 去搜索
[root@hf-01 ~]# find /etc/ -name "sshd_config"
/etc/ssh/sshd_config
[root@hf-01 ~]#
[root@hf-01 ~]# find /etc/ -name "sshd*"
/etc/sysconfig/sshd
/etc/ssh/sshd_config
/etc/pam.d/sshd
/etc/systemd/system/multi-user.target.wants/sshd.service
[root@hf-01 ~]#
- 根據文件類型查找
- find 路徑 -type 文件類型
- d(目錄)
- f(普通的文件)——>二進制的、或文本文檔均可以列出來
- l(軟連接文件)
- s、c(字符串設備文件)
- b(塊設備文件)-name
指定只要目錄去搜索
[root@hf-01 ~]# find /etc/ -type d -name "sshd*"
指定類型去搜索
[root@hf-01 ~]# find /etc/ -type f -name "sshd*"
/etc/sysconfig/sshd
/etc/ssh/sshd_config
/etc/pam.d/sshd
[root@hf-01 ~]#
stat命令
- stat命令能夠列出文件的具體信息,包括atime、ctime、mtime
- 格式:stat 文件/目錄
- stat 2.txt
- 三個時間屬性:
- Access time 爲最近訪問時間
- Modify time 爲最近建立或更改時間 (更改內容會改變時間)
- Change time 爲更改文件,更改權限,更改屬組,屬主時間(更改文件大小,也會改變)
- 根據時間查找
- 最近訪問爲atime、 最近更改(更改的是文件的內容,包括建立)爲mtime、 最近改動(更改全部者、權限、大小,隨着inode更改而更改等)爲ctime。
- ①文件的access time(atime)是在讀取文件或執行文件時更改的。
- ②文件的modified time(mtime)是在寫入文件時隨文件的內容更改而更改的。
- ③文件的change time (ctime)是在寫入文件,更改全部者、權限或連接設置時隨着inode內容更改而更改。 inode(索引節點)用來存放檔案及目錄的基本信息,包含時間信息、文檔名、全部者以及所屬組。
- 更改文件的內容即會更改mtime和ctime,但文件的ctime更改了,mtime未必會會更改,如:更改了文件權限,可是文件內容沒有變化。
- 三個time的屬性值都放在了inode中,若mtime,atime被修改,那麼inode必定會更改,既然inode更改了,那麼ctime也就會跟着更改。
- -o :或者的意思 or 查找atime更改小於一天的文件
- 查找,etc目錄下, f 類型,一天之內mtime有變更的文件(+1:當天之外,-1:當天)
[root@hf-01 ~]# find /etc/ -type f -mtime -1
/etc/tuned/active_profile
/etc/resolv.conf
[root@hf-01 ~]#
- 查找,etc目錄下, f 類型,一天之內mtime有變更的,且文件名以conf結尾的文件
[root@hf-01 ~]# find /etc/ -type f -mtime -1 -name "*.conf"
/etc/resolv.conf
[root@hf-01 ~]#
- 查找,etc目錄下, f 類型,或者一天之內mtime有變更的,或者文件名以conf結尾的文件
[root@hf-01 ~]# find /etc/ -type f -o -mtime -1 -o -name "*.conf"
- 查找,etc目錄下, f 類型,小於60分鐘內改動過,且文件名以conf結尾的文件
[root@hf-01 ~]# find /etc/ -type f -mmin -60 -name "*.conf"
- find查找文件的硬連接
[root@hf-01 ~]# ls -l 1_heard.txt
-rw-r--r-- 2 root root 0 2月 13 22:31 1_heard.txt
[root@hf-01 ~]# ls -i 1_heard.txt
76239367 1_heard.txt
[root@hf-01 ~]# find / -inum 76239367
/root/1_heard.txt
/tmp/1.txt.bak
[root@hf-01 ~]#
- 使用find查找inode號,來找到這個硬連接文件
- find查找到文件後,直接顯示出結果
- find 【路徑】【參數】 -exec 【命令】 { } (這是空格);
[root@hf-01 ~]# find /etc/ -type f -mtime -1 -name "*.conf" -exec ls -l {} \;
-rw-r--r-- 1 root root 54 2月 13 17:04 /etc/resolv.conf
[root@hf-01 ~]#
- 查找,根目錄下, f 類型,小於60分鐘內改動過,把查找到的結果顯示出來
find / -type f -mmin -60 -exec ls -l {} \;
- 查找,根目錄下, f 類型,小於60分鐘內改動過,把查找的結果更改成以bak結尾的文件
find / -type f -mmin -60 -exec mv {} {}.bak \;
- find根據文件大小查找
- -size 能夠查看 k(文件大小爲k),M(文件大小爲兆)——>小寫m會報錯
- 查找root目錄下大於10k的文件
[root@hf-01 ~]# find /root/ -size +10k
/root/.bash_history
/root/zabbix-release-3.2-1.el7.noarch.rpm
/root/shell/.fun3.sh.swp
[root@hf-01 ~]#
- 查找,root目錄下, f 類型,大於10k的文件,把查找到的結果顯示出來
[root@hf-01 ~]# find /root/ -type f -size +10k -exec ls -lh {} \;
-rw-------. 1 root root 28K 2月 10 00:20 /root/.bash_history
-rw-r--r--. 1 root root 14K 9月 14 2016 /root/zabbix-release-3.2-1.el7.noarch.rpm
-rw------- 1 root root 12K 2月 8 00:15 /root/shell/.fun3.sh.swp
[root@hf-01 ~]#
2.26 文件名後綴
這裏[root@hf-01 ~]# echo LANG
LANG
[root@hf-01 ~]# echo $LANG
zh_CN.UTF-8
[root@hf-01 ~]# stat !$
stat 2.txt.bak
文件:"2.txt.bak"
大小:0 塊:0 IO 塊:4096 普通空文件
設備:803h/2051d Inode:67189291 硬連接:1
權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
環境:unconfined_u:object_r:admin_home_t:s0
最近訪問:2017-12-31 00:14:59.034915638 +0800
最近更改:2017-12-31 00:14:59.034915638 +0800
最近改動:2017-12-31 00:14:59.034915638 +0800
建立時間:-
[root@hf-01 ~]#
``