Bash 按日期对Unix进程进行排序

Bash 按日期对Unix进程进行排序,bash,unix,scripting-language,Bash,Unix,Scripting Language,大家好,我在按日期排序时遇到了麻烦,我必须只保留最新的进程并杀死旧的进程 ps -ef | grep -i my_username 然后我得到了5个或6个进程,但我不知道哪一个是最新的,请帮助。如果这是Linux,那么您可以得到进程的开始时间,如下所示: ps -u your_username -o pid,lstart,cmd 尽管如此,由于lstart字段是日期格式的,我承认自动排序有点困难。但是,如果您只需要关心“5或6个流程”,那么您可以手动完成这项工作。:) 如果这是Linux,

大家好,我在按日期排序时遇到了麻烦,我必须只保留最新的进程并杀死旧的进程

 ps -ef | grep -i my_username

然后我得到了5个或6个进程,但我不知道哪一个是最新的,请帮助。

如果这是Linux,那么您可以得到进程的开始时间,如下所示:

ps -u your_username -o pid,lstart,cmd

尽管如此,由于
lstart
字段是日期格式的,我承认自动排序有点困难。但是,如果您只需要关心“5或6个流程”,那么您可以手动完成这项工作。:)

如果这是Linux,那么您可以获得进程的开始时间,如下所示:

ps -u your_username -o pid,lstart,cmd

尽管如此,由于
lstart
字段是日期格式的,我承认自动排序有点困难。但是,如果您只需要关心“5或6个流程”,那么您可以手动完成这项工作。:)

如果您在Linux上执行此操作,这将按启动时间对进程进行排序:

ps -ef --sort=start_time
要获得前5名,您可以通过管道将输出传输到
头部

ps -ef --sort=start_time | head -n 6
我已经指定了6,因为第一行是标题

对于OS X,这将为您提供最早的5个进程:

ps aux -O started | head -n 6

如果您在Linux上执行此操作,这将按启动时间对进程进行排序:

ps -ef --sort=start_time
要获得前5名,您可以通过管道将输出传输到
头部

ps -ef --sort=start_time | head -n 6
我已经指定了6,因为第一行是标题

对于OS X,这将为您提供最早的5个进程:

ps aux -O started | head -n 6

假设您的进程都不超过24小时

ps-ef | grep-i我的|用户名|排序+4


假设您的任何进程都不超过24小时,可能就足够了

ps-ef | grep-i我的|用户名|排序+4


可能就足够了

我得到了这个非法选项--sort=start\u time这是什么unix系统-OS X?另外,为了确保,
--
后面没有空格。我想要最后10个'ps-ef--sort=start\u time | tail-n 10`我得到了这个非法选项--sort=start\u time这是什么unix系统-OS X?另外,可以肯定的是,
--
后面没有空格。我想要最后10个'ps-ef--sort=start\u time | tail-n 10'。这似乎不太可能是您想要做的。如果有超过5或6个进程以您的名义运行,那么您的登录shell将不在最新进程之列。一般来说,杀死它会杀死你所有的进程。这似乎不太可能是你想要做的。如果有超过5或6个进程以您的名义运行,那么您的登录shell将不在最新进程之列。一般来说,终止它将终止所有进程。