Linux进阶(Shell编程学习四)

本文介绍了Shell编程中的控制语句,包括if-else、for、while循环,以及如何跳出循环。同时讲解了函数的使用,并提供了示例。此外,还列举了一些常用的Linux命令,如关机、重启、目录操作和文件管理。
摘要由CSDN通过智能技术生成

所有编程语言的学习都是这个几个步骤。

1、语言格式

2、变量的使用

3、输入输出

4、数组列表的使用

5、控制语句

6、函数体

7、一些其他组件的集成,第三方工具的使用。

Shell编程学习四这一章节就学习控制语句的使用。

一、流程控制,if else  for 循环。

if then语句

if condition
then
    command1 
    command2
    ...
    commandN 
fi

if else语句

if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

多个条件组合

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

实例:

a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi

for循环语法结构:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

实例:

for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

实例:输出字符串中的字符

#!/bin/bash

for str in This is a string
do
    echo $str
done

 while无限循环

while true
do
    command
done

跳出循环:

实例:

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字:"
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
            break
        ;;
    esac
done

只跳出当前循环 用关键字 continue

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字: "
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的!"
            continue
            echo "游戏结束"
        ;;
    esac
done

函数和函数调用:

函数就是把已批量shell脚本命令放在一个函数体里,这样是为了方便模块化,编写复杂的shell程序脚本。

语法实例:

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

有返回值的函数:

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn

linux常用命令:

关机:

shutdown-h now  
立刻关机shutdown-h 3  
3分钟后关机poweroff立刻关机

重启:

  1. shutdown-r now

  2. 立刻重启shutdown-r 3

  3. 3分钟后重启reboot立刻重启

帮助命令:

--help命令shutdown --help:ifconfig  --help:查看网卡信息

man命令(命令说明书) man shutdown注意:man shutdown打开命令说明书之后,使用按键q退出

目录切换:

cd /  切换到根目录cd /usr  切换到根目录下的usr目录cd ../  切换到上一级目录 或者  cd ..cd ~   切换到home目录cd -   切换到上次访问的目录

查看目录:

ls查看当前目录下的所有目录和文件ls-a  查看当前目录下的所有目录和文件(包括隐藏的文件)ls-l 或 ll   列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)ls/dir   查看指定目录下的所有目录和文件   如:ls /usr

创建目录:

mkdir mhyr 在当前目录下创建一个名为qq的目录mkdir /usr/mhyr在指定目录下创建一个名为qq的目录

删除目录或文件:

rm文件 删除当前目录下的文件rm-f 文件 删除当前目录的的文件(不询问)

全部删除:

rm -rf *  将当前目录下的所有目录和文件全部删除rm -rf /*  将根目录下的所有文件全部删除(慎用!)

目录修改:

mv当前目录  新目录例:mv  bb aa  将目录bb改为aa

剪切目录:

命令:mv  目录名称  目录的新位置例:将/usr/lib目录下的qq目录剪切到/usr目录下面   mv  /usr/lib/qq  /usr

拷贝目录:

命令:cp -r  目录名称  目录拷贝的目标位置  -r代表递归例:将/usr/lib目录下的qq目录复制到  /usr目录下面   cp  /usr/lib/qq   /usr

搜索目录:

命令:find  目录  参数  文件名称例:查找/usr/lib目录下的所有以a开头的目录或文件find  /usr/lib  -name  'a*'

新建文件:

命令:touch  文件名例:在当前文件目录创建一个名为ai.exe文件     touchai.exe

删除文件:

命令:rm-rf  文件名例:删除ai.exe文件   rm-rfai.exe

修改文件:

命令:vi  文件名例:打开房钱目录下的qq.exe文件vi  qq.exe或者 vim  qq.exe

查看文件:

cat:看最后一屏例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容catsudo.conf

more:百分比显示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看more sudo.conf

less:翻页查看例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上和向下翻页,q结束查看less sudo.conf

tail:指定行数或者动态查看例:使用tail-10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束  tail-10 sudo.conf

打包或压缩文件:

Linux中的打包文件是:qq.tar

Linux中的压缩文件是:qq.gz

Linux中打包并压缩的文件是:.tar.gz

命令:tar -zcvf 打包压缩后的文件名 要打包的文件

z:调用gzip压缩命令进行压缩c:打包文件v:显示运行过程f:指定文件名

解压文件:

命令:tar[-zxvf]  压缩文件x代表解压

查找命令:

ps -ef | grep sshd  查找指定ssh服务进程 ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身 ps -ef | grep sshd -c 查找指定进程个数

find . -name "*.conf" -ls  在当前目录查找以.conf结尾的文件,并显示详细信息。find /root/ -perm 500   查找/root/目录下权限为500的文件 find . -type f -name "*.txt"  查找当目录,以.txt结尾的普通文件 find . -type d | sort   查找当前所有目录并排序 find . -size +50M  查找当前目录大于50M的文件

查看当前目录:pwd

查看进程:ps -ef

结束进程:kill

ifconfig:查看网卡信息

ping:查看与某台机器的连接情况

netstat -an:查看当前系统端口

重启网络:

命令:service  network  restart

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋力向前123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值