day61 shell的介绍

day61 shell的介绍

前言

我们从安装软件,修改配置文件,改参数,启动以及看日志的运维
到今天,角色转变了,开始写代码什么服务和软件也不用装了,就是拿一个编辑器开始写代码
刷刷的写代码。

学习shell编程的前言

基本的学习的路线

  1. 学习语法
  2. 看语法,看教程
  3. 做题,去思考,这个题目该怎么做,语法怎么去写,逻辑对不对
  4. 学习shell编程的阶段,是完全的逻辑写代码。这个方面就是完全看你写代码的能力。
  5. 最后加油。

新人学习编程

  1. 多看,多学,学习他人优秀的脚本,学习他人的思路,学习优质脚本的语法,用法。

  2. 动手练习,可以完全抄袭他人的思路,大量的抄袭,目的是先熟练记忆编程的语法的要求

  3. 在熟练记忆语法之后,逐渐转化为自己的思路,产生自己的见解,能主动的思考,把想法转变为代码。

    总结

    想学习好编程,更多要动手去敲,比学来更加的重要。

shell的入门的基础

具体的区别,解释型,编译型语言

编译,解释语言的区别

编译型

编译型语言的代码的文件转变为二进制文件

二进制执行速度快

依赖平台的架构

能更好的保护源代码

底层工具的开发,操作的系统,超大型的应用,高并发的应用,都是编译型语言开发的。

解释型

首先要下载解释器

跨平台性能好

执行过程较为漫长(这是相对于计算机而言,其实人类感受不到)

源代码暴露在外,不安全

适合各种脚本的开发,完成自动化的工作

对速度要求不是很高的应用的开发,如网站的开发。

关于shell开发的规范详解

  1. shell的语法的理解,shell的作用
  2. shell和运维的关系

shell 脚本是把一堆的命令和数据的结合,放在一起去执行
shell 脚本可以包括N个变量,循环,条件判断,函数等.....

特定的格式,特定的语法 + 系统命令 + 文件数据 === 脚本

shell 可以解决什么问题

1. 系统化初始化脚本, 如ssh配置,yum源,防火墙,ntp,基础的软件的安装,这一系列的步骤,写成脚本。

2,定时备份的数据, shell脚本 + crontab 每天夜里12点备份数据库。

3,nginx日志切割脚本。

4,服务管理脚本,如nginx,mysql启停脚本

5,如代码上线,将开发写好的代码,发布交给nginx

6.如自己开发一个跳板机脚本等。

如何学习好shell编程

# 如何学习好shell脚本的编程

1.充分利用好上课的时间,一定要主动的思考,别等答案。
2.充分理解知识点的语法,和概念
3,模仿好的脚本开发,看懂语法
4,消化吸收脚本的思路后,自己去模仿,改造
5,有了思路后,按照自己的意愿,开发脚本

shell脚本编写的规范

规范几个准则

1.shell 脚本要见名知意,正式的脚本,别瞎写a.sh b.sh这个很笨的/

2.虽然脚本是文本的类型,但是建议结尾还是以.sh结尾。vim也能提供对应的颜色

3.给脚本增加注释(英文最好,中文写在你的笔记里),包括脚本的创建的时间,作者,作用等等信息。

4.创建好可以管理你脚本的目录

5.创建好统一管理脚本的目录,别乱放。不然找不到。


一个规范的脚本示例

learn_shell_first.sh

vim插件,自动生成这些内容。

#!/bin/bash     #! 这个符号在计算机中读作shebang,表示指定用什么解释器运行脚本,只能在第一行,注释从第二行开始写
# Author: www.yuchaoit.cn  877348180@qq.com
# Create Time:  2022/05/25  
# Script Description: this is my first shell script.
# ???????理解刷 111,尽量用英文。否则可能导致脚本显示乱码。

vim hello_word.sh

vim脚本开发插件

不同的脚本,vim自动会判断的

*.sh
*.php
*.py

分别提供该语言的语法高亮的支持的功能

粘贴复制即可

1.打开vim的配置的文件,插入自己插件的语法
[root@m-61 ~]#vim ~/.vimrc


2. 复制粘贴语法即可

syntax on
set nocompatible
"set number
"filetype on
"set history=1000
"set background=dark
""set autoindent
"set smartindent
"set tabstop=4
"set shiftwidth=4
"set showmatch
"set guioptions-=T
"set ruler
"set nohls
"set incsearch
""set fileencodings=utf-8

if &term=="xterm"
    set t_Co=8
    set t_Sb=^[[4%dm
    set t_Sf=^[[3%dm
endif
function AddFileInformation_php()
      let infor = "<?php\n"
      \." ***************************************************************************\n"
      \." * \n"
      \." * Copyright (c) 2014 \n"
      \." *  \n"
      \." **************************************************************************/ \n"
      \." \n"
      \." \n"
      \." \n"
      \."/** \n"
      \." * @file:".expand("%")." \n"
      \." * @author your name(www.yzk.xyz) \n"
      \." * @date ".strftime("%Y-%m-%d %H:%M")." \n"
      \." * @version 1.0  \n"
      \." **/ \n"
      \." \n"
      \." \n"
      \." \n"
      \." \n"
      \." \n"
      \." \n"
      \."?>"
      silent  put! =infor
endfunction
autocmd BufNewFile *.php call AddFileInformation_php()

function AddFileInformation_sh()
      let infor = "#!/bin/bash\n"
      \."\n"
      \."# ***************************************************************************\n"
      \."# * \n"
      \."# * @file:".expand("%")." \n"
      \."# * @author:www.yuchaoit.cn \n"
      \."# * @date:".strftime("%Y-%m-%d %H:%M")." \n"
      \."# * @version 1.0  \n"
      \."# * @description: Shell script \n"
      \."# * @Copyright (c)  all right reserved \n"
      \."#* \n"
      \."#**************************************************************************/ \n"
      \."\n"
      \."\n"
      \."\n"
      \."\n"
      \."exit 0"
      silent  put! =infor
endfunction
autocmd BufNewFile *.sh call AddFileInformation_sh()

function AddFileInformation_py()
      let infor = "#!/usr/bin/env python\n"
      \."# -*- coding: utf-8 -*-\n"
      \."# ************************************************************************ \n"
      \."# * \n"
      \."# * @file:".expand("%")." \n"
      \."# * @author:www.yuchaoit.cn \n"
      \."# * @date:".strftime("%Y-%m-%d %H:%M")." \n"
      \."# * @version 1.0  \n"
      \."# * @description: Python Script \n"
      \."# * @Copyright (c)  all right reserved \n"
      \."# * \n"
      \."#************************************************************************* \n"
      \."\n"
      \."import os,sys"
      \."\n"
      \."print u'''中文'''\n"
      \."\n"
      \."exit()"
      silent  put! =infor
endfunction
autocmd BufNewFile *.py call AddFileInformation_py()

看看vim插件的用法

[root@m-61 ~]#cat hello_shell.sh 
#!/bin/bash

# ***************************************************************************
# * 
# * @file:hello_shell.sh 
# * @author:www.yuchaoit.cn 
# * @date:2022-06-21 12:50 
# * @version 1.0  
# * @description: Shell script 
# * @Copyright (c)  all right reserved 
#* 
#**************************************************************************/ 

echo "加油,永远yzk,各位未来运维大佬。yyds"


exit 0

[root@m-61 ~]#
[root@m-61 ~]#
[root@m-61 ~]#
[root@m-61 ~]#bash hello_shell.sh 
加油,永远的yzk,各位未来运维大佬。yyds
[root@m-61 ~]#
[root@m-61 ~]#

执行shell的方式

1. 解释器强制运行

2. 代码的首行,声明具体的解释器

posted @ 2025-05-01 16:51  国家一级冲浪yzk  阅读(7)  评论(0)    收藏  举报