day15--操作系統(tǒng)文件屬性

1. 作業(yè)

  1. 如何生成隨機(jī)數(shù) /dev/urandom

    生成隨機(jī)數(shù): 
    tr -cd 'a-z' </dev/urandom |head -c 5  --- 生成隨機(jī)字母信息
    -d  --- 將匹配的信息排除掉
    -c  --- 將排除的信息顯示出來
    head -c  --- 取指定信息中前幾個字符
    

02.查找數(shù)據(jù)時,排除指定子目錄不要被查找

環(huán)境設(shè)置
[root@oldboyedu ~]# mkdir /oldboy/oldboy{01..03}
[root@oldboyedu ~]# touch /oldboy/oldboy{01..03}/{a..c}.txt
[root@oldboyedu ~]# tree /oldboy
/oldboy
├── oldboy01
│?? ├── a.txt
│?? ├── b.txt
│?? └── c.txt
├── oldboy02
│?? ├── a.txt
│?? ├── b.txt
│?? └── c.txt
└── oldboy03
    ├── a.txt
    ├── b.txt
    └── c.txt
查找a.txt文件,排除b目錄不要進(jìn)行查找

方法一: find /oldboy/ ! -path "/oldboy/oldboy02*" -type f -name "*.txt"
   [root@oldboyedu ~]# find /oldboy/  -path "/oldboy/oldboy02"
   /oldboy/oldboy02
   [root@oldboyedu ~]# find /oldboy/  -path "/oldboy/oldboy02*"
   /oldboy/oldboy02
   /oldboy/oldboy02/a.txt
   /oldboy/oldboy02/b.txt
   /oldboy/oldboy02/c.txt
   [root@oldboyedu ~]# find /oldboy/  ! -path "/oldboy/oldboy02*"
   /oldboy/
   /oldboy/oldboy01
   /oldboy/oldboy01/a.txt
   /oldboy/oldboy01/b.txt
   /oldboy/oldboy01/c.txt
   /oldboy/oldboy01/oldboy.jpg
   /oldboy/oldboy03
   /oldboy/oldboy03/a.txt
   /oldboy/oldboy03/b.txt
   /oldboy/oldboy03/c.txt
   [root@oldboyedu ~]# find /oldboy/  ! -path "/oldboy/oldboy02*" -type f
   /oldboy/oldboy01/a.txt
   /oldboy/oldboy01/b.txt
   /oldboy/oldboy01/c.txt
   /oldboy/oldboy01/oldboy.jpg
   /oldboy/oldboy03/a.txt
   /oldboy/oldboy03/b.txt
   /oldboy/oldboy03/c.txt
   [root@oldboyedu ~]# find /oldboy/  ! -path "/oldboy/oldboy02*" -type f -name "*.txt"
   /oldboy/oldboy01/a.txt
   /oldboy/oldboy01/b.txt
   /oldboy/oldboy01/c.txt
   /oldboy/oldboy03/a.txt
   /oldboy/oldboy03/b.txt
   /oldboy/oldboy03/c.txt

   方法二: find /oldboy/ -path "/oldboy/oldboy02" -prune -o  -type f -name "*.txt" -print
   [root@oldboyedu ~]# find /oldboy/ -path "/oldboy/oldboy" -type f -name "*.txt"
   [root@oldboyedu ~]# find /oldboy/ -path "/oldboy/oldboy01" -o -type f -name "*.txt"
   /oldboy/oldboy01
   /oldboy/oldboy01/a.txt
   /oldboy/oldboy01/b.txt
   /oldboy/oldboy01/c.txt
   /oldboy/oldboy02/a.txt
   /oldboy/oldboy02/b.txt
   /oldboy/oldboy02/c.txt
   /oldboy/oldboy03/a.txt
   /oldboy/oldboy03/b.txt
   /oldboy/oldboy03/c.txt
   [root@oldboyedu ~]# find /oldboy/ -path "/oldboy/oldboy02" -o -type f -name "*.txt"
   [root@oldboyedu ~]# find /oldboy/ -path "/oldboy/oldboy02" -o -type f -name "*.txt"
   /oldboy/oldboy01/a.txt
   /oldboy/oldboy01/b.txt
   /oldboy/oldboy01/c.txt
   /oldboy/oldboy02
   /oldboy/oldboy02/a.txt
   /oldboy/oldboy02/b.txt
   /oldboy/oldboy02/c.txt
   /oldboy/oldboy03/a.txt
   /oldboy/oldboy03/b.txt
   /oldboy/oldboy03/c.txt
   [root@oldboyedu ~]# find /oldboy/ -path "/oldboy/oldboy02" -prune -o -type f -name "*.txt"
   /oldboy/oldboy01/a.txt
   /oldboy/oldboy01/b.txt
   /oldboy/oldboy01/c.txt
   /oldboy/oldboy02
   /oldboy/oldboy03/a.txt
   /oldboy/oldboy03/b.txt
   /oldboy/oldboy03/c.txt
   [root@oldboyedu ~]# find /oldboy/ -path "/oldboy/oldboy02" -prune -o -type f -name "*.txt" -print
   /oldboy/oldboy01/a.txt
   /oldboy/oldboy01/b.txt
   /oldboy/oldboy01/c.txt
   /oldboy/oldboy03/a.txt
   /oldboy/oldboy03/b.txt
   /oldboy/oldboy03/c.txt

03.將有txt結(jié)尾的文件找出,請批量復(fù)制到/tmp, 將文件進(jìn)行刪除

環(huán)境設(shè)置
mkdir -p /oldboy 
touch /oldboy/oldboy{01..10}.txt

將指定數(shù)據(jù)信息找出來,批量復(fù)制數(shù)據(jù)信息到指定目錄/刪除數(shù)據(jù)
   批量刪除數(shù)據(jù)命令:
   find /oldboy/  -type f -name "*.txt"|xargs rm
   批量復(fù)制數(shù)據(jù)命令:
   find /oldboy/  -type f -name "*.txt"|xargs -i cp {} /tmp
   find /oldboy/  -type f -name "*.txt"|xargs cp -t /tmp
       xargs  --- 分組命令/整合命令
   [root@oldboyedu ~]# echo {01..10}|xargs -n2
   01 02
   03 04
   05 06
   07 08
   09 10
   [root@oldboyedu ~]# echo {01..10}|xargs -n3
   01 02 03
   04 05 06
   07 08 09
   10
   [root@oldboyedu ~]# echo {01..10}|xargs -n4
   01 02 03 04
   05 06 07 08
   09 10

   [root@oldboyedu ~]# seq -w 10
   01
   02
   03
   04
   05
   06
   07
   08
   09
   10
   [root@oldboyedu ~]# seq -w 10|xargs
   01 02 03 04 05 06 07 08 09 10

2. 課程知識回顧

  1. 文件屬性文件類型:

    • (文本文件 二進(jìn)制命令文件 腳本文件 數(shù)據(jù)文件) d l c(/dev/urandom) b s
      生成隨機(jī)數(shù):
      tr -cd 'a-z' </dev/urandom |head -c 5 --- 生成隨機(jī)字母信息
      -d --- 將匹配的信息排除掉
      -c --- 將排除的信息顯示出來
      head -c --- 取指定信息中前幾個字符
  2. 文件相關(guān)的命令: file which whereis locate(updatedb-更新數(shù)據(jù)庫索引)
    find命令:
    總結(jié):

    1. 查找數(shù)據(jù)時指定的多個條件默認(rèn)是并且關(guān)系 -a and
    2. 查找數(shù)據(jù)時指定的多個條件可以是或者關(guān)系 -o or

    根據(jù)文件名稱過濾找出指定文件: -name -iname
    根據(jù)文件類型過濾找出指定文件: -type f/d/l
    根據(jù)文件大小過濾找出指定文件: -size +5M/5M/-5M k M G
    根據(jù)目錄層級過濾找出指定文件: -maxdepth -mindepth
    -maxdepth 2 -mindepth 2
    01 層 找文件 忽略
    02 層 找文件 找文件
    03 層 忽略 找文件
    04 層 忽略 找文件
    tar --- 壓縮數(shù)據(jù)命令 如何壓縮數(shù)據(jù)(zcvhPf) 如何查看數(shù)據(jù)(tf) 如何解壓數(shù)據(jù)(xf -C)

3. 文件屬性詳細(xì)說明---文件的權(quán)限說明

文件數(shù)據(jù)權(quán)限有什么:
r  read     4   讀  
w  write    2   寫
x  execute  1   執(zhí)行
-  null     0   沒有響應(yīng)權(quán)限
文件權(quán)限賦予哪些用戶:
文件屬主用戶:  監(jiān)護(hù)人    3個權(quán)限(rwx)      每三位權(quán)限為一組進(jìn)行賦予
文件屬組用戶:  親人      3個權(quán)限(rw-)      一個文件數(shù)據(jù)有9個權(quán)限位   正確是有12個權(quán)限位
文件其他用戶:  隔壁老王    3個權(quán)限(r-x)
rw-  : 6   rw-r--r-- : 644
rwx  : 7   rwxr-xr-x : 755
-w-  : 2    
結(jié)論:
1. 默認(rèn)文件權(quán)限: 644
2. 默認(rèn)目錄權(quán)限: 755

4. 文件屬性詳細(xì)說明---文件的用戶信息

系統(tǒng)中有很多不同的用戶
用戶分類:
1. 超級管理員用戶  皇帝-root   用戶編號(user id):0
2. 虛擬用戶        傀儡-nobody 用戶編號(user id):1-499(centos6)  1-999(centos7)
3. 普通用戶        平民-oldboy 用戶編號(user id):500+ (centos6)  1000+(centos7)
以上用戶都可以成為: 文件屬主 文件屬組 文件其他用戶

root oldboy01 oldboy02 oldboy03  oldgirl01 oldgirl02 oldgirl03  oldbaby01 oldbaby02  oldbaby03

/oldboy/oldboy.txt  rwx -- 
root 用戶絕對權(quán)力
root用戶組:  root oldboy01 oldboy02 oldboy03   擁有寫能力  對指定用戶分組---用戶組概念

用戶和組的關(guān)系:
1) 一個用戶 vs 一個用戶組  1對1
2) 多個用戶 vs 一個用戶組  多對1
3) 一個用戶 vs 多個用戶組  1對多
4) 多個用戶 vs 多個用戶組  多對多

5. 文件屬性詳細(xì)說明---文件的時間信息

m(modify) time --- 修改時間
a(access) time --- 訪問時間
c(change) time --- 改變時間

stat /oldboy/oldboy.txt 
Access: 2019-07-19 17:17:09.139770567 +0800
Modify: 2019-07-19 17:17:09.139770567 +0800    ******
Change: 2019-07-19 17:17:09.139770567 +0800 

查看文件:
Access: 2019-07-19 17:18:11.912090002 +0800    --- 查看文件時間信息
Modify: 2019-07-19 17:17:09.139770567 +0800
Change: 2019-07-19 17:17:09.139770567 +0800   
   
編輯文件:
Access: 2019-07-19 17:18:11.912090002 +0800
Modify: 2019-07-19 17:19:50.181449694 +0800    --- 修改文件時間信息
Change: 2019-07-19 17:19:50.181449694 +0800    --- 改變文件時間信息(文件屬性信息有變化)
   
修改文件權(quán)限: chmod 666 /oldboy/oldboy.txt 
Access: 2019-07-19 17:18:11.912090002 +0800
Modify: 2019-07-19 17:19:50.181449694 +0800
Change: 2019-07-19 17:21:44.971355330 +0800    --- 改變文件時間信息(文件屬性信息有變化)
   
date  --- 修改時間/顯示當(dāng)前時間
顯示當(dāng)前時間信息:
1) 默認(rèn)顯示時間:
   # date
   Fri Jul 19 17:26:05 CST 2019
2) 指定顯示時間格式:
   date "+%F %T 星期:%w"
   2019-07-19 17:29:05 星期:5
   
   %F: 顯示日期信息 年-月-日
   %T: 顯示時間信息 小時:分鐘:秒
   %w: 顯示星期信息 周一到周日 0~6
   %y: 顯示年份
   %Y: 顯示年份(包含世紀(jì)信息)
   %m: 顯示月份
   %d: 顯示日期 
   %H: 顯示小時信息
   %M: 顯示分鐘信息
   %S: 顯示秒信息 
   man date 可以查看顯示時間格式符號信息
   應(yīng)用: 生成不同時間的備份文件
   cp oldboy.txt oldboy_`date +%F`.txt
   
   顯示未來或過去的時間: 30  80
   [root@oldboyedu oldboy]# date   --- 當(dāng)前時間
   Fri Jul 19 17:44:55 CST 2019
   顯示過去時間:
   [root@oldboyedu oldboy]# date -d "-1 day"
   Thu Jul 18 17:45:13 CST 2019
   [root@oldboyedu oldboy]# date -d "-2 day"
   Wed Jul 17 17:45:19 CST 2019

   顯示未來時間:
   [root@oldboyedu oldboy]# date -d "+1 day"
   Sat Jul 20 17:46:02 CST 2019
   [root@oldboyedu oldboy]# date -d "+2 day"
   Sun Jul 21 17:46:05 CST 2019
   [root@oldboyedu oldboy]# 
   [root@oldboyedu oldboy]# date -d "1 day"
   Sat Jul 20 17:46:24 CST 2019
   [root@oldboyedu oldboy]# date -d "2 day"
   Sun Jul 21 17:46:26 CST 2019
   
   算自己陽壽
   [root@oldboyedu oldboy]# awk 'BEGIN{print 63*365}'
   22995
   [root@oldboyedu oldboy]# date -d "+22995 day"
   Fri Jul  3 17:49:55 CST 2082

修改時間信息:
date -s "20201010 10:10"    
[root@oldboyedu ~]# date -s "20201011"
Sun Oct 11 00:00:00 CST 2020   
   
同步時間信息:
ntpdate ntp1.aliyun.com     
   
補(bǔ)充: 文件權(quán)限位后面的點和selinux程序開啟或關(guān)閉有關(guān):
selinux程序開啟狀態(tài): 創(chuàng)建的文件(之前已有文件), 在權(quán)限位后面都會有點存在
selinux程序關(guān)閉狀態(tài): 創(chuàng)建的文件                在權(quán)限位后面都不會有點存在
selinux程序關(guān)閉之后,可以順利重啟,重新加載selinux配置文件
selinux程序再次開啟,啟動系統(tǒng)會有延遲情況,延遲時間過后,可以重啟系統(tǒng)

6. 課程知識總結(jié)

  1. 文件權(quán)限信息:
    9個權(quán)限位(12位 t-粘滯位 /tmp) 權(quán)限位分別賦予三個用戶
    權(quán)限都有什么 權(quán)限信息如何用數(shù)值表示 rwx---r-x 631
  2. 文件用戶信息:
    屬主 屬組 其他用戶
    用戶分類: 皇帝 傀儡 平民 uid編號范圍
    用戶組概念: 用戶和組的對應(yīng)關(guān)系
  3. 文件時間信息:
    文件時間有3種時間: mtime atime ctime
    系統(tǒng)時間命令: date 顯示時間/設(shè)置時間
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容