您的位置:首页 > 运维架构 > Shell

Shell中必须掌握的基础应用

2020-07-21 10:03 399 查看

本案例要求熟悉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/shells
4.	/bin/sh
5.	/bin/bash
6.	/sbin/nologin
7.	/bin/tcsh
8.	/bin/csh
9.	/bin/ksh                                        //确认当前系统已识别ksh
10.
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/passwd
3.	zhangsan:x:516:516::/home/zhangsan:/bin/ksh              //修改后

步骤二:快捷键与Tab键补齐,常见快捷键如表-1所示

[步骤三:练习命令历史
1)检查历史命令的容量。
默认记录1000条,通过全局变量HISTSIZE设置,对所有用户有效:

1.	[root@dyy ~]# grep HISTSIZE /etc/profile
2.
3.	HISTSIZE=1000

查看已为当前用户记录的历史命令条数:

1.	[root@dyy ~]# history | wc -l
2.	1000

2)查看历史命令列表。
列出最近执行的10条历史命令:

1.	[root@dyy ~]# history | tail
2.	 1028  grep 'zhangsan' /etc/passwd
3.	 1029  cat /etc/redhat-release
4.	 1030  usermod -s /bin/tcsh zhangsan
5.	 1031  grep 'zhangsan' /etc/passwd
6.	 1032  su - zhangsan
7.	 1033  echo 1234567 | passwd --stdin zhangsan
8.	 1034  su - zhangsan
9.	 1035  grep HISTSIZE /etc/profile
10.	 1036  history | wc -l
11.	 1037  history | tail

3)调用指定的历史命令。
重新执行历史命令列表中的第1028条操作:

1.	[root@dyy ~]# !1028
2.	grep 'zhangsan' /etc/passwd
3.	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_history
5.	   43  history

步骤四:管道操作实践
借助于管道符“|”,可以将一条命令的标准输出交给另一条命令处理,在一条命令行内可依次使用多个管道。
1)统计/etc/目录下资料的数量。

1.	[root@dyy ~]# ls -l /etc | wc -l
2.	254

2)列出Yum库里名称中含cluster的软件包。

1.	[root@dyy ~]# yum list | grep cluster
2.	cluster-cim.x86_64                 0.12.1-7.el5     RHEL5-Cluster
3.	cluster-snmp.x86_64                 0.12.1-7.el5     RHEL5-Cluster
4.	… …
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: