一、文件权限
1.权限概念
权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | execute | x | 1 |
无权限 | 0 |
2.修改用户权限
#语法: chmod u/g+rwx 文件名
用户选项:
-
u:表示所属用户(root)
-
g:表示所属组用户
-
o:表示其他用户
-
a:表示所有用户
设置选项:
+:表示增加权限
-:表示撤销权限
=:表示设置权限
#给所有用户加上可读可写可执行权限 chmod a+rwx java.txt #给root用户减去rwx权限 chmod 000 java.txt
二、简单的shell脚本
# 创建了一个空的文本文件,名字叫test.sh [root@localhost ~]# touch test.sh # 使用vim编辑test.sh文件 [root@localhost ~]# vim test.sh mkdir -p god cd god echo 'hello world'>god.txt cd .. mkdir -p god2 echo '执行完成!' # 保存并退出 :wq # 给文件test.sh添加可执行权限 [root@localhost ~]# chmod u+x test.sh # 执行当前目录中的test.sh [root@localhost ~]# ./test.sh 执行完成!
三、搜索查找
1.find
find从指定目录下以递归的方式遍历各个子目录,将满足条件的文件显示在终端
#语法 find [搜索范围] [选项]
选项 | 功能描述 |
---|---|
-name<查询方式> | 按照指定的文件名查找文件 |
-usr<用户名> | 查找属于指定用户所有的文件 |
-size<文件大小> | 按照指定文件的大小查找文件 |
# 在/root目录下按照文件名的方式查找,找文件后缀名是.sh的文件 [root@localhost ~]# find /root -name "*.sh" /root/test.sh # 查找/root目录下,属于root用户的所有文件 [root@localhost ~]# find /root -user root # 查找/root目录下,大于70byte的文件 [root@localhost ~]# find /root -size +70
2.grep和管道运算符"|"
管道符:|
表示前一个指令的处理结果,输出传递给后面的命令处理
# 语法 grep [选项] 查找内容 源文件
选项 | 功能描述 |
---|---|
-n | 显示匹配行及行号 |
[root@localhost ~]# ls abc abc.txt anaconda-ks.cfg test.sh 公共 模板 视频 图片 文档 下载 音乐 桌面 [root@localhost ~]# ls | grep -n abc 1:abc 2:abc.txt [root@localhost ~]# ls /usr | grep -n t 4:etc 9:java.txt 17:tmp
3.which
查找
指令/命令
在Linux的哪个目录以及命令的全称
# 语法 which 指令/命令
[root@localhost ~]# which ls alias ls='ls --color=auto' /usr/bin/ls
四、压缩和解压缩
1.gzip/gunzip
gzip:压缩指令
gunzip:解压缩指令
# 语法 gzip/gunzip 文件夹
# 压缩abc1.txt文件和java.txt文件 [root@localhost ~]# gzip abc1.txt java.txt #解压缩test1.txt和test2.txt和test3.txt [root@localhost ~]# gunzip test1.txt.gz test2.txt.gz test3.txt.gz
2.zip/unzip
#压缩语法: zip 压缩后的文件名.zip 要压缩的文件1 要压缩的文件2 ... #解压缩的语法 unzip 压缩文件名.zip
# 下载安装zip 和 unzip [root@localhost ~]# yum install zip unzip # 压缩文件 [root@localhost ~]# zip haha.zip java.txt test.txt adding: java.txt (stored 0%) adding: test.txt (stored 0%) # 解压缩文件 [root@localhost ~]# unzip haha.zip Archive: haha.zip extracting: java.txt extracting: test.txt
3.tar
tar是Linux中最常见的压缩文件格式,格式是xxx.tar.gz
#语法 tar [选项] 压缩后的文件名 要压缩的文件1 要压缩的文件2...
选项 | 功能描述 |
---|---|
-z | 打包同时压缩 |
-c | 产生tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩/打包后的文件名 |
-x | 解压tar文件 |
[root@localhost ~]# touch test1.txt test2.txt #压缩文件一般用-zcvf [root@localhost ~]# tar -zcvf my.tar.gz test1.txt test2.txt test1.txt test2.txt #解压缩文件一般用-zxvf [root@localhost ~]# tar -zxvf my.tar.gz test1.txt test2.txt #解压到你需要的文件夹 [root@localhost ~]# tar -zxvf my.tar.gz -C abc
五、yum仓库
1.概述
Yellow dog Updater Modified
一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器
2.指令
#语法 yum [选项] [参数] 软件名
选项
选项 | 功能描述 |
---|---|
-y | 对所有的提问回答“yes” |
参数
参数 | 功能描述 |
---|---|
install | 安装软件包 |
update | 更新软件包 |
remove | 删除指定的软件包 |
check—update | 检查是否有更新的软件包 |
list | 显示软件包的信息 |
clean | 清理yum过期缓存 |
deplist | 显示yum软件包的所有依赖关系 |
# 卸载lrzsz,并且所有提示都是y [root@10-60-149-217 ~]# yum -y remove lrzsz # 安装lrzsz,并且所有提示都是y [root@10-60-149-217 ~]# yum -y install lrzsz #rz和sz对远程连接有效 虚拟机终端无效 # 上传本地文件到Linux rz # 下载Linux中的文件到本地 sz 要下载的文件 [root@10-60-149-217 ~]# sz ./haha.txt
六、进程线程类
1.ps
查看当前系统进程状态
# 语法: ps [选项] grep [-n] xxx
选项 | 功能描述 |
---|---|
-a | 所有的进程 |
-u | 显示所有的用户的所有的进程 |
-x | 显示没有终端的进程 |
#查看系统中运行的火狐进程 ps -aux|grep -n firefox #查看系统中运行的java进程 ps -aux | grep -n java
2.kill
杀死进程,或关闭进程
# 语法: kill [选项] 进程号
选项 | 功能描述 |
---|---|
-9 | 表示强迫进程立即停止 |
#查看系统中运行的火狐进程 [root@localhost ~]# -aux|grep -n firefox 215:root 5027 15.0 10.9 3011924 204352 ? Sl 15:06 0:01 /usr/lib64/firefox/firefox #杀死firefox进程 [root@localhost ~]# kill -9 5027
3.pstree(了解)
查看进程树
# 语法 pstree [选项]
选线 | 功能说明 |
---|---|
-p | 显示进程pid |
-u |
4.top(了解)
# 语法 top [选项]
选项 | 功能说明 |
---|---|
-d 秒数 | 指定top指令每隔几秒钟更新,默认时间是3秒 |
-i | 使得top不限制任何闲置或僵死进程 |
-p | 通过指定监控进程id来控制某个进程状态 |
5.netstat(了解)
显示网络统计信息和端口的占用情况
# 语法: netstat [选项] | grep [-n] 进程号
选项 | 功能描述 |
---|---|
-n | 拒绝显示别名,能显示数据的全部转换成数字 |
-l | 仅仅列出在listen(监听)的服务状态 |
-p | 表示显示哪个进程在调用 |
[root@10-60-149-217 ~]# netstat -anp | grep 7950
6.crond
crond:服务管理,可以实现系统定时任务
# 语法: crontab [选项]
选项说明 | 功能说明 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询contab定时任务 |
-r | 删除当前用户的所有contab任务 |
位数 | 含义 | 取值范围 |
---|---|---|
第一位 | 一个小时的第几分钟 | 0-59 |
第二位 | 一天中的第几小时 | 0-23 |
第三位 | 一个月中的第几天 | 1-31 |
第四位 | 一年中的第几个月 | 1-12 |
第五位 | 一周当中的星期几 | 0-7(0和7都表示星期几) |
表达式 | 解释 |
---|---|
45 22 * * * | 每天22点45分执行命令 |
0 17 * * 1 | 在每周一17点整执行命令 |
0 5 1,15 * * | 在每月的1号和15号,5点整执行命令 |
40 4 * * 1-5 | 在每周周一到周五4点40分执行命令 |
*/1 0 4 * * * | 每天4点开始,每隔10分钟执行一次 |
# 编辑定时任务 [root@localhost ~]# crontab -e # 写入内容 # 意思:每隔一分钟写入一个11到tangsen.txt文件中 */1 * * * * /bin/echo "111">>/root/tangsen.txt # 写完后保存 :wq # 查询已经编辑好的表达式 [root@localhost ~]# crontab -l */1 * * * * /bin/echo "11">>~/tangsen.txt # 删除定时任务 [root@localhost ~]# crontab -r
7.tail(持续监听文件内容)
# 语法: tail -f 要监听的文件 # 监听tangseng.txt文件内容中的变化 [root@localhost ~]# tail -f tangseng.txt
结束监听界面:Ctrl+c 或 Ctrl+z
七、ip地址
1.ifconfig
查看ip地址
#语法: [root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.96.128 netmask 255.255.255.0 broadcast 192.168.96.255
2.防火墙
# 查看防火墙的状态 [root@localhost ~]# systemctl status firewalld Active: active (running) # 表示防火墙正在运行 # 开启指定的端口号 [root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent success # 重新加载防火墙,使配置生效 [root@localhost ~]# firewall-cmd --reload success # 查看电脑上已经开放的端口号 [root@localhost ~]# firewall-cmd --zone=public --list-ports 3306/tcp 80/tcp # 关闭防火墙 [root@localhost ~]# systemctl stop firewalld # 查看防火墙的状态 [root@localhost ~]# systemctl status firewalld Active: inactive (dead) # 永久关闭防火墙(系统重启后也不会开启) [root@localhost ~]# systemctl disable firewalld # 开启防火墙 [root@localhost ~]# systemctl start firewalld # 关闭指定的端口 [root@localhost ~]# firewall-cmd --zone=public --remove-port=81/tcp --permanent success