zoukankan      html  css  js  c++  java
  • shell基本使用

    1.1 shell基础

      1、系统变量

    (1)新建脚本文件welcome.sh,用来输出各种监控信息。
    [root@localhost ~]# vi /root/welcome.sh
    #!/bin/bash
    echo "已开启进程数:$(ps aux | wc -l)"
    echo "已登录用户数:$(who | wc -l)"
    echo "根分区磁盘使用率:$(df -h | grep "/$" | awk '{print $4}')"
    [root@localhost ~]# chmod +x /root/welcome.sh
    2)修改/root/.bash_profile文件,调用welcome.sh脚本程序。
    [root@localhost ~]# vi /root/.bash_profile
    # 在文件末尾添加这条语句
    /root/welcome.sh
    
    (3)使用root用户重新登录,验证欢迎脚本的输出信息。
    Last login: Mon Feb 26 14:52:41 2018 from 1.1.1.100
    已开启进程数:183
    已登录用户数:4
    根分区磁盘空闲:7.4G
    编写登录欢迎脚本

    1.2 重定向与管道操作

      1、重定向输出  

        [root@localhost ~]# uname  > kernel.txt
        [root@localhost ~]# cat kernel.txt
        [root@localhost ~]# uname -r >> kernel.txt                    \追加并保存,不覆盖原有的数据
        [root@localhost ~]# cat kernel.txt

      2、重定向输入

        [root@localhost ~]# vi pass.txt
        添加
        123456
        [root@localhost 桌面]# useradd aaa
        [root@localhost ~]# passwd --stdin aaa <pass.txt \selinux要设置为disabled

    1.3 使用shell变量

      1、自定义变量

          [root@localhost ~]# product=benet
          [root@localhost ~]# version=5.0

      2、查看和引用变量的值

          [root@localhost ~]# echo $product
          benet
          [root@localhost ~]# echo $product $version
          benet 5.0
          [root@localhost ~]# echo $product4.5                                 \错误的引用
          .5
          [root@localhost ~]# echo ${product}4.5
          benet4.5

      3、变量赋值的特殊操作

        1.  双引号(可以引用其他变量的值)

          [root@localhost ~]# benet=benet 5.0 \错误的赋值
          bash: 5.0: command not found
          [root@localhost ~]# benet="benet 5.0"
          [root@localhost ~]# echo $benet
          [root@localhost ~]# accp="accp $version"
          [root@localhost ~]# echo $accp

        2. 单引号(任何字符都当做普通字符)

          [root@localhost ~]# accp='accp $version'
          [root@localhost ~]# echo $accp

         3. 反撇号(必须是可执行的命令)

          [root@localhost ~]# ls -lh `which useradd`
          [root@localhost ~]# DenyList=`grep -v "^#" /etc/profile`
          [root@localhost ~]# echo $DenyList
          [root@localhost ~]# rpm -qc $(rpm -qf $(which useradd))

      4、数值变量的运算

          [root@localhost ~]# x=35
          [root@localhost ~]# y=16
          [root@localhost ~]# expr $x+$y
          35+16
          [root@localhost ~]# expr $x + $y
          51
          [root@localhost ~]# expr $x - $y
          19
          [root@localhost ~]# expr $x * $y
          560
          [root@localhost ~]# expr $x / $y
          2
          [root@localhost ~]# expr $x % $y
          3
          [root@localhost ~]# Ycube=`expr $y * $y * $y`
          [root@localhost ~]# echo $Ycube
          4096

    1.4 特殊的shell变量 

      1、位置变量  

          [root@localhost ~]# vi adder2num.sh
          #!/bin/bash
          SUM=`expr $1 + $2`
          echo "$1 + $2 = $SUM"

          [root@localhost ~]# ./adder2num.sh 12 14
          12 + 14 = 26

          ls        -lh        /root
          $0       $1         $2

      2、shell中常用预定义变量 

          $#      (命令行中位置参数个数)

          $*       (所有位置参数内容)

          $?      (前一条命令返回状态)

          $0       (当前执行脚本名称)

    1.5 read与echo使用比较

    echo "使用-p参数完成多个变量赋值:" 
    read -p "请输入三个数字或字符:(用空格隔开)" num1 num2 num3 
    
    echo "num1="$num1 
    echo "num2="$num2 
    echo "num3="$num3
    echonum.sh

      [root@localhost bbb]# ./echonum.sh
      使用-p参数完成多个变量赋值:
      请输入三个数字或字符:(用空格隔开)22 33 44
      num1=22
      num2=33
      num3=44

  • 相关阅读:
    【codeforces 510D】Fox And Jumping
    【codeforces 755E】PolandBall and White-Red graph
    实用SQL语句大全
    经典SQL语句大全
    mysql安装及使用语句
    ubuntu安装mysql数据库
    android数据库sqlite增加删改查
    ubuntu 15.04怎么安装QQ
    Tagging Physical Resources in a Cloud Computing Environment
    程序员的10大编程技巧
  • 原文地址:https://www.cnblogs.com/jiaxinzhu/p/12934505.html
Copyright © 2011-2022 走看看