AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 61637
Accepted
Noah Campbell
Noah Campbell
Asked: 2009-09-03 10:23:03 +0800 CST2009-09-03 10:23:03 +0800 CST 2009-09-03 10:23:03 +0800 CST

ps斧头| grep java 在终端中没有包装?

  • 772

有没有办法在ps ax | grep java不包裹在终端上的情况下执行?

bash
  • 3 3 个回答
  • 6813 Views

3 个回答

  • Voted
  1. Best Answer
    Dennis Williamson
    2009-09-03T10:28:56+08:002009-09-03T10:28:56+08:00

    对我来说,ps除非我这样做,否则不会换行:

    ps axw
    

    但是,您可以像这样设置屏幕宽度以截断输出(但不会覆盖-w):

    ps ax --width=80
    

    您还可以使用o(或-o或--format)选项仅包含您感兴趣的列,更改或消除列标题并单独设置每列的宽度*。查看man ps并搜索“用户定义格式”(多次出现)。

    *设置小于正常的列宽可能会改变内容或显示的方式,或者可能没有影响。例如,“args:20”不会截断输出(除非它不是最后一列),“user:5”会导致超过五个字符的用户名显示为 UID 号。

    • 4
  2. user13723
    2009-09-24T00:33:01+08:002009-09-24T00:33:01+08:00

    我无法评论丹尼斯·威廉姆森的回答(也许我对此的看法太少了);这就是为什么我要写一个新的答案。

    你可以做

    ps ax --width=$COLUMNS
    

    根据当前终端大小调整输出宽度。如果你喜欢的 shell 不支持 COLUMNS 环境变量,你可以使用 stty:

    ps ax --width=$(stty -a | grep 'columns [0-9]*;' | sed 's|.*columns \([0-9]*\).*|\1|')
    

    或更具体地说(使用单个 awk 但对 stty -a 输出格式做出更强的假设):

    ps -axw --width=$(stty -a | awk '/columns/ { printf "%d", $7 }')
    

    所有这些都需要大量输入,因此您可能需要考虑将上面的内容设为别名或 shell 函数... :-) 以上内容可能需要针对您的操作系统进行调整(我现在无法测试,我不是使用 OS X 但 Linux)。我对 stty -a 有以下输出:

    speed 38400 baud; rows 42; columns 178; line = 0;
    intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
    flush = ^O; min = 1; time = 0;
    ...
    
    • 1
  3. Raman Kathpalia
    2018-04-10T06:01:48+08:002018-04-10T06:01:48+08:00

    less -S在任何命令的末尾追加将在 Linux 终端上解开命令输出。

    示例:1(您的原始命令附加了less -S)

    ps ax | grep java | less -S
    
    16338 ?        Sl   725:52 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
    23137 ?        Sl   498:18 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
    34753 ?        Sl   492:43 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
    39519 ?        Sl   486:47 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
    42071 ?        Sl   494:36 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.moduleName=/opt/mqm/mq_mount
    

    示例: 2。更好的是,下一个命令显示每个 Java 线程/进程 ID 的 CPU 和内存消耗百分比。

    ps aux | egrep 'java|USER' | less -S
    
    USER         PID  %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    Kathpalia   14876  0.0  0.0 103328   864 pts/0    S+   09:31   0:00 egrep java|USER
    Kathpalia   16338  2.7  9.4 5932240 953984 ?      Sl   Mar22 726:00 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
    Kathpalia   23137  2.3  5.3 5875976 542084 ?      Sl   Mar25 498:26 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
    Kathpalia   34753  2.3  4.6 5837004 469692 ?      Sl   Mar25 492:51 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
    Kathpalia   39519  2.3  4.2 5824768 429004 ?      Sl   Mar25 486:55 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
    Kathpalia   42071  2.3  4.0 5825876 408612 ?      Sl   Mar25 494:44 /usr/java/jdk1.8.0_60/bin/java -Dinstall4j.jvmDir=/usr/java/jdk1.8.0_60 -Dexe4j.
    

    对于任何通用过程都是如此:

    ps aux | egrep 'MyGenericProcess|USER' | less -S
    

    PS:对于 Linux 6.x 或更高版本,grep -E可以使用代替egrep

    • 0

相关问题

  • Mac OS X:从 python 脚本中更改 $PATH

  • Bash 脚本:要求脚本以 root 身份运行(或使用 sudo)

  • crontab ifconfig 什么都不输出

  • 使用命令行工具按排序顺序计算重复项

  • 是否有 bash 等效于 ruby​​ 的“一些内容#{foo}”?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve