Linux基础
# shell脚本运算符
# 算数运算符
| 运算符 | 说明 | 举例 |
|---|---|---|
| + | 加法 | expr $a + $b 结果为 30。 |
| - | 减法 | expr $a - $b 结果为 -10。 |
| * | 乘法 | expr $a \* $b 结果为 200。 |
| / | 除法 | expr $b / $a 结果为 2。 |
| % | 取余 | expr $b % $a 结果为 0。 |
| = | 赋值 | a=$b 将把变量 b 的值赋给 a。 |
| == | 相等。用于比较两个数字,相同则返回 true。 | [ $a == $b ] 返回 false。 |
| != | 不相等。用于比较两个数字,不相同则返回 true。 | [ $a != $b ] 返回 true。 |
# 关系运算符(常问)
| 运算符 | 说明 | 举例 |
|---|---|---|
| -eq | 检测两个数是否相等,相等返回 true。 | [ $a -eq $b ] 返回 false。 |
| -ne | 检测两个数是否不相等,不相等返回 true。 | [ $a -ne $b ] 返回 true。 |
| -gt | 检测左边的数是否大于右边的,如果是,则返回 true。 | [ $a -gt $b ] 返回 false。 |
| -lt | 检测左边的数是否小于右边的,如果是,则返回 true。 | [ $a -lt $b ] 返回 true。 |
| -ge | 检测左边的数是否大于等于右边的,如果是,则返回 true。 | [ $a -ge $b ] 返回 false。 |
| -le | 检测左边的数是否小于等于右边的,如果是,则返回 true。 | [ $a -le $b ] 返回 true。 |
# 布尔运算符
| 运算符 | 说明 | 举例 |
|---|---|---|
| ! | 非运算,表达式为 true 则返回 false,否则返回 true。 | [ ! false ] 返回 true。 |
| -o | 或运算,有一个表达式为 true 则返回 true。 | [ $a -lt 20 -o $b -gt 100 ] 返回 true。 |
| -a | 与运算,两个表达式都为 true 才返回 true。 | [ $a -lt 20 -a $b -gt 100 ] 返回 false。 |
# 逻辑运算符
| 运算符 | 说明 | 举例 |
|---|---|---|
| && | 逻辑的 AND | [[ $a -lt 100 && $b -gt 100 ]] 返回 false |
| || | 逻辑的 OR | [[ $a -lt 100 || $b -gt 100 ]] 返回 true |
# 字符串运算符
| 运算符 | 说明 | 举例 |
|---|---|---|
| = | 检测两个字符串是否相等,相等返回 true。 | [ $a = $b ] 返回 false。 |
| != | 检测两个字符串是否相等,不相等返回 true。 | [ $a != $b ] 返回 true。 |
| -z | 检测字符串长度是否为0,为0返回 true。 | [ -z $a ] 返回 false。 |
| -n | 检测字符串长度是否为0,不为0返回 true。 | [ -n "$a" ] 返回 true。 |
| $ | 检测字符串是否为空,不为空返回 true。 | [ $a ] 返回 true。 |
# 文件测试运算符
| 操作符 | 说明 | 举例 |
|---|---|---|
| -b file | 检测文件是否是块设备文件,如果是,则返回 true。 | [ -b $file ] 返回 false。 |
| -c file | 检测文件是否是字符设备文件,如果是,则返回 true。 | [ -c $file ] 返回 false。 |
| -d file | 检测文件是否是目录,如果是,则返回 true。 | [ -d $file ] 返回 false。 |
| -f file | 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 | [ -f $file ] 返回 true。 |
| -g file | 检测文件是否设置了 SGID 位,如果是,则返回 true。 | [ -g $file ] 返回 false。 |
| -k file | 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 | [ -k $file ] 返回 false。 |
| -p file | 检测文件是否是有名管道,如果是,则返回 true。 | [ -p $file ] 返回 false。 |
| -u file | 检测文件是否设置了 SUID 位,如果是,则返回 true。 | [ -u $file ] 返回 false。 |
| -r file | 检测文件是否可读,如果是,则返回 true。 | [ -r $file ] 返回 true。 |
| -w file | 检测文件是否可写,如果是,则返回 true。 | [ -w $file ] 返回 true。 |
| -x file | 检测文件是否可执行,如果是,则返回 true。 | [ -x $file ] 返回 true。 |
| -s file | 检测文件是否为空(文件大小是否大于0),不为空返回 true。 | [ -s $file ] 返回 true。 |
| -e file | 检测文件(包括目录)是否存在,如果是,则返回 true。 | [ -e $file ] 返回 true。 |
参考 Shell脚本之五 基本运算符 - fengMisaka - 博客园 (cnblogs.com) (opens new window)
# 权限管理
一般包括读,写,执行。对应字母为 r、w、x
权限粒度有拥有者、群组、其他组三种
数字权限(即 r=4,w=2,x=1 ) 比如rwx=4+2+1=7
-表示没有权限比如
rw-(可读写不可运行)十位权限表示
-rw------- (600) 只有拥有者有读写权限。 -rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。 -rwx------ (700) 只有拥有者有读、写、执行权限。 -rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。 -rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。 -rw-rw-rw- (666) 所有用户都有文件读、写权限。 -rwxrwxrwx (777) 所有用户都有读、写、执行权限。1
2
3
4
5
6
7第一位实际上表示的文件类型,有下面几种
d代表的是目录(directroy) -代表的是文件(regular file) s代表的是套字文件(socket) p代表的管道文件(pipe)或命名管道文件(named pipe) l代表的是符号链接文件(symbolic link) b代表的是该文件是面向块的设备文件(block-oriented device file) c代表的是该文件是面向字符的设备文件(charcter-oriented device file)1
2
3
4
5
6
7后面9位前3位对应拥有者权限、4-6位对应群组权限、7-9对应其他组权限
更详细的参考:Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)_wlin的博客-CSDN博客_chmod (opens new window)
# 磁盘相关
用
df -h查看磁盘占用情况使用
fdisk -l查看新磁盘是否被系统识别(可以查看所有挂载的磁盘)使用
mount -t type device dir:挂载device到dir
参考:Linux查看与挂载新磁盘_ybdesire的专栏-CSDN博客_linux 查看所有磁盘 (opens new window)
# 网络相关命令
- Linux 查看端口占用情况可以使用 lsof 和 netstat 命令
# 文本处理命令
- find 文件查找 (opens new window)
- 查找txt和pdf文件:
find . \( -name "*.txt" -o -name "*.pdf" \) -print find . -type d -print//只列出所有目录
- 查找txt和pdf文件:
- grep 文本搜索 (opens new window)
- 在多级目录中对文本递归搜索
grep "class" . -R -n
- 在多级目录中对文本递归搜索
- xargs 命令行参数转换 (opens new window)
- 将单行转化为多行输出n表示字段数
cat single.txt | xargs -n 3
- 将单行转化为多行输出n表示字段数
- sort 排序 (opens new window)
- 可以按数字或者字典序进行排序
- uniq 消除重复行 (opens new window)
- 用tr进行转换 (opens new window)
- 可以用于替换字符
- cut 按列切分文本 (opens new window)
- 截取文件的第2列和第4列
cut -f2,4 filename
- 截取文件的第2列和第4列
- paste 按列拼接文本 (opens new window)
- wc 统计行和字符的工具 (opens new window)
$wc -l file// 统计行数
- sed 文本替换利器 (opens new window)
- 可以首处替换,也可以全局替换
- awk 数据流处理工具 (opens new window)
- 这个用法就挺多的,可以过滤出每一列的数据
编辑 (opens new window)
上次更新: 2021/04/10, 21:00:03