- shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序
- 用户可以用 Shell 来启动、挂起、停止或者编写一些程序
- Shell 还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。
- Shell 是解释执行的脚本语言,在 Shell 中可以直接调用 Linux 系统命令
echo
- 输出命令
- -e:激活转义字符
# hello
echo hello
# a b
echo -e "a\tb"
编写执行 shell
- 编写 shell
# !/bin/bash
echo hello
- 赋予权限执行
# 通过 Bash 调用执行脚本
sh hello.sh
# 赋予执行权限,直接运行
chmod 755 hello.sh
chmod u+x hello.sh
./hello.sh
别名
- 临时生效:
alias cp="cp -i"
- 永久生效:写入环境变量配置文件
vi ~/.bashrc,执行更新 source ~/.bashrc
- 删除别名:
unalias 别名
命令快捷键
| 命令 |
含义 |
| ctrl + c |
强制终止当前命令 |
| ctrl + l |
清屏 |
| ctrl + a |
光标移动到命令行首 |
| ctrl + e |
光标移动到命令行尾 |
| ctrl + u |
从光标所在的位置删除到行首 |
历史命令
- 语法:history [选项] [历史命令保存文件]
- 选项
- -c 清空历史命令
- -w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
- 默认保存 1000 条,设置保存一万条
/etc/profile HISTSIZE=10000
调用
# 清空历史命令
history -c
# 第一次输出 1
echo 1
# 第二次输出 2
echo 2
# 第三次输出 3
echo 3
# 使用上下箭头调用以前的历史命令
# 使用 !n 重复执行第 n 条历史命令
!2
# 使用 !! 重复执行上一条命令
!!
# 使用 !字符 重复执行最后一条以该字符串开头的命令
!echo
输出重定向
- 标准输入输出
| 设备 |
设备文件名 |
文件描述符 |
类型 |
| 键盘 |
/dev/stdin |
0 |
标准输入 |
| 显示器 |
/dev/stdout |
1 |
标准输出 |
| 显示器 |
/dev/stderr |
2 |
标准错误输出 |
- 输出重定向
| 类型 |
符号 |
作用 |
| 标准输出重定向 |
命令 > 文件 |
以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中 |
| 标准输出重定向 |
命令 >> 文件 |
以追加的方式,把命令的正确输出输出到指定的文件或设备当中 |
| 错误输出重定向 |
命令 > 文件 |
以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中 |
| 错误输出重定向 |
命令 >> 文件 |
以追加的方式,把命令的错误输出输出到指定的文件或设备当中 |
| 正确输出和错误输出同时保存 |
命令 > 文件 2 >& 1 |
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 |
| 正确输出和错误输出同时保存 |
命令 > 文件 2 >>& 1 |
以追加的方式,把正确输出和错误输出都保存到同一个文件当中 |
| 正确输出和错误输出同时保存 |
命令 &> 文件 |
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 |
| 正确输出和错误输出同时保存 |
命令 &>> 文件 |
以追加的方式,把正确输出和错误输出都保存到同一个文件当中 |
| 正确输出和错误输出同时保存 |
命令 >> 文件1 2 > 文件2 |
以覆盖的方式,正确的输出追加到文件 1 中,把错误输出追加到文件 2 中 |
- 输入重定向
符号
多命令顺序执行
| 多命令执行符 |
格式 |
作用 |
案例 |
| ; |
命令1; 命令2 |
多个命令执行,命令之间没有任何逻辑联系 |
echo 1; echo 2; |
| && |
命令1 && 命令2 |
逻辑与 当命令1正确执行,则命令2才会执行 当命令1执行不正确,则命令2不会执行 |
echo 1 && echo 2; |
| || |
命令1 || 命令2 |
逻辑或 当命令1执行不正确,则命令2才会执行 当命令1正确执行,则命令2不会执行 |
echo 1 || echo 2; |
管道符号
- 命令1的正确输出会作为命令2的参数
- 命令1 | 命令2
ls /etc/ | more
通配符
匹配文件名和目录名
| 通配符 |
作用 |
| ? |
匹配一个任意字符 |
| * |
匹配 0 个或任意字符,也就是可以匹配任意内容 |
| [] |
匹配中括号中任意一个字符 |
| [-] |
匹配中括号中任意一个字符,-代表范围 |
| [^] |
匹配不是中括号中的一个字符 |
其它符号
| 符号 |
作用 |
| ‘’ |
单引号,在单引号中所有的特殊符号,如 $ 和 ` 都没有特殊含义 |
| “” |
双引号,在双引号里特殊符号都没有特殊含义,但是 $ ` \ 例外,拥有调用变量值,引用命令和转义的含义 |
| `` |
反引号,扩起来的是系统命令 |
| $() |
和反引号一样 |
| # |
在 shell 脚本中,# 开头的行代表注释 |
| $ |
用于调用变量的值 |
| \ |
转义符号 |
# 输出字符串
echo '$PATH'
# 输出变量
echo "$PATH"
# 执行 ls 命令
echo `ls`
# 执行 ls 命令
echo $(ls)
# \ 转义
echo -e "a\tb"
你好👏🏻,我是
✍🏻 疯狂 codding 中...
粽子
这有关于前端开发的技术文档和你分享。
相信你可以在这里找到对你有用的知识和教程。
了解更多