命令行笔记

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

命令行笔记

陈芳志   2019-12-05 我要评论

主要是对linux命令号中一些经常会遗漏的事项的记录。

  1. 命令行中执行for和if等语句命令,原来在脚本中换行的地方用;代替:for name in $(ls); do if [[ "$name" == "te" ]] ; then echo $name;fi;done
  2. eval命令:会扫描两遍,第一次做变量替换,第二次如果是命令则执行该命令,用于执行一些需要变量替换的命令
  3. shell中单引号替换环境变量 双引号不替换
  4. 小括号的妙用:(cd /usr;ls) 假如当前目录是home,执行完还是home目录
  5. sz命令传文件夹使用 sz data/* ,不包含文件夹本身
  6. 注意在空目录下使用*的问题,*会报错,例如:test文件夹为空,ls test/*命令报错
  7. 登录时指定.bashrc的问题,另外bash的PS1变量导致长命令行不能换行的问题
  8. 注意重定向的顺序问题,在执行前会先清空文件
  9. cat <<EOF和cat -
  10. pstree命令指定进程直接在后面加上进程号就行,-p打印线程 -a打印命令行
  11. (shell)在子进程中运行命令,{shell}用于在当前shell中运行命令,{}需要注意括号与命令之间包含空格,确保列表最后一个命令以分号结尾

  12. bash参数:
        摘录自阮一峰
        set -x  用于调试,输出正在执行的命令
        set -e  前一个命令执行出错直接退出(默认继续执行)
        set -u  如果遇到不存在的变量报错(默认忽略)
        set -o  pipefail  如果设置了-e,管道命令看的是最后一个命令的执行结果,如果需要管道前一个执行失败就退出时使用
        也可以在bash外面使用: bash -euxo pipefail script.sh
        
  1. ``和$()的区别:
    echo `echo \\\\` # 输出\
    echo $(echo \\\\) # 输出\\
    # 反单号中的\有转义,需要用\\才能表示本来的\

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们