Linux-3 命令行-shell-bash特点
bash基本概念
-
什么是Bash shell(壳):
Bash shell是一个命令解释器,主要负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给内核,由内核驱动硬件,最终将处理结果输出至Bash shell屏幕终端。
-
我们如何打开Bash shell呢?
当我们在使用远程连接工具连接Linux服务,系统则会给打开一个默认的shell,我们可在这个界面执行命令,比如:获取系统的当前时间,创建一个用户等等…
翻译用户需要执行的命令
-
Bash shell能干什么?
使用Shell实现对Linux的大部分管理,例如:
- 文件管理
- 权限管理
- 用户管理
- 磁盘管理
- 网络管理
- 软件管理
等等… …
-
平时我们是如何使用Shell?
-
输入命令——>效率低——>适合少量的工作
-
Shell Script——>效率高——>适合重复性的工作
例如:创建100个用户,单纯输入命令需要执行100次,而Shell脚本只需要几行命令即可完成100个用户的创建。
-
bash提示符
- Bash Shell登陆后的提示符是什么意思?
- [root@destiny ~]#
- root:当前登录系统的用户名称(超级管理员)
- @:分隔符
- destiny:主机名称(安装系统时设定的,不设定默认为localhost)
- ~:当前用户的家目录;每个用户都有自己的家目录
- #:表示当前登录的为超级管理员(),一般不修改该提示符;
- $:表示当前登录的为普通用户(),一般不修改该提示符;
- 普通用户和超级用户的区别:
- 权限:相当于以前的老百姓和帝王的关系;
- [root@destiny ~]#
bash基础语法
-
Bash Shell的基础语法:
-
命令行bash shell,为用户提供输入,执行命令的界面
-
#命令 选项 参数 command [-options] [arguments] [root@web ~]# ls #命令 [root@web ~]# ls -a #命令+选项 [root@web ~]# ls -a /home/ #命令+选项+参数 #命令:整条shell命令的主体 #选项:用于调节命令的具体功能 #以“-”引导短格式选项(单个字符),例如:"-a" #以“--”引导长格式选项(多个字符),例如:"--all" #多个短格式选项可以写在一起,只用一个“-”引导,例如:"-al" #参数:命令操作的对象,如文件,目录名等 #命令必须开头,选项和参数位置可以发生变化 #ls # -l 长格式显示文件列表 # -a 显示当前目录下的所有文件,包括隐藏文件 #以.开头命名的文件都是隐藏文件
-
bash特性
-
Bash Shell的常用特性:
牵扯到一些命令,熟练使用;
-
命令补全
当使用Windows查找一个目录特别多的文件时,打开的效率会非常的慢,但如果使用Linux查找一个目录曾特别多的文件时,可以通过tab键快速的补全
PS:tab键可以实现命令补全,路径补全;在实际生产中tab键补全往往是我们使用最多的,因为可以减少执行命令以及路径出错率。
#查看ip时忘记了具体的命令 [root@web ~]# ifcon #按下tab键会自动补全 [root@web ~]# ifconfig #按一下tab键没有反应,按两下tab键列出所有if开头的命令 [root@web ~]# if if ifcfg ifconfig ifdown ifenslave ifstat ifup #Linux目录较深,经常使用tab键补全,如果路径出错是没有办法补全 [root@web ~]# ls /etc/sysconfig/network-scripts/
注意:
- No such file or directory :(没有这个文件或目录)路径写错了,文件名称不对;
- command not found:找不到该命令,要么命令不存在,要么没有安装该命令;
-
命令快捷键,快捷键可以帮助我们大大提升工作效率
Ctrl + a #将命令移动到这一行命令的行首; Ctrl + e #将命令移动到这一行命令的行尾; Ctrl + l #清屏(对应命令clear); Ctrl + c #结束掉当前执行的任何任务,非常常用; Ctrl + k #删除光标以后的所有内容; Ctrl + u #删除光标以前的所有内容; Ctrl + w #按照单词进行向前删除光标以前的内容; Ctrl + 左右键 #按照单词进行跳跃; Ctrl + d #结束当前的bash shell窗口会话,并不影响服务器运行的后台程序; Ctrl + z #将任务暂停,挂至后台 Ctrl + r #搜索历史命令,利用关键字 #在命令行前面加"#",则该命令不会被执行
-
历史记录(命令)
history 追溯之前发生情况
history -w 保存命令历史到历史文件
history -c 清空命令历史记录,不会清空文件
history -d 删除命令历史的第N条记录
# 使用双!!,可执行上一条执行过的命令 # 输入!6,执行hiistory命令历史中的第6行命令 # 使用!cat,调用history命令行历史最近一次执行过的cat命令 [root@web ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 [root@web ~]# !cat cat /etc/sysconfig/network-scripts/ifcfg-eth0
-
系统别名
-
设定别名——alias
[root@web ~]# alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens32'
-
取消系统别名——unalias
[root@web ~]# unalias net
-
假设我们在A窗口设定了别名,那么我们在B窗口是否能使用别名?不能。关掉再次打开也一样。它只是临时生效的。
-
不能使用,需要将别名定义在文件中,才可以永久使用,无论哪个窗口都可以
[root@web ~]# echo "alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens32' " >> .bashrc # >> 追加符号:往文件中追加内容 # > 清空
-
-