🐇明明跟你说过:个人主页
🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅
🔖行路有良友,便是天堂🔖
目录
一、前言
1、Linux的起源与发展
1991年,芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)开始编写一个新的操作系统内核,这个内核最初被称为“Freax”。他的初衷只是想学习操作系统内核的开发,并为自己的个人计算机编写一个操作系统。然而,当他将这个内核发布在Internet上并开放源代码后,全球各地的程序员开始参与到这个项目中来,共同完善这个内核。最终,这个内核被命名为Linux,这个名字是由Linus Torvalds的名字和Unix操作系统的名字组合而成的。
Linux从一开始就坚持源代码的公开和免费使用,任何人都可以对其进行修改和分发。这种开放性和自由性吸引了大量的开发者和用户,使得Linux逐渐成长并成熟起来。如今,Linux已经发展成为一个性能稳定、功能强大的多用户网络操作系统,支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。同时,Linux也有上百种不同的发行版,如基于社区开发的Debian、ArchLinux,以及基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
2、什么是Shell脚本
Shell 脚本是一种用来编写一系列命令以自动执行特定任务的文本文件。它们由命令、控制结构、变量和函数组成,通常用于在 Unix 或类 Unix 操作系统(如 Linux)上执行系统管理任务、自动化任务或其他常见任务。Shell 脚本可以通过命令行解释器(如 Bash、sh、zsh 等)来执行,并且可以包含条件判断、循环、函数定义等高级功能。
Shell 脚本通常以 .sh 为扩展名,并且可以包含各种命令,包括系统命令、应用程序命令和其他脚本命令。通过组织和编写这些命令,可以创建一个可以自动执行特定任务的脚本。Shell 脚本在自动化系统管理、批处理任务、日常任务以及编写复杂的系统管理脚本方面非常有用。
二、条件判断与流程控制
1、if语句
if语句是Shell脚本中用于执行条件判断的关键字,它通常与then、elif(可选)、else(可选)和fi(结束if语句)一起使用,形成条件判断的结构。
以下是if语句的一般语法:
if [ condition ]; then
# 如果条件成立,执行这里的命令
elif [ another_condition ]; then # 可选,用于多个条件判断
# 如果第一个条件不成立,且第二个条件成立,执行这里的命令
else # 可选,当所有条件都不成立时执行
# 如果所有条件都不成立,执行这里的命令
fi
在if语句中,condition是一个需要进行判断的表达式。如果condition成立(返回值为0),则执行then后面的命令;否则,跳过then块,执行后续的elif或else块,如果有的话。以下是一个简单的例子,演示如何使用if语句:
#!/bin/bash
# 定义一个变量
age=20
# 判断年龄是否大于等于18岁
if [ "$age" -ge 18 ]; then
echo "You are an adult."
else
echo "You are a minor."
fi
在这个例子中,如果年龄大于等于18岁,输出"You are an adult.";否则,输出"You are a minor."。
2、case语句
case语句是Shell脚本中用于多条件判断的结构,它通常与esac(结束case语句)一起使用。case语句可以根据一个值或变量的不同取值,执行不同的命令。
以下是case语句的一般语法:
case value in
pattern1)
# 如果value匹配pattern1,执行这里的命令
;;
pattern2)
# 如果value匹配pattern2,执行这里的命令
;;
pattern3)
# 如果value匹配pattern3,执行这里的命令
;;
*)
# 如果value没有匹配任何pattern,执行这里的命令
;;
esac
在case语句中,value通常是一个需要进行匹配的值或变量。pattern1、pattern2等是用来匹配value的模式。如果value与某个pattern匹配成功,则执行对应的命令块;如果没有匹配成功,则执行*下的命令块,或者不执行任何命令。以下是一个简单的例子,演示如何使用case语句:
#!/bin/bash
# 定义一个变量
day="Monday"
# 根据不同的日期,输出不同的信息
case "$day" in
Monday)
echo "It's Monday, the beginning of the week."
;;
Tuesday|Wednesday|Thursday|Friday)
echo "It's a weekday."
;;
Saturday|Sunday)
echo "It's a weekend."
;;
*)
echo "Invalid day."
;;
esac
在这个例子中,根据day的不同取值,输出不同的信息。
3、循环结构(for、while、until等)
循环结构在Shell脚本中常用于执行重复的任务,其中包括for循环、while循环和until循环。这些循环结构允许根据条件或列表中的元素来执行一系列命令。
以下是它们的基本语法:
for循环:
for variable in list
do
# 在每次迭代中执行的命令
done
在for循环中,variable代表当前迭代中的变量,list是需要迭代的列表。循环将会依次遍历list中的每个元素,并在每次迭代中执行相应的命令。
while循环:
while condition
do
# 在条件为true时执行的命令
done
while循环会在每次循环开始前检查condition是否为真。只要condition为真,就会执行循环体中的命令,直到condition不再为真。
until循环:
until condition
do
# 在条件为false时执行的命令
done
until循环会在每次循环开始前检查condition是否为假。只要condition为假,就会执行循环体中的命令,直到condition变为真。
以下是一个示例,演示如何在Shell脚本中使用这些循环结构:
#!/bin/bash
# for循环:遍历数组中的元素
fruits=("apple" "banana" "orange" "grape")
for fruit in "${fruits[@]}"
do
echo "I like $fruit"
done
# while循环:计数器从1到5
counter=1
while [ $counter -le 5 ]
do
echo "Count: $counter"
((counter++))
done
# until循环:逆序输出数字
num=5
until [ $num -eq 0 ]
do
echo "$num"
((num--))
done
以上示例展示了如何使用for、while和until循环来执行不同的任务。
4、跳出循环(break、continue)
在Shell脚本中,可以使用break和continue语句来控制循环的执行流程。
break语句:
break语句用于跳出当前所在的循环,不再执行循环中的后续代码,并继续执行循环之后的代码。
for i in {1..5}
do
echo "Iteration $i"
if [ $i -eq 3 ]
then
break # 当i等于3时跳出循环
fi
done
上面的示例中,当循环执行到第三次时,遇到了break语句,因此循环会立即终止,不再继续执行。
continue语句:
continue语句用于跳过当前循环中的剩余代码,直接进入下一次循环的执行。
for i in {1..5}
do
if [ $i -eq 3 ]
then
continue # 当i等于3时跳过当前循环,直接进入下一次循环
fi
echo "Iteration $i"
done
在上面的示例中,当循环执行到第三次时,遇到了continue语句,因此当前循环中的剩余代码不再执行,直接进入下一次循环。
break和continue语句通常与if条件结合使用,根据特定条件来控制循环的执行流程,从而实现灵活的循环控制。
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!