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 中 -
输入重定向
- 命令 < 文件把文件做为命令的输入,wc 命令的功能为统计指定文件中的行数、字数、字节数, 并将统计结果显示输出
- 示例代码
vi 1.txt # 第一行写入 i love you # 第二行写入 do you love me wc < 1.txt # 2 7 26 # 行 单词 字节
符号
多命令顺序执行
多命令执行符 | 格式 | 作用 | 案例 |
---|---|---|---|
; | 命令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"
权限相关
上一篇