手记

shell入门之你该学会的shell命令


用途

shell是一个命令行解释器,用户传递命令并翻译为二进制到内核。

分类

shell有两种语法类型: bourne和c,彼此不兼容。

  • Bourne包括sh,ksh,Bash,psh,zsh。默认为Bash
  • c家族包括csh,tcsh

常用命令

  • echo [选项] [输出内容] #输出命令
    • -e 支持反斜杠控制的字符转换
    • \b 退格键
    • \t 制表符
    • \x68 十六进制表示
    • echo "\e[1;31m我是帅哥 \e[0m" #有颜色的输出
    • \e[1;31m #开启颜色显示
    • \e[0m #关闭颜色显示

开始写脚本

  • 号后面的都表示注释
  • 但是,第一行的#!/bin/bash不是注释,它表示下面写的是Linux的标准脚本。不能省略,如果省略了,一旦调用shell之外的语言就会报错。
  • /hello.sh 这样调用需要脚本有执行权限
  • bash /hello.sh 这样调用,没有执行权限也可以运行

bash基本用法

  • 别名
    • alias vi='vim' #设定别名,临时生效,重启失效
    • unalias 别名 #删除别名
    • vi ~/.bashrc #写入环境变量配置文件,对当前用户永久生效
      • 但要重新登录后生效
      • source ~/.bashrc #强制生效
    • 命令生效顺序
      • 用绝对路径或相对路径执行的命令
      • 别名
      • Bash内部命令
      • $PATH环境变量定义的目录查找到的第一个命令
  • 快捷键
    • ctrl+c 强制终止
    • ctrl+l 清屏 #clear
    • ctrl+u 光标所在位置一直删到行首
    • ctrl+a 光标移动到命令行首
    • ctrl+e 光标移动到命令行尾
    • ctrl+z 把命令放入后台
    • ctrl+r 在历史命令中搜索
  • 历史命令
    • history [选项] [历史命令保存文件]
    • -c 清空历史命令
    • -w 把缓存中的历史命令写入历史命令保存文件~/.bash_history
    • 默认保存1000条,可以在/etc/profile中修改
  • 输出重定向

    • 标准输入输出
    设备 设备文件名 文件描述符 类型
    键盘 /dev/stdin 0 标准输入
    显示器 /dev/stdout 1 标准输出
    显示器 /dev/stderr 2 标准错误输出
    • 重定向
      • 命令 > 文件 #覆盖式写入
      • 命令 >> 文件 #追加式写入
      • 命令 2>文件 #覆盖式写入报错信息
      • 命令 2>>文件 #追加式写入报错信息,文件前面不能有空格
      • 命令 > 文件 2>&1 #把正确和错误文件都保存到同一个文件中,覆盖式写入
      • 命令 >> 文件 2>&1 #把正确和错误文件都保存到同一个文件中,追加式写入
      • 命令 &> 文件 #把正确和错误文件都保存到同一个文件中
      • 命令 &>> 文件 #把正确和错误文件都保存到同一个文件中
      • 命令>>文件1 2>>文件2
      • 命令 &>/dev/null #丢弃输出
  • 输入重定向

    • wc [选项] [文件名] #统计文件内容
    • 命令 < 文件
    • 命令 << 输入
  • 多命令顺序执行,都是从左往右执行

    多命令执行符 格式 作用
    命令1;命令2 多个命令顺序执行,命令之间没用任何联系;之前命令出错了也会继续执行
    && 命令1&&命令2 逻辑与,当命令1正确执行,命令2才会执行
    II 命令1II命令2 逻辑或,当命令1不正确执行,命令2才会执行;命令1正确执行则命令2不执行
  • 管道符
    • 命令1 | 命令2 #命令1的正确输出作为命令2的操作对象
  • 通配符

    通配符 作用
    匹配一个任意字符
    * 匹配0个或任意多个字符
    [] 匹配[]内的任意一个字符
  • Bash 中其他特殊符号
    • ''和""的用法和php里一样
    • ``里的系统命令,在bash里会先执行它。aa=`ls`
    • \$()的作用和``一样
    • \$用于调用变量的值。$aa
    • \转义符
    • z
9人推荐
随时随地看视频
慕课网APP