项目一 项目实训 (初始Shell脚本)
项目一 项目实训 (初始Shell脚本)项目实施任务一 输入输出重定向任务二 数据输入输出操作任务三 Shell变量操作任务四 算术运算符操作任务五 设置环境变量
【实训任务】
本实训的主要任务是通过编写简单的shell脚本,完成使用数据输入输出命令获取用户输入,将脚本输出写入文件,以及重定向脚本的输入输出操作,并通过设置变量存储不同类型的数据,以便在脚本中处理数据。
【实训目的】
(1)掌握shell脚本的基本格式。
(2)掌握输入输出重定向和管道符的使用方法。
(3)掌握数据输入输出命令的使用方法。
(4)掌握变量的定义和调用方法。
(5)掌握运算符的使用方法。
【实训内容】
(1)使用输入输出重定向,将Shell脚本的输出重定向到文件。
(2)编写shell脚本,使用echo、printf、read命令实现数据的输入输出。
(3)编写shell脚本,定义和调用变量,并在配置文件中永久设置环境变量。
(4)编写shell脚本,进行算数运算。
【实训环境】
在进行本项目的实训操作前,提前准备好Linux操作系统环境,RHEL、CentOS Stream、Debian、Ubuntu、华为openEuler、麒麟openKylin等常见Linux发行版本都可以进行项目实训。
项目实施
任务一 输入输出重定向
1.任务描述
编写简单的shell脚本,使用输入输入重定向及管道符将脚本的信息重定向到文件。
2.任务实施
(1)创建shell脚本firstscript.sh,使用vim文本编辑器在用户家目录下创建一个新的文本文件,将其命名为firstscript.sh,插入以下文本并保存文件,将输入重定向到文件中。
[root@redhat01 ~]# vim input.txt
[root@redhat01 ~]# cat input.txt
2021
2022
2023
2024
2035
2025
1999
2000
2001
[root@redhat01 ~]# vim firstscript.sh
[root@redhat01 ~]# cat firstscript.sh
#!/bin/bash
# 从文件中读取输入
sort < input.txt
[root@redhat01 ~]#
(2)使用bash命令执行脚本。
[root@redhat01 ~]# chmod +x firstscript.sh
[root@redhat01 ~]# bash firstscript.sh
1999
2000
2001
2021
2022
2023
2024
2025
2035
[root@redhat01 ~]# cat input.txt
2021
2022
2023
2024
2035
2025
1999
2000
2001
[root@redhat01 ~]#
(3)将输出写入文件中。
[root@redhat01 ~]# ls -l > output.txt
(4)追加输出到文件中。
[root@redhat01 ~]# ls -l >> output.txt
(5)将标准错误输出重定向到文件中。
[root@redhat01 ~]# ls -l /non-existent-dir 2>error.log
(6)使用输入重定向忽略read命令的输入。
[root@redhat01 ~]# vim file.sh
[root@redhat01 ~]# cat file.sh
#!/bin/bash
# 忽略read命令的输入
read -p "Enter your name: " name < /dev/null
echo "Your name is : $name"
(7)从标准输入中读取多行文本。
[root@redhat01 ~]# vim file.sh
[root@redhat01 ~]# cat file.sh
#!/bin/bash
echo "Enter some text (Ctrl+D to finish):"
cat << EOF
This is line 1
This is line 2
This is line 3
EOF
(8)将多行文本输入到文件。
[root@redhat01 ~]# vim file.sh
[root@redhat01 ~]# cat file.sh
#!/bin/bash
cat << EOF > output.txt
This is new line 1
This is new line 2
This is new line 3
EOF
(9)将多行文本追加到文件。
[root@redhat01 ~]# vim file.sh
[root@redhat01 ~]# cat file.sh
#!/bin/bash
cat << EOF >> output.txt
This is line 4
This is line 5
This is line 6
EOF
任务二 数据输入输出操作
1.任务描述
编写shell脚本,通过数据输入输出与用户交互,使用户输入数据或输出信息;通过数据输入输出读取文件中的数据或写入数据到文件中;通过数据输入输出可以与其他程序或系统交互,以获取或输出数据。使用read命令读取用户输入的数据,使用echo或printf命令输出信息。
2.任务实施
(1)使用read命令读取用户输入的数据。
[root@redhat01 ~]# vim printf01.sh
[root@redhat01 ~]# cat printf01.sh
#!/bin/bash
# 读入用户输入的数字
read -p "Enter a number: " num
# 输出用户输入的数字
echo "You entered: $num"
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x printf01.sh
[root@redhat01 ~]# bash printf01.sh
Enter a number: 100
You entered: 100
(2)使用read命令读取多个数据。
[root@redhat01 ~]# vim printf02.sh
[root@redhat01 ~]# cat printf02.sh
#!/bin/bash
# 读取多个数据
read -p "Enter your name, age and gender: " name age gender
# 输出数据
echo "Name: $name"
echo "Age: $age"
echo "Gender: $gender"
# 执行脚本并查看输出结果
[root@redhat01 ~]# bash printf02.sh
Enter your name, age and gender: Tom 18 male
Name: Tom
Age: 18
Gender: male
[root@redhat01 ~]#
(3)使用read命令读取文件中的每一行内容。
[root@redhat01 ~]# vim file.txt
[root@redhat01 ~]# cat file.txt
www.opencloud.fun
www.redhat.com
Linux Shell and Ansible
[root@redhat01 ~]# vim printf03.sh
[root@redhat01 ~]# cat printf03.sh
#!/bin/bash
# 读取文件中的每一行内容
while read line; do
# 输出读取的每一行内容
echo $line
done < file.txt
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x printf03.sh
[root@redhat01 ~]# bash printf03.sh
www.opencloud.fun
www.redhat.com
Linux Shell and Ansible
(4)使用printf命令格式化输出数字。
[root@redhat01 ~]# vim printf04.sh
[root@redhat01 ~]# cat printf04.sh
#!/bin/bash
printf "%.2f\n" 3.14159265
printf "%.4f\n" 3.14159265
printf "%d\n" 123456
printf "%x\n" 255
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x printf04.sh
[root@redhat01 ~]# bash printf04.sh
3.14
3.1416
123456
ff
(5)使用printf命令格式化输出字符串。
[root@redhat01 ~]# vim printf05.sh
[root@redhat01 ~]# cat printf05.sh
#!/bin/bash
printf "%-10s %-8s %-4s\n" Name Gender Age
printf "%-10s %-8s %-4d\n" John Male 30
printf "%-10s %-8s %-4d\n" Mary Female 25
# 执行脚本并查看输出结果
[root@redhat01 ~]# bash printf05.sh
Name Gender Age
John Male 30
Mary Female 25
(6)使用printf命令输出多个字符和字符串。
[root@redhat01 ~]# vim printf06.sh
[root@redhat01 ~]# cat printf06.sh
#!/bin/bash
printf "%s %s %s\n" A B C
printf "%s %s %s\n" A B C D E F G
# 定义字符变量
char='a'
# 使用%c格式化输出字符
printf "The character is %c.\n" $char
# 定义字符串
string="Hello,World!"
# 使用%s格式化输出字符串
printf "The string is %s.\n" "$string"
# 使用%-10s格式化输出左对齐的字符串
printf "%-10s\n" "$string"
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x printf06.sh
[root@redhat01 ~]# bash printf06.sh
A B C
A B C
D E F
G
The character is a.
The string is Hello,World!.
Hello,World!
(7)使用printf命令输出变量值。
[root@redhat01 ~]# vim printf07.sh
[root@redhat01 ~]# cat printf07.sh
#!/bin/bash
name="John"
age=30
printf "My name is %s, and I am %d years old.\n" "$name" "$age"
# 上面的脚本中定义两个变量:name 和 age
# 使用printf命令输出字符串,并使用%s和%d占位符引用变量
# printf命令可以使用多个参数,使用变量时需要使用$调用变量
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x printf07.sh
[root@redhat01 ~]# bash printf07.sh
My name is John, and I am 30 years old.
任务三 Shell变量操作
1.任务描述
在shell中,变量主要用于保存和引用各种类型的数据,可以用于存储各种信息,如字符串、数字等。变量在shell中非常常用, 可以用于存储用户输入的数据、存储程序运行过程中产生的数据、存储程序执行结果,还可以用于条件判断和循环控制、存储文件名和路径、文件处理、存储环境变量、程序的配置和运行等。
2. 任务实施
(1)编写shell脚本,使用变量获取主机的内存信息、网络互联网协议(Internet Protocol ,IP)地址、CPU负载等信息。
[root@redhat01 ~]# vim systeminfo-output.sh
[root@redhat01 ~]# cat systeminfo-output.sh
#!/bin/bash
# 获取内存信息
memory=$(free -m | awk 'NR==2{printf "Total: %sMB, Used: %sMB, Free: %sMB", $2, $3, $4}')
# 获取网络IP地址
ip=$(ip addr | grep 'inet' | grep -v 'inet6' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d '/' -f 1)
# 获取CPU负载
cpu=$(top -bn1 | grep 'Cpu(s)' | awk '{print $2}' | cut -d '%' -f 1)
# 输出信息
echo "Memory: $memory"
echo "IP: $ip"
echo "CPU: $cpu%"
# 注意,在使用变量获取信息时,需要使用$(...)语法来执行命令并将结果赋给变量
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x systeminfo-output.sh
[root@redhat01 ~]# bash systeminfo-output.sh
Memory: Total: 1923MB, Used: 943MB, Free: 509MB
IP: 192.168.10.10
172.17.0.1
CPU: 0.0%
(2)编写shell脚本,输出$0、$1、$2、3、@、#、!、?、*、$$等位置参数的变量信息。
[root@redhat01 ~]# vim location-output.sh
[root@redhat01 ~]# cat location-output.sh
#!/bin/bash
# 提示用户输入他们的姓名
echo "Please enter your name: "
read name
# 输出各变量的值
echo "\$0 is: $0"
echo "\$1 is: $1"
echo "\$2 is: $2"
echo "\$3 is: $3"
echo "\$@ is: $@"
echo "\$# is: $#"
echo "\$! is: $!"
echo "\$? is: $?"
echo "\$* is: $*"
echo "\$\$ is: $$"
echo "Name is: $name"
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x location-output.sh
[root@redhat01 ~]# bash location-output.sh one two three
Please enter your name:
one two three
$0 is: location-output.sh
$1 is: one
$2 is: two
$3 is: three
$@ is: one two three
$# is: 3
$! is:
$? is: 0
$* is: one two three
$$ is: 1906
Name is: one two three
[root@redhat01 ~]#
(3)输出当前目的的日历信息,并使用printf命令格式化输出。
[root@redhat01 ~]# vim date-output.sh
[root@redhat01 ~]# cat date-output.sh
#!/bin/bash
# 获取当前月份和年份
month=$(date +%m)
year=$(date +%Y)
# 使用cal命令获取当前月的日历
calendar=$(cal $month $year)
# 使用printf命令格式化输出
printf "Calendar for %s %s:\n\n" $month $year
printf "%s\n" "$calendar"
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x date-output.sh
[root@redhat01 ~]# bash date-output.sh
Calendar for 09 2024:
九月 2024
一 二 三 四 五 六 日
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
[root@redhat01 ~]#
(4)编写shell脚本,使用变量并结合printf命令格式化输出当前系统的磁盘分区、swap分区、逻辑卷等信息。
[root@redhat01 ~]# vim disk-output.sh
[root@redhat01 ~]# cat disk-output.sh
#!/bin/bash
# 使用df命令获取磁盘分区信息
disk_partitions=$(df -h)
# 使用swapon命令获取swap分区信息
swap_partitions=$(swapon -s)
# 使用lvdisplay命令获取逻辑卷信息
logical_volumes=$(lvdisplay)
# 使用printf命令格式化输出
printf "Disk Partitions:\n\n"
printf "%s\n" "$disk_partitions"
printf "\nSwap Partitions:\n\n"
printf "%s\n" "$swap_partitions"
printf "\nLogical Volumes:\n\n"
printf "%s\n" "$logical_volumes"
# 执行脚本并查看结果
[root@redhat01 ~]# chmod +x disk-output.sh
[root@redhat01 ~]# bash disk-output.sh
Disk Partitions:
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 962M 0 962M 0% /dev/shm
tmpfs 385M 6.2M 379M 2% /run
/dev/mapper/rhel-root 17G 4.9G 12G 30% /
/dev/nvme0n1p2 960M 260M 701M 27% /boot
/dev/sr0 9.9G 9.9G 0 100% /mnt
/dev/nvme0n1p1 599M 7.0M 592M 2% /boot/efi
tmpfs 193M 52K 193M 1% /run/user/42
tmpfs 193M 36K 193M 1% /run/user/0
Swap Partitions:
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -2
Logical Volumes:
--- Logical volume ---
LV Path /dev/rhel/swap
LV Name swap
VG Name rhel
LV UUID jc19F4-wvpM-m1yp-dHIL-G1hi-ZHMW-DfYr3X
LV Write Access read/write
LV Creation host, time redhat01, 2024-05-27 15:54:27 +0800
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/rhel/root
LV Name root
VG Name rhel
LV UUID E8Ircp-j40I-wBqh-5Zcu-OwyB-419p-311plV
LV Write Access read/write
LV Creation host, time redhat01, 2024-05-27 15:54:27 +0800
LV Status available
# open 1
LV Size 16.41 GiB
Current LE 4201
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
[root@redhat01 ~]#
任务四 算术运算符操作
1.任务描述
在shell中,算术运算主要用于执行各种数学计算。常见的算术运算包括加法、减法、乘法、除法、求余数、幂运算等。
2.任务实施
(1)编写shell脚本,计算三角形的面积、圆的面积和周长,输出结果。
[root@redhat01 ~]# vim calculate01.sh
[root@redhat01 ~]# cat calculate01.sh
#!/bin/bash
# 定义三角形的底和高
triangle_base=6
triangle_height=8
# 计算三角形的面积
triangle_area=$(echo "scale=2; $triangle_base * $triangle_height / 2" | bc)
# 定义圆的半径
circle_radius=10
# 计算圆的面积
circle_area=$(echo "scale=2; 3.14 * $circle_radius * $circle_radius" | bc)
# 计算圆的周长
circle_circumference=$(echo "scale=2; 2 * 3.14 * $circle_radius" | bc)
# 输出三角形的面积、圆的面积和周长
echo "三角形面积:$triangle_area"
echo "圆的面积:$circle_area"
echo "圆的周长:$circle_circumference"
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x calculate01.sh
[root@redhat01 ~]# bash calculate01.sh
三角形面积:24.00
圆的面积:314.00
圆的周长:62.80
(2)编写shell脚本,使用bc命令进行算术运算。
[root@redhat01 ~]# vim calculate02.sh
[root@redhat01 ~]# cat calculate02.sh
#!/bin/bash
# 定义变量
a=10
b=20
c=30
# 使用bc命令进行算术运算
result1=$(echo "$a + $b" | bc)
result2=$(echo "$a * $b" | bc)
result3=$(echo "scale=2; $a / $b" | bc)
result4=$(echo "$c % $a" | bc)
result5=$(echo "scale=3; $a ^ $b" | bc)
result6=$(echo "$a + $b * $c" | bc)
result7=$(echo "$a * $b + $c" | bc)
result8=$(echo "$c % $a + $b" | bc)
# 输出结果
echo "a + b = $result1"
echo "a * b = $result2"
echo "a / b = $result3"
echo "c % a = $result4"
echo "a ^ b = $result5"
echo "a + b * c = $result6"
echo "a * b + c = $result7"
echo "c % a + b = $result8"
# 执行脚本并查看输出结果
[root@redhat01 ~]# bash calculate02.sh
a + b = 30
a * b = 200
a / b = .50
c % a = 0
a ^ b = 100000000000000000000
a + b * c = 610
a * b + c = 230
c % a + b = 20
[root@redhat01 ~]#
(3)编写shell脚本,使用let命令进行算术运算。
[root@redhat01 ~]# vim calculate03.sh
[root@redhat01 ~]# cat calculate03.sh
#!/bin/bash
# 定义变量
a=10
b=20
c=30
# 使用let命令进行算术运算
let result1=a+b
let result2=a*b
let result3=c%a
let result4=a**b
let result5=a+b*c
let result6=a*b+c
let result7=c%a+b
# 输出结果
echo "a + b = $result1"
echo "a * b = $result2"
echo "c % a = $result3"
echo "a ^ b = $result4"
echo "a + b * c = $result5"
echo "a * b + c = $result6"
echo "c % a + b = $result7"
# 执行脚本并查看结果
[root@redhat01 ~]# chmod +x calculate03.sh
[root@redhat01 ~]# bash calculate03.sh
a + b = 30
a * b = 200
c % a = 0
a ^ b = 7766279631452241920
a + b * c = 610
a * b + c = 230
c % a + b = 20
[root@redhat01 ~]#
(4)编写shell脚本,使用expr命令进行算术运算。
[root@redhat01 ~]# vim calculate04.sh
[root@redhat01 ~]# cat calculate04.sh
#!/bin/bash
# 定义变量
a=10
b=20
c=30
# 使用expr命令进行算术运算
result1=`expr $a + $b`
result2=`expr $a \* $b`
result3=`expr $c % $a`
result4=`expr $a \* $a \* $a`
result5=`expr $a + $b \* $c`
result6=`expr $a \* $b + $c`
result7=`expr $c % $a + $b`
# 输出结果
echo "a + b = $result1"
echo "a * b = $result2"
echo "c % a = $result3"
echo "a ^ 3 = $result4"
echo "a + b * c = $result5"
echo "a * b + c = $result6"
echo "c % a + b = $result7"
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x calculate04.sh
[root@redhat01 ~]# bash calculate04.sh
a + b = 30
a * b = 200
c % a = 0
a ^ 3 = 1000
a + b * c = 610
a * b + c = 230
c % a + b = 20
[root@redhat01 ~]#
(5)编写shell脚本,使用$((...))表达式进行算术运算。
[root@redhat01 ~]# vim calculate05.sh
[root@redhat01 ~]# cat calculate05.sh
#!/bin/bash
# 定义变量
a=10
b=20
c=30
# 计算结果
result1=$((a + b))
result2=$((a * b))
result3=$((a / b))
result4=$((a % b))
result5=$((a ** b))
result6=$((a + b * c))
result7=$((a * b + c))
result8=$((c % a + b))
# 输出结果
echo "a + b = $result1"
echo "a * b = $result2"
echo "a / b = $result3"
echo "a % b = $result4"
echo "a ^ b = $result5"
echo "a + b * c = $result6"
echo "a * b + c = $result7"
echo "c % a + b = $result8"
# 执行脚本并查看输出结果
[root@redhat01 ~]# chmod +x calculate05.sh
[root@redhat01 ~]# bash calculate05.sh
a + b = 30
a * b = 200
a / b = 0
a % b = 10
a ^ b = 7766279631452241920
a + b * c = 610
a * b + c = 230
c % a + b = 20
[root@redhat01 ~]#
任务五 设置环境变量
1.任务描述
在Linux操作系统中,设置java环境变量涉及JAVA_HOME和PATH两个主要的环境变量,将环境变量写入配置文件,可以确保在系统重启或用户重新登录后环境变量依然有效。
2.任务实施
(1)安装OpenJDK 11。
[root@redhat01 ~]# dnf -y install java-11-openjdk java-11-openjdk-devel
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
上次元数据过期检查:0:16:44 前,执行于 2024年09月26日 星期四 21时16分51秒。
依赖关系解决。
=======================================================================================================
软件包 架构 版本 仓库 大小
=======================================================================================================
安装:
java-11-openjdk x86_64 1:11.0.20.0.8-3.el9 AppStream 441 k
java-11-openjdk-devel x86_64 1:11.0.20.0.8-3.el9 AppStream 3.3 M
安装依赖关系:
copy-jdk-configs noarch 4.0-3.el9 AppStream 29 k
java-11-openjdk-headless x86_64 1:11.0.20.0.8-3.el9 AppStream 40 M
javapackages-filesystem noarch 6.0.0-4.el9 AppStream 17 k
lksctp-tools x86_64 1.0.19-2.el9 BaseOS 98 k
lua x86_64 5.4.4-4.el9 AppStream 192 k
lua-posix x86_64 35.0-8.el9 AppStream 155 k
mkfontscale x86_64 1.2.1-3.el9 AppStream 34 k
ttmkfdir x86_64 3.0.9-65.el9 AppStream 55 k
tzdata-java noarch 2023c-1.el9 AppStream 234 k
xorg-x11-fonts-Type1 noarch 7.5-33.el9 AppStream 509 k
事务概要
=======================================================================================================
安装 12 软件包
总计:45 M
安装大小:187 M
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
运行脚本: copy-jdk-configs-4.0-3.el9.noarch 1/1
运行脚本: java-11-openjdk-headless-1:11.0.20.0.8-3.el9.x86_64 1/1
准备中 : 1/1
安装 : lksctp-tools-1.0.19-2.el9.x86_64 1/12
安装 : tzdata-java-2023c-1.el9.noarch 2/12
安装 : ttmkfdir-3.0.9-65.el9.x86_64 3/12
安装 : mkfontscale-1.2.1-3.el9.x86_64 4/12
安装 : xorg-x11-fonts-Type1-7.5-33.el9.noarch 5/12
运行脚本: xorg-x11-fonts-Type1-7.5-33.el9.noarch 5/12
安装 : lua-posix-35.0-8.el9.x86_64 6/12
安装 : lua-5.4.4-4.el9.x86_64 7/12
安装 : copy-jdk-configs-4.0-3.el9.noarch 8/12
安装 : javapackages-filesystem-6.0.0-4.el9.noarch 9/12
安装 : java-11-openjdk-headless-1:11.0.20.0.8-3.el9.x86_64 10/12
运行脚本: java-11-openjdk-headless-1:11.0.20.0.8-3.el9.x86_64 10/12
安装 : java-11-openjdk-1:11.0.20.0.8-3.el9.x86_64 11/12
运行脚本: java-11-openjdk-1:11.0.20.0.8-3.el9.x86_64 11/12
安装 : java-11-openjdk-devel-1:11.0.20.0.8-3.el9.x86_64 12/12
运行脚本: java-11-openjdk-devel-1:11.0.20.0.8-3.el9.x86_64 12/12
运行脚本: copy-jdk-configs-4.0-3.el9.noarch 12/12
运行脚本: java-11-openjdk-headless-1:11.0.20.0.8-3.el9.x86_64 12/12
运行脚本: java-11-openjdk-1:11.0.20.0.8-3.el9.x86_64 12/12
运行脚本: java-11-openjdk-devel-1:11.0.20.0.8-3.el9.x86_64 12/12
验证 : copy-jdk-configs-4.0-3.el9.noarch 1/12
验证 : java-11-openjdk-1:11.0.20.0.8-3.el9.x86_64 2/12
验证 : java-11-openjdk-devel-1:11.0.20.0.8-3.el9.x86_64 3/12
验证 : java-11-openjdk-headless-1:11.0.20.0.8-3.el9.x86_64 4/12
验证 : javapackages-filesystem-6.0.0-4.el9.noarch 5/12
验证 : lua-5.4.4-4.el9.x86_64 6/12
验证 : lua-posix-35.0-8.el9.x86_64 7/12
验证 : mkfontscale-1.2.1-3.el9.x86_64 8/12
验证 : ttmkfdir-3.0.9-65.el9.x86_64 9/12
验证 : tzdata-java-2023c-1.el9.noarch 10/12
验证 : xorg-x11-fonts-Type1-7.5-33.el9.noarch 11/12
验证 : lksctp-tools-1.0.19-2.el9.x86_64 12/12
已更新安装的产品。
已安装:
copy-jdk-configs-4.0-3.el9.noarch java-11-openjdk-1:11.0.20.0.8-3.el9.x86_64
java-11-openjdk-devel-1:11.0.20.0.8-3.el9.x86_64 java-11-openjdk-headless-1:11.0.20.0.8-3.el9.x86_64
javapackages-filesystem-6.0.0-4.el9.noarch lksctp-tools-1.0.19-2.el9.x86_64
lua-5.4.4-4.el9.x86_64 lua-posix-35.0-8.el9.x86_64
mkfontscale-1.2.1-3.el9.x86_64 ttmkfdir-3.0.9-65.el9.x86_64
tzdata-java-2023c-1.el9.noarch xorg-x11-fonts-Type1-7.5-33.el9.noarch
完毕!
[root@redhat01 ~]#
(2)创建Java环境变量脚本/etc/profile.d/java.sh。
[root@redhat01 ~]# cat > /etc/profile.d/java.sh <<'EOF'
> export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which java)))))
> export PATH=$PATH:$JAVA_HOME/bin
> EOF
(3)执行source命令,使Java环境变量生效。
[root@redhat01 ~]# source /etc/profile.d/java.sh