getopts

getopts 会使用到一下 3 个变量:
OPTIND: 存放下一个要处理的参数的索引。这是 getopts 在调用过程中记住自己状态的方式。
OPTARG: 由 getopts 找到的选项所对应的参数。
OPTERR: 值为 0 或 1。指示 Bash 是否应该显示由 getopts 产生的错误信息。
getopts 命令的基本语法:

  1. # option 不能用 ""
  2. getopts [option[:]] VARIABLE

option:表示为某个脚本可以使用的选项
“:” 冒号如果某个选项(option)后面出现了冒号(”:”),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION) VARIABLE:表示将某个选项保存在变量 VARIABLE 中

echo

输出换行

shell 环境中,echo 是常用的数据命令,但有的时候,想通过“\n”使输出换行却换不了,这个时候需要增加 -e。

  1. echo -e "1\n2";
  2. # 1
  3. # 2
  4. echo -e "\\\n"
  5. #\n

同时输出多个文件

  1. echo "test"| tee -a file1 file2

如果想去掉在屏幕上的显示

  1. echo "test"| tee -a file1 file2 > /dev/null

vim

vim ~/.vimrc vim 配置文件

撤销

命令行模式下按 u

删除

删除单行内容

  • 将光标移动到需要删除的行;
  • 按一下 ESC 键,确保退出编辑模式;
  • 按两次键盘上面的 d 键,就可以删除了。

    删除给定范围的行

    如果你想要删除指定范围的行,比如从第 3 行到第 5 行,按 ESC,然后输入下面的命令,然后回车。
    $ 表示最后一行。
    gg 快速到第一行;GG 到最后一行。
    1. :3,5d

    查找替换

    先按下 ESC 然后 输入 :查找的范围s/要替换的内容/替换后的内容/g

  1. :查找的范围s/要替换的内容/替换后的内容/g
  • 查找范围

就是指定哪个区域需要进行替换,可以是整个文件,也可以是某几行。
如果只替换当前行,可以不写查找范围;
如果范围为整个文件,写一个 “%” 就行;
如果只需要替换某几行,可以写成用逗号分隔的两个数字,含义和 sed 中的类似。另外”$”符号代表文件最后一行,所以替换从第3行到最后一行的某个字符串可以写成”3,$”。

  • 要替换的内容

就是需要替换的字符串,这里可以使用正则表达式。

  • 替换后的内容

即目标字符串,如果为空,表示删除原来的字符串。

  • g

表示替换掉每行所有要替换的字符串。不加 g 则只替换每行找到的第 1 个该字符串。

  1. # 以下命令将1~3行所有的se替换为si
  2. :1,3s/se/si/g
  3. # 以下命令将整个文件中每行找到的第1个se替换为si
  4. :%s/se/si/

tee

tee 命令从标准输入读取并同时写入标准输出和一个或多个文件:

  1. echo "this is a line" | tee file.txt

tee 命令的默认行为是覆盖指定的文件,与>运算符相同。要将输出附加到文件,请使用-a(—append)选项调用命令:

  1. echo "this is a line" | tee -a file.txt

如果您不希望 tee 写入标准输出,则可以将其重定向到 /dev/null:

  1. echo "this is a line" | tee file.txt >/dev/null

要将文本写到多个文件中,请将这些文件指定为tee命令的参数:

  1. echo "this is a line" | tee file_1.txt file_2.txt file_3.txt

tee 命令的另一个优点是,可以将其与 sudo 结合使用,并写入其他用户拥有的文件。要将文本追加到没有写权限的文件中,可以在 tee 之前添加 sudo:

  1. # echo 命令的输出作为输入传递到 tee,这将提升 sudo 权限并将文本写入文件。
  2. echo "this is a line" | sudo tee file.txt

date

格式: date [选项] … [+格式]
选项说明:
-d ,—date=字符串 显示指定字符串所描述的时间
格式说明:
Shell - 图1