L o a d i n g . . .
SHIWIVI-文章

//sunny forever
while(life<end){
love++;
beAwesome :)}

    <
  • 主题:
  • + -
  • 清除背景
  • 禁用背景

Linux命令补充

字数:2533 写于:2021-12-29
最新更新:2022-01-23 阅读本文预计花费您8分钟

sleep延时

sleep 时间值

  • 单位默认为s(秒),可以使用m(分钟)、h(小时)、d(天)
  • sleep inf 表示无限期延时

watch周期性执行命令

watch命令来自procps-ng包,它会周期性地执行所给定的命令,且可以比较每次命令输出的不同,适合用来监控系统状态、观察命令结果的实时变化等

watch [选项] 命令

  • 默认情况下,命令每2秒刷新一次
  • -n 秒数:指定每隔多少秒刷新一次,单位为秒,最小值为0.1s
  • -d 高亮显示输出中变化的部分
  • -‌-differences[=permanent]:该选项是-d选项的完整长选项,长选项支持添加一个可选参数permanent,如果添加了该参数,watch命令将显示自第一次输出以来的所有更改,而不是对比上一次输出结果
  • -t 隐藏标题栏,默认情况下,命令首行会显示刷新时间、命令、刷新间隔等信息,该选项会将这些信息隐藏
  • -e 在命令出错时冻结输出结果,且在用户按下键盘后退出,可用来保留错误输出信息
  • -x 允许传递参数给监控的命令,如:watch -x ls -l /home/user 表示将-l和/home/user路径传递给ls命令,而不是watch命令
  • -p 精确刷新,即使刷新需要的时间超过设定的间隔时间,也会严格按照时间间隔重新刷新一次
  • -g 在命令输出发生变化时退出
  • -q 次数值:如果命令输出在给定的循环次数内没有变化,则退出
1.默认情况下,命令会在第一行输出刷新时间、所执行的命令、当前时间等信息,然后再输出命令的输出 如执行:watch ls 输出信息如下: Every 2.0s:ls VM-0-4-ubuntu: Sun Oct 27 02:24:10 2021 identifyOS.sh #本行开始为命令的实际输出信息 praC.c prac.out zsh 2. 指定刷新间隔 watch -n 4 -d df -h 3. df命令执行3次,如果每次命令输出都一致,则退出 watch -n 2 -q 3 df -h

bc计算器

bash主要是用来处理文本命令的,数值运算能力较差,只支持一些基本的整形运算,进行浮点数运算通常要借助bc计算器。bc(Basic Calculator)是一个外部命令,通常位于/usr/bin/bc/bin/bc路径下,一般情况下大多数 Linux 发行版默认都会包含这个工具,同时它也是一种编程语言,支持在命令行中进行浮点数运算,该语法支持:

  • 基本算术运算:支持加、减、乘、除和取余等基本运算
  • 浮点运算:默认情况下,bc执行整数运算,但通过设置小数点精度,可以进行浮点运算
  • 简单的变量和数组
  • 注释,以#和/* */为注释
  • 逻辑和条件操作:支持逻辑运算符如<, >, ==, !=等,可以在脚本中使用if条件语句
  • 循环:支持while和for循环,可以用来编写较为复杂的计算脚本
  • 自定义函数

命令

bc [选项] [文件]

  • 默认情况下,bc命令进行整数运算,通过scale变量可以指定小数位数,进行浮点数运算,并且打开bc时默认会打印版本信息
  • -q 安静模式,不打印版本信息、GNU提示信息,其长选项为-‌-quiet
  • -l 加载数学库,可以使用sin、sqrt等数学函数

变量

bc内部预定义了几个变量:

预定义变量
变量名 说明
scale 小数位数,默认为0
ibase 输入数值的进制,默认为10,该变量支持的值为2-16,输入的数字支持0-9和A-F,字母必须大写,小写用于声明变量名
obase 输出数值的进制,默认为10
last 上一个打印的数值(GNU拓展)
自定义变量
  • 变量名以字母开头,后面可以是任意数量的字母、数字、下划线
  • 变量名必须小写,大写字母被用来识别十六进制的数值输入

使用

1. 在命令行下,我们可以直接输入bc命令唤起bc计算器,通过quit命令退出
$ bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type 'warranty'. 12 * 5.4 64.8
2. 在进行浮点数运算时,尤其进行除法运算,需要先设置内置变量scale的值,它决定了计算结果保留的小数位数,默认为0
$ bc -q 3.44 / 5 0 #未设置scale值,导致运算结果无小数 scale=4 3.44 / 5 .6880 quit
3. bc也支持变量print输出语句 在脚本中,可以使用命令替换来运行bc,常用格式如下: $(echo "变量1;变量2..; 表达式" | bc)
e.g.计算100/30并保留4位小数 var1=100 var2=30 var3=$(echo "scale=4; $var1 / $var2" | bc) echo "计算结果为:" $var3
4. 如果需要大量运算,则可以借助内联重定向,一次输入多个数据,语法格式为:
变量=$(bc << EOF 变量1 变量2 运算1 运算2 ... EOF )
e.g.进行多项运算 var1=10.46 var2=43.67 var3=33.2 var4=71 var5=$(bc << EOF scale = 4 a1 = ( $var1 * $var2) b1 = ($var3 * $var4) a1 + b1 EOF ) echo "最终结果为:" $var5
上一篇:Linux文本处理
下一篇:Linux服务与系统资源管理
z z z z z