内容目录
什么是Bash Shell
bash shell
是一个命令解释器,是用户的翻译官,可以通过bash shell
命令让用户直接与内核交互,并将内核处理后的结果输出至屏幕- 用户通过
bash
窗口输入ls
命令; ls
命令会通过bash
窗口翻译为计算机硬件能识别的语言,然后传递给操作系统内核程序- 内核程序驱动硬件
- 硬件执行后将结果返回给内核,内核再返回给
bash
再翻译回给用户
- 用户通过
- 我们如何打开
bash shell
呢?- 当我们使用远程连接工具连接
linux
服务,系统则会打开一个默认的shell
- 我们可在这个界面执行命令,比如获取系统当前时间,创建一个用户等等;
- 当我们使用远程连接工具连接
Bash Shell能干什么
- 使用shell实现对linux系统的大部分管理,例如:
- 文件管理
- 权限管理
- 用户管理
- 磁盘管理
- 网络管理
- 软件管理
- 服务管理
- 等等
如何使用bash shell
- 单条命令-->效率低-->适合少量的工作
- shell脚本-->效率高-->适合重复性的工作
- 例如:创建100个用户,单纯输入命令需要执行100次,而如果使用shell脚本则可以轻松解决
#!usr/bin/bash #批量创建脚本 for i in{1..100} do useradd alice-$i echo "alice-$i" is create ok.. done
Bash Shell提示符
当我们打开或者登录到一个终端的时候都会显示一长串提示符,[root@jumpserver ~]#
提示符一般包含当前登录的用户名,主机名,以及当前工作路径等
Bash Shell基础语法
bash shell
命令行,为用户提供命令输入,然后将执行结果返回给用户
命令 | 选项 | 参数 |
---|---|---|
command | option | parameters |
ls # list directory contents
:其功能是显示目录中的文件及其属性信息。
常用选项:
选项 | 含义 |
---|---|
-a | 显示所有文件及目录 |
-d | 显示目录自身的属性信息 |
-i | 显示文件的inode属性信息 |
-l | 显示文件的详细属性信息 |
-m | 以逗号为间隔符,水平显示文件信息 |
-r | 依据首字母将文件以反序显示 |
-R | 递归显示所有子文件 |
-S | 依据内容大小将文件排序显示 |
-t | 依据最后修改时间将文件排序显示 |
-X | 依据扩展名将文件排序显示 |
命令示例如下:
-a,--all(do not ignore entries starting with .)
-l use a long listing format
ls #命令
ls -a #命令+选项
ls -a /home #命令+选项+参数
du -sh * | sort -h #按文件大小排序
- 命令:整条
shell
命令的主体功能 - 选项:用于调节命令的具体功能
- 以
-
引导短格式选项(单个字符),例如-a
- 以
--
引导长格式选项(多个字符),例如--all
- 多个短格式选项可以写在一起,只用一个
-
,例如-al
- 以
- 参数:命令操作的对象,如文件、目录名等
- 注意:命令必须开头,选项和参数位置可以发生变化
Bash Shell基本特性
补全功能tab
-
- 命令补全:当忘记命令时,可以使用tab进行补全
-
- 目录补全:当需要查找目录层级比较多时,可以使用tab快速补全,减少出错
命令唯一时按下tab键会自动补全
命令不唯一时按一下tab键没有反应,按两下tab键列出所有的命令
如果命令或路径出错是没有办法补全的
常用快捷键ctrl
- 命令快捷键,快捷键可以帮助我们大大提升工作效率
ctrl+a
:光标跳转至正在输入的命令行的首部ctrl+e
:光标跳转至正在输入的命令行的尾部ctrl+c
:终止前台运行的程序ctrl+d
:在shell中,表示退出当前shellctrl+z
:将任务暂停,挂至后台ctrl+l
:清屏,和clear命令等效ctrl+k
:删除从光标到行末的所有字符ctrl+u
:删除从光标到行首的所有字符ctrl+r
:搜索历史命令,利用关键字;可以按下ctrl+r
来继续搜索下一个匹配项
历史记录history
- 使用
!!
可执行上一条执行过的命令 - 输入
!6
执行history
命令历史中第6行命令 - 使用
!cat
调用history
命令历史最近一次执行过的cat
命令 - 历史命令保存在
~/.bash_history
文件
常用参数:
选项 | 含义 |
---|---|
-c | 清空命令记录 |
-d | 删除指定序号的命令记录 |
5 | 显示最近执行过的5条命令 |
- 让
history
命令显示时间
编辑~/.bash_profile
,在最后增加
export HISTTIMEFORMAT="%F %T "
%F
代表完整的日期(相当于%Y-%m-%d
),%T
代表时间(相当于%H:%M:%S
)
最后,运行source ~/.bash_profile
以应用更改
命令别名alias
命令别名将用户经常使用的复杂命令简单化,可以用alias别名名称='命令'
创建属于自己的别名,若要取消一个别名,则是用 unalias别名名称
必须使用单引号将原来的命令引起来,且alias
命令的作用只局限于该次登入的操作。
- 定义临时别名
alias wk='ifconfig'
- 可以定义命令本身
alias ifconfig='ifconfig eth0'
绝对路径执行,调用命令本身
/sbin/config
通过 \ 转义字符,调用命令本身
\ifconfig
- 取消别名
unalias wk
- 永久生效
vim .bashrc
添加相关alias命令;或者/etc/bashrc
-p
显示系统中已有的命令别名
帮助手册help
- 命令
--help
帮助
ls --help
- 命令
man
手册
man ls #查看ls命令的手册
留言
hello word