Shell概述

Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

  • Shell 的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括 sh ksh Bash psh zsh; C家族主要包括:csh tcsh

查看当前Shell类型

1
echo $SHELL

/bin/zsh

查看当前系统支持的shell

1
cat /etc/shells

脚本的执行方法

1
2
3
#!/bin/bash
#The frist shell
echo -e "\e[1;36m hello world \e[0m"

执行上面的脚本

  • 赋予执行权限,直接运行 chmod 755 hello.sh ./hello.sh
  • 通过bash调用执行脚本 bash hello.sh

Bash的基本功能

命令别名与快捷键

1
2
3
4
#查看系统中别名配置列表
alias
#设置别名
alias rm="rm -i"

注意:以上alias 是临时的一旦用户注销就回销毁
如果想始终生效需要修改 .bashrc文件
.bashrc 文件修改后需要重新登录生效
source .bashrc 可以直接生效

删除别名

1
unalias

这个也是临时删除,永久删除修改 .bashrc

常用快捷键

  • ctrl + c 强制当前命令
  • ctrl + l 清屏
  • ctrl + a 光标移到到命令行首
  • ctrl + e 光标移到到命令行尾
  • ctrl + u 从光标所在位置删除到行首
  • ctrl + z 把命令放入后台
  • ctrl + r 在历史命令中搜索

历史命令

1
history [选项]

选项:

  • -c : 清空历史命令
  • -w : 把缓存中的历史命令写入历史命令保存文件~/.bash_history
    注意: history 命令是历史命令和本次登录命令。.bash_history文件则为正常注销退出之后,存入的历史命令。
    -w 是手动把临时历史写入 .bash_history
    历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改 HISTSIZE=1000

历史命令的调用

  • 使用上下箭头调用以前的历史命令
  • 使用!n 重复执行第n条历史命令
  • 使用!! 重复执行上一条命令
  • 使用!字符串 重复执行最后一条以该字符串开头的命令

输出重定向

多命令顺序执行

管道符

1
2
[命令1] | [命令2]
#命令1的正确输出作为命令2的操作对象

通配符

shell中特殊符号