文章目录
- 一、Linux文件权限管理
- 二、vi/vim编辑器讲解
- 三、find命令讲解
- 四、Linux常用的符号
- 五、sudo权限管理
- 六、Linux时间命令
- 七、at命令
- 八、Linux系统服务命令
- 九、Linux文件压缩与解压
- 十、Linux软件管理
- 十一、crontab定时器
一、Linux文件权限管理
1、dr-xr-xr-x. 4 root root 4096 Jul 22 09:24 boot
- 第一列:不同用户对boot文件可以做哪些操作
- 第二列:文件的链接数
- 第三列:文件归哪一个用户所有,通常称作文件的所有者
- 第四列:文件归哪一个用户组所有,通常称作文件的所属组
- 第五列:文件的大小,单位是字节。 1kb=1024byte, 1mb=1024kb
- 第六列:文件的创建日期或者最后修改的日期
- 第七列:文件的名称
2、Linux文件系统会根据用户对文件的操作权限分为三类
- 文件的所有者(user)
- 文件的所属组(group)
- 其他用户(other)
3、d rwx r-x r-x
- 第一字符表示文件的类型
- “d” 表示是一个目录
- “-” 表示是一个文件
- “l” 表示是一个链接文件
- 后面9个字符,每3个字符是一组,一共分3组
- 第一组:描述的是文件的所有者对该文件拥有哪些操作权限
- 第二组:描述的是文件的所属组用户对该文件拥有哪些操作权限
- 第三组:描述的是其他用户对该文件拥有哪些操作权限
- 权限代表的意义
- “r” 表示拥有读权限,read的简拼
- “w” 表示拥有写权限,write的简拼
- “x” 表示拥有执行权限,execute的简拼
- “-” 表示所对应的位置权限是没有的
4、修改权限的命令
- 使用chmod命令修改文件的权限
- chmod命令文件的所有者或文件的所属组用户以及root用户有权限使用
- chmod u r file1 #给文件的所有者添加读权限
- chmod g-w file1 #文件的所属组用户去掉写权限
- chmod o x file1 #文件的其他用户添加执行权限
- chmod a r file1 #给所有用户添加读权限
- “u” -> 表示文件的所有者
- “g” -> 表示文件的所属组用户
- “o” -> 表示其他用户
- “a” -> 表示所有用户
5、文件权限的数字表示法
- “r” - 4
- “w” - 2
- “x” - 1
- “-” - 0
# 举例:
rwxrwxr-- 774
rwxrw-r-- 764
- 使用数字法修改文件的权限
- chmod 774 file1
- chmod 764 file1
6、修改文件的所有者用户
- 示例1:chown zhangsan file1
- 示例2:chown root:root file1 #同时修改文件的所有者和所属组
- chown命令只有root用户才有权限使用
7、修改文件的所属组
- chgrp zhangsan file1
- chgrp命令只有root用户才有权限使用
二、vi/vim编辑器讲解
1、功能类似于windows操作系统里的记事本,用于编辑文件
2、vi和vim的操作是一样的,vim只不过是vi的升级版本
3、vi编辑器有三种模式
- 命令行模式(默认打开一个文件时,就是处于命令行模式)
- 编辑模式(在命令行模式下,按下字母i就会进入编辑模式,在最底端显示"–INSERT–"字样。按esc退出编辑模式)
- 最后行模式(在命令行模式下,按shift :就会进入最后行模式,在最底端显示":"字样)
4、命令行模式下的操作
- 删除:连续按两下d字母,删除光标所在的这行内容
- 撤销:按字母u撤销操作
- 复制:连续按两下y字母,复制光标所在的这行内容
- 粘贴:按字母p粘贴复制的内容
- 剪切:连续按两下d字母,剪切光标所在的这行内容
- 复制多行:使用复制命令之前,先按下要复制的行数
- 删除多行:使用删除命令之前,先按下要删除的行数
- 快速移动光标
- 连续按两下g光标移动到文件头部
- 按G(shift g)光标移动到文件末尾
- 进入编辑模式
- 按i进入编辑模式
- 按A(shift a)进入编辑模式,并且光标移动到该行的末尾
- 保存并退出:按shift zz
5、在编辑模式下的操作
- 编辑模式和使用记事本编辑文件是一样的
- 按Esc退出编辑模式
6、最后行模式下的操作
- 显示行号:set nu 或 number
- 文本替换:1,$s/nologin/666/g
- 1 表示起始行
- $ 表示末尾行
- s 表示替换
- /nologin 表示待替换的内容
- /666 表示替换内容
- /g 全部替换
- 退出:q
- 强制退出:q!
- 保存并退出:wq
- 退出最后行模式(进入命令行模式)
- 按Esc键
三、find命令讲解
1、功能:根据搜索条件查找文件
2、根据文件名称搜索
代码语言:javascript复制#命令格式:find [搜索范围] [-name -iname] 关键字
#示例1:#搜索根目录下,文件名是init的所有文件(注意:这里不是模糊搜索)
find / -name init
#示例2:#搜索根目录下,文件名包含init的所有文件(模糊搜索)
find / -name *init*
#示例3:#搜索根目录下,文件名以init开头的所有文件(模糊搜素)
find / -name init*
#示例4:#搜索根目录下,文件名以init结尾的所有文件(模糊搜素)
find / -name *init
#示例5:#搜索根目录下,文件名是init的所有文件(注意:严格区分大小写,忽略大小写使用-iname选项)
find /tmp -name init
#示例6:##搜索根目录下,文件名是init的所有文件(注意:忽略大小写)
find /tmp -iname init
3、根据文件大小搜索文件
- 命令格式:find 搜索范围 文件大小(单位是数据块)
- 单位数据块
- 一个数据块大小是512字节
- 假设我们要搜索大于100MB的文件
- 1MB = 1024KB, 100MB = 102400KB
- 1KB = 1024字节,512字节=文件块,1024字节=2个文件块,1KB = 2个文件块
- 102400KB = 204800个文件块
- 命令:find / -size 204800
4、根据文件类型搜索
代码语言:javascript复制# 命令格式:find [搜索范围] [-type] [d(目录) 或 f(文件)]
#示例1:搜索根目录下,文件名包含init的所有文件,并且文件类型是目录
find / -name *init* -a -type d
#示例2:#搜索根目录下,文件名包含init的所有文件,并且文件大于10MB
find / -name *init* -a -size 20480
四、Linux常用的符号
1、| 管道符号
管道符号通常和grep命令一起使用
grep是过滤命令,可以筛选搜索内容
示例:
管道符号可以把左侧输出的内容传递给右侧的命令继续使用
2、> 输出重定向符号(覆盖)
- 把原本要输出的内容进行重定向(比如写入到指定的一个文件里)
- echo命令相当于其他编程语言里的print函数,输出调试
# 示例1:
echo "Hello World" > /tmp/file1
# 示例2:#之前写入的Hello World会被覆盖
echo "My name is zhangsan" > /tmp/file1
3、>> 输出重定向符号(追加)
代码语言:javascript复制#示例:之前吸入的My name is zhangsan不会被覆盖,追加写入
echo "I'm 18 years old." >> /tmp/file1
五、sudo权限管理
1、sudo权限管理是针对命令的
2、权限配置文件:/ect/sudoers
3、配置格式:用户名 操作主机=执行命令的用户身份 执行命令
- 配置的示例:root ALL=(ALL) ALL
- 示例1:zhangsan server1=(ALL) reboot
4、要想编辑/etc/sudoers配置文件,必须使用visudo命令打开这个配置文件,然后就可以编译了
5、演示赋予zhangsan用户重启计算机命令
代码语言:javascript复制#配置信息:zhangsan ALL=(ALL) /usr/sbin/reboot
#使用su命令切换到zhangsan用户,
su - zhangsan
#命令重启计算机
sudo reboot
6、查看用户拥有哪些sudo命令
代码语言:javascript复制sudo -l
7、查看命令的绝对路径
代码语言:javascript复制which reboot
六、Linux时间命令
1、查看系统时间:date
2、修改系统时间:date -s “2019-07-23 14:43:00”
七、at命令
1、定时任务,执行一次之后命令就结束了
2、格式:at 执行任务的时间
3、举例:
代码语言:javascript复制at 14:49
at> echo "hello world" > /tmp/at.txt
ctrl d 结束输入
八、Linux系统服务命令
1、查看系统服务命令是否启动
代码语言:javascript复制systemctl status [network(网卡服务) 或 atd(定时任务) 或 firewalld(防火墙)]
2、启动系统服务命令
代码语言:javascript复制systemctl start [系统服务]
3、关闭系统服务命令
代码语言:javascript复制systemctl stop [系统服务]
4、设置系统服务开机启动
代码语言:javascript复制systemctl enable [系统服务]
systemctl enable firewalld #开机启动防火墙服务
5、禁止系统服务开机启动
代码语言:javascript复制systemctl disable [系统服务]
systemctl disable firewalld #开机禁止启动防火墙服务
九、Linux文件压缩与解压
1、压缩和解压缩的命令
- 压缩文件
- gzip只能压缩文件,不能压缩目录
- 格式:gzip 待压缩的文件
- 示例:gzip file1
- gzip压缩的时候,原文件不会保留
- 解压文件
- 格式:gunzip 待解压的文件
- 示例:gunzip file1.gz
2、另一种压缩算法bzip2(作为了解就行了)
- 压缩文件
- 格式:bzip2 待压缩的文件
- 示例:bzip2 file1
- 解压文件
- 格式:bunzip2 待解压的文件
- 示例:bunzip2 file1.bz2 3、打包和解包命令
- 打包就是把目录变成一个文件,没有任何压缩算法
- 打包命令
- 格式:tar -选项 待打包的文件
- 示例:tar -cvf dir.tar dir
- 注意:-f参数一定要放在最后
- “-c” 打包
- “-v” 显示过程
- “-f” 签名档(打包后文件的名称)
- 解包命令
- 格式:tar -选项 解包路径
- 示例1:tar -xvf dir.tar ./ #解压到当前目录
- 示例2:tar -xvf dir.tar -C /opt/ #解压到其他目录,必须加-C(注意:C是大写的)
- “-x” 解包
4、打包的同时进行压缩
代码语言:javascript复制tar -zcvf dir.tar.gz dir
5、解包的同时进行解压缩
代码语言:javascript复制tar -zxvf dir.tar.gz -C ./
十、Linux软件管理
1、CentOS系统的软件包格式为.rpm
2、linux有2种软件管理方式
- rpm命令
- yum命令 3、rpm命令的使用
- 查看
- 示例:rpm -qa | grep ‘python’ #查看系统是否有安装python软件
- 安装
- 示例:rpm -ivh /media/Packages/zlib-devel-1.2.7-17.el7.x86_64.rpm
- 卸载
- 示例:rpm -e --nodeps zlib-devel-1.2.7-17.el7.x86_64
4、yum命令的使用
- 使用yum命令的前提,保证网络是畅通的,属于在线安装软件
- 查看
- 示例:yum list | grep ‘python’
- 安装
- 示例:yum install -y lrzsz
- 卸载
- 示例:yum remove -y lrzsz
5、我们通常使用yum安装软件,使用rpm -e --nodeps 卸载软件
十一、crontab定时器
1、crontab是周期性定时任务
2、在使用之前需要把crond服务开启
- 检查是否已经开启
systemctl status crond
- 如果没开启,则需要开启此服务
systemctl start crond
3、crontab命令的参数
- -u 可以指定某一个用户执行此任务,通常不需要加
- -e 编辑定时任务
- -l 查看当前有哪些定时任务
- -r 删除定时任务,注意:会把所有定时任务全部删除
4、一个简单的定时任务案例
代码语言:javascript复制* * * * * echo hello > /tmp/crontab.txt
5、定时任务时间解读
如果时间是时间段,可以
使用横杠(-)来表示一段连续的时间;
使用(,)表示若干不连续的时间;
使用星号(*)表示所有的时间;
使用除号(/)表示间隔时间。
6、定时任务练习题
代码语言:javascript复制10 21 * * * 命令 每天的21点10分执行命令
0 5 * * 1 命令 每周一的凌晨5点0分整执行命令
30 4 15,16 * * 命令 每月15号和16号的凌晨4点30分执行命令
*/5 4 * * * 命令 每天凌晨4点,每隔5分钟执行一次命令
0 4 * * 1-5 命令 每周一到周五的凌晨4点0分执行命令
0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令
7、删除某一个定时任务,使用crontab -e打开定时任务,然后使用dd删除保存即可
8、纠正虚拟机时间sudo date -s “2019-07-26 14:27:10”
上一篇:《Linux基础必知必会(一)》