1、编写一个python程序,把当前程序和路径加入到PATH环境变量,在任何地方都可以执行
import os
import sys
# 获取当前程序所在路径
current_path = os.path.dirname(os.path.abspath(sys.argv[0]))
# 获取原始的PATH环境变量值
original_path = os.environ.get('PATH', '')
# 将当前程序所在路径添加到PATH环境变量中
new_path = f"{current_path}:{original_path}"
# 更新环境变量
os.environ['PATH'] = new_path
# 打印更新后的环境变量
print("PATH环境变量已更新:")
print(os.environ['PATH'])
运行以上代码后,会将当前程序所在路径添加到PATH环境变量中,并打印出更新后的环境变量值。
请注意,在某些操作系统中,对环境变量的更改只会在当前的Python进程中生效。如果你希望永久将当前程序所在路径添加到PATH环境变量中,你需要手动在操作系统的配置中进行设置。具体的方法因操作系统而异,请根据你使用的操作系统版本和发行版进行相应的配置。
2、编写一个shell程序,输入2个数据,比较两个数据得大小
你可以使用read
命令获取用户输入的2个数据,然后通过Linux系统提供的比较符号进行大小比较。下面是一个示例程序,演示如何编写一个简单的shell程序来实现这个功能:
#!/bin/bash
# 提示用户输入两个数
read -p "请输入第一个数:" num1
read -p "请输入第二个数:" num2
# 比较两个数的大小并输出结果
if [ $num1 -gt $num2 ]
then
echo "$num1 大于 $num2"
elif [ $num1 -lt $num2 ]
then
echo "$num1 小于 $num2"
else
echo "$num1 等于 $num2"
fi
在以上示例程序中,我们使用read
命令读取用户输入的2个数,并使用-p
选项来显示提示信息。然后,我们使用Linux系统提供的比较符号-gt
、-lt
和-eq
来判断两个数的大小关系,并输出相应的结果。
要让这个程序可以在Linux操作系统上运行,需要将上述代码保存到一个以.sh
结尾的文件中(例如compare.sh
),然后使用chmod
命令将该文件设置为可执行文件:
chmod +x compare.sh
接着就可以运行该程序了:
./compare.sh
然后依次输入2个数,即可得到它们的大小比较结果。
3、编写一个shell程序,获取CPU的使用率、内存使用率,并做打印显示
要获取CPU的使用率和内存使用率,可以使用Linux下的top
命令结合其他工具来实现。下面是一个示例的shell程序,用于获取并显示CPU使用率和内存使用率:
#!/bin/bash
# 获取当前CPU使用率,并提取第三列数据(即CPU使用率)
cpu_usage=$(top -bn 1 | grep 'Cpu(s)' | awk '{print $2}')
# 获取当前内存使用率,并提取第四列数据(即内存使用率)
memory_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
# 打印CPU使用率和内存使用率
echo "当前CPU使用率:$cpu_usage%"
echo "当前内存使用率:$memory_usage%"
在以上示例程序中,我们首先使用top
命令获取当前的系统状态信息,然后使用grep
和awk
命令来提取CPU使用率和内存使用率的数据。最后,使用echo
命令打印出获取到的CPU使用率和内存使用率。
将上述代码保存到一个以.sh
结尾的文件中(例如system_status.sh
),然后使用chmod
命令将该文件设置为可执行文件:
chmod +x system_status.sh
接着就可以在命令行中运行该程序了:
./system_status.sh
运行后,你将看到类似如下的输出:
当前CPU使用率:12.3%
当前内存使用率:45.6%
其中的具体数值会根据当前系统状态而有所不同。
4、编写一个shell程序,获取/var/log/messages文件内容,并逐行打印显示。
要获取并逐行打印显示/var/log/messages
文件的内容,可以使用Linux下的cat
命令结合循环来实现。下面是一个示例的shell程序:
#!/bin/bash
# 逐行读取/var/log/messages文件并打印显示
while read -r line
do
echo "$line"
done < /var/log/messages
在以上示例程序中,我们使用read
命令结合while
循环,逐行读取/var/log/messages
文件的内容,并通过echo
命令将每行内容打印显示出来。
将上述代码保存到一个以.sh
结尾的文件中(例如print_messages.sh
),然后使用chmod
命令将该文件设置为可执行文件:
chmod +x print_messages.sh
接着就可以在命令行中运行该程序了:
./print_messages.sh
运行后,程序会将/var/log/messages
文件的内容逐行打印显示出来。请注意,你需要有足够的权限来读取该文件。如果没有足够的权限,请以超级用户或具有足够权限的用户身份运行该程序。
5、编写一个shell程序,实现1+3+5+7+9+...+1001的值
#!/bin/bash
# 初始化求和变量为0
sum=0
# 使用循环计算1+3+5+7+9+...+1001的值
for ((i = 1; i <= 1001; i += 2))
do
sum=$(($sum + $i))
done
# 打印计算结果
echo "1+3+5+7+9+...+1001 的值为:$sum"
在以上示例程序中,我们使用for
循环从1开始,每次递增2,直到达到1001为止。在每次循环中,将当前的数值累加到sum
变量中。最后,使用echo
命令打印出计算结果。
将上述代码保存到一个以.sh
结尾的文件中(例如calculate_sum.sh
),然后使用chmod
命令将该文件设置为可执行文件:
chmod +x calculate_sum.sh
接着就可以在命令行中运行该程序了:
./calculate_sum.sh
运行后,你将看到以下输出:
1+3+5+7+9+...+1001 的值为:251001
6、编写一个shell程序,实现冒泡排序算法
冒泡排序是一种简单的排序算法,通过多次遍历待排序列表,并比较相邻元素的大小,将较大(或较小)的元素逐步交换到列表的末尾(或开头),以达到排序的目的。以下是一个示例的shell程序,实现冒泡排序算法:
#!/bin/bash
# 待排序的列表
arr=(5 3 8 2 1 4)
# 获取列表长度
length=${#arr[@]}
# 冒泡排序算法
for ((i = 0; i < length - 1; i++))
do
for ((j = 0; j < length - 1 - i; j++))
do
if ((arr[j] > arr[j+1]))
then
# 交换相邻元素
temp=${arr[j]}
arr[j]=${arr[j+1]}
arr[j+1]=$temp
fi
done
done
# 打印排序结果
echo "排序结果:${arr[*]}"
在以上示例程序中,我们使用一个名为arr
的数组表示待排序的列表。首先,通过${#arr[@]}
获取列表的长度。然后,我们使用两层循环来遍历列表并比较相邻元素的大小。如果发现当前元素大于后一个元素,则交换它们的位置。
最后,使用echo
命令打印出排序结果。${arr[*]}
会将数组中的所有元素连接起来作为一个字符串输出。
将上述代码保存到一个以.sh
结尾的文件中(例如bubble_sort.sh
),然后使用chmod
命令将该文件设置为可执行文件:
chmod +x bubble_sort.sh
接着就可以在命令行中运行该程序了:
./bubble_sort.sh
运行后,你将看到以下输出:
排序结果:1 2 3 4 5 8
即冒泡排序算法对待排序的列表进行了排序。如果你想排序其他列表,只需修改arr
数组的内容即可。