记录下linux shell 的命令

指令关键字

nohup            不挂断运行
末尾的&            表示后台运行(有些程序需要结合nohub使用)
2>&1            表示将错误输出重定向到标准输出
| awk '{print NR}'           打印行数
| awk -F " " '{print $1}'            打印第1列,从1开始数(-F 为指定分割符,默认分隔符为[ ]+)$0为整行
lsb_release           查看系统版本信息,-a为完整的,其余单独的为-i/-d/-c,如果再加上-s则会取一行的第二个值输出。可利用该信息下载对应版本安装包,如:sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

if条件

单中括号 [ 3 -gt 2 ]    是可执行程序,等价于 /usr/bin/[ 3 -gt 2],等价于 test 3 -gt 2。
对于程序:

d1='2018-01-02 12:11:00'
d2='2018-02-03 10:10:10'

需将命令更改为:if [ "$d1" > "$d2" ] ;then echo 1; else echo 2; fi才可执行

当使用如下命令时报错

if [ $d1 > $d2 ] ;then echo 1; else echo 2; fi

因为实际会执行

if [ 2018-01-02 12:11:00 > 2018-02-03 10:10:10 ] ; then echo 1; else echo 2; fi

需将命令更改为如下命令才可执行

if [ "$d1" > "$d2" ] ;then echo 1; else echo 2; fi

双中括号 [[ 3 == 2 ]]    是脚本解释程序,在与前面同样的变量设置下,运行如下程序可正常运行

if [[ $d1 > $d2 ]] ;then echo 1; else echo 2; fi

-gt -lt   作为数值的比较大小

> <      作为字符串的比较大小,在[ ] 中使用需使用\>  \<转义才能保证正确,否则会被当作重定向符号

将字符串作为命令执行

cmd='date +"%Y-%m-%d %H:%M:%S"'         # 要执行的字符串
使用 `eval $cmd`的方式执行,但必须要有承载结果集的变量,否则会被当作命令再次执行,如:
echo `eval $cmd`
或    result=`eval $cmd`
# 直接$cmd也可以执行部分命令,但对于复杂命令,在特殊符号上会有识别错误的问题

静默安装debconf

使用debconf-show命令可查看预置项,如:sudo debconf-show oracle-java8-installer可得到如下预置项:

  shared/error-oracle-license-v1-1:
  oracle-java8-installer/not_exist:
* shared/accepted-oracle-license-v1-1: true
* shared/present-oracle-license-v1-1:
  oracle-java8-installer/local:

安装oracle-java8-installer时就可利用预置项实现,无命令行输入的静默安装,如下为预置证书确认值true:

# 设置预置值
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
# 执行安装的过程中会使用该默认值
apt-get install -y oracle-java8-installer

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值