三、实用命令
3.5 组管理和权限管理
Linux组基本介绍:在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其他组的概念。
文件:
- 所有者
- 所在组
- 其他组:除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
3.5.1 文件/目录所有者
- 一般为文件的创建者,谁创建了文件,就自然成为该文件的所有者。
查看文件的所有者
指令:
ls -ahl
-a
:all
所有-h
:human
用户-l
:long
长列表形式
修改文件所有者
- 指令:
chown 用户名 文件名
:change owner
组的创建
指令:
groupadd
举例:创建fox用户,并将它放入monster组中
groupadd monster
useradd -g monster fox
查看文件/目录的所在组
- 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户的所在的组。
- 基本指令:
ls -ahl
修改文件所在的组
- 基本指令:
chgrp 组名 文件名
:change group
改变用户所在组
指令
usermod -g 组名 用户名
:user modifyusermod -d 目录名 用户名 改变该用户登陆的初始目录
3.5.2 权限介绍
- rw- r-- r--
第1个:文件的类型
-
:普通文件d
:目录l
:软链接c
:字符设备(鼠标、键盘)b
:块文件,应盘
第234个:文件所有者权限
r
:可读(read)w
:可写(write),可以修改,但是不代表可以删除该文件。删除文件的前提是有写的权限x
:可执行(execute)
- 第467个:文件所在组的用户的权限
- 第8910个:文件其他组的用户的权限
1
- 如果是文件,表示硬链接的数量
- 如果是目录,表示该目录的子目录数量
tom
:文件所有者police
:文件所在组6
:- 如果是文件,表示文件的大小
- 如果是目录,则为4096
3月18 19:24
:文件的最后修改时间ok.txt
:文件名
rwx作用到文件
r
:可读(read)w
:可写(write),可以修改,但是不代表可以删除该文件。删除文件的前提是有写的权限x
:可执行(execute)
rwx作用到目录
r
:可读(read)w
:可写(write),可以修改,目录内创建+删除+重命名目录x
:可执行(execute),可以进入该目录
3.5.3 权限管理
修改权限
- 指令:
chmod
:可以修改文件或目录的权限 基本方式:
chmod u=rwx,g=rx,o=x 文件或目录名
:指定文件或目录权限chmod o+w 文件目录名
:增加其他人的可读权限chmod a-x 文件目录名
:减少所有人的可执行权限
选项介绍
u
:所有者g
:所有组o
:其他人a
:所有人(u+g+o)
第二种方式
规则:
r
=4w
=2x
=1rwx
=4+2+1=7
chmod u=rwx,g=rx,o=x
相当于chmod 751
修改文件所有者
指令:
chown 新所有者名 文件名
chown 新所有者名:新所在组名 文件名
-R
:如果是目录,则使其目录下所有子文件夹或目录递归生效chown -R 新所有者名:新所在组名 文件名
修改文件所在组
指令:
chgrp 新组名 文件名
chgrp -R 新组名 目录名
:递归修改
3.6 定时任务调度
3.6.1 任务调度
- 任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类
- 系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,如对mysql数据库的备份
crontab
- 基本语法:
crontab [选项]
常用选项:
-e
:编辑crontab
定时任务-l
:查询crontab
任务-r
:删除当前用户所有的crontab
任务service crond restart
:重启任务调度
- 如果只是简单的任务,可以不用写脚本,直接在
crontab
中加入任务即可;对于比较复杂的任务,需要写脚本(shell脚本) 快速入门:
- 设置个人任务调度:
crontab -e
输入任务到调度文件:
*/1 * * * * ls -l /etc/ > /tmp/to.txt
- 每小时的每分钟执行
ls -l /etc/ >> /tmp/to.txt
命令
- 每小时的每分钟执行
- 保存退出后生效:
:wq
- 设置个人任务调度:
- 5个占位符的说明
项目 | 含义 | 范围 |
---|---|---|
第一个“*” | 一小时当中的第几个分钟 | 0-59 |
第二个“*” | 一天当中的第几个小时 | 0-23 |
第三个“*” | 一个月当中的第几天 | 1-31 |
第四个“*” | 一年当中的第几月 | 1-12 |
第五个“*” | 一周当中的星期几 | 0-7(0和7都代表星期热) |
- 特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思 |
, | 代表不连续的时间。比如“0 8,,1,16 * * * 命令 ”,就代表在每天的8点、12点、16点都执行一次命令 |
- | 代表连续的时间范围。比如“0 5 1-6 命令”,代表在周一到周六的凌晨5点执行命令 |
*/n | 代表每个多久执行一次。比如“/10 * 命令”,代表每隔10分钟就执行一遍命令 |
- 特定时间执行任务案例
时间 | 含义 |
---|---|
45 33 * 命令 | 在22点45分执行命令 |
0 17 1 命令 | 每周1的17点0分执行命令 |
0 5 1,15 命令 | 每月1号和15号的凌晨5点0分执行命令 |
40 4 1-5 命令 | 每周一到周五的凌晨4点40分执行命令 |
/10 4 命令 | 每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号不要同时出现 |
应用案例
每隔1分钟,将当前的日期信息,追加到
/tmp/mydate
文件中- 编写文件带有指令信息的
/home/mytask1.sh
:date >> /tmp/mydate
- 编写文件带有指令信息的
- 给
mytask1.sh
一个可执行权限
- 执行命令:
crontab -e
- 编辑指令:
*/1 * * * * /home/mytast1.sh
每天凌晨2点将mysql数据库testdb,备份到文件mydb.bak中
- 先编写一个文件
/home/mytast.sh
,写入指令:/usr/local/mysql/bin/mysqldump -uroot -proot testdb > /tmp/mydb.bak
- 给mytask.sh一个可执行权限:
chmod 744 /home/mytask.sh
- 开启任务调度:
crontab -e
,写入任务:0 2 * * * /home/mytask/sh
- 先编写一个文件
3.7 Linux磁盘分区、挂载
3.7.1 分区基础知识
mbr分区
- 最多支持4个主分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
- mbr最大只支持2TB,但拥有最好的兼容性
gtp分区
- 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
- 最大支持18EB的大容量(EB=1024PB,PB=1024TB)
- windows7 64位之后支持gtp
- windows下的磁盘分区
3.7.2 Linux分区
- 原理介绍:Linux无论有几个分区,分给哪一个目录使用,归根结底只有一个根目录,一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用了一个叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录练习起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
硬盘说明:
- linux硬盘分IDE硬盘和SCSI硬盘,目前基本上都是SCSI硬盘
对于IDE硬盘,驱动器标识符为“hdx~”
- “hd”表名分区所在设备的类型,这里指IDE硬盘。
“x”为盘号:
- a为基本盘
- b为基本从属盘
- c为辅助主盘
- d为辅助从属盘
- “~”代表分区,前4个分区用数字1到4表示,是主分区或扩展分区;从5开始就是逻辑分区
- 对于SCSI硬盘,则表示为“sdx~”,SCSI硬盘使用“sd”来表示分区所在设备的类型,其余和IDE硬盘的标识方法一样。
查看系统的分区和挂载情况
- 查看系统的分区和挂载情况的指令:
lsblk [-f]
(速记:老师不离开 -f)
3.7.3 如何增加一块硬盘
- 虚拟机添加硬盘
分区:
fdisk /dev/sdb
。开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。- m:显示命令列表
- p:显示磁盘分区,同
fdisk -1
- n:新增分区
- d:删除分区
- w:写入并推出
格式化:
mkfs -t ext4 /dev/sdb1
- 其中
ext4
是分区类型
- 其中
挂载:将一个分区与一个目录联系起来。基本指令:挂载:
mount 设备名称 挂载目录
;卸载:umount 设备名称或挂载目录
- 先创建一个
/home/newdisk
- 挂载:
mount /dev/sdb1 /home/newdisk
- 先创建一个
设置可以自动挂载(永久挂载,重启后挂载关系人存在):通过修改
/etc/fstab
实现,添加完成后,执行mount -a
即刻生效vim /etc/fstab
/dev/sdb1 /home/newdisk ext4 defaults 0 0
3.7.4 磁盘情况查询
- 基本语法:
df -h
或df -lh
查询指定目录的磁盘占用情况:
du -h /目录
-s
:指定目录占用大小汇总-h
:带计量单位-a
:含文件--max-depth=1
:子目录深度-c
:列出明细的同时,增加汇总值
举例:
以深度1的形式查询
/opt
目录下的文件大小:du -ach --max-depth=1 /opt
统计
/home
文件夹下文件的个数ls -l /home | grep "^-" | wc -l
,先列出来,再筛选,最后显示
统计
/home
文件夹下目录的个数ls -l /home | grep "^d" | wc -l
统计
/home
文件夹下文件的个数,包括子文件夹里的ls -lR /home | grep "^-" | wc -l
统计文件夹下目录的个数,包括子文件夹里的
ls -lR /home | grep "^d" | wc -l
以树状形式显示目录
- 先要安装:
yum install tree
- 再显示:
tree
- 先要安装: