C++day10 liunx基础完结篇

shell编程

第一个shell程序

什么是shell

Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。下面我们用一幅图来解释什么是shell。

为什么要学习shell

  • Linux 运维工程师在进行服务器集群管理时,需要编写 Shell 程序来进行服务器管理。
  • 对于 JavaEE 和 Python 程序员来说,工作的需要,会要求你编写一些 Shell 脚本进行程序或者是
  • 服务器的维护,比如编写一个定时备份数据库的脚本。对于大数据程序员来说,需要编写 Shell 程序来管理集群。

shell脚本的编写执行方式

  • 脚本格式要求
    • 脚本以**#!/bin/bash **开头
    • 脚本需要有可执行权限/sh命令
  • 脚本的常用执行方式
    • chmod u+x *.sh
    • sh *.sh

实战

点击查看代码
[root@xq100 ~]# pwd
/root
[root@xq100 ~]# mkdir shellCode # 在root目录下面创建一个文件夹shellCode
[root@xq100 ~]# cd shellCode/
[root@xq100 shellCode]# ll
total 0
[root@xq100 shellCode]# vim hello.sh #创建一个脚本文件
hello.sh的内容

保存并退出

然后没权限

第一种:

第二种:
我们先恢复脚本不可执行的权限。

点击查看代码
[root@xq100 shellCode]# chmod u-x hello.sh # 让hello.sh脚本不具备可执行的权限
[root@xq100 shellCode]# ll
total 4
-rw-r--r--. 1 root root 31 Sep 5 20:51 hello.sh
[root@xq100 shellCode]# sh hello.sh # 执行脚本
Hello world

shell的变量

Linux 中 Shell 的变量分为系统变量和用户自定义变量。系统变量: 、PWD、 、USER等等,比如:echo $HOME 等等。我们可以使用set命令显示当前 Shell 中所有变量。

定义用户变量

  • 定义变量: 变量=值
  • 撤销变量: unset 变量
  • 声明静态变量:readonly 不可以用 unset

1)案例:定义变量A,并输出

点击查看代码
[root@xq100 shellCode]# vim vr.sh

点击查看代码
[root@xq100 shellCode]# chmod u+x vr.sh # 设置脚本权限
[root@xq100 shellCode]# ./vr.sh # 执行脚本
100

2)案例:撤销A,并输出

3)案例:定义静态变量B,尝试撤销,然后报错了)

4)案例:将指令返回的结果赋值给变量

设置环境变量

  • 基本语法
    • export 变量名=变量值:将 Shell 变量输出为环境变量/全局变量。我们通过一幅图来解释什么是环境变量/全局变量。

  • source 配置文件:让修改后的配置文件立即生效
  • echo $变量名:查询环境变量的值

案例:定义JAVA_HOME的环境变量,并在var.sh脚本里面使用这个环境变量

  • 注释
    1.单行 #
    2.多行
    :<<
    注释
    注释

设置位置参数变量

  • 基本语法
    • n : 为 数 字 , 0 代表命令本身, 9 代表第一到第九个参数,十以上的参数需要用大括号,如$
    • *: 代 表 命 令 行 中 所 有 的 参 数 , *把所有的参数看成一个整体
    • $@:代表命令行中所有的参数,不过该命令是把每个参数区分对待
    • $#:代表命令行中所有参数的个数

预定义变量

  • 基本语法
    • $$:当前进程的进程号。
    • $!:后台运行的最后一个进程的进程号。
    • $?:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;
      如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不
      正确。

shell中的运算符

基本语法

  • $((表达式))
  • $[表达式]

shell中的条件判断

if判断

基本语法

注意:condition前后要有空格。

if-else判断

基本语法

shell中的循环

for循环

1)基本语法

点击查看代码
for 变量 in 值1 值2 值3…
do
满足循环条件需要执行的代码
done

案例:循环打印命令行输入的参数($@)

2)基本语法

点击查看代码
for((初始值;循环控制条件;变量变化))
do
满足循环条件需要执行的代码
done

while循环

基本语法:

点击查看代码
while [ 条件判断式 ]
do
代码
done

read读取控制台输入

shell函数

系统函数

比如:basename 获取文件名

自定义函数

需求:计算两个输入参数的和

linux日志管理

posted @ 2025-05-02 10:26  北燃  阅读(19)  评论(0)    收藏  举报