• Linux登录界面


    Linux登录界面

    1. 起因

    某次刷抖音看到一个博主展示了一个登录页面,觉得蛮好看的.于是自己动手也写一个
    在这里插入图片描述

    2. 脚本

    编写脚本/usr/local/bin/login.sh

    #!/bin/bash
    Current_time=`date '+%Y-%m-%d %H:%M:%S'`
    Version=`cat /etc/redhat-release`
    Kernel_Version=`uname -r`
    Uptime=`uptime|awk '{print $3,$4}'|awk -F',' '{print $1}'`
    Ipaddress=`hostname -I|awk '{print $1}'`
    Hostname=`hostname|awk '{print $1}'`
    Cpu_info=`grep name /proc/cpuinfo |awk -F : '{print ":"$2}'|head -1`
    Cpu_used=`top -bn1|grep Cpu|awk '{print $2}'|awk -F'.' '{print $1}'`
    Memory=`free -m | grep Mem | awk '{total=$2; free=$4; used=total-free; print used"MB /",total"MB","(" used*100/total "% Used)"}'`
    Memory_Total=`free -m | grep Mem | awk '{print $2}'`
    Memory_Used=`free -m |grep Mem|awk '{print $2-$4}'`
    # 颜色
    GREEN='\033[0;32m'
    NC='\033[0m'
    # 进度条
    progress_bar() {
      Fraction=$1
      if [ $Fraction -lt 2 ];then
        Fraction=2
      fi
      Total=$2
      Percentage=($Fraction*100/$Total)
      Minus=(50-$Percentage/2)
    
      echo -n "["
      echo -n -e ${GREEN}
      for ((i=1; i<=$Percentage/2; i++)); do
        echo -n "="
      done
    
      for ((i=1; i<=Minus; i++)); do
        echo -n " "
      done  
      echo -n -e ${NC}
      echo -n "]"
      echo
    }
    Filesystem_Row_Total=`df -Th | grep -E 'xfs|ext[0-9]\+|nfs4'|wc -l`
    Filesystem_info() {
      for i in $Filesystem_Row_Total;do
        Mount_point=`df -Th | grep -E 'xfs|ext[0-9]\+|nfs4'|awk 'NR=$i {print $NF}'`
        Total=`df -Th | grep -E 'xfs|ext[0-9]\+|nfs4'|awk 'NR=$i {print $3}'`
        Used=`df -Th | grep -E 'xfs|ext[0-9]\+|nfs4'|awk 'NR=$i {print $4}'`
        Percentage=`df -Th | grep -E 'xfs|ext[0-9]\+|nfs4'|awk 'NR=$i {print $(NF-1)}'|awk -F"%" '{print $1}'`
        echo "Mounted: $Mount_point		$Total / $Used ( $Percentage% Used )"
        progress_bar $Percentage 100
      done
    }
    
    echo "-------------------------------------------------------------------------------"
    echo "[System Info]"
    echo 
    echo "Current Time		: ${Current_time}"
    echo "Os Version		: $Version"
    echo "Kernel Version		: ${Kernel_Version}"
    echo "Uptime			: ${Uptime}"
    echo "Hostname		: ${Hostname}"
    echo "Ipaddress		: ${Ipaddress}"
    echo
    echo "[System Performance]"
    echo
    echo "Cpu			${Cpu_info} , $Cpu_used% used"
    echo -n "CPU Used		: "
    progress_bar $Cpu_used 100
    echo "Memory			: ${Memory}"
    echo -n "Memory Used 		: "
    progress_bar $Memory_Used $Memory_Total
    echo
    echo "[Filesystem Info]"
    echo
    Filesystem_info
    echo "-------------------------------------------------------------------------------"
    

    如果全局生效在/etc/profile追加,如果是某个用户生效~/.bash_profile中追加

    echo '/usr/local/bin/login.sh' >> /etc/profile
    

    3. 效果

    但那个框框不知道怎么搞,哪位兄弟如果知道记得告诉我下.
    在这里插入图片描述

  • 相关阅读:
    C++ Reference: Standard C++ Library reference: Containers: array: array: begin
    RNA-seq 详细教程:搞定count归一化(5)
    InnoDB数据页结构(3)之记录头信息分析
    SpringAOP前备知识
    一百八十三、大数据离线数仓完整流程——步骤二、在Hive的ODS层建外部表并加载HDFS中的数据
    045天 集合框架09 总结点 问
    史上最全-常见正则表达式集合
    Centos磁盘爆满_openEuler系统磁盘爆满清理方法---Linux工作笔记060
    德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第四周) - 语言建模
    探索网络世界:常见应用程序详解与实战演练
  • 原文地址:https://blog.csdn.net/qq_29974229/article/details/140038263