du -h / | grep -E "M|G" 并排序
时间: 2024-03-22 13:42:21 浏览: 99
你可以使用以下命令来列出 CentOS 7 中所有文件夹的大小,并按照大小排序:
```
du -h / | grep -E "M|G" | sort -hr
```
其中,`sort -hr` 命令会按照大小逆序排序,即从大到小排列。如果你想按照文件夹名称排序,可以去掉 `-r` 参数,即使用以下命令:
```
du -h / | grep -E "M|G" | sort -h
```
这样会按照文件夹名称从小到大排列。
相关问题
解释以下命令的功能。 ls -lR ~ | awk '$5>100000 {print $9}' ls -l ~ | grep "^-" | wc –l df -h / | awk '{print $4}' | tail -n 1 df -h / | awk '{print $3}' | tail -n 1 dpkg -l | grep -c ^ii
1. `ls -lR ~ | awk '$5>100000 {print $9}'`:
- `ls`: 列出当前目录下的内容
- `-l`: 以长格式列出
- `-R`: 递归列出子目录下的内容
- `~`: 代表当前用户的主目录
- `awk '$5>100000 {print $9}'`: 列出文件大小大于100000字节的文件名,其中`$5`表示第五列,即文件大小,`$9`表示第九列,即文件名。
2. `ls -l ~ | grep "^-" | wc -l`:
- `ls`: 列出当前目录下的内容
- `-l`: 以长格式列出
- `~`: 代表当前用户的主目录
- `grep "^-"`: 筛选出以`-`开头的行,即筛选出文件而不是目录
- `wc -l`: 统计行数,计算出文件的数量。
3. `df -h / | awk '{print $4}' | tail -n 1`:
- `df`: 查看磁盘空间使用情况
- `-h`: 以易读格式显示
- `/`: 查看根目录的磁盘空间使用情况
- `awk '{print $4}'`: 取出第四列,即可用空间大小
- `tail -n 1`: 取出最后一行,即根目录可用空间大小。
4. `df -h / | awk '{print $3}' | tail -n 1`:
- `df`: 查看磁盘空间使用情况
- `-h`: 以易读格式显示
- `/`: 查看根目录的磁盘空间使用情况
- `awk '{print $3}'`: 取出第三列,即已用空间大小
- `tail -n 1`: 取出最后一行,即根目录已用空间大小。
5. `dpkg -l | grep -c ^ii`:
- `dpkg`: Debian/Ubuntu系统下的软件包管理工具
- `-l`: 列出已安装的软件包
- `grep -c ^ii`: 筛选出已安装的软件包,并统计数量。其中`^ii`表示筛选以`ii`开头的行,即表示已经安装的软件包。
ps |grep /mnt/adas/adas-rt/hobot-adas-workflow | grep -v grep | grep -v watchdog 获取进程pid 循环kill1000次查询
这个命令行是一个Linux shell脚本的一部分,用于查找并列出指定目录下名为"adas-rt/hobot-adas-workflow"的工作流程相关的进程,过滤掉`grep`本身以及`watchdog`进程。以下是命令的解释:
- `ps`:查看当前系统的进程状态。
- `|`:管道操作符,将`ps`的结果传递给下一个命令。
- `grep /mnt/adas/adas-rt/hobot-adas-workflow`:筛选出包含指定路径的进程名。
- `grep -v grep`:排除执行此命令本身的grep进程。
- `grep -v watchdog`:排除名字为"watchdog"的进程。
- `grep -v`后面的两个参数再次使用了排除操作,这里可能会导致信息丢失,因为如果目标进程名正好是`grep`或者`watchdog`,则会被误杀。
然而,循环kill 1000次的过程不在这个命令里,你需要在获取到PID之后,再用循环结构(如bash的for循环或Python的while循环)配合`kill`命令来实现。例如,在bash中可以这样做:
```bash
# 获取PID
pid_list=$(ps aux |grep "/mnt/adas/adas-rt/hobot-adas-workflow" | grep -v grep | grep -v watchdog | awk '{print $2}')
# 初始化计数器
count=0
# 循环kill 1000次
while [ "$count" -lt 1000 ]; do
# 检查pid_list是否为空
if [ -n "$pid_list" ]; then
pid_to_kill=$(echo $pid_list | head -n 1) # 取第一个PID
kill "$pid_to_kill"
pid_list=$(ps aux |grep "/mnt/adas/adas-rt/hobot-adas-workflow" | grep -v grep | grep -v watchdog | awk '{print $2}' | tail -n +2) # 移除已杀死的进程
count=$((count+1))
else
echo "No more processes to kill."
break
fi
done
```
阅读全文