Shell 基础

Shell原意为壳、贝壳、外形,在Linux当中相当于命令解释器,向用户提供了一个与内核交互的环境

Shell语法分类

  • Bourne Shell
    • sh、ksh、bash、psh、zsh
  • c shell
    • csh、tcsh
echo $SHELL # 查看当前shell类型`

脚本执行方式

脚本文件

  • 必须以#!/bin/bash开头

echo输出命令

echo [选项] [输出内容]
	-e  //支持反斜杠转义字符 
echo "\e[1;31m this is a text with color \e[0m"	//这是一段有颜色的文字
  • 赋予脚本执行权限
    chmod 755 hello.sh
  • 直接执行
    bash hello.sh ./hello.sh

bash的基本功能

  • 命令别名和快捷键
  • 历史命令
  • 输出重定向
  • 多命令顺序执行
  • shell中的特殊符号

别名

alias # 查看别名
alias 别名 = '原命令'	# 重启失效
unalias 别名	# 删除别名
vi ~/.bashrc	# 重新登录,永久有效
source .bashrc # 立即永久生效

快捷键

ctrl + C	# 强制终止当前命令
ctrl + L	# 清屏
ctrl + A	# 光标移动到命令行首
ctrl + E	# 光标移动到行尾
ctrl + U	# 从光标所在位置删除到行首
ctrl + Z	# 把命令放入后台
ctrl + R	# 在历史命令中搜索

历史命令

history [命令选项] [历史命令保存文件]
  -c # 清空历史命令
  -w # 把缓存中的命令写入历史命令保存文件中 ~/bash_history

!n	# 重复执行第n条命令
!!	# 重复执行上一条命令
!字符串	# 重复执行最后一条以该字符串结尾的命令

命令和文件补全

tab

输出重定向

命令 > 文件以覆盖的方式将命令输出到文件
命令 >> 文件以追加的方式将命令输出到文件
错误命令 2>文件以覆盖的方式将命令的错误输出到文件中
错误命令 2>>文件以追加的方式将命令的错误输出到文件中
命令 > 文件 2>&1 以追加的方式将所有命令结果输出到文件
命令 >> 文件 2>&q 以覆盖的方式将所有命令结果输出到文件
命令 &> 文件
命令 &>> 文件 与上面两种命令功能相同
命令 >> 文件1 2>>文件2 把正确的输出追加到文件1,把错误的输出追加到文件2

输入重定向

wc [选项] [文件名]
  -c # 统计字节数
  -w # 统计单词数
  -l # 统计行数

wc < access.log
wc << access.log

多命令顺序执行

; # 顺序执行
&& # 逻辑与
|| # 逻辑或

管道符

命令1 | 命令2 # 命令1的结果作为命令2的参数执行,如果命令1错误,命令2不会执行

通配符

通配符 作用
匹配一个任意字符
* 匹配任意0个或多个任意字符,也就是匹配任何内容
[] 匹配中括号内任意一个字符
[-] 匹配中括号内字符,-表示范围,比如a-z表示a到z的全部字母
[^] 取反
上次更新: 8/30/2018, 9:09:54 PM