명령을 실행할 때 터미널 출력을 숨기는 방법은 무엇입니까?


62

11.10의 Eclipse 및 문서 뷰어와 같은 명령 줄에서 특정 프로그램을 시작하면 중요하지 않은 정보가 많이 나타납니다.

또한 백그라운드에서 실행될 때 때로는 현재 작업중 인 터미널에 계속 출력을 생성하여 자극적입니다.

나는 그들이 배경을 배경으로 발사하고 유지하기를 원합니다. 내 이유는 GUI를 통해 이러한 프로그램을 시작하면 (예 : 아이콘을 두 번 클릭) 이러한 메시지가 나에게 표시되지 않으므로 명령 줄에 필요하지 않습니다.


답변:


81

콘솔에 내용을 쓰지 않으려면 프로그램의 출력이 생성되는 방법에 따라 다릅니다. 표준 출력으로 스트리밍되면 충분합니다.

$ eclipse >/dev/null

출력하지 않아야합니다.

오류 메시지도 표시하지 않으려면 :

$ eclipse >/dev/null 2>&1

또는 bash에서 간단히 :

$ eclipse &>/dev/null

그러나 그들이 어떻게 든 다르게하면 콘솔에서 쓰기를 중지하는 것이 문제가 될 수 있습니다.

가능하면 MuffinStateWide에서 제공 한 솔루션을 사용하십시오.


2
그것을 eclipse 2&>1 >/dev/null없애고 싶을 수도 stderr있습니다. 기본값은 리디렉션 만합니다 stdout. 그리고 stdout과 stderr을 네더로 제거하면 출력이 없습니다.
TC1

@ TC1 원칙적으로 프로그램은 / dev / tty를 다시 열고 출력을 인쇄 할 수 있습니다. 실제로 GUI 프로그램은 그렇게하지 않습니다.
Random832

@ Random832 글쎄, 원칙적으로 stderr을 / dev / dsp로 파이프하거나 여분의 lulz를 재생하는 것이 좋습니다 ... :) 그러나 이론 상으로는 실제로 수행 할 수 있습니다. 최소한 그 사람에게 무례한 이메일을 쓰십시오.
TC1

5
@ TC1 "2> & 1> / dev / null"은 stdout을 비트 버킷으로 리디렉션하지만 stderr는 리디렉션되지 않습니다. "> / dev / null 2> & 1"
William Pursell

9
당신은 또한 할 수 있습니다 : eclipse &> /dev/null. 즉 (bash는) 리디렉션 점에 모두 표준 입력과 표준 에러를 잡는다
워렌

12

명령 이름의 별명을 지정하고 추가 기능을 추가하여 원하는 것을 달성하는 bash 함수를 작성할 수 있습니다.

예를 들어 : gvim명령 행에서 (gui 텍스트 편집기) 를 시작한다고 가정 해 봅시다 .

다음과 같은 함수를 작성할 수 있습니다.

function gvim () {
    nohup gvim "$@" > /dev/null 2>&1 & disown
}

(이 기능을 귀하 .bashrc또는 .bash_aliases파일에 추가하여 항상로드하십시오)

설명:

  • 이것은 gvimbash 함수를 사용 하여 명령의 별명 을 지정합니다 gvim(따라서 gvimbash 프롬프트에서 입력 gvim하면 실제 gvim명령을 실행하는 대신 함수를 호출합니다. 함수는 실제 gvim명령 을 호출 하고 정규 인수를 수락합니다). 몇 가지 추가 기능 :

    • stdout 및 stderr을 리디렉션합니다 /dev/null(출력을 터미널로 억제)
    • &백그라운드에서 명령을 실행하는 데 사용 합니다 (쉘이 차단되지 않음)
    • disown쉘에서 백그라운드 작업을 제거하는 데 사용 합니다 (활성 작업 목록에 표시되지 않음).
    • nohup터미널에서 프로세스를 분리하는 데 사용 ( 프로세스를 종료하지 않고 쉘 세션을 종료하거나 터미널을 닫을 수 있음)

BTW, 나는이 @Misery에서 허용 대답보다 더 포괄적 인 솔루션입니다 생각
코리 골드버그

6

--help를 명령 스위치로 추가하고 "quiet"을 찾으면 출력이 억제되거나 GUI에서 실행됩니다. 스위치로 시작하거나 스크립트를 통해 스위치를 억제하는 방법을 찾으십시오.

개인적으로 cli에서 시작하여 해당 출력을 얻으므로 모든 GUI 응용 프로그램에 대해 가능한지 확실하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.