AI智能
改变未来

Shell中必须掌握的基础应用

本案例要求熟悉Linux Shell环境的特点,主要练习以下操作:

  1. 切换用户的Shell环境
  2. 练习命令历史、命令别名
  3. 重定向标准输入/输出/错误输出
  4. 管道操作实践
    步骤一:切换用户的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.	… …
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Shell中必须掌握的基础应用