文章

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. 常规用法:
1
2
3
$ grep "hello" file.txt
# 查找file.txt中包含hello的行,等价于
$ cat file.txt | grep hello
  1. 通配符:
    • .: 匹配任意一个字符
    • *: 匹配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个字符
  2. 使用正则表达式:
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 进行授权