一.权限命令:
1.权限掩码
满权限:通常情况下文件满权限 666 并没有可执行权限
目录的满权限就是777 所有权限都有
umask,创建文件时默认权限=满权限-限掩码
格式:umask 权限掩码(8进制)
2. 查找文件:find
格式:find 目标目录
格式:find -name 关键字
格式:find -size c,k,M,G,T
并且 -and 或者 -or
例子: find -size -100M -or -size +10G
格式:find -atime n(天数) 访问
格式:find -mtime n(天数) 修改
3.打包和解包:tar(跟压缩不一样)
格式1:tar -cvf 目标包.tar 源文件 进行打包操作
格式2:tar -tvf 目标包.tar 查看包中的内容
格式3:tar -xvf 目标包.tar -C 目标地址 解包到指定的目标地址
格式4:tar -Avf 包1 包2 把包2中的内容追加到包1中去
格式5:tar -rvf 目标包.tar 源文件 (未打包进去的源文件,进行打包)
4.压缩和解压缩:tar
格式1: tar -zcvf 目标包.tar 源文件 将源文件压缩到目标包中(源文件越大,压缩效果越明显)
格式2: tar -zxvf 目标包.tar -C 目标地址 解压缩 gz
格式3: tar -jcvf 目标包.tar 源文件
格式4: tar -jxvf 目标包.tar -C 目标地址 bz2
5.关机命令:shutdown
格式1:shutdown -t now 现在关机
格式2:shutdown -t 10s(时间参数) 在多久(-t 后的参数)之后关机
格式3:shutdown -r 10s(时间参数) 在多久(-t 后的参数)之后重启
格式4:shutdown -f 强制关机
格式5:shutdown -c 取消关机指令
6.清屏:clear
直接输入 clear 并不是真正意义上的,而且新起一页
7.查看当前用户:who
student tty7 2022-11-18 14:45 (:0)
用户名 串口号 登录时间
补充:whoami 只显示用户名
8.显示时间和日期
格式1:date 显示当前时间和日期
格式2:date +%c 中文显示时间
格式3:date +%x 只显示年月日
格式4:date +%X 只中文显示时间
格式5:date +%D 只显示日期 月/日/年
格式6:date +%T 只显示时间
9.以网页形式查看帮助手册:info
格式:info + 命令
10.查看进程:ps
格式1:ps -au 查看正在进行的进程
USER PID %CPU %MEM VSZ RSS TTY
进程拥有者 进程ID CPU占用率 内存使用率 虚拟内存大小 串口内存 串口号
STAT START TIME COMMAND
进程状态(s代表堵塞 r正在运行 t进程暂停) 开始时间 执行时间 用哪个命令执行
11.杀死进程:kill
格式:kill + 进程ID
12.以树状图形式显示进程:pstree
13.网络命令:ifconfig
格式:ifconfig 打印网卡信息
①硬件地址:也叫mac地址,网卡地址,共48位,前24位是厂商,后24位是个人的
mac是唯一的
②逻辑地址:IP地址,十进制,比如:198.168.1.5 192.168.652.1(错误) 每个是10进制不超过255
③网关:不同局域网之间通信的中间设备 192.168.0.1 .1是网关地址
④子网掩码:用来区别网络地址和主机地址的,方便网络管理员划分网络
1对应是ip地址中的网络地址 0代表主机地址
例子:255.255.255.0 ip地址:192.168.0.74
ip地址转化为二进制:1100 0000.1010 1000. 0. 100 1010
子网掩码转化为二进制:11111111.11111111.11111111.0
⑤地址分类
A类:第一个字段是网络地址,剩下三个是主机地址 子网掩码 255.0.0.0
B类:网络地址跟主机地址都是两个 子网掩码 255.255.0.0
C类:前三个是网络地址,最后一个是主机地址 子网掩码 255.255.255.0
D类:作为组播地址
E类: 用于测试网段
⑥动态地址:
IP地址:ipv4 ipv6 ipv6是ipv4不够用的时候出现的
ipv4只有32位 ipv6 有128位
DHCP:动态主机配置协议 实现动态分配IP地址资源
⑦域名解析:
DNS:把域名或者网址解析成为IP地址,或者反解析
二.shell命令
1.shell贝壳,用户空间和内核空间进行交互的中间人
2. 条件:新系统环境安装以后,需要进行环境的配置
提高效率,使维护变得更方便
3.步骤:①新建vim,编写shell脚本 vi ***.sh
②修改文件权限: chmod chmod 777 ***.sh
③执行编写的程序 : ./ ./***.sh
4.定义变量:
定义变量时,不需要变量的类型,直接写变量名
使用变量的时候 : $变量名 ${变量名}
①打印变量名 echo 用法:echo $变量名或${变量名}
②输入read 用法:read + 变量名
③取消变量名的定义:unset 用法:unset + 变量名
④设置只读变量:readonly 用法:readonly + 变量名
注意:设置只读变量后变量值无法被修改 也不可以取消定义
5.变量的命名规则
①由数字,字母,下划线组成,可以是单个类型也可以多个(除了纯数字)而且不能以数字开头
②不能使用中文
③变量名中不能用空格
④不能用标点符号
⑤不能使用shell中的关键字
6.字符串
很多字符连接起来
两种表示方式 "pool${name}" 'pool${name}'
如果是单引号,那么输出这句话,其中的变量不会被它的值替代
如果是双引号,那么输出这句话,其中的变量会被它的值替代
字符串拼接 name=”1“”2“
练习:1.用字符串拼接的方式打印你的午饭是什么,好不好吃
2.变量用字符拼接
字符串的长度:echo ${#变量名} 例子:${#lunch}
字符串的截取:echo ${变量名:2:5} 从第2个字符之后开始截取5个字符
7.预定义变量:预先定义好的变量
$0: 打印当前脚本的文件名
$1: 打印当前脚本文件后的第一个参数
$@: 打印当前脚本文件后的所有参数
$#: 打印当前脚本文件后的所有参数的个数
$?: 打印当前脚本文件执行的上一个指令是否成功,成功则打印0,否则非0
$*: 打印当前脚本文件后的所有参数
$$: 打印当前进程ID
8.脚本文件的功能性
①作为输入语句的作用
read 变量1 变量2 变量3
②作为计算语句来使用
加法:expr 变量1 + 变量2
格式:expr 变量1 + 变量2
练习:定义2个变量,让他们进行加(+)减(-)乘(\*)除(/)求余(%)的计算
expr $a + $b
expr $a - $b
expr $a \* $b(在shell中 乘法是\*)
expr $a / $b
expr $a % $b
③关系运算符
-eq:等于(比较两个值是否相同)(==)
-ne:不等于(比较两个值是否不相同)(!=)
-gt:大于(比较前一个值是否大于后一个)(>)
-ge:大于等于(比较前一个值是否大于等于后一个)(>=)
-lt: 小于(比较前一个值是否小于后一个)(<)
-le:小于等于(比较前一个值是否小于等于后一个)(<=)
-o: 或者(||)
-a: 并且 (&&)
2.test 语句
替换 [ ]
格式:test 测试语句
3.文件运算符
-b:是判断文件是否是块设备文件
-x:判断文件是否有可执行权限
-r: 判断文件是否有可读权限
-w: 判断文件是否有可写权限
-e: 判断文件存不存在
-f: 判断文件是否为普通文件
-d: 判断是否是目录
-p: 判断文件是不是为管道文件
-s: 判断文件是否存在并且是不是空
-ot:判定第一个文件是否比第二个文件更旧
-nt:判定第一个文件是否比第二个文件更新
4.修改文件的属主和属组:chown
格式:chown 新属主 文件名 修改文件属主
格式:chown 新属组 :文件名 修改文件的属组
三.分支语句
①if语句普通
形式1: if [ num1 -eq num2 ]
then
执行语句
fi
形式2:if test num1 -eq num2
then
执行语句
fi
形式3:if ((num1 <100))
then
执行语句
fi
②if语句(否则如果)
if test 测试语句1
then
语句1
elif test 测试语句2
then
语句2
fi
如果测试语句1成立,执行语句1,如果测试语句1不成立,测试语句2成立,执行语句2
③if语句(否则)
if test 测试语句1
then
语句1
else
语句2
fi
如果测试语句1成立,执行语句1,否则执行语句2