Linux常用命令备忘
command 备忘
网络相关的命令
请参考:这里
命令 | 说明 | 示例 |
---|---|---|
env | 查看环境变量 | env, env | grep PATH |
常用命令
grep
grep(global regular expression), 全局正则表达式查找
基础语法:
1
2
3
$ grep [options] pattern [file]
# 或者
$ command | grep pattern
常用options:
-i
: 忽略大小写-v
: 反向查找,只显示不匹配的行-n
: 显示行号-c
: 只显示匹配行的数量-r
: 递归查找
关于pattern:
- 常规用法:
1
2
3
$ grep "hello" file.txt
# 查找file.txt中包含hello的行,等价于
$ cat file.txt | grep hello
- 通配符:
.
: 匹配任意一个字符*
: 匹配0个或多个字符1
$ grep "he.*o" *.txt # 在txt文件中查找he和o之间有0个或多个字符的行
[]
: 匹配中括号中的任意一个字符[^]
: 匹配不在中括号中的任意一个字符^
: 匹配行首$
: 匹配行尾\
: 转义字符\b
: 匹配单词边界\B
: 匹配非单词边界\d
: 匹配数字\D
: 匹配非数字\s
: 匹配空白字符\S
: 匹配非空白字符\w
: 匹配单词字符\W
: 匹配非单词字符|
: 或()
: 分组?
: 匹配0个或1个字符{n}
: 匹配n个字符{n,}
: 匹配至少n个字符{n,m}
: 匹配n到m个字符
- 使用正则表达式:
1
2
$ grep -e "he.*o" *.txt # 使用基本正则表达式
$ grep -E "he.*o" *.txt # 使用扩展正则表达式
Shell脚本
基础格式
1
2
3
#! /bin/bash # shebang 指定解释器
# other code ...
注意:
- 确保脚本有执行权限
需要在当前shell下生效,可以使用
source
或者.
执行脚本:1 2
$ source script.sh $ . script.sh
变量
赋值:
1
foo=bar # 注意等号两边不能有空格
使用:
1
2
3
$foo
# 或者
${foo}
数组/字典
数组:
1
2
3
4
5
6
7
8
9
10
11
# 定义数组
arr=(1 2 3 4 5)
# 获取数组元素
echo ${arr[0]}
# 获取数组长度
echo ${#arr[@]}
# 获取数组所有元素
echo ${arr[@]}
字典:
1
2
3
4
declare -A dict=([key1]=value1 [key2]=value2)
# 获取字典元素
echo ${dict[key1]}
条件判断
hints: fi是if的倒写, esac是case的倒写
1
2
3
4
5
6
7
if [ condition ]; then
# code
elif [ condition ]; then
# code
else
# code
fi
case语句:
1
2
3
4
5
6
7
8
9
10
11
case $var in
pattern1)
# code
;;
pattern2)
# code
;;
*)
# code
;;
esac
循环
for in:
1
2
3
4
for var in 1 2 3 4 5
do
# code
done
while:
1
2
3
4
while [ condition ]
do
# code
done
本文由作者按照 CC BY 4.0 进行授权