美文网首页
shell脚本常用命令

shell脚本常用命令

作者: 安申 | 来源:发表于2020-06-01 10:27 被阅读0次

    1.

    #-d 显示指定字符串所描述的时间,而非当前时间

    #这里则表示显示yesterday 的时间,并按照指定格式打印

    yesterday=`date -d "yesterday" +%Y-%m-%d`

    2.

    #[ -z STRING ] “STRING” 的长度为零则为真。

    3.

    #$?  是上一个程序执行是否成功的标志,如果执行成功则$? 为0,否则 不为0。或者说是上一个命令的退出状态,执行成功退出状态为0,否则不为0

    4.

    # -u <database url>              the JDBC URL to connect to

    #  -n <username>                 the username to connect as

    #  -p <password>                  the password to connect as

    #  -e <query>                         query that should be executed 应该执行的sql语句

    5.

    # hdfs dfs -put ${OUTPUT_PATH}/${yesterday}/$1/*     ${HIVE_LIBRARY_PATH}/inc_$1

    # hdfs dfs -put <linux上文件>     <hdfs上的路径>

    # 将数据从Linux系统本地上传到hdfs路径上

    6.

    #Hive客户端工具,beeline

    #-f <exec file>                  script file that should be executed应该执行的脚本文件

    #-e <query>                      query that should be executed应执行的查询

    #sed -n '4p'                        查看第四行

    #awk '{print $2}'                 打印第二个字段

    #-a :将 binary 文件以 text 文件的方式搜寻数据

    #-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

    #^代表行首,$代表行尾。 ^$是空行的意思

    7.

    #find 路径 -type(文件类型) f(普通文件) -mtime(以天为单位) |xargs rm -rf把find命令查找到的结果删除

    #-mtime +$(echo ${KEEP_DATE}多少天以前的

    8.

    #-d 判断是否为目录

    if [ ! -d "${SQL_PATH}" ]

    #-f 判断是否为文件

    if [ ! -f "${log}" ]

    #-p 创建目录及子目录

    mkdir -p "${errorLog}"

    9.

    #cat test.log | grep "login"|grep -v "deviceType" 找出test.log中包含login信息的,且没有deviceType这个字段的。

    10.

    #jobs命令 用于显示Linux中的任务列表及任务状态,包括后台运行的任务。该命令可以显示任务号及其对应的进程号

    #-p 仅显示任务对应的进程号

    joblist=($(jobs -p))

    11.

    Linux中的标准输入输出

    标准输入0    从键盘获得输入 /proc/self/fd/0 

    标准输出1    输出到屏幕(即控制台) /proc/self/fd/1 

    错误输出2    输出到屏幕(即控制台) /proc/self/fd/2 

    /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞” 

    1)2>/dev/null意思就是把错误输出到“黑洞” 

    2)>/dev/null 2>&1默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞” 

    3)2>&1 >/dev/null意思就是把错误输出2重定向到标准出书1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕 

    关于这里”&”的作用,我们可以这么理解2>/dev/null重定向到文件,那么2>&1,这里如果去掉了&就是把错误输出给了文件1了,用了&是表明1是标准输出。

    12.

    # 该脚本所在路径

    BASE_PATH=$(cd `dirname $0`; pwd)

    相关文章

      网友评论

          本文标题:shell脚本常用命令

          本文链接:https://www.haomeiwen.com/subject/hdhjzhtx.html