Home > Operation and Maintenance > Linux Operation and Maintenance > [Linux Learning] Shell Scripting Language

[Linux Learning] Shell Scripting Language

little bottle
Release: 2019-04-08 16:35:47
forward
3431 people have browsed it

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

1.shell简介

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

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

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

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

[root@desktop5 mnt]# sh westos.sh
Copy after login

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

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

2.脚本的检查


 + 表示:执行动作
Copy after login

无+表示:动作输出


方法一:

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

[Linux Learning] Shell Scripting Language
方法二:

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

[Linux Learning] Shell Scripting Language


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

[root@desktop5 mnt]# vim /etc/vimrc map <F4> ms:call WESTOS()<cr>&#39;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
Copy after login

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

map <F4> ms:call WESTOS()<cr>&#39;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
Copy after login

测试:

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

[Linux Learning] Shell Scripting Language

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

[root@desktop5 mnt]# vim /etc/vimrc autocmd BufNewFile *.sh exec ":call WESTOS()"    ##新文件,以.sh结尾,执行,调用文件"map <F4> ms:call WESTOS()<cr>&#39;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
Copy after login

方法二:

[root@desktop5 mnt]# vim /etc/vimrc autocmd BufNewFile *.sh exec ":call WESTOS()""map <F4> ms:call WESTOS()<cr>&#39;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
Copy after login

[Linux Learning] Shell Scripting Language
测试:

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

2.shell脚本练习

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

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

[Linux Learning] Shell Scripting Language
测试:

[root@desktop5 mnt]# sh ip_show.sh
Copy after login

[Linux Learning] Shell Scripting Language
练习二:显示当前主机中能登陆系统的用户

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

[Linux Learning] Shell Scripting Language
测试:
[Linux Learning] Shell Scripting Language
练习三:执行命令后可清空日至
方法一:

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

方法二:

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

测试:

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

[Linux Learning] Shell Scripting Language

【推荐课程:linux视频教程

The above is the detailed content of [Linux Learning] Shell Scripting Language. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template