文章目录
三、实用命令3.5 组管理和权限管理3.5.1 文件/目录所有者查看文件的所有者修改文件所有者组的创建查看文件/目录的所在组修改文件所在的组改变用户所在组
3.5.2 权限介绍rwx作用到文件rwx作用到目录
3.5.3 权限管理修改权限修改文件所有者修改文件所在组
3.6 定时任务调度3.6.1 任务调度crontab
3.7 Linux磁盘分区、挂载3.7.1 分区基础知识3.7.2 Linux分区查看系统的分区和挂载情况
3.7.3 如何增加一块硬盘3.7.4 磁盘情况查询
欢迎访问笔者个人技术博客:http://rukihuang.xyz/
三、实用命令
3.5 组管理和权限管理
Linux组基本介绍:在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其他组的概念。
文件:
所有者所在组其他组:除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
3.5.1 文件/目录所有者
一般为文件的创建者,谁创建了文件,就自然成为该文件的所有者。
查看文件的所有者
指令:ls -ahl
-a:all所有-h:human用户-l:long长列表形式
修改文件所有者
指令:chown 用户名 文件名:change owner
组的创建
指令:groupadd
举例:创建fox用户,并将它放入monster组中
groupadd monsteruseradd -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
2. 给mytask1.sh一个可执行权限
3. 执行命令:crontab -e
4. 编辑指令:*/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 -1n:新增分区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