好的,所以我已经尝试了大约三个小时但没有成功。
你如何搜索/显示/使用top命令(或ps命令,如果它有效......)输出所有进程的列表,按 CPU 时间排序,不包括“root”拥有的进程。
我到目前为止的尝试:
top -b -S -n 1 | grep -v root
top -b -S -n 1 | egrep -ve root
ps -eo pid,user,args,etime,time,%cpu --sort etime | egrep -v root
Run Code Online (Sandbox Code Playgroud)
那以及在批处理模式下运行 top 的各种尝试,输出到文件并尝试awk/grep/sort通过它并根据 CPU 时间量对其进行正确排序(大多数情况下无法找到正确的列/设法以任何看似有用的方式对正确的列进行排序)。
如果这看起来有点混乱,请原谅我;tl;博士:
我只是想要一些方法来轻松阅读 top 而无需 root procs 并按 CPU 时间排序。
文件格式如下:
aaa 1-00:12:43.122
aaa 0-21:14:43.133
bbb 3-11:14:54.433
bbb 2-00:00:10
Run Code Online (Sandbox Code Playgroud)
第二列上的数字格式为d-hh:mm:ss.nnn。在某些情况下,最后三位十进制数字不存在。我试图弄清楚如何对按第一列分组的它们求和以获得每个用户的总持续时间。因此,对于此示例,结果将是:
aaa 1-21:27:26.255
bbb 5-11:15:04.433
Run Code Online (Sandbox Code Playgroud) 我有一个名为 的文件中的路径列表pathlist.txt。看起来像这样:
/home/abc/dirA
/home/abc/dirB
/home/abc/dir with space
/home/abc/dirX
Run Code Online (Sandbox Code Playgroud)
我需要找到每个路径中的所有文件。以下方法有效,但仅适用于其中不含空格的路径:
find $(tr '\n' ' ' < pathlist.txt) -type f -printf "%p, %AY-%Am-%Ad \n"
我尝试过设置IFS=$'\n'和一些实验,xargs但没有成功。关于如何确保 find 接受其中包含空格(可能还有其他特殊字符)的路径有什么建议吗?
我经常需要转到我退出服务器时所在的目录。我习惯性地cd -用于这个目的。但是,注销并重新登录后,这不起作用,因为显然已OLDPWD重置:
$ cd -
-bash: cd: OLDPWD not set
Run Code Online (Sandbox Code Playgroud)
有没有办法OLDPWD在 bash 中保留登录会话之外的值?
我尝试过命令:
#!/bin/bash
folder_tmp=~/name-x-tmp/ #this is worked
echo -n "url: " && read -e url #this is worked
wget -P $folder_tmp -O 1.txt $url #this is not worked!!
exit 1
Run Code Online (Sandbox Code Playgroud)
我有什么错吗?也许 -P 和 -O 不能一起工作,对吗?