一、Bash Shell初步认识
1.什么是Bash Shell(壳)?
命令解释器, 将用户输入的命令,翻译给内核程序.
将用户输入的指令翻译给内核程序,内核处理完成之后将结果返回给bash
Bash Shell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。当我们使用远程连接工具连接linux服务,系统则会给打开一个默认的shell,我们可在这个界面执行命令、比如:获取系统当前时间,创建一个用户等等...
如何打开一个bash窗口:
通过Xshell连接,就算打开一个Bash程序的窗口.
2.Bash Shell能做什么?
几乎能完成所有的操作:
文件管理 (创建 移动 复制 删除 编辑 等等)
用户管理 (创建 删除 ....)
权限管理
磁盘管理
网络管理
进程管理
......
3.平时我们是如何使用Bash Shell?
单条命令 --> 效率低 ---> 适合少量工作
[root@oldboy ~]# ls
anaconda-ks.cfg
Shell Script --> 效率高 ---> 适合复杂 并且重复性的工作
[root@oldboy ~]# cat a.sh
#!bin/bash
for i in {1..10}
do
useradd test$i
echo "Create test$i is OK!"
done
[root@oldboy ~]# sh a.sh
Create test1 is OK!
Create test2 is OK!
Create test3 is OK!
Create test4 is OK!
Create test5 is OK!
Create test6 is OK!
Create test7 is OK!
Create test8 is OK!
Create test9 is OK!
Create test10 is OK!
4.Bash Shell提示符
5.Bash Shell基础语法
命令 [选项] [参数]
ls -a /tmp/
打针 重点|轻点 往哪打
命令: 主体
选项: 用来调节命令的输出效果
-a 以 “-”引导短格式选项(单个字符)
--all 以“--”引导长格式选项(多个字符)
选择使用短格式- , 在选项特别多的时候可以组合使用 -a -l -al
参数:命令操作的对象,如文件或者路径等
PS: 命令必须开头,选项和参数可以出现位置调换的情况
ls #列出当前目录下的内容
[root@oldboy ~]# ls bash_logout
ls: cannot access bash_logout: No such file or directory #没有找到这个文件或目录
PS:相信电脑: 不要相信自己 这个文件不存在,或者这个文件名称写错了
[root@oldboy ~]# useraddttt
-bash: useraddttt: command not found #命令未找到
二、Bash Shell基本特性
1.命令补全 tab
命令补全 路径补全 选项补全
输入命令: 按下tab键 会自动补全;但是如果无法补全,按两下tab键列出所有if开头的命令。
路径补全: 保证唯一就能实现补全功能,但如果输入错误则不会补全成功。
选项补全: yum install bash-completion
PS:输入错误,tab键不好使/
2.命令快捷键
ctrl+c 终止当前正在运行的程序
ctrl+l 清屏 === clear命令
ctrl+w 按单词或者空格进行向前删除
ctrl+ -> 快速右移
ctrl+ <- 快速左移
ctrl+a 光标跳转至行首
ctrl+e 光标跳转至行尾
ctrl+z 暂时放入后台 几乎不用
ctrl+u 删除光标以前的所有内容
ctrl+k 删除光标以后的所有内容
ctrl+r 搜索的此前执行过的命令
3.历史命令History,
追溯之前发生情况 (查找执行的命令历史记录)
-w 保存命令历史到历史文件
-c 清空命令历史记录, 不会清空已保存的文件
-d 删除命令历史的第 N 条行
history 获取当前执行的历史记录
使用双 !! 可执行上一条执行过的命令
!60 #调取history记录中编号为60的命令
ESC + . #调用上一条命令的最后参数或选项
1.保存历史记录 [root@oldboy ~]# cat .bash_history #当前用户的家目录下
[root@oldboy ~]# history -w
2.尝试使用history -c 清除记录
3.操作完成后,清楚记录
[root@oldboy ~]# history -c
[root@oldboy ~]# > .bash_history
[root@oldboy ~]# cat .bash_history
4.命令别名 alias unalias
系统有很多内置的别名
1.设置别名(临时生效)
[root@oldboy ~]# alias wk='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@oldboy ~]# wk
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=e3ab73b9-4001-4639-bce2-9ff418143b13
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.200
PREFIX=24
GATEWAY=10.0.0.254
DNS1=223.5.5.5
IPV6_PRIVACY=no
2.取消别名(临时生效)
[root@oldboy ~]# unalias wk
[root@oldboy ~]# wk
-bash: wk: command not found
3.永久添加别名
/etc/bashrc
[root@oldboy ~]# echo "alias ifconfig='ifconfig eth0'" >> /etc/bashrc
三、Bash Shell获取帮助
1.命令 --help帮助
# ls --help
2.命令 man手册
# man ls #查看ls命令的手册