在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
查看文件的所有者
当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。
查看文件/目录所在组
基本指令 ls –ahl
修改文件所在的组
• 基本指令:chgrp 组名 文件名
• 应用实例:使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 police 组 。
其它组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组.
在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组。
改变用户所在组
基本指令:
ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9 位说明
1)第 0 位确定文件类型(d, - , l , c , b)
2)第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
3)第 4-6 位确定所在组(同用户组的)拥有该文件的权限,—Group
4)第 7-9 位确定其他用户拥有该文件的权限 —Other
rwx 权限详解
rwx 作用到文件
rwx 作用到目录
文件及目录权限实际案例解释
ls -l 中显示的内容如下:(记住)
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
前10 个字符确定不同用户能对文件干什么
第一个字符代表文件类型: 文件 (-),目录(d),链接(l)
其余字符每 3 个一组(rwx) 读® 写(w) 执行(x)
第一组 rwx : 文件拥有者的权限是读、写和执行
第二组 rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行
第三组 r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行
rwx还可以用数字表示为: r=4,w=2,x=1 因此 rwx=4+2+1=7
1 文件:硬连接数或 目录:子目录数
root 用户
root 组
1213 文件大小(字节),如果是文件夹,显示 4096 字节
Feb 2 09:39 最后修改日期
abc 文件名
通过 chmod 指令,可以修改文件或者目录的权限
第一种方式:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
第二种方式:通过数字变更权限
规则:r=4 w=2 x=1, 则rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名 相当于 chmod 751 文件目录名
• 案例演示
将 /home/abc.txt 文件的权限修改成 rwxr-xr-x, 使用给数字的方式实现:rwx = 4+2+1 = 7;r-x = 4+1=5;r-x = 4+1 =5。所以指令为:chmod 755 /home/abc.txt
基本介绍
chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录,则使其下所有子文件或目录递归生效
10.11.2 案例演示:
基本介绍
chgrp newgroup file (改变文件的所有组)
案例演示:
police , bandit 两个组
jack, jerry: 警 察xh, xq: 土 匪
(1) 创建组
[root@hadoop1 home]# groupadd police
[root@hadoop1 home]# groupadd bandit
(2) 创建用户
[root@hadoop1 home]# useradd -g police jack
[root@hadoop1 home]# useradd -g police jerry
[root@hadoop1 home]# useradd -g bandit xh
[root@hadoop1 home]# useradd -g bandit xq
(3) jack 创建一个文件,自己可以读写,本组人可以读,其它组没人任何权限; jack 修改该文件,让其它组人可以读, 本组人可以读写
[root@hadoop1 home]# su - jack
[jack@hadoop1 ~]$ touch jack01.txt
[jack@hadoop1 ~]$ chmod 640 jack01.txt
[jack@hadoop1 ~]$ chmod o=r,g=rw jack01.txt
(4) xh 投靠 警察,看看是否可以读写.
[jack@hadoop1 ~]$ su - root
密码:
[root@hadoop1 ~]# usermod -g police xh
使用 jack 给他的家目录 /home/jack 的所在组一个 rx 的权限
[root@hadoop1 ~]# su - jack
[jack@hadoop1 home]# chmod g=rx jack/
xh 需要重新注销,再到 jack 目录就可以操作 jack 的文件
[root@hadoop1 home]# su - xh
[xh@hadoop1 jack]$ echo "hello" >> jack01.txt
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等;
2.个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。
基本语法
crontab [选项]
常用选项
任务的要求
设置任务调度文件:/etc/crontab
设置个人任务调度。执行 crontab –e 命令。接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
步骤如下
分区的方式:
原理介绍
硬盘说明
需求是给我们的 Linux 系统增加一个新的硬盘,并且挂载到/home/newdisk
如何增加一块硬盘
1)虚拟机添加硬盘
2)分区 fdisk/dev/sdb
3)格式化 mkfs -t ext4 /dev/sdb1
4)挂载 先创建一个 /home/newdisk , 挂 载 mount /dev/sdb1 /home/newdisk
5)设置可以自动挂载(永久挂载,当你重启系统,仍然可以挂载到 /home/newdisk) 。
vim /etc/fstab
/dev/sdb1 /home/newdisk ext4 defaults 0 0
具体的操作步骤整理
(1)步骤 1
在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)!
(2)步骤 2
分区命令 fdisk /dev/sdb
开始对/sdb 分区
• m 显示命令列表
• p 显示磁盘分区 同 fdisk –l
• n 新增分区
• d 删除分区
• w 写入并退出
说明: 开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w 写入分区并退出,若不保存退出输入 q.
到这里,只是分区了,还没有格式化,所以使用lsblk -f不显示其他信息。
(3)步骤 3
格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1 其中 ext4 是分区类型
(4)步骤 4
挂载: 将一个分区与一个目录联系起来,(临时挂载,重启之后这种关系就没有了)
• mount 设备名称 挂载目录
• 例如: mount /dev/sdb1 /newdisk
• umount 设备名称 或者 挂载目录
• 例如: umount /dev/sdb1 或者 umount /newdisk
(5)步骤 5
永久挂载: 当重启系统,仍然可以挂载到 /home/newdisk
通过修改/etc/fstab 实现挂载(使用命令 vim /etc/fstab);添加完成后,执行 mount –a 即刻生效
查询系统整体磁盘使用情况
基本语法 : df -h
swap分区不进行显示,这不重要
查询指定目录的磁盘占用情况
基本语法 : du -h /目录(查询指定目录的磁盘占用情况,默认为当前目录)
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
实例
查询 /opt 目录的磁盘占用情况,深度为 1,使用 du -ach --max-depth=1 /opt
工作实用指令
(1)统计/home 文件夹下文件的个数
使用命令: ls -l /home | grep “^-” | wc -l
文件都是以-开头,grep “^-” 进行过滤,wc -l 进行统计
2) 统计/home 文件夹下目录的个数
使用命令:ls -l /home | grep “^d” | wc -l
3) 统计/home 文件夹下文件的个数,包括子文件夹里的
使用命令: ls -lR /home | grep “^-” | wc -l
R表示递归,统计包括子文件中的
4) 统计文件夹下目录的个数,包括子文件夹里的
使用命令: ls -lR /home | grep “^d” | wc -l
5) 以树状显示目录结构
使用命令: yum install tree 接着输入 tree