一、Bash初识 Bash Shell介绍
Bash Shell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,把用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。
Bash Shell的作用使用shell实现对linux系统的大部分管理,例如:date
文件管理
用户管理
权限管理
磁盘管理
网络管理
软件管理
应用管理
...
Bash 两种方式 1.输入命令方式: 效率低,适合少量工作
2. shell script (脚本方式): 效率高,适合大量工作
命令方式: [root@CentOS7 ~]# date #获取当前时间 2019年 06月 14日 星期五 15:47 CST [root@centos7 ~]# useradd gjy #增加用户名bash -version命令:
(GNU GPL标示,如下图)
用脚本方式: 例如:如果要创建100个用户,使用shell script for n in `seq100`;do useradd oldboy$n && \ echo "用户 oldboy$n 已创建成功" done [root@centos7 ~]# bash user.sh 表示100个0ldboy用户已创建成功 命令提示符 例如:[root@centos7 ~]# [root @ centos7 ~ ]# #超级管理员 [oldboy @ centos7 ~ ]# #普通用户 #当前登录的用户 主机名 当前登录的位置 #后是注释,不执行 home/oldboy:普通用户家目录 /root:root用户的家目录 查看当前命令解释符 [root@centos7 ~]# echo $ps1 [\u@\h \w]\$ echo:在bash shell中调用变量 $ 查看当前用户(whoamai:查看当前登录的用户) [root@centos7 ~]# whoamai root root:超级系统用户名,也是当前系统的用户PS1的常用参数以及含义:(了解)
\d: 代表日期,date \H: 完整的主机名称 \h: 仅取主机名中的第一个名字 \t: 显示时间为24小时格式 如:HH:MM:SS \T: 显示时间为12小时格式 \A: 显示时间为24小时格式:HH:MM \u: 当前用户的账号名称 \v: BASH的版本信息 \w: 完整的工作目录名称 \W: 利用bashname取得工作目录名称,只显示最后一个目录名 \#: 下达的第几个命令 \$: 提示字符,如果是root用户,提示符为#,普通用户则为$ 颜色: 30 40黑色 31 41红色 ......固定改变颜色的格式:(了解)
PS1='\[\e[32;40m\] \[[\u@\h \w \t]\$ \[\e[0m\]' PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ " PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\[\e[35;40m\]\h\[\e[0m\] \[\e[36;40m\]\w\[\e[0m\]]\\$ " 二、Shell的基本语法 命令 选项 参数 command [-options] [arguments] 中括号可有可无 [root@centos7 ~]# ls //命令 [root@centos7 ~]# ls -l //命令+选项 [root@centos7 ~]# ls -l /home/ //命令+选项+参数 命令:整条shell命令的主体 选项:用于调节命令的具体功能 参数:如文件、目录等 命令必须开头,选项和参数位置可以发生变化 echo:所见即所得,输出echo后面参数的内容 -e :识别换行符等特殊符号 \ :转义符 $ :调用变量 echo 'gjy' echo -e 'gjy\n123' 三、Shell的基本特性 1.命令补全 tab当使用windows查找一个目录层级特别多的文件时,打开的效率会非常的慢,linux查找这样文件时,可以用tab键快速补全。
命令补全
参数补全:yum install -y bash-completion
选项补全:主要是补全路径
备注:tab键可以实行命令补全,路径补全,在实际生产中tab补全用的最多,可以减少执行命令以及路径出错率,还能提高输入效率。
例如:、 [root@centos7 ~]# ifc #按下tab键会自动补全,若按一下tab没反应,就需要按两下tab键,列出所有if开头的命令 ifcfg ifcconfig [root@centos7 ~]# ifconfig [root@centos7 ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0如果无法补全选项,那么需要一个安装一个扩展包
[root@centos7 ~]# yum install -y bash-completion -y是确定执行,不加'-y',系统会发送指令给你再确定下 2. Linux的快捷键 ctrl + a:将光标跳转到行首 ctrl + e:将光标跳转到行末 Ctrl + w:以空格为单位,将当前光标位置之前的内容删除 ctrl + u:将当前光标位置之前的内容全部删除 ctrl + l:清屏 ctrl + c:终止当前命令 ctrl + d:退出,断开当前连接(exit,logout) ctrl + z:挂起,放后台执行 ctrl + r:搜索历史命令 ctrl + s:锁屏 ctrl + q:解锁 ctrl +左右:按照单词跳转光标 esc + . :瞬间显示出上一条命令,最后的内容,以空格分隔 3.历史命令history历史命令的作用:追溯之前的发生情况,记录历史命令,非常重要,也就是日志审计
-w : 保存历史命令到文件中write
-d : 删除历史命令中的 第n行 delete(删除)
-c : 清空命令历史记录,不会清空文件 clear(清除)