【Linux学习】shell脚本语言

发布时间 - 2019-04-08 00:00:00    点击率:

shell 是操作系统中“提供使用者使用界面”的软件,它包在 linux 内核的外面,为用户和内核之间的交互提供了一个接口,系统中的命令用 shell 去解释,shell 接收系统回应的输出并显示其到屏幕中。

1.shell简介

  • 解释性语言——shell脚本、python,运行效率低,基本只适用企业内部
    shell——脚本,记录系统命令及命令执行的系统关系,充当解释器
    gcc ——编译器
    vim ——编辑器
#!/bin/bash          幻数,指定解释器#!/usr/bin/env bash  自动匹配解释器
  • 描述性语言——c语言、java,执行效率高

1.脚本的调用
脚本(一般以.sh结尾):

[root@desktop5 mnt]# vim westos.sh#!/bin/bash echo hello westos

方法一:无执行权限,用sh调用

[root@desktop5 mnt]# sh westos.sh

方法二:有执行权限,用绝对路径调用

[root@desktop5 mnt]# chmod +x westos.sh [root@desktop5 mnt]# /mnt/westos.sh

2.脚本的检查


 + 表示:执行动作

无+表示:动作输出


方法一:

[root@desktop5 mnt]# sh -x /mnt/westos.sh


方法二:

[root@desktop5 mnt]# vim westos.sh#!/bin/bash -xecho hello westos


实验一:快捷键F4执行填充
方法一:

[root@desktop5 mnt]# vim /etc/vimrc map  ms:call WESTOS()'s       
##ms:执行命令时,不提示报错function WESTOS()         
call append(0,"#################################")         
call append(1,"# Author :       Hao            #")         
call append(2,"# Mail :         Hao@westos.com #")         
call append(3,"# Version :      1.0            #")         
call append(4,"# Create_Time:   ".strftime("%Y-%m-%d")."     #")    ##时间更新
call append(5,"# Description:                  #")         
call append(6,"#################################")
endfunction

方法二:利用.来承接后面的#

map  ms:call WESTOS()'sfunction WESTOS()         
call append(0,"#################################")         
call append(1,"# Author :       Hao".("            #"))         
call append(2,"# Mail :         Hao@westos.com".(" #"))         
call append(3,"# Version :      1.0           ".(" #"))         
call append(4,"# Create_Time:   ".strftime("%Y-%m-%d").("     #"))         
call append(5,"# Description:                 ".(" #"))         
call append(6,"#################################")
endfunction

测试:

[root@desktop5 mnt]# vim westos.sh        ##按‘F4’执行填充

实验二:执行新建以.sh结尾的vim文件时,自动填充
注意:旧文件不自动填充
方法一:

[root@desktop5 mnt]# vim /etc/vimrc autocmd BufNewFile *.sh exec ":call WESTOS()"    ##新文件,以.sh结尾,执行,调用文件"map  ms:call WESTOS()'s           ##此行注释,在此"表注释function WESTOS()
         call append(0,"#################################")
         call append(1,"# Author :       Hao            #")
         call append(2,"# Mail :         Hao@westos.com #")
         call append(3,"# Version :      1.0            #")
         call append(4,"# Create_Time:   ".strftime("%Y-%m-%d")."     #")
         call append(5,"# Description:                  #")
         call append(6,"#################################")
         call append(7,"")
         call append(8,"#!/bin/bash")endfunction

方法二:

[root@desktop5 mnt]# vim /etc/vimrc autocmd BufNewFile *.sh exec ":call WESTOS()""map  ms:call WESTOS()'s
function WESTOS()
         call append(0,"#################################")
         call append(1,"# Author :       Hao".("            #"))
         call append(2,"# Mail :         Hao@westos.com".(" #"))
         call append(3,"# Version :      1.0           ".(" #"))
         call append(4,"# Create_Time:   ".strftime("%Y-%m-%d").("     #"))
         call append(5,"# Description:                 ".(" #"))
         call append(6,"#################################")
         call append(7,"")
         call append(8,"#!/bin/bash")
endfunction


测试:

[root@desktop5 mnt]# vim file1.sh  ##新建以.sh结尾的文件,自动填充

2.shell脚本练习

练习一:显示当前主机ip地址

[root@desktop5 mnt]# vim ip_show.sh#!/bin/bashifconfig eth0 | awk -F " " '/inet /{print $2}'  ##inet所在行,以空格间隔,第二个字符


测试:

[root@desktop5 mnt]# sh ip_show.sh


练习二:显示当前主机中能登陆系统的用户

[root@desktop5 mnt]# vim user_show.sh#!/bin/bashawk -F : '/bash$/{print $1}' /etc/passwd      ##以bash结尾,打印出第一个字符


测试:

练习三:执行命令后可清空日至
方法一:

[root@desktop5 mnt]# vim clear_log.sh#!/bin/bash> /var/log/messages

方法二:

[root@desktop5 mnt]# vim clear_log.sh#!/bin/bashecho "" > /var/log/messages

测试:

[root@desktop5 mnt]# chmod +x clear_log.sh [root@desktop5 mnt]# /mnt/clear_log.sh

【推荐课程:linux视频教程】


# linux  # shell脚本  # Python  # Java  # c语言  # 接口  # vim  # 第一个  # 在此  # 第二个  # 报错  # 编辑器  # 中能  # 清空  # 操作系统  # 新文件  # 效率高 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在香港免费服务器上快速搭建网站?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Laravel如何为API生成Swagger或OpenAPI文档  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  佛山企业网站制作公司有哪些,沟通100网上服务官网?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何用搬瓦工VPS快速搭建个人网站?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel如何使用查询构建器?(Query Builder高级用法)  Laravel怎么连接多个数据库_Laravel多数据库连接配置  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  三星网站视频制作教程下载,三星w23网页如何全屏?  原生JS实现图片轮播切换效果  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  JS经典正则表达式笔试题汇总  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  网站优化排名时,需要考虑哪些问题呢?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  中国移动官方网站首页入口 中国移动官网网页登录  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  香港服务器网站推广:SEO优化与外贸独立站搭建策略  java获取注册ip实例  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  如何在阿里云ECS服务器部署织梦CMS网站?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  零服务器AI建站解决方案:快速部署与云端平台低成本实践  怎么用AI帮你设计一套个性化的手机App图标?  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  如何在万网自助建站平台快速创建网站?  JavaScript中的标签模板是什么_它如何扩展字符串功能  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  个人摄影网站制作流程,摄影爱好者都去什么网站?  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】