Bash shell
# 什么是Bash shell
Bash Shell
是一个命令解释器,主要负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给内核,由内核驱动硬件,最终将处理后的结果输出至Bash Shell
屏幕终端。
我们如何打开
Bash Shell
呢?
当我们使用远程连接工具连接linux
服务,系统则会给打开一个默认的shell
,我们可在这个界面执行命令,比如︰获取系统当前时间,创建一个用户等等。
# Bash Shell能干什么
- 使用Shell实现对Linux系统的大部分管理,例如:
- 1.文件管理
- 2.权限管理
- 3.用户管理
- 4.磁盘管理
- 5.网络管理
- 6.软件管理
- 7.服务管理
- 8.等等.
# 如何使用Bash Shell
单条命令-->效率低-->适合少量的工作
shell脚本-->效率高-->适合重复性的工作
例如:创建100个用户,单纯输入命令需要执行100次,而如果使用Shell脚本则可以轻松解决;
[root@web ~]# cat useradd.sh #!/usr/bin/ bash #批量创建脚本 for i in {1..100} do useradd alice-$i echo "alice-$i" is create ok.. done
1
2
3
4
5
6
7
8
# Bash Shell提示符
当我们打开或者登陆到一个终端的时候都会显示一长串提示符[root@web ~]#
提示符一般包含当前登陆的用户名,主机名,以及当前工作路径等;
# Bash Shell基础语法
bash shell
命令行,为用户提供命令输入,然后将执行结果返回给用户;
命令 | 选项 | 参数 |
---|---|---|
command | options | parameters |
命令示例如下:
[root@web ~]# ls #命令
[root@web ~]# ls -a #命令+选项
[root@web ~]# ls -a /home/ #命令+选项+参数
1
2
3
2
3
- 命令:整条
shell
命令的主体功能 - 选项:用于调节命令的具体功能
- 以
-
引导短格式选项(单个字符),例如-a
- 以
--
引导长格式选项(多个字符),例如--all
- 多个短格式选项可以写在一起,只用一个
-
,例如-al
- 以
- 参数:命令操作的对象,如文件、目录名等
- 注意:命令必须开头,选项和参数位置可以发生变化
# Bash Shell基本特性
# 补全功能tabs
1.命令补全:当忘记命令时,可以使用tabs进行补全;
2.目录补全:当需要查找文件目录层级比较多时,可以使用tabs快速补全,减少出错;
#查看ip时忘记具体了命令 [root@web ~]# ifcon #按下tab键会自动补全 [root@web ~]# ifconfig #按一下tab键没有反应,按两下tab键列出所有if开头的命令 [root@web ~]# if if ifconfig ifenslave ifrename ifcfg ifdown ifnames ifup #linux目录较深,经常使用tab键进行补全,如果路径出错是没有办法补全的 [root@web ~]# ls /etc/sysconfig/network-scripts/
1
2
3
4
5
6
7
8
9
10
11
12
# 常用快捷键ctrl
- 命令快捷键,快捷键可以帮助我们大大提升工作效率
Ctrl + a
:光标跳转至正在输入的命令行的首部Ctrl + e
:光标跳转至正在输入的命令行的尾部Ctrl + c
:终止前台运行的程序Ctrl + d
:在shell中,ctrl+d表示退出当前shellCtrl + z
:将任务暂停,挂至后台Ctrl + l
:清屏,和clear命令等效Ctrl + k
:删除从光标到行末的所有字符Ctrl + u
:删除从光标到行首的所有字符Ctrl + r
:搜索历史命令,利用关键字
# 历史记录History
历史记录可用于追溯系统之前执行过什么命令,造成的故障;之前发生情况
使用双
!!
可执行上一条执行过的命令[root@web ~]# ls file.txt [root@web ~]# !! ls file.txt
1
2
3
4
5输入
!6
,执行history
命令历史中第6行命令[root@web ~]# !6 touch file.txt
1
2使用
!cat
,调用history
命令历史最近一次执行过的cat
命令[root@web ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 [root@web ~]# ! cat cat /etc/sysconfig/network-scripts/ifcfg-eth0
1
2
3
# 命令别名alias
命令别名将用户经常使用的复杂命令简单化,可以用alias 别名名称='命令'
创建属于自己的命令别名,若要取消一个命令别名,则是用unalias 别名名称
;
定义临时别名,
wk
为查看eth0
网卡别名[root@web ~]# alias wk='ifconfig' [root@web ~] # wk
1
2如果定义命令本身,会执行什么?又该怎样执行命令本身
[root@web ~]# alias ifconfig='ifconfig eth0' #绝对路径执行,调用命令本身 [root@web ~]# /sbin/ifconfig #通过\转义字符,调用命令本身 [root@web ~]# \ifconfig
1
2
3
4
5
6
7取消别名
[root@web ~]# unalias ifconfig
1永久生效,
/etc/bashrc
[root@web ~]# echo "alias ifconfig='ifconfig eth0'" >> /etc/bashrc
1
# 帮助手册help
命令
--help
帮助[root@web ~]# ls --help 用法:ls[选项]...[文件]...
1
2命令
man
手册[root@web ~]# man ls #查看ls命令的手册
1
Last Updated: 2022/03/28, 23:14:53