本案例要求熟悉Linux Shell环境的特点,主要练习以下操作:
- 切换用户的Shell环境
- 练习命令历史、命令别名
- 重定向标准输入/输出/错误输出
- 管道操作实践
步骤一:切换用户的Shell环境
什么是shell?
Shell是在Linux内核与用户之间的解释器程序,通常指的是bash,负责向内核翻译及传达用户/程序指令。
shell的使用方式:
1.交互执行指令:人工干预,执行效率底。
2.非交互执行指令:安静地在后台执行,执行效率高,方便写脚本。
若需要临时使用另一种Shell环境,可以直接执行对应的Shell解释器程序,比如只要执行ksh可以切换到ksh命令行环境。
1. [root@dyy ~]# yum -y install ksh //若缺少ksh请先安装ksh包2. .. ..3. [root@dyy ~]# cat /etc/shells4. /bin/sh5. /bin/bash6. /sbin/nologin7. /bin/tcsh8. /bin/csh9. /bin/ksh //确认当前系统已识别ksh10.11. [root@dyy ~]# ksh //进入ksh环境12. [root@sdyy]~# exit //返回到切换前的bash环境
若希望修改用户的登录Shell,管理员可以直接通过usermod(或useradd)命令设置。比如,以下操作可将用户zhangsan的登录Shell改为/bin/ksh:
1. [root@dyy ~]# usermod -s /bin/ksh zhangsan //执行修改操作2. [root@dyy ~]# grep \'zhangsan\' /etc/passwd3. zhangsan:x:516:516::/home/zhangsan:/bin/ksh //修改后
步骤二:快捷键与Tab键补齐,常见快捷键如表-1所示
[步骤三:练习命令历史
1)检查历史命令的容量。
默认记录1000条,通过全局变量HISTSIZE设置,对所有用户有效:
1. [root@dyy ~]# grep HISTSIZE /etc/profile2.3. HISTSIZE=1000
查看已为当前用户记录的历史命令条数:
1. [root@dyy ~]# history | wc -l2. 1000
2)查看历史命令列表。
列出最近执行的10条历史命令:
1. [root@dyy ~]# history | tail2. 1028 grep \'zhangsan\' /etc/passwd3. 1029 cat /etc/redhat-release4. 1030 usermod -s /bin/tcsh zhangsan5. 1031 grep \'zhangsan\' /etc/passwd6. 1032 su - zhangsan7. 1033 echo 1234567 | passwd --stdin zhangsan8. 1034 su - zhangsan9. 1035 grep HISTSIZE /etc/profile10. 1036 history | wc -l11. 1037 history | tail
3)调用指定的历史命令。
重新执行历史命令列表中的第1028条操作:
1. [root@dyy ~]# !10282. grep \'zhangsan\' /etc/passwd3. zhangsan:x:516:516::/home/zhangsan:/bin/bash
4)清空历史的命令
1. [root@dyy ~]# history -c //清空自己的历史命令2. [root@dyy ~]# > ~/.bash_history //清空记录文件3. [root@dyy ~]# history //再次检查历史命令列表4. 42 > ~/.bash_history5. 43 history
步骤四:管道操作实践
借助于管道符“|”,可以将一条命令的标准输出交给另一条命令处理,在一条命令行内可依次使用多个管道。
1)统计/etc/目录下资料的数量。
1. [root@dyy ~]# ls -l /etc | wc -l2. 254
2)列出Yum库里名称中含cluster的软件包。
1. [root@dyy ~]# yum list | grep cluster2. cluster-cim.x86_64 0.12.1-7.el5 RHEL5-Cluster3. cluster-snmp.x86_64 0.12.1-7.el5 RHEL5-Cluster4. … …