2011-12-01 2 views
5

나는 리눅스의 모든 명령 행 프로그램에 의해 생성되는 출력량을 제한하는 방법을 찾고 있으며, 제한된 시간을 알려주는 것이 바람직하다.모든 리눅스 명령의 출력 제한

디스플레이에서 지연되는 서버를 통해 작업하고 있습니다. 때로는 대용량 파일에 cat 또는 많은 파일이있는 디렉토리에 ls과 같이 많은 양의 텍스트를 출력하는 명령을 실수로 실행하게됩니다. 그런 다음 모든 출력을 터미널에 인쇄하려면 잠시 기다려야합니다.

너무 많은 출력이 터미널에 인쇄되지 않도록하기 위해 모든 출력을 head 또는 wc과 같은 명령으로 자동 파이프하는 방법이 있습니까?

답변

3

나는 일반적인 경우에 대해 잘 모르지만, 각각의 잘 알려진 명령 (고양이, LS가 발견?) 에 대해 다음 작업을 수행 할 수 있습니다 :

  • 은 기존의 유틸리티
  • 에 사본을 하드 링크를
  • 유틸리티와 파이프를 호출하는 작은 bash 함수 (또는 wc 등)
  • 별칭 함수를 호출하는 유틸리티의 이름. 그래서 이러한 선 (완전히 테스트되지 않은)를 따라

:

$ ln `which cat` ~/bin/old_cat 

function trunc_cat() { 
    `old_cat [email protected] | head -n 100` 
} 

alias cat=trunc_cat 
+0

그래, 나는 그런 식으로 생각 했었지만, 좀 더 일반적인 것을 기대했다. – daniel

0

당신이 다음 less에 명령의 출력을 파이프하려고 원격 서버로, SSH와 같은 네트워크 연결을 통해 작업하는 가정. 그렇게하면 서버의 프로그램 출력을보다 잘 관리하고 탐색 할 수 있습니다. 한 줄에 위아래로 이동하려면 'j'와 'k'를 사용하고 페이지를 1/2 위로 이동하려면 'ctrl-u'와 'ctrl-d'를 사용하십시오. 이렇게하면 관련 텍스트 (예 : 화면에 맞는 내용) 만 네트워크를 통해 전송됩니다.

+0

나는 항상 더 적은 것을 파이프하는 것보다 더 자동적 인 것을 찾고 있었다. 이것은 또한 소량의 출력에 대해서는 "적은"개방을, 예를 들면, 'ls'. – daniel

+0

은 색상으로 -R을 덜 사용합니다. – sashang

1

모든 명령의 별칭을 만드는 것이 좋은 시작일 것입니다. 예 :

alias lm="ls -al | more" 
alias cam="cat [email protected] | more" 
1

아마도 screen을 사용하면 도움이 될까요?

+0

나는 byobu를 사용한다. 나는 여전히 모든 출력물을 기다려야한다. 내가 도움이 될 것을 모르는 뭔가가 있나요? – daniel

+0

Ctrl + A Esc를 누르면 터미널이 현재 위치에서 고정됩니다. Esc>로 끝까지 건너 뛸 수 있습니다. –

1

이렇게하면 bash 완성을 생각하게됩니다. 프로그램이 발견되지 않을 때 핸들러를 지정할 수 있습니다 bash는 complete 명령으로

,

무엇 필터링 파이프에 리디렉션 모든 명령을 실행하기 위해, 자신의 핸들러 명확 $PATH 쓰기에 대한

?

# 직접 시도하지 않았습니다.

관련 문제