1、用rz -be上传windows本地文件到Linux服务器
sz 文件 将Linux服务器文件下载到window本地
2、$ ? 代表上一个命令执行是否成功的标志,如果执行成功则$? 为0,否则不为0
3、shell脚本中,set -e 等价于 set -o errexit: set -e 表示有报错即退出。 -号表示开启这个选项,+表示关闭这个选项
4、shell自定义函数
#!/bin/bash
function myf()
{
echo "tttt"
}
myf #像Python一样,必须先在前面定义函数,才能在后面调用此函数。因为shell脚本是逐行运行。不会像其它语言一样先预编译
5、tail -200 file 显示file文件后200行
tail -f file 实时监控file文件内容的追加情况
6、shell中如何把一段指令的结果赋值给变量
HDFS_FILENAME=hadoop fs -ls hdfs://orchid/flume/logpusher_test/passport/2019-07-02/15 | awk -F ' ' '{print $8}'
7、set -x 之后执行的每一条命令,都会显示的打印出来。不用麻烦的自己echo,用于脚本调试。调试完记得把set -x注释掉
8、
1)echo "hello_world" | awk -F "_" '{print $1}' 输出hello
2)shell脚本给变量赋值,=号两边一定不能有空格!!!!!!!!!!!
3)shell用jq解析json
4)shell的数组形式是(1 2 3) 将字符串fileRecorNumber="1,2,3"转换为数组:arr=(${fileRecorNumber//,/ })
5)sed -i "s/check_func_type=1/check_func_type=0/g" ljy.log 将ljy.log里面的"check_func_type=1"替换为"check_func_type=0"
6) exit n: 设置退出码为n
7) $#表示shell脚本的参数个数,$1表示第一个参数,$2表示第二个参数
8) date -d -1hour +%H 显示前一小时
9) date -d -1hour +%Y%m%d%H%M 显示今天前一小时
10) if [ -z $env ] 如果env的长度为0则为真
9、top命令,w命令,uptime等命令都可以查看系统负载。(Load Average)是一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。
查看cpu 核数命令: grep ‘model name’ /proc/cpuinfo | wc -l
假如核数为4,那么Load = 4时,表示所有线程刚好占满,如果大于4表示负载过高
10、原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如expr:两个数相加: val=expr 2 + 2
11、引号
-
单引号:单引号内的特殊字符将失去其特殊含义,仅仅表示特殊字符本身
如:name=“jayola” echo '$ name‘ 输出的是$name而不是jayola -
双引号:双引号与单引号类似,但是不移除这3个特殊字符的特殊含义:$ ` \ 。即保留特殊字符的含义如果想显示双引号内的特殊字符本身,可以在特殊字符前面添加反斜线\,如echo""“
-
反引号:用以执行命令输出替换。也可以说是让它按照linux命令去解析,执行。如: aa=
date
; echo $aa
12、shell中所有的变量默认都是字符串类型
定义变量: 变量名=变量值 =两边不能有空格
x=5 其中5是字符串类型
y=6
echo z=$5+$6 结果是5+6 因为xy都是字符串类型,不能做加减运算
name=“lao jing yao” 变量值里面有空格的,用引号引起来
13、sed 所有的动作:打印,删除,追加等都要用单引号 ‘’ 括起来
(1)sed -n '2p' hello.txt 打印第二行,加-n参数就表示只在屏幕行输出操作的行,不加的话所有行都被显示出来了。所以一般-n 和 p都是标配
(2)sed '2,3d' hello.txt 删除2到3行
(3)sed '2a nihaoa' hello.txt 追加。在文件的第二行后面加入一行 nihaoa
(4) sed '2i nihaoa' hello.txt 插入。在文件的第二行的前面加入一行 nihaoa
(5)sed '2c nihaoa' hel1o.txt 替换整行。将文件的第二行替换成nihaoa
(6)sed '2s/70/100/g' hello.txt 只替换指定字符串。将文件第二行的70替换成100
上面的命令都没有加 -i ,那么这些操作不会对原始文件有影响
(7)sed -i '2,3d' hello.txt 删除原文件2到3行
14、查看80端口:netstat -ano | grep 80
15、将文件ljy.txt文件的第1个字段和第45个字段取出来,并还是以"|"为分隔符:
nohup awk -F ‘|’ ‘{print $1 “|” $45}’ ljy.txt >> ljy.DAT