初识Shell——bash
Linux中的shell有点类似Windows下的cmd.exe或者.bat。管理整个计算机硬件的其实是操作系统的内核(Kernel),用户无法与内核直接交互,所以通过shell来跟内核通信。即shell介于操作系统(Kernel)和用户之间,它是用户与内核的翻译官,是一个命令解释器。
常见的shell种类有:Bsh、Csh、Ksh、Bash、Zsh
Bsh和Csh出现的较早,Ksh继承了它两的功能,Bash继承了Bsh和Ksh的升级版,而且是Linux系统中默认的shell,Zsh则兼具了各种shell的程序有点,交互式操作效率更高,但仍不及bash应用广泛。
Shell环境的切换:
登录Shell:指用户每次登录系统后自动加载的Shell程序,大多数Linux系统采用 /bin/bash 作为默认登录Shell;/etc/shells 文件记录了系统支持的有效登录Shell
[root@localhost ~]# cat /etc/shells ==>使用chsh -l命令也可查看 /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/ksh [root@localhost ~]#
默认的shell是bash,那么如何切换shell环境呢?分为两种,一种是临时切换,即当此终端关闭时,下次启动仍然是bash,方法很简单,直接在终端输入shell名称;第二种则是更改用户登录Shell,需要修改/etc/passwd文件中用户记录的最后一个字段,或者像前面讲到的使用修改用户的命令:usermod -s shell程序路径 用户名,也可以使用chsh命令,下次登录有效。
查看当前shell可以通过/etc/passwd来查看,要查看系统默认使用的shell,可以使用echo $SHELL。
bash的常用功能:
1)Tab键自动补齐
这个功能可以让您少打很多字,并且确定输入是正确的。tab键接在一串命令的第一个字后面,则为命令补全;若接在一串命令的第二个字后面,则为文件补全;直接在bash提示符后面按两下tab键,则能显示所有可执行的命令。
2)命令编辑快捷键
如之前提到的ctrl+D,ctrl+L,ctrl+U等
3)命令历史
保存用户曾经执行过的命令操作;存放位置是:~/.bash_history隐藏文件;查看历史命令只需使用history命令就行了。
调用历史命令:
!n:执行历史记录中的第n条命令
!str:执行历史记录中以“str”开头的命令
设置记录历史命令的条数:修改HISTSIZSE参数即可(在/etc/profile文件里),默认为1000条。
(备注:正确使用历史命令可以有效提高命令行输入的效率,例如:如果之前不久执行过“service network restart”命令,则重新修改了网卡的配置文件以后,通常只需要执行“!ser”操作即可调用该历史命令,以重启network服务。合理控制历史命令的条数可以提高安全性,root用户的命令历史一般建议设置为少于100条)
4)命令别名
为使用较高的复杂命令行设置间断的调用名称,存放位置是:~/.bashrc隐藏文件。查看命令别名只需用alias命令即可。
(备注:手动使用alias命令设置的别名只在当前Shell环境中有效,如alias rm='rm -i';若需每次登录Shell环境时设置的别名都有效,需要修改宿主目录中的“.bashrc”文件,添加相应别名设置)
5)标准输入输出
交互式硬件设备:
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息
类型 |
设备文件 |
文件描述编号 |
默认设备 |
标准输入 |
/dev/stdin |
0 |
键盘 |
标准输出 |
/dev/stdout |
1 |
显示器 |
标准错误输出 |
/dev/stderr |
2 |
显示器 |
(备注:/dev/stdin、/dev/stdout、/dev/stderr这三个文件是一个符号链接,输入输出与重定向关系紧密)
6)重定向操作
改变标准输入、标准输出、标准错误的方向:
类型 |
操作符 |
用途 |
重定向标准输入 |
< |
将命令中接收输入的途径由默认的键盘更改为指定的文件 |
重定向标准输出 |
> |
将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上 |
>> |
将命令执行的结果追加输出到指定文件 | |
重定向标准错误 |
2> |
清空指定文件的内容,并将标准错误信息保存到该文件中 |
2>> |
将标准错误信息追加输出到指定的文件中 | |
重定向标准输出和 标准错误 |
&> |
将标准输出、标准错误的内容全部保存到指定的文件中,而不是直接显示在屏幕上 |
7)管道操作
管道操作符号是“|”,连接左右两个命令,将左侧的命令输出的结果,作为右侧命令的输入(处理对象)。管道是脚本语言的特色,它可以讲多个功能连接起来形成一个大的功能,这点与面向对象有很大的不同。
例如我现在要查看历史记录命令的第4行:则可先将前4条命令显示出来,在��示前4条命令的最后一条:history | head -4 | tail -1 这样即取出了第四条命令。
RHCE7认证学习笔记:网络端口安全
[红帽认证辅导]2016年2月19日Linux笔试面试常见题目
[红帽认证试题]2016年2月14日RHCE学习笔记:如何设置和测试静态网络路由
[红帽认证辅导]2016年1月19日红旗Linux用户基础教程其他实用命令汇总
[红旗认证辅导]2015年5月11日红帽RHCE认证133网络管理汇总
[红帽认证辅导]2015年5月11日