Bash

Bash

ctrl+u/k,删除光标处向前或向后的命令串
ctrl+a/e,光标移动到命令串最前或最后
cmd &, &代表后台执行,配合数据流重定向来查看cmd执行的情况。因为&后台运行默认会直接执行结果显示在屏莫,会影响前台正在执行任务的输出。这个后台是bash的后台,而非系统,所以当bash关掉,任务也会结束
jobs 列出后台执行的任务。 输出的+ -代表最近一,二被放到后台的任务
fg %jobnumber,将后台任务调回前台

变量

  • 使用$Var ${var}
  • var=abc,设置变量
  • ""号内的$var可以解析为变量值
  • ''号内的$原样输出
  • \ 转义字符
  • $( command ) 或 command, 一串命令中的子命令,子命令先执行
  • set 可以查看所有变量。
  • $? 上一个命令返回的值
  • 子进程会继承父进程的环境变量,不会继承自定义变量

变量的读取,声明

  • read var
  • declare -[-aixr] var

变量内容的修改

变量设置方式说明
${var#keyword}从前向尾删除符合的最短字串
${var##keyword}从前向尾前删除符合的最长字串
${var%keyword}从尾向前删除符合的最短字串
${var%%keyword}从尾向前删除符合的最长字串
${va/oldstring/newstring}替换第一个oldstring
${var//oldstring/newstring}替换全部oldstring

bash 登录欢迎信息

cat /etc/issue
/etc/issue.net, telnet远程登录信息
/etc/motd 让所有用户都知道的信息

  • login shell,取得bash时要完整登录流程。读取配置文件 /etc/profile, ~/.bash_profile ~/.bash_login ~/.profile
  • non-login shell,取得bash时不需要重复登录操作。读取配置文件 ~/.bashrc /etc/man_db.conf ~/.bash_history ~/.bash_logout
  • source 配置文件,读入配置文件
  • stty -a,列出所有终端按键与按键内容

通配符

符号意义
*0到无穷多个任意字符
一定有一个任意字符
[]一定有一个括号内的字符
[-]在编码顺序内的所有字符
[^]反向选字,不再括号内中的任意字符

特殊符号

符号内容
&将命令变成后台执行
>, >>输出定向,替换与累加,代码为1, stdout
2>, 2>>输出定向,替换与累加,代码为2, stderr
2>&1>error, stdout输出到同一个设备
<,<<输入定向 ,代码为0, stdin
tee file将数据流分送到屏幕与文件
()子shell的起始与结束
{}命令区块的起始与结束

‘tar -cvf - /home | tar -xvf - -C /tmp/homepack :=’:前面的 - 代表stdin, 后面的- 代表stdout

shell脚本

  • sh -n -x 检查语法,将使用到的脚本内容显示到屏幕上,-v 将脚本内容输出到屏幕
  • #!/bin/bash ,声明使用的shell
  • source xx.sh,让shell文件在父进程执行。 sh xx.sh,会开启一个子进程执行shell文件
  • test 测试对象。可以检查一个对象是否存在
  • [ -z “${home}” ] ; echo $? ,判断符号,判断变量是否存在

Shell 默认变量

  • $#: 参数个数
  • $@: ["$1" “$2” “$3”]
  • $*: ["$1 $2 $3"]
  • shift number. 变量号码偏移量。 会从指定的number开始才算作变量。

Function

function funname(){
	xxxxx
}

function内置变量: $0 function name, $1....n,function后接的变量。

条件控制

if [ condition1 ]; then
       xxx
elif [ condition1 ]; then
       xxxx
else
      xxxx
fi

case  $var in 
       "aaa")
       xxx
       ;;
       "bbb")
       xxx
       ;;
*)
      xxxx
      ;;
esac

while [ condition ]
do
   xxxx
done

until [ condition ]
do
	xxxx
done

for var in con1 con2 con3
do
	xxxx
done 

for ((初始值; 限制值;赋值运算))
do
	xxxx
done 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值