day15--操作系统文件属性

1. 作业

  1. 如何生成随机数 /dev/urandom

    生成随机数: 
    tr -cd 'a-z' </dev/urandom |head -c 5  --- 生成随机字母信息
    -d  --- 将匹配的信息排除掉
    -c  --- 将排除的信息显示出来
    head -c  --- 取指定信息中前几个字符
    

02.查找数据时,排除指定子目录不要被查找

环境设置
[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目录不要进行查找

方法一: 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结尾的文件找出,请批量复制到/tmp, 将文件进行删除

环境设置
mkdir -p /oldboy 
touch /oldboy/oldboy{01..10}.txt

将指定数据信息找出来,批量复制数据信息到指定目录/删除数据
   批量删除数据命令:
   find /oldboy/  -type f -name "*.txt"|xargs rm
   批量复制数据命令:
   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. 文件属性文件类型:

    • (文本文件 二进制命令文件 脚本文件 数据文件) d l c(/dev/urandom) b s
      生成随机数:
      tr -cd 'a-z' </dev/urandom |head -c 5 --- 生成随机字母信息
      -d --- 将匹配的信息排除掉
      -c --- 将排除的信息显示出来
      head -c --- 取指定信息中前几个字符
  2. 文件相关的命令: file which whereis locate(updatedb-更新数据库索引)
    find命令:
    总结:

    1. 查找数据时指定的多个条件默认是并且关系 -a and
    2. 查找数据时指定的多个条件可以是或者关系 -o or

    根据文件名称过滤找出指定文件: -name -iname
    根据文件类型过滤找出指定文件: -type f/d/l
    根据文件大小过滤找出指定文件: -size +5M/5M/-5M k M G
    根据目录层级过滤找出指定文件: -maxdepth -mindepth
    -maxdepth 2 -mindepth 2
    01 层 找文件 忽略
    02 层 找文件 找文件
    03 层 忽略 找文件
    04 层 忽略 找文件
    tar --- 压缩数据命令 如何压缩数据(zcvhPf) 如何查看数据(tf) 如何解压数据(xf -C)

3. 文件属性详细说明---文件的权限说明

文件数据权限有什么:
r  read     4   读  
w  write    2   写
x  execute  1   执行
-  null     0   没有响应权限
文件权限赋予哪些用户:
文件属主用户:  监护人    3个权限(rwx)      每三位权限为一组进行赋予
文件属组用户:  亲人      3个权限(rw-)      一个文件数据有9个权限位   正确是有12个权限位
文件其他用户:  隔壁老王    3个权限(r-x)
rw-  : 6   rw-r--r-- : 644
rwx  : 7   rwxr-xr-x : 755
-w-  : 2    
结论:
1. 默认文件权限: 644
2. 默认目录权限: 755

4. 文件属性详细说明---文件的用户信息

系统中有很多不同的用户
用户分类:
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 用户绝对权力
root用户组:  root oldboy01 oldboy02 oldboy03   拥有写能力  对指定用户分组---用户组概念

用户和组的关系:
1) 一个用户 vs 一个用户组  1对1
2) 多个用户 vs 一个用户组  多对1
3) 一个用户 vs 多个用户组  1对多
4) 多个用户 vs 多个用户组  多对多

5. 文件属性详细说明---文件的时间信息

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    --- 改变文件时间信息(文件属性信息有变化)
   
修改文件权限: 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  --- 修改时间/显示当前时间
显示当前时间信息:
1) 默认显示时间:
   # 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: 显示年份(包含世纪信息)
   %m: 显示月份
   %d: 显示日期 
   %H: 显示小时信息
   %M: 显示分钟信息
   %S: 显示秒信息 
   man date 可以查看显示时间格式符号信息
   应用: 生成不同时间的备份文件
   cp oldboy.txt oldboy_`date +%F`.txt
   
   显示未来或过去的时间: 30  80
   [root@oldboyedu oldboy]# date   --- 当前时间
   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     
   
补充: 文件权限位后面的点和selinux程序开启或关闭有关:
selinux程序开启状态: 创建的文件(之前已有文件), 在权限位后面都会有点存在
selinux程序关闭状态: 创建的文件                在权限位后面都不会有点存在
selinux程序关闭之后,可以顺利重启,重新加载selinux配置文件
selinux程序再次开启,启动系统会有延迟情况,延迟时间过后,可以重启系统

6. 课程知识总结

  1. 文件权限信息:
    9个权限位(12位 t-粘滞位 /tmp) 权限位分别赋予三个用户
    权限都有什么 权限信息如何用数值表示 rwx---r-x 631
  2. 文件用户信息:
    属主 属组 其他用户
    用户分类: 皇帝 傀儡 平民 uid编号范围
    用户组概念: 用户和组的对应关系
  3. 文件时间信息:
    文件时间有3种时间: mtime atime ctime
    系统时间命令: date 显示时间/设置时间
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • 一.文件类型: 预备姿势:扩展名 .avi .txt .log .shWindows: 系统根据不同的扩展名 区分...
    酷酷的伟阅读 1,269评论 0 0
  • 观其大纲 第1部分Linux的基础知识第1章Linux概述第2章Linux系统的安装KickStart开始自动安装...
    周少言阅读 1,457评论 1 10
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,707评论 0 10
  • 星耀小学亲子共成长 一一亲子共读国学经典弟子规 三年三班周滨奥读书时常25分钟 妈妈陪读
    2d9891ff8164阅读 100评论 0 0
  • 20180918 D28 01 借鉴 看到赵小妞把三个故事串联到一起,让文章结构更加清晰。 我今天学习借鉴,把自己...
    叮当_梦阅读 183评论 0 1