知识点汇总:
1:shell中的exit是会退出shell程序的
2:$var 和${var}是没啥区别的
3:遍历过去几天的shell程序
for ((i=1;i<=29;i++));
do
nowdate=`date -d "-$i day" +%Y-%m-%d`
done
4:shell是可以减分钟的
date -d “40 minute ago” +”%Y-%m-%d”
5:shell中引入其他包
source ../scripts/util.sh
我现在的shell脚本在scripts下
6:hive sql结果写入到本地文件中
insert overwrite local directory ‘'
row format delimited fields terminated by ‘^’
7:hdfs检查文件是否存在
hadoop fs -test -e 文件名
sleep()进程休眠时间
8:shell 脚本中的2>&1的意思是将标准错误输出到前边指定的文件中去
9:dirname $0 获取当前文件路径
10:bash -x 是调试模式
11:shell的函数传参就是函数后跟着参数那种,不是在括号里
12:a &
b &
c &
a,b,c三条指令并发执行
13:cat 文件名 | 可执行文件
14:Linux 查看文件大小:
du -hs 文件路径
查看文件行数:
sed -n ‘$=‘ 文件路径
15:shell拼接字符串
a
b
c=“a is:$a b is:$b”
16:c++ main函数的参数为int argv,char* args[]
argv代表参数个数,并且至少为1 args至少有一个元素,args[0]代表函数名
17:按行读取文件
while(getline(std::can,lineInput){
}
18:c++ string类型转换为char* string.c_str()
19:base64的知识点另外写个博客
20:protobuf的知识点另外写个博客
21:如果字符串是“\N“,那么我们在进行字符串相等判断时,需要格外注意\符号,需要这样子写
string == "\\N”
22:c++ string类型转换为整形。std::stoi(string). c++整形转换为string int.to_string()
23:main函数传进来的argv数组,我们将其元素转换为string类型,只需要这样子做:std::string(argv[1])
24:c++ 无论是新建文件还是打开文件,我们都可以使用ofstream类的open方法,其中参数分别为文件名称,文件属性,参数类型分别为char*,
所以我们在传入string类型的参数的时候,需要把string类型转换为char *,也就是string.c_str(),第二个参数设置为std::ios::app,代表可以在文件尾追加
25:c++ 的string类型可以直接相加
26:ofstream output 把字符串写入到文件中,output << string << ends; 这里的endl很重要,代表换行
27:shell 取出字符串中的最后一个字符
str='123abc'
final=${str: -1}
28:jar包找不到main函数
java -cp xxx.jar com.fresher.xxx.类名
29:linux 获取文件的md5值的命令:md5sum
30:之前遇到一个很无语的错误:
localpath=/***/${haha} && wait_table() $localpath
这里wait_table怎么也执行不对,改成:
localpath="/***/${haha}"后就没问题了,反正尽量就是在shell中声明变量时最好加“”就对了