网站导航的展开与收缩怎么做的,网站建设代理商,做美食软件视频网站,wordpress百度地图插件下载失败文章目录前言一. 实验环境二. shell基础入门精讲2.1 什么是shell脚本#xff1f;2.2 shell的种类2.3 脚本案例2.3.1 打印 hello-word案例2.3.2 统计指定目录下的文件数和目录数2.4 shell脚本编写规范总结前言 #x1f3e0;个人主页#xff1a;我是沐风晓月 #x1f9d1;个人…
文章目录前言一. 实验环境二. shell基础入门精讲2.1 什么是shell脚本2.2 shell的种类2.3 脚本案例2.3.1 打印 hello-word案例2.3.2 统计指定目录下的文件数和目录数2.4 shell脚本编写规范总结前言 个人主页我是沐风晓月 个人简介大家好我是沐风晓月双一流院校计算机专业 座右铭 先努力成长自己再帮助更多的人 一起加油进步 欢迎大家这里是CSDN我总结知识的地方喜欢的话请三连有问题请私信 一. 实验环境
服务器操作系统是centos7.8
[rootmufeng ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)安装常用的工具
yum安装基本软件包 wgetvim,lrzsz,httpd-tools,net-tools备注
wget 非交互式的网络文件下载工具。vim 文本编辑器工具比vi的编辑功能更全面。lrzsz 服务器的文件上传下载工具。httpd-tools Apache的ab压力测试命令工具。net-tools 网络工具常用于查看服务器端口路由等网络服务信息。
关闭selinux和防火墙 二. shell基础入门精讲
2.1 什么是shell脚本
Shell脚本是一种用来编写命令行脚本的脚本语言也叫做Bash脚本是运行在Unix/Linux操作系统的命令解释器shell中的一种脚本语言。
Shell脚本的主要作用是通过执行一系列的命令和程序自动化完成一些繁琐或复杂的任务。
Shell脚本可以用来操作文件、目录、进程、网络、系统配置等也可以用来完成一些日常工作中的自动化任务例如备份文件、定时任务、批量处理数据等。
Shell脚本通常使用bash、sh、zsh等shell解释器来解释执行。
Shell脚本语言具有简单易学、灵活性强、可扩展性好等优点是Unix/Linux系统下非常实用的工具之一
2.2 shell的种类
我们可以命令查看系统中的shell
[rootmufeng ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[rootmufeng ~]# Bourne shellshBourne shell是Unix操作系统最早的一种shell由Stephen Bourne在1977年创建。它是其他许多shell的基础包括Bash和Korn shell。 C shellcshC shell是类Unix操作系统中另一种流行的shell由Bill Joy在20世纪80年代初创建。它的语法与C语言相似包括命令行编辑功能以及许多其他有用的特性。 Korn shellkshKorn shell由David Korn在1983年创建是Bourne shell的升级版。它包含了许多Bourne shell没有的特性例如命令行编辑、历史记录和作业控制等。 Bourne-Again shellbashBash是Linux系统中最常见的shell是Bourne shell的一种升级版由Brian Fox在1987年创建。它支持许多Bourne shell不支持的特性包括命令行编辑、自动补全和历史记录等。
除了上述这些常见的shell之外还有其他一些shell例如
ZshZsh是一个功能强大的shell它具有高度的可定制性和丰富的功能集。 -FishFish是一个易于使用和学习的shell它提供了一些与其他shell不同的特性例如语法高亮和自动建议等。PowerShellPowerShell是一个由Microsoft开发的shell和脚本语言它主要用于Windows操作系统。
不同的Shell语言的语法有所不同不能通用最常用的shell是Bash也就是Bourne Again Shell。Bash不仅易用而且免费因此被广泛使用也是大多数Linux操作系统默认的Shell环境。 备注若不清楚自己系统的shell类型可以用echo $SHELL进行查看
[rootmufeng ~]# echo $SHELL
/bin/bash更多内容参见 csdn博客主页我是沐风晓月
2.3 脚本案例
2.3.1 打印 hello-word案例
[rootmufeng shell]# vim hello-world.sh
#!/bin/bash
#2023年3月7日22:18:56
#This is my first shell
#By author mufeng
#############################
echo “Hello World ”hello-world.sh脚本内容详解
#!/bin/bash 指定脚本要使用的 Shell 类型为 Bash 。#! 被称为 Sha-bang 或者 Shebang Linux 会分析它之后的指令并载入该指令作为解析器。#2023年3月7日22:18:56 注明脚本编写的时间#This is my first shell 注明Shell脚本的用途;#By author mufeng 注明脚本的作者;echo “Hello World ” shell脚本主命令执行该shell命令会打印出“Hello World ”
执行脚本的方法
编写完毕后要赋予脚本执行的权限然后运行。
授权使用命令 chmod
[rootmufeng shell]# chmod x hello-world.sh
[rootmufeng shell]# ll
总用量 4
-rwxr-xr-x 1 root root 134 3月 7 22:22 hello-world.sh执行方法1赋予执行权限后通过相对路径执行
[rootmufeng shell]# ./hello-world.sh
“Hello World ”执行方法2: 赋予执行权限后通过绝对/全路径的方式执行
[rootmufeng ~]# /root/shell/hello-world.sh
“Hello World ”执行方法3不需要执行权限使用命令执行: /bin/sh hello-world.sh 或者sh hello-world.sh
[rootmufeng shell]# ll
总用量 4
-rw-r--r-- 1 root root 134 3月 7 22:22 hello-world.sh
[rootmufeng shell]# /bin/sh hello-world.sh
“Hello World ”
[rootmufeng shell]# sh hello-world.sh
“Hello World ”执行方法4不需要执行权限使用/bin/bash或者bash命令执行脚本
[rootmufeng shell]# /bin/bash hello-world.sh
“Hello World ”
[rootmufeng shell]# bash hello-world.sh
“Hello World ”2.3.2 统计指定目录下的文件数和目录数
接下来我们引入一个脚本案例在后面的学习中我们都会学到在这里抛砖引玉
#!/bin/bash
## 本文首发于csdn搜索[我是沐风晓月】if [ $# -eq 0 ]; thenecho Usage: $0 directoryexit 1
fidir$1if [ ! -d $dir ]; thenecho Error: $dir is not a directoryexit 1
fifile_count$(find $dir -type f | wc -l)
dir_count$(find $dir -type d | wc -l)echo Number of files in $dir: $file_count
echo Number of directories in $dir: $dir_count
解释
这个脚本接受一个目录作为参数并统计该目录下的文件数和目录数。
首先脚本检查是否有参数传递进来。如果没有则输出用法信息并退出。如果有参数传递进来则检查该目录是否存在。如果不存在则输出错误信息并退出。
接着脚本使用find命令查找目录下的所有文件和目录并使用wc命令统计它们的数量。
最后脚本输出文件数和目录数的信息。
本文首发于csdncsdn搜索【我是沐风晓月】即可
2.4 shell脚本编写规范
通俗的讲脚本就是一些命令语句堆叠在一起为了实现某些功能的语句块文本。
编写规范的shell脚本可以提高代码的可读性、可维护性和可移植性
以下是一些常用的shell脚本编写规范
脚本名一般为英文、大写、小写开头脚本名不要使用特殊符号、空格来命名Shell脚本后缀以.sh结尾Shell脚本名以功能命名,做到见名知意Shell脚本内容首行要定义脚本的Shell类型#!/bin/bash;Shell脚本中的变量名称尽量使用大写字母字母间不能使用“-”可以使用“_”;Shell脚本中的变量名称不要以数字、特殊符号开头。
其他规范 文件头部注释脚本的开头应该包含一段注释用来描述脚本的用途、作者、日期、修改历史等信息。 指定解释器脚本的第一行应该指定解释器例如#!/bin/bash这样系统就会使用指定的解释器来解释脚本。 变量命名规范变量名应该使用小写字母单词之间用下划线分隔例如my_var。 命令输出规范脚本中执行的命令应该将输出重定向到/dev/null或者日志文件中例如command /dev/null 21或者command /var/log/my_log 21。 函数命名规范函数名应该使用小写字母单词之间用下划线分隔例如my_function。 参数检查规范脚本中应该检查参数的数量和格式是否正确例如if [ $# -lt 2 ]; then echo “Usage: $0 arg1 arg2”; exit 1; fi。 错误处理规范脚本中应该处理各种可能的错误例如if ! command; then echo “Command failed”; exit 1; fi。 缩进规范使用2个空格作为缩进而不是制表符。 注释规范注释应该清晰、简洁、明了可以解释代码的用途、实现细节、特殊处理等。 可读性规范脚本应该具有良好的可读性包括适当的空行、代码结构、代码对齐等。 文件权限规范脚本文件应该具有适当的文件权限例如chmod x my_script.sh。 可移植性规范脚本应该尽可能具有良好的可移植性避免使用依赖于特定平台或操作系统的特性和命令。
总结
以上是关于shell脚本的简单介绍算是入门接下来我们要进入到正式的学习咯。 好啦这就是今天要分享给大家的全部内容了我们下期再见 博客主页mufeng.blog.csdn.net 本文由沐风晓月原创首发于CSDN博客 曾国藩说 一书未完不读其他