top
Ubuntu Bionic의 경우 프로세스에 다양한 데이터를 표시하고 동일하게 자동으로 새로 고치지만 표시할 데이터(열)를 지정하도록 명령줄에서 구성할 수 있는 도구가 있습니까 ?
답변1
procps
top
, Ubuntu의 구현이 아마도 가장 구성 가능한 top
구현일 것입니다.
필드 목록을 변경하려면 을 누르세요 f. 필드 추가, 필드 제거, 순서 변경 등을 할 수 있습니다.
색상, 레이아웃, 다중 창 보기, 상단 머리글 등을 포함하여 더 많은 것을 변경할 수 있습니다.
을 눌러 이러한 구성을 저장할 수 있습니다 W.
이는 사라질 것입니다 ~/.toprc
(또는 ~/.config/procps/toprc
최신 버전에서는).
top
다른 이름으로 불러서 다른 프로필로 저장할 수 있습니다 . 예를 들어, 실행 파일 mytop
에 대한 top
심볼릭 링크를 생성 하고 이를 호출하거나 top
로 실행 (exec -a mytop top)
하면 W구성이 에 저장되므로 ~/.mytoprc
이러한 방식으로 다양한 버전을 정의할 수 있습니다 top
.
답변2
딜레마죠?
top
자동 새로 고침 기능이 있지만 표시할 열을 지정할 수 있는 방법은 없습니다.ps
출력할 열을 상대방에게 알릴 수 있지만 지속적으로 업데이트되지는 않습니다.
나는 이 문제에 대한 해결책의 일부입니다.
테이블 입력에서 데이터를 파이프하고 스크롤 가능한 열 형식으로 터미널에 전체 화면을 표시하는 도구가 이미 있습니다. 이것은 console-flat-table-viewer
nosh 도구 세트의 명령입니다. 관련 구분 기호로 구분된 표준 입력에서 일정한 간격으로 일련의 테이블을 제공합니다.파일 구분 기호문자가 표시되며 지속적으로 업데이트되는 디스플레이를 제공합니다.
이 점에 유의하시기 바랍니다아니요좋다 watch
. watch
이전 입력을 수락합니다. console-flat-table-viewer
그 입력은 다음과 같을 것으로 예상됩니다.테이블는 Unices 및 Linux 운영 체제에서 발견되는 잘 알려진 여러 플랫 파일 인코딩 중 하나이며 사용자 인터페이스는 이를 제공합니다.테이블로, 제목과 커서와 함께 행과 열로 정렬됩니다.
메커니즘의 다른 부분은 먼저 프로세스 테이블을 플랫 파일로 내보내고 간격을 두고 반복하여 출력을 전체에 분산시키는 도구입니다.파일 구분 기호. 거의 다 왔지만 아직은 거의 다 왔어요.
top
"배치" 모드에서 명령의 출력을 제공할 수 있습니다.
그리고 상단 -b 모두 | sed -e '1,8s/^/#/' -e $'1i\\n\\f' 하다 잠 1 완료 | 콘솔 플레인 뷰어--제목 개수 1
실제로 프로세스 테이블이 아닌 출력 부분을 sed
주석으로 변환합니다. 그렇지 않으면 테이블 레이아웃이 혼란스러워질 수 있습니다.top
파일 구분 기호. 매뉴얼에서 형식이라고 하는 top
출력 과 일치하는 테이블 인코딩에서 파일 구분 기호는 ␌ 문자이므로 삭제하지 않도록 이스케이프해야 합니다. (ASCII에는 테이블을 이해하는 실제 ␜ 문자가 있습니다 . 그러나 이는 출력에 대한 인코딩이 아닙니다 .)console-flat-table-viewer
space
sed
console-flat-table-viewer
ascii
top
테이블의 나머지 데이터 직전까지 수신되지 않도록 sed
디스플레이 깜박임을 줄이기 위해 ␌ 문자를 추가했습니다 . console-flat-table-viewer
대안은 console-flat-table-viewer
단순히 먼저 호출하는 것입니다. 그러면 ␌와 테이블 데이터 사이에 시간 간격(빈 테이블이 표시되는 동안)이 있으므로 약간 더 깜박거림이 발생합니다 printf
.
또한 출력을 생성하는 명령이 while
루프의 조건에 들어가므로 파이프가 끊어지면 console-flat-table-viewer
종료할 때 루프가 정상적으로 종료됩니다.
그러나 이는 열에 대한 제어를 제공하지 않습니다.
또는 FreeBSD 명령의 출력을 제공할 수 있습니다 procstat
.
그리고 printf '\f' ; 하다 잠 1 완료 | 콘솔 플레인 뷰어--제목 개수 1
이는 다양한 옵션을 사용하여 열에 대한 제한된 수준의 제어를 제공하지만 세밀한 제어는 제공하지 않습니다. 또한 몇 가지 옵션으로 인해 필드 중간에 이스케이프되지 않은 공백이 발생하여 테이블 형식이 깨지기 때문에 몇 가지 문제도 있습니다.
BSD 명령을 사용할 수 있습니다 ps
.
그리고 ps -a -x -o "pid,ppid,user,log name,time,status,wchan,start,comm" | sed -e $'1i\\n\\f' 하다 잠 1 완료 | 콘솔 플레인 뷰어--제목 개수 1
Ubuntu Linux의 GNU 라이센스 명령에는 ps
다른 명령줄 구문이 있는데, 이는 그 자체로 몇 가지 질문과 답변이지만 동일하게 사용할 수 있습니다.
비록 이것이하다열에 대한 세밀한 제어를 위해다시필드 내의 공백은 올바르게 이스케이프할 수 없습니다.
BSD는 1990년대 4.4BSD 이후로 이 문제를 처리하는 방법을 갖고 있습니다. vis()
다양한 BSD 플레인 테이블(예: ) /etc/fstab
에 채택된 인코딩 시스템 입니다 . console-flat-table-viewer
또한 이미 해독하는 방법도 알고 있습니다. ps
또는 둘 중 하나 procstat
, 바람직하게는 둘 다 vis
출력을 인코딩 할 수 있다는 점을 매우 환영 합니다.
console-flat-table-viewer
GUI 사용자를 위한 확실한 다음 단계 는 동일한 입력을 사용하고 파이프라인의 입력 측면을 동일하게 유지하며 TUI 대신 GUI를 사용하여 지속적으로 업데이트되는 테이블을 표시하는 (현재 가상의) 유틸리티를 갖는 것입니다 .
그러면 구성 가능한 도구와 파이프라인이 함께 연결된 유연한 메커니즘을 가질 수 있습니다. ☺
추가 읽기
- 조나단 데보인 폴라드(2019).
console-flat-table-viewer
. 스낵 가이드. 소프트웨어. - "노선지도".스낵 품목. FreeBSD 분기별 상태 업데이트 2018년 4분기.
- 로버트 N. M. 왓슨(2017-01-14).프로그램 통계. FreeBSD 공통 명령 매뉴얼.
- 메모. FreeBSD 공통 명령 매뉴얼. 2018년 3월 13일.
- 보이는. FreeBSD 공통 명령 매뉴얼. 2013년 2월 19일.
- https://unix.stackexchange.com/a/511530/5132