用shell命令将1到100分别分为两个组
时间: 2024-02-11 20:09:26 浏览: 14
可以使用以下shell命令将1到100分别分为两个组:
```
seq 1 100 | shuf | split -l 50
```
这个命令的作用是:
1. `seq 1 100` 生成1到100的数字序列。
2. `shuf` 对数字序列进行随机排序。
3. `split -l 50` 将随机排序后的数字序列分成两个文件,每个文件包含50个数字。
相关问题
写一个将1-100通过for循环将前50个多小时数分为一组,后50个分为一组的shell脚本并在脚本里创建A,B两个用户组
好的,以下是脚本:
```shell
#!/bin/bash
# 创建A、B两个用户组
sudo groupadd A
sudo groupadd B
# 将1-100中前50个数分配给A组,后50个数分配给B组
for i in {1..50}
do
sudo useradd -g A -d /home/user$i -m user$i
echo "user$i" | sudo passwd --stdin user$i
done
for i in {51..100}
do
sudo useradd -g B -d /home/user$i -m user$i
echo "user$i" | sudo passwd --stdin user$i
done
```
在这个脚本中,我们使用了for循环来创建50个用户,并将他们分配到不同的用户组中。同时,我们使用了sudo命令来获取管理员权限,以便进行用户和用户组的创建。
)编写shell脚本,在用户家目录下创建一个名为back_up的文件,然后实现每隔1分钟将系统运行的前台进程信息输出到到back_up文件中。 分为两个步骤:第1步先编写shell脚本,第2步用crontab -e命令设置周期性任务
好的,以下是针对你的问题的回答:
第一步,创建一个名为back_up的文件并将系统运行的前台进程信息输出到该文件中,可以使用以下的shell脚本:
```
#!/bin/bash
FILE=~/back_up
while true
do
ps -ef | grep -v grep | grep -v "$0" | grep -v "tail" > $FILE
sleep 60
done
```
这个脚本会在用户家目录下创建一个名为back_up的文件,并且每隔1分钟将系统运行的前台进程信息输出到该文件中。其中,ps命令用于查看系统运行的进程信息,grep命令用于过滤掉一些无用信息,sleep命令用于让脚本休眠60秒。
第二步,设置周期性任务可以使用crontab命令,具体操作如下:
1. 使用命令crontab -e打开编辑器来编辑定时任务:
```
crontab -e
```
2. 在编辑器中添加以下一行:
```
* * * * * ~/back_up.sh
```
该行的含义是每隔1分钟执行一次~/back_up.sh脚本。
3. 保存并退出编辑器。
这样就完成了定时任务的设置,系统会每隔1分钟自动执行~/back_up.sh脚本,并将运行的前台进程信息输出到back_up文件中。