Shell大杂烩

AWK

常用语法:
awk -F 'separator' '{pattern + action}' filename
{}表示语句块

$0整行;$1、$2... 切割数组对应串

有BEGIN{/初始化语句块/}{/行处理语句块/}END{结束语句块}
if...else...

if (expression) {
statement;
} else {
statement2;
}

for (v in list){....}

awk常用函数:
字符串替换函数:gsub( Ere, Repl, [ In ] )
如:{gsub(/.{3};31m/,"",$0)

子串定位:index( String1, String2 )
返回位置,从 1 开始编号。如果 String2 参数不在 String1 参数中出现,则返回 0(零)
如:index($0,"[")

字符串长度:length (String)//字符、blength (String)//字节

字符串切割:substr( String, M, [ N ] ) M起始位置,N截取长度

split( String, A, [Ere] ) 将 String 参数指定的参数分割为数组元素 A[1], A[2], . . ., A[n],并返回 n 变量的值。此分隔可以通过 Ere 参数指定的扩展正则表达式进行。

print打印,printf格式化打印
如:print "------"map[sql]"--------\n"sql
printf("%-8d%-40s样例:\n%s\n",map[errorLine],errorLine,example[errorLine])

执行系统命令:system(Command)

Shell

日期

获取今天时期:date +%Y%m%ddate +%F 或 $(date +%y%m%d)
获取昨天时期:date -d yesterday +%Y%m%d
获取前天日期:date -d -2day +%Y%m%d

命令1 && 命令2

如果这个命令1执行成功& &那么执行这个命2

命令1|| 命令2

如果| |左边的命令(命令1)未执行成功,那么就执行| |右边的命令(命令2)

(命令1;命令2;. . .)

如果使用{ }来代替(),那么相应的命令将在子s h e l l而不是当前s h e l l中作为一个整体被执行,只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子s h e l l中执行,否则在当前s h e l l执行。

例子:
如果sort命令执行成功了,可以先将输出文件备份,然后再打印
test.sorted && (cp test.sorted test.sorted_bak ;lp test.sorted)

ssh ip "command"

远程执行命令

进程查看 ps -ef / ps -aux

ps aux 是用[BSD]的格式来显示进程
显示的项目有:[USER] , [PID], %CPU , %MEM , VSZ , [RSS] , [TTY], [STAT] , [START] , [TIME], [COMMAND]
ps -ef是用标准的格式显示java这个进程
显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD

文件大小 ls -sh / du -d 1 -h
挂载磁盘的容量 df
image.png
常用命令链接

https://www.runoob.com/linux/linux-command-manual.html

很有用几个shell脚本实例
https://www.jianshu.com/p/c6bb40134138

你可能感兴趣的:(Shell大杂烩)