shell常用复习

2020/04/23 posted in  脚本
Tags:  #shell #linux

常用快捷键

  • Ctrl + L:清除屏幕并将当前行移到页面顶部。
  • Ctrl + U:从光标位置删除到行首。
  • Ctrl + K:从光标位置删除到行尾。
  • Ctrl + a:移到行首。
  • Ctrl + b:向行首移动一个字符,与左箭头作用相同。
  • Ctrl + e:移到行尾。
  • Ctrl + f:向行尾移动一个字符,与右箭头作用相同。
  • Alt + f:移动到当前单词的词尾。
  • Alt + b:移动到当前单词的词首。
  • Ctrl + d:删除光标位置的字符(delete)。
  • Ctrl + w:删除光标前面的单词。
  • Ctrl + t:光标位置的字符与它前面一位的字符交换位置(transpose)。
  • Alt + t:光标位置的词与它前面一位的词交换位置(transpose)。
  • Alt + l:将光标位置至词尾转为小写(lowercase)。
  • Alt + u:将光标位置至词尾转为大写(uppercase)。
  • 使用Ctrl + d的时候,如果当前行没有任何字符,会导致退出当前 Shell,所以要小心。

剪切和粘贴快捷键如下。

  • Ctrl + k:剪切光标位置到行尾的文本。
  • Ctrl + u:剪切光标位置到行首的文本。
  • Alt + d:剪切光标位置到词尾的文本。
  • Alt + Backspace:剪切光标位置到词首的文本。
  • Ctrl + y:在光标位置粘贴文本。

  • Ctrl + p:显示上一个命令,与向上箭头效果相同(previous)。

  • Ctrl + n:显示下一个命令,与向下箭头效果相同(next)。

  • Alt + <:显示第一个命令。

  • Alt + >:显示最后一个命令,即当前的命令。

  • Ctrl + o:执行历史文件里面的当前条目,并自动显示下一条命令。这对重复执行某个序列的命令很有帮助。

感叹号!的快捷键如下。

  • !!:执行上一个命令。
  • !n:执行历史文件里面行号为n的命令。
  • !-n:执行当前命令之前n条的命令。
  • !string:执行最近一个以指定字符串string开头的命令。
  • !?string:执行最近一条包含字符串string的命令。
  • string1string2:执行最近一条包含string1的命令,将其替换成string2。

()号

\((...)可以扩展成另一个命令的运行结果,该命令的所有输出都会作为返回值。
\)((...))可以扩展成整数运算的结果,详见《Bash 的算术运算》一章。

\( myvar=USER
\) echo ${!myvar}
ruanyf

$?为上一个命令的退出码,用来判断上一个命令是否执行成功。返回值是0,表示上一个命令执行成功;如果是非零,上一个命令执行失败。

字符串截数
1.最近 2.最贪婪
从前往后

#
##

从后往前

%
%%

for与while

for

类型js里面的for in
for i in "\(@"; do
echo \)i
done

while

while getopts 'lha:' OPTION; do
case "$OPTION" in
l)
echo "linuxconfig"
;;

h)
  echo "h stands for h"
  ;;

a)
  avalue="$OPTARG"
  echo "The value provided is $OPTARG"
  ;;
?)
  echo "script usage: $(basename $0) [-l] [-h] [-a somevalue]" >&2
  exit 1
  ;;

esac
done
shift "\(((\)OPTIND - 1))"

命令的参数

bash的-x参数可以在执行每一行命令之前,打印该命令。这样就不用自己输出执行的命令,一旦出错,比较容易追查。
-n:不运行脚本,只检查是否有语法错误。
-v:输出每一行语句运行结果前,会先输出该行语句。
-x:每一个命令处理完以后,先输出该命令,再进行下一个命令的处理。