Linux---1.09.shell


  • shell本身是命令行解释器,也是一个编程语言 解释性语言

    • echo "hello world!" # 单引号双引号都可以

      • -e 支持反斜线字符转换
        • \ 输出\本身
        • \a 警告音
        • \b 退格键 左删除
        • \c 取消输出行末的换行符 和-n选项一样
        • \e escape键
        • \f 换页符
        • \n 换行符
        • \r 回车键
        • \t 制表符 也就是tab键
        • \v 垂直制表符
        • \0nnn 八进制输出
        • \xhh 按16进制输出
    • 在shell脚本中 #!/bin/bash 是标识 这个是shell脚本 不能省略

    • 一定要写注释,甚至分程序段也要写

    • 调用脚本的三种方式 ./xx.sh 绝对路径 bash xx.sh 第三种方式不用赋权限

    • cat -A xx.sh 可以查看shell脚本的全部内容,包含隐藏内容!

    • dos2unix xx.sh 把windows下编辑的脚本改成linux下的 unix2dos是相反的命令

  • Bash的基本功能

    • history 查看历史命令 退出重启后才能看到新输入的命令

      • history 【选项】【历史命令文件】
      • -c 清空历史命令
      • -w 把历史命令写入历史命令保存文件 .bash_history(家目录下) 这种写法以前不知道 ~/.bash_history就是家目录下的历史文件
      • 默认保存1000条历史命令 可以在环境变量配置文件 /etc/profile中修改这个参数
      • !字符串 !! !数字 三种方式
    • alias 别名

      • alias 别名="原命令" 一定要加引号
      • 让别名永久生效 就需要写入配置文件 vi /root/.bashrc
      • unalias 删除别名
    • Bash常用快捷键

    • 标准输入输出

      • 键盘 /dev/stdin 0 输入
      • 显示器 /dev/stdout 1 输出
      • 显示器 /dev/sdterr 2 错误输出
    • 输出重定向

      • 命令 > 文件 以覆盖的方式 把命令的正确输出,输出到指定的文件或设备当中。

      • 命令 >> 文件 以追加的方式,把命令的正确输出,输出到指定的文件或设备当中。

      • 命令 2> 文件 以覆盖的方式 把命令的错误输出。。。。

      • 命令 2>> 文件 以追加的方式 把命令的错误输出。。。

      • 命令 > 文件 2>&1 以覆盖方式 把正确和错误都保存到一个文件

      • 命令 >> 文件 2>&1 以追加的方式 把正确和错误都保存到一个文件

      • 命令 &> 文件 以覆盖方式 把正确和错误。。。

      • 命令 &>> 文件 以追加的方式 把正确输出和错误输出都保存到一个文件当中

      • 命令 >>文件1 2>>文件2 把正确的追加到文件1 把错误的追加到文件2

      • 命令 &>/dev/null 相当于执行结果都放进垃圾箱

    • 输入重定向

      • wc 【选项】【文件名】 命令<文件
      • -c 统计字节数
      • -w 统计单词数
      • -l 统计行数
    • 多命令顺序执行方式

      • ; 命令1;命令2; 多个命令顺序执行 命令之间没有任何逻辑关系
      • && 逻辑与的关系 命令1正确执行 命令2才会执行
      • || 逻辑或的关系 命令1执行不正确 命令2才会执行 反之同样~
      • dd if=输入文件 of=输出文件 bs=字节数 count=个数
        • if 指定源文件或源设备
        • of 指定目标文件或目标设备
        • bs 指定一次输入/输出多少字节 即把这些字节看做一个数据块
        • count 指定输入输出多少个数据块
    • 管道符

      • 命令格式 命令1|命令2 命令1的正确输出作为命令2的操作执行
      • grep 【选项】 '搜索内容'/文件名
        • -i 忽略大小写
        • -n 输出行号
        • -v 反向查找
        • --color=auto 把搜索出的关键字用颜色显示
    • 通配符

      • ? 匹配一个任意字符
        • 匹配0个或任意多个字符 也就是可以匹配任何内容
      • [] 匹配中括号中任意一个字符
      • [-] 匹配汇总括号中任意一个字符 -代表一个范围
      • [^] 逻辑非 代表匹配不是中括号内的一个字符
    • 其他特殊符号