SHELL 01 基本概述

2 篇文章 0 订阅

Shell概述

一.Shell环境及特性

1.什么是shell

在Linux内核与用户之间的解释器程序

通常指/bin/bash

负责向内核翻译及传达用户/程序指令

相当于操作系统的”外壳”

2.Shell的使用方式

(1).交互执行指令:人工干预,执行效率底。----命令行

(2).非交互执行指令:安静地在后台执行,执行效率高,方便写脚本。

---脚本 若需要临时使用另一种Shell环境,可以直接执行对应的Shell解释器程序,

比如只要执行ksh可以切换到ksh命令行环境。

 

3.常见的shell程序种类

如何切换shell化境

通过usermod . Chsh .更改登录的shell

手动执行目标shell程序可以使用2个脚本验证

[root@desktop0 ~]# yum repolist       //先查看yum仓库
[root@desktop0 ~]# yum -y install ksh  //安装新解释器ksh

[root@desktop ~]# cat /etc/shells        //显示shell程序类型       
[root@desktop0 ~]# ksh

若希望修改用户的登录Shell,管理员可以直接通过usermod(或useradd)命令设置。可以使用2个脚本验证

比如,以下操作可将用户zhangsan的登录Shell改为/bin/ksh:

[root@desktop0 ~]# useradd -s /bin/ksh zhangsan  //执行修改操作
[root@desktop0 ~]# usermod -s /bin/ksh zhangsan  //或

[root@desktop0 ~]# grep 'zhangsan' /etc/passwd   //查看修改后的zhangsan用

Bash基本特性  支持的功能

命令行环境回顾

--快捷键.Tab健补齐

--历史记录可以使用2个脚本验证

---命令别名

----标准输入输出

----重定向

-----管道操作

 

二.历史命令

存放位置及数量

操作历史命令

[root@desktop0 ~]# vim /etc/profile    //修改HISTSIZE=10决定能保存的历史命令数量
[root@desktop0 ~]# > .bash_history    //清空历史记录文件
Sh ksh

 

编写shell规范

1.

声明解释器  #!/bin/bash

2.脚本功能注释, #此脚本的作用,使用场所.作者等(步骤,思路.用途.变量含义等)

3.脚本内容,要执行的指令

 

脚本的执行方式:

  1. 添加x权限
  2. 使用bash之类的解释器读取脚本文件,比如bash test1 或者sh test1 新开子进程(解释器)
  3. 使用source命令读取脚本文件,比如source test1 Source可以省略为.不开启子进程(解释器)

[root@desktop0 ~]# cd /opt/
[root@desktop0 opt]# vim test1          //写一个脚本
#!/bin/bash
echo “hello world”

[root@desktop0 opt]# ls
[root@desktop0 opt]#chmod +x test1      //方法一
[root@desktop0 opt]# bash test1         //bash解释器读取文件
[root@desktop0 opt]# sh test1           //sh  解释器 读取文件
[root@desktop0 opt]# . test1            //source解释器 读取文件
hello world

可以使用2个脚本验证

#!/bin/bash                 //使用bash运行不会有进入123目录的效果
Mkdir /opt/123
cd /opt/123
#!/bin/bash             //使用bash运行不会有任何反应,source运行会退出当前终端

 

写一个自动配置yum仓库的脚本

#!/bin/bash
echo ‘[abc]
name=abc
baseurl=ftp://172.25.254.250/rhel7           //真机的yum源
enabled=1
gpgcheck=0’ > /etc/yum.repos.d/abc.repo

 增加安装ftp服务(vsftpd)的需求,安装好之后开启服务,且每次开机自动运行Ftp服务

#!/bin/bash
echo ‘[abc]
name=abc
baseurl=ftp://172.25.254.250/rhel7           //真机的yum源
enabled=1
gpgcheck=0’ > /etc/yum.repos.d/abc.repo

yum -y install vsftpd & > /dev/null          //安装ftp服务,并将不需要的信息扔掉
systemctl start    vsftpd
systemctl enable  vsftpd

变量:

  1. 自定义变量,使用大小写字母,数字,下划线,不能以数字开头,不能使用特殊符号
  2. 系统变量,包含环境变量,预定义变量,大部分是系统已经定义好的,直接shiyong
  3. 环境变量,PWD当前位置 USER当前用户名 HOSTNAME主机名 SHELL当前 用户解释器 HOME当前 录目家的用户UID当前用户的UID号 PATH系统 命令所在地 PS1一级提示符  PS2二级提示符

列:查看当前位置使用 echo$PWD

$* 显示所有位置变量的值

$# 统计位置变量的个数

$$当前程序的进程号

$? 上一条指令的执行结果,0是正确,非0标示异常

 

列:

写一个脚本,可以创建abc账号并配置密码123

[root@desktop0 opt]# vim test2    
[root@desktop0 opt]# cat test2
#!/bin/bash
useradd abc                                      //创建用户是abc
echo 123 | passwd --stdin abc                     //密码是123   

[root@desktop0 opt]# bash test2 
更改用户 abc 的密码 。
passwd:所有的身份验证令牌已经成功更新。

改良:

[root@desktop0 opt]# vim test2    
[root@desktop0 opt]# cat test2
#!/bin/bash
useradd $1                                       //创建用户是$1
echo $2 | passwd --stdin $1                      //密码是$2   

[root@desktop0 opt]# bash test2 natasha 321
更改用户 natasha 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@desktop0 opt]# vim test2
#!/bin/bash
useradd $1 &>> /opt/no.txt                (#将提示重定向到文本中)
echo $2 | passwd --stdin $1
[root@desktop0 opt]# cat test2

全局变量 export

[root@server0 ~]# b=30 
[root@server0 ~]# export b

 

变量值及范围控制

扩展赋值操作

区分三种定界符

  1. 双引号 “ “ :允许扩展,以$引用其他变量     (用来界定范围)
  2. 单引号’ ‘ : 禁用扩展,即便$也视为普通字符 (用来界定范围,可以屏蔽特殊字符号的作用)
  3. 反撇号 `` 或 $():将命令的执行输出作为变量值
  4. read :使用read命令从键盘读取变量值
[root@desktop0 opt]# vim test2
#!/bin/bash
read -p "请输入账户名" u
read -p "请输入密码" p
useradd $u &>> /opt/no.txt
echo $p | passwd --stdin $u

Stty -echo 关闭回显  (可以在输入密码时关闭回显) 
Stty echo  恢复

[root@desktop0 opt]# vim test2
#!/bin/bash
read -p "请输入账户名" u
stty -echo                                  //关闭回显
read -p "请输入密码" p
useradd $u &>> /opt/no.txt
echo $p | passwd --stdin $u


[root@desktop0 opt]# bash test2
请输入账户名
请输入密码更改用户 natasha 的密码 (不显示)
passwd:所有的身份验证令牌已经成功更新。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值