linux系统shell脚步基础练习

规范的shell脚本一般组成环境声明 (如:#! /bin/bash)注释文本可执行的代码练习1(查看当前计算机命名、版本、IP、呈现 wo ai ni ):[root@server0 ~]# vim /root/1.sh //编写1.sh脚本#! /bin/bash // 环境声明echo wo ai ni ...
摘要由CSDN通过智能技术生成

规范的shell脚本一般组成

  • 环境声明 (如:#! /bin/bash)

  • 注释文本

  • 可执行的代码

  • $变量值

  • /dev/null 黑洞设备,不要的文件可以放到这里

  • 认识时间命令date

[root@server0 ~]# mkdir mysq-l$(date +%F)       //创建一个显示当前时间目录 ,$(date +%F)显示当前时间
[root@server0 ~]# ls
1.sh  anaconda-ks.cfg  iso  mysq-l2019-01-07
  • expr 数据运行 如:

[root@server0 ~]# expr 1 + 1     //留意空格
2
[root@server0 ~]# expr 10 \* 10      //  *需要加\才可以成为乘号
100
[root@server0 ~]# expr 10 / 10
1
[root@server0 ~]# expr 10 % 3        //取10/3的余数
1

  • $USER 当前用户的变量
    [root@room4pc09 ~]# echo $USER
    root
  • 位置变量练习
  • 大于9以上变量需要加echo ${10},$1-100是对应 1-100的位置
  • echo $? 显示0 代表上一次命令运行成功,非0值则不成功
[root@room4pc09 桌面]# echo $?
0                                                          //0值代表上次一次命令执行成功

[root@room4pc09 桌面]# echo $?
127                                                   //非0值代表上次命令执行不成功

[root@room4pc09 ~]#vim 2.sh 
#! /bin/bash
echo $1
echo $2
echo $3
echo $10
echo $#
echo $*

[root@room4pc09 ~]# ./2.sh pan1 pan2 pan3 pan4 pan5 pan6 pan7 pan8 pan9 pan10         //对应上面位置输出
pan1                                              //$1 
pan2                                             //$2
pan3                                             //$3
pan{10}                                          //$10
10                                               //$# 显示位置变量个数
pan1 pan2 pan3 pan4 pan5 pan6 pan7 pan8 pan9 pan10    //$* 显示所有的位置变量值

[root@server0 ~]# vim 1.sh 
#! /bin/bash
useradd $1 
echo $2 | passwd --stdin $1

[root@server0 ~]# chmod +x 1.sh        //脚本给执行权限 

[root@server0 ~]# ./1.sh ai 123456           // ai 对应$1 ,123456 对应 $2
更改用户 ai 的密码 。
passwd:所有的身份验证令牌已经成功更新。

练习1(查看当前计算机命名、版本、IP、呈现 wo ai ni ):

[root@server0 ~]# vim /root/1.sh        //编写1.sh脚本
#! /bin/bash                            // 环境声明
echo wo ai ni                            // 显示wo ai ni 
hostname                                 //计算机名称
cat /etc/redhat-release                  //查看当前版本
ifconfig | head -3                       //查看IP 前3行
[root@server0 ~]# chmod +x  1.sh             //给脚本执行权限
[root@server0 ~]# ./1.sh                     //运行1.sh脚本
wo ai ni                                     //对应脚本执行程序 
server0.example.com
Red Hat Enterprise Linux Server release 7.0 (Maipo)
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.0.11  netmask 255.255.255.0  broadcast 172.25.0.255
        inet6 fe80::5054:ff:fe00:b  prefixlen 64  scopeid 0x20<link>


练习2(自动搭建yum脚本):

[root@server0 ~]# vim /root/yum.sh    //新建一个yum脚本
#! /bin/bash                          //注释声明
echo '[dvd]                           //呈现‘yum内容’   
name=pan
baseurl=file:///mnt                   //路径本地
enabled=1
gpgcheck=0' >/etc/yum.repos.d/dvd.repo    //放到系统yum指定位置
yum clean all     //yum干净所有
yum repolist


[root@server0 ~]# chmod +x /root/yum.sh       //给于执行权限

[root@server0 ~]# /root/yum.sh                //运行yum脚本
已加载插件:langpacks
正在清理软件源: dvd
Cleaning up everything
已加载插件:langpacks
dvd                                                                                   | 4.1 kB  00:00:00     
(1/2): dvd/group_gz                                                                   | 137 kB  00:00:00     
(2/2): dvd/primary_db                                                                 

[root@server0 ~]# yum -y install gcc      //测试安装gcc服务

shell重定向输出

>:只收集前面命令正确输出
2>: 只收集前面命令错误输出
&>: 收集前面命令正确错误输出

练习收集>正确输出

    [root@server0 ~]# echo 123 > /opt/1.txt
    [root@server0 ~]# cat /opt/1.txt 
    123

练习收集2>错误输出

[root@server0 ~]# cat /opt/1.txt  /etc > /opt/a.txt
cat: /etc: 是一个目录

[root@server0 ~]# cat /opt/1.txt  /etc/ 2> /opt/a.txt 
123

练习收集&>正确错误输出

[root@server0 ~]# cat /opt/1.txt  /etc/ &> /opt/a.txt 
[root@server0 ~]# cat /opt/a.txt 
123
cat: /etc/: 是一个目录
[root@server0 ~]# 

linux黑洞设备,不要的文件可以放到这里


    [root@server0 ~]# ls /dev/null     //linux黑洞设备,不要的文件可以放到这里
    /dev/null

练习脚本3(用shell创建用户名和密码,* read -p 产生交互命令)


[root@room4pc09 ~]# vim yonghu.sh          //创建脚本

#! /bin/bash                                  //注释解析器
read -p '请输入创建帐号名:' user                //交互式请创建人输出账号
read -p '请输入创建密码:' pasw                 //交互式请输入密码
useradd $user &> /dev/null                     //创建用户账号   文件保存到null  
echo $pasw | passwd --stdin $user &> /dev/null      //创建密码  
echo $user '创建成功'                                 //呈现创建成功

[root@room4pc09 ~]# chmod +x yonghu.sh                       //给脚本运行权限

[root@room4pc09 ~]# ./yonghu.sh                               //运行脚本
请输入创建帐号名:pan                                    //输入账号
请输入创建密码:11                               //输入密码
pan 创建成功

练习脚本4

[root@room4pc09 ~]# vim 3.sh      //创建脚本
#! /bin/bash	               
cat -n $1 | head -2               //查看 (显示行) ,呈现2行内容

[root@room4pc09 ~]# ./3.sh /etc/passwd      //运行脚本
      1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值