shell脚本或python : 统计某个⽂件中IP地址出现的次数,从⾼到低排序 # ⽂件格式如下:
ip: 10.10.10.1:1080
ip: 10.10.10.2:1080
ip: 10.10.10.4:2050
ip: 10.10.10.2:1020
2. 我想从file1读取命令的所有输⼊,将所有输出直接输出到file2,将错误读取到⽂件3,我该如何实现?
3. 知道Linux的哪些环境变量,怎么查看与修改,都⽤什么⽤?
4. Linux的 ls -l 命令,最左侧的 drwxr-xr-x 等都是什么意思?如何更改所有权和权限?
5. ⽤ shell 写⼀个斐波那契数列,输⼊是 N,输出是它的第 N 项。N < 50。 斐波那契数列:每⼀项都是前两项之和,不计第0项
1 1 2 3 5 8 13 21 34 55 89 ...
示例:
sh fib.sh 10
输出:
55
答:
1、用Python编写统计IP地址出现次数并排序的脚本
from collections import Counter
def sort_ips_by_frequency(file_path):
ip_counter = Counter()
with open(file_path, 'r') as file:
for line in file:
ip = line.strip().split(':')[1]
ip_counter[ip] += 1
sorted_ips = sorted(ip_counter.items(), key=lambda x: x[1], reverse=True)
for ip, count in sorted_ips:
print(f"{ip}: {count}")
file_path = "your_file_path.txt"
sort_ips_by_frequency(file_path)
2、读取命令的所有输入并将输出分别输出到两个文件的脚本:
#!/bin/bash
# 从file1读取命令输入
cat file1 | while read -r line; do
# 将命令执行结果输出到file2,错误输出到file3
$line > file2 2> file3
done
-
Linux的环境变量可以通过
printenv
命令查看,也可以通过编辑.bashrc
或.bash_profile
文件来修改。常见的环境变量包括PATH
、HOME
、USER
等。修改环境变量时,可以使用export
命令,例如export PATH=$PATH:/new/path
。 -
在
ls -l
命令的输出中,最左侧的部分是文件/目录的权限信息。以drwxr-xr-x
为例,第一个字符表示文件类型,后面的九个字符表示文件权限。d
表示目录,-
表示文件,r
表示可读,w
表示可写,x
表示可执行。如需更改文件所有权和权限,可以使用chmod
命令和chown
命令。例如,要将文件设置为所有者可读写、组可读、其他用户可读的权限,可以使用chmod 644 file_name
。
二:用Shell编写斐波那契数列的脚本:
#!/bin/bash
fib() {
if [ $1 -le 1 ]; then
echo $1
else
echo $(( $(fib $(( $1 - 1 )) ) + $(fib $(( $1 - 2 )) ) ))
fi
}fib $1
保存为fib.sh
,然后运行sh fib.sh 10
即可输出第10项的斐波那契数。