1. Shell概述,编程语言.
1.1 编程概述
应用广泛: Shell占据的Linux半壁江山.
企业要求:面试要求运维人员必会.
目标:
1.能够熟练书写超过多行的脚本:
检查类:
系统巡检,
系统加固,
优化:(检查,配置优化)
系统优化(初始化)(第2阶段开头).
ngx优化(第2阶段开头).
tomcat优化(第2阶段开头).
数据库优化
安装类(安装,配置,启动)
编译安装nginx
yum安装/apt安装
二进制
...
2. 总计完成书读写5000行脚本(读写).
3. 完成100个脚本书写
SRE运维核心基操:https://www.yuque.com/lidao996/sre/vc088y5l9zof946c?singleDoc#
Shell编程总结:https://www.processon.com/view/link/65653d90c9a10714d94d5a21
1.2 编程语言
1.2.1 编程语言分类
编程语言分类 |
说明 |
解析型:直接解析类 |
shell,python,php, 书写成文件后,可以通过对应的解释器直接运行。 |
编译型:需要编译后运行 |
C,C++,Java(maven),Golang. 下载好源代码,必须要进行编译生成可以运行的命令。 |
1.2.2 Shell编程语言必知必会
Shell命令解释器:bash编程.
常用命令解释器.
命令解释器 |
|
bash |
目前应用最广泛一款命令解释器,红帽系列(默认),Debian,Ubuntu,BASH全称: Bourne-Again SHell |
dash |
一般debian/ubuntu系统默认的, 运行脚本推荐使用 bash 1.sh |
csh,tcsh |
一些unix系统使用 |
zsh |
功能更多,支持更多的插件,可以更好看。 |
⚠shell脚本(.bash .sh),运行在ubuntu中的时候,不推荐使用sh 运行,推荐使用bash运行.
2. Shell环境准备
修改vimrc文件,达到控制vim创建,编辑文件的动作。
当前用户家目录下 ~/.vimrc (只对当前用户生效)
追加:/etc/vimrc (红帽系列) /etc/vim/vimrc(ubuntu debian)
# 1.文件追加如下内容 /etc/vimrc (红帽系列) /etc/vim/vimrc(ubuntu debian)
set ignorecase
autocmd BufNewFile *.py,*.cc,*.sh,*.java,*.bash exec ":call SetTitle()"
func SetTitle()
if expand("%:e") =~ 'sh\|bash\|py'
call setline(1, "#!/bin/bash")
call setline(2,"##############################################################")
call setline(3, "# File Name:".expand("%"))
call setline(4, "# Version:V1.0")
call setline(5, "# Author:xk")
call setline(6, "# Organization: none")
call setline(7, "# Desc:")
call setline(8,"##############################################################")
endif
endfunc
# 2. 使用vim创建sh|bash|py文件
[root@ubuntu2204 /etc/vim]# vim /etc/vim/vimrc
[root@ubuntu2204 ~]# vim 1.sh
[root@ubuntu2204 ~]#
[root@ubuntu2204 ~]# cat 1.sh
#!/bin/bash
##############################################################
# File Name:1.sh
# Version:V1.0
# Author:xk
# Organization: none
# Desc:
##############################################################
[root@ubuntu2204 ~]#
[root@Kylin-V10-sp3 ~]# vim /etc/vimrc
set ignorecase #搜索的时候忽略大小写
配置shell脚本dockerfile docker-compose的vimrc模板
查看代码
#写入到/etc/vimrc文件末尾
autocmd BufNewFile *.py,*.cc,*.sh,*.java,*.bash,Dockerfile,docker-compose.yml exec ":call SetTitle()"
func SetTitle()
if expand("%:e") =~ 'sh\|bash'
call setline(1,"#!/bin/bash")
call setline(2, "##############################################################")
call setline(3, "# File Name: ".expand("%"))
call setline(4, "# Version: V1.0")
call setline(5, "# Author: lidao996")
call setline(6, "# Organization: www.oldboyedu.com")
call setline(7, "# Description:")
call setline(8, "##############################################################")
call setline(9, "")
endif
if expand("%") == 'Dockerfile'
call setline(1, "#####################Dockerfile###############################")
call setline(2, "##############################################################")
call setline(3, "# File Name: ".expand("%"))
call setline(4, "# Version: V1.0")
call setline(5, "# Author: lidao996")
call setline(6, "# Organization: www.oldboyedu.com")
call setline(7, "# Description:")
call setline(8, "##############################################################")
call setline(9, "")
call setline(10, "FROM")
call setline(11, "LABEL maintaniner='oldboy [email protected]' author=lidao996")
call setline(12, "CMD []")
endif
if expand("%") == 'docker-compose.yml'
call setline(1, "#####################docker-compose###########################")
call setline(2, "##############################################################")
call setline(3, "# File Name: ".expand("%"))
call setline(4, "# Version: V1.0")
call setline(5, "# Author: lidao996")
call setline(6, "# Organization: www.oldboyedu.com")
call setline(7, "# Description:")
call setline(8, "##############################################################")
call setline(9, "")
call setline(10, "version: '3.3'")
call setline(11, "services:")
call setline(12, "volumes:")
endif
endfunc
3. Shell脚本执行方式
3.1 #! 符号含义
sha-bang
并非注释的意思,写在脚本开头.
用于指定脚本默认的命令解释器.
命令解释器 | 写法 |
bash | #!/bin/bash |
python | #!/usr/bin/python2 或 #!/usr/bin/env python2 |
3.2 概述
执行方法 |
应用场景与说明 |
通过sh或bash 标签:shell,31,编程,初识,01,35,root,bash From: https://www.cnblogs.com/daofaziran/p/18421087相关文章
|