认识脚本

是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。脚本语言又被称为扩建的语言, 或者动态语言, 是一种编程语言, 用来控制软件应用程序, 脚本通常是以文本 (ASCⅡ) 保存, 只是在被调用时进行解释或者编译。

学习shell脚本的用途

对于一个合格的系统管理员来说,学习和掌握Shell编程是非常重要的。可以在很大程度上简化日常的维护工作,使得管理员从简单的重复劳动中解脱出来。

shell特点

1.shell是一个解释性语言(Python也是),不需要编译等过程,它是从脚本程序中一行一行的读取并执行命令;相对于其他语言来说较为简单。

2. shell是什么 shell(壳),又称之为命令解释器,是一种脚本语言,作用是当用户输入命令时,shell会将命令解析传递给内核,通过内核执行相应的动作。

学习shell知识储备:

熟练使用vim编译器

熟悉Linux的相关命令和一些基础的服务

熟悉三个工具,grep,sed,awk

脚本的命名规则

其命名规则和标识符的定义相似

一般使用驼峰法命名,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,国内喜欢用下划线,例如name_file等

shell脚本的基本构成

1.新建一个脚本文件,文件的首行一般为制定shell解释器#!/bin/bash

2.可以写一些合适的注释,在访问脚本时,快速理解执行语句的意思

3.一般约定成俗的在命名脚本文件时为filename.sh

4.可执行语句:即实现程序的功能

5.脚本内注释:-用#实现单行的注释;-用<

shell脚本的执行:

切换到shell脚本所在的目录执行shell脚本

使用绝对路径的方式去执行bash shell脚本

直接使用bash 或sh 来执行bash shell脚本

在当前的shell环境中执行bash shell脚本:source或".“

执行方法之间的区别

方法一和方法二脚本需要执行权限,./script_name.sh或/path/script_name.sh

方法三:可以在脚本中不指定解释器,脚本可以没有执行权限

方法四:当前shell执行,方法1-3开启子shell。

除此外脚本语言还分包括:Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,PHP,SQL,Perl,Shell,Python,Ruby等。

下面我们做一个脚本来看一下:

#!/bin/bash

# 获取要监控的本地服务器IP地址

IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'`

echo "IP地址:"$IP

# 获取cpu总核数

cpu_num=`grep -c "model name" /proc/cpuinfo`

echo "cpu总核数:"$cpu_num

cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"`

echo "用户空间占用CPU百分比:"$cpu_user

# 获取内核空间占用CPU百分比

cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"`

echo "内核空间占用CPU百分比:"$cpu_system

# 获取空闲CPU百分比

cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "%"`

echo "空闲CPU百分比:"$cpu_idle

#获取内存信息

# 获取物理内存总量

mem_total=`free | grep Mem | awk '{print $2}'`

echo "物理内存总量:"$mem_total

# 获取操作系统已使用内存总量

mem_sys_used=`free | grep Mem | awk '{print $3}'`

echo "已使用内存总量(操作系统):"$mem_sys_used

# 获取操作系统未使用内存总量

mem_sys_free=`free | grep Mem | awk '{print $4}'`

echo "剩余内存总量(操作系统):"$mem_sys_free

# 获取应用程序已使用的内存总量

mem_user_used=`free | sed -n 3p | awk '{print $3}'`

echo "已使用内存总量(应用程序):"$mem_user_used

# 获取应用程序未使用内存总量

mem_user_free=`free | sed -n 3p | awk '{print $4}'`

echo "剩余内存总量(应用程序):"$mem_user_free

# 获取交换分区总大小

mem_swap_total=`free | grep Swap | awk '{print $2}'`

echo "交换分区总大小:"$mem_swap_total

# 获取已使用交换分区大小

mem_swap_used=`free | grep Swap | awk '{print $3}'`

echo "已使用交换分区大小:"$mem_swap_used

# 获取剩余交换分区大小

mem_swap_free=`free | grep Swap | awk '{print $4}'`

echo "剩余交换分区大小:"$mem_swap_free

保存然后我们执行一下

如果提示没有权限记得chmod修改下权限,需要x执行权限。

这样我们一个简单的小脚本就完成了

比如还可以用shell写一个

#!/bin/bash

echo "Hello World !"

执行后会提示 Hello World !

linux更改语言脚本,Linux shell脚本入门——shell语言脚本【CentOS】相关推荐

  1. Shell编程入门-Shell程序设计实例

    Shell编程入门-Shell程序设计实例 1.增加用户账户 编写一个Shell程序addaccount.sh,在系统中增加四个账户,同时设定他们的初始密码为123456,主组群为wl20. ①查看系 ...

  2. linux 更改make版本,Linux下查看系统版本和make版本

    一.查看Linux内核版本命令(两种方法): 1.cat /proc/versionz [root@localhost ~]# cat /proc/version Linux version 2.6. ...

  3. 如何零基础学习python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

  4. 零基础学python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

  5. 怎么用C51语言实现50ms延时,单片机入门-C51语言实现简单的红绿LED交通灯控制

    原标题:单片机入门-C51语言实现简单的红绿LED交通灯控制 视频教程如下: 本文介绍了用C51语言实现十字路口交通灯控制: 四个路口各有红.绿2个LED,模拟交通灯的控制,即东西走向的灯变红,南北走 ...

  6. linux 更改 引导分区,Linux系统引导过程及引导修复

    0.Linux系统引导过程: 1.通电 2.bios初始化 3.磁盘引导阶段 4.grub2文件引导程序 5.内核加载 6.系统初始化镜像 7.系统启动级别 8.超级用户密码 以下内容是针对各过程会出 ...

  7. linux 更改用户属性,linux基本命令之用户配置篇

    ⑴.linux系统内用户分类: 管理员:ID为0 普通用户:ID为1-655351. 系统用户:ID为1-499,运行后台服务的用户,不允许登陆系统. 一般用户:ID为500-60000 ⑵.用户管理 ...

  8. linux更改默认版本,linux - 将某个软件版本设为ubuntu中的默认版本 - Ubuntu问答

    问题描述 我目前在Ubuntu 12.04上安装了2个版本的php. 一个用于使用apt-get安装的php 5.3,另一个用于xampp与php 5.5一起安装 当我执行这些命令时: > wh ...

  9. linux更改patrol密码,Linux常用的文件管理命令及用户管理命令

    1.常用的文件管理命令-使用方法及示例 常用的文件管理类命令:mkdir.rmdir.touch.cat.tac. head. tail.more.less.cp.mv.rm等 注:跟在常用参数中的# ...

  10. GO 语言基础语法一 (快速入门 Go 语言)

    Go语言基础语法 一. golang 标识符,关键字,命名规则 二. golang 变量 三. golang 常量 四. golang 数据类型 五. golang 布尔类型 六. golang 数字 ...

最新文章

  1. Android开发--图形图像与动画(二)--Animation实现图像的 渐变、缩放、位移、旋转
  2. 开发日记-20190403
  3. J2EE互联网产品打造
  4. Python-OpenCV--USB摄像头采集图像并保存到指定文件夹
  5. 殷浩详解DDD:领域层设计规范
  6. php 计算每年春节日期,动态显示2019年农历春节倒计时—2019年1月21日23时45分
  7. 画出传输门、三态门、开路门_谷仓门优缺点有哪些?安装效果绝对出彩
  8. Wannafly挑战赛25 A.因子
  9. BerryBoot实现树莓派多系统切换
  10. eclipse中文版设置字体大小
  11. vba字典重复key_利用VBA字典,提取两列数据的重复值
  12. 2.Zigbee串口发送
  13. 第八周 项目三--顺序串算法
  14. Linux服务器安装云锁
  15. postgresql数据库中多个Schemas互相访问
  16. mac安装完mysql后关机特别慢_升级macOS Sierra 10.12 关机慢
  17. Cannot construct instance of `com.baomidou.mybatisplus.core.metadata.IPage`
  18. 采用DotAsterisk(点星PBX)系统组建跨地区总公司和分公司之间的免费VoIP电话呼叫
  19. border属性之border-radius
  20. 计算机上如何转换搜狗,怎样切换输入法,搜狗输入法五笔和拼音切换

热门文章

  1. 华为豪投20亿!3年培养100万AI人才,网友不服!
  2. 靓仔落泪,性能问题定位难倒我了
  3. 云漫圈 | finally到底是在return之前执行还是return之后执行?
  4. 官宣!张小龙史上最长演讲 4小时3万字完整版回应微信的一切
  5. Cloud一分钟 | 蚂蚁金服估值超万亿;Google大举进军游戏市场
  6. 平板电脑连接投影仪_交互式触控幼教白板如何与平板进行连接-微幼科技
  7. docker启动elasticsearch——ERROR: Elasticsearch did not exit normally - check the logs at xxx
  8. Sentinel 基于Nacos规则持久化-推模式
  9. TortoiseGit 单文件版本提交记录查看_入门试炼_08
  10. Springboot/Cloud集成Sentinel进阶实战