Linux에서 wall 명령을 사용하는 방법

로그인한 모든 사용자에게 즉시 메시지를 전달해야 할 때, 리눅스의 `wall` 명령은 이메일보다 훨씬 효과적입니다. 로그인한 사용자를 자동으로 대상으로 지정하여 시스템 터미널을 사용하는 모든 사용자에게 메시지를 일괄적으로 보낼 수 있습니다.

`wall` 명령어

만약 컴퓨터에 접속한 사용자들에게 신속하게 메시지를 전달해야 한다면 어떻게 해야 할까요? 이메일은 이러한 요구 사항을 충족시키지 못합니다. 이메일은 언제 읽힐지 알 수 없으며, 당장 알려야 할 긴급한 정보가 있을 경우 적합하지 않습니다. 또한, 메시지를 볼 필요가 없는 로그아웃한 사용자의 받은 편지함에 불필요하게 메시지를 보내고 싶지 않을 수도 있습니다.

누가 어디에 로그인했는지 추가적인 노력과 시간 낭비 없이 확인하기란 쉽지 않습니다. 시스템이 워싱턴 주 애버딘에 있을 수 있지만, 원격 사용자는 스코틀랜드 애버딘에서 접속했을 수도 있습니다. 그렇다면 로그인한 특정 사용자에게 메시지를 어떻게 보낼 수 있을까요?

리눅스와 기타 유닉스 계열 운영 체제는 이를 위한 간편한 방법을 제공합니다. `wall` 명령어는 강력한 전보와 같습니다. 모든 터미널 사용자에게 메시지를 보내며, 메시지를 즉시 표시합니다. 사용자는 메시지를 놓칠 수 없으며, 메시지를 확실히 전달했음을 알 수 있습니다. 메시지를 확인하기 위해 별도의 애플리케이션을 열 필요도 없습니다.

메시지 전달은 마치 얼굴에 커스터드 파이를 던지는 것처럼 직접적이고 확실합니다.

메시지 전송 방법

본 문서에서 사용된 테스트 시스템은 페도라 리눅스에 설치되었지만, `wall` 명령어는 다른 배포판에서도 동일하게 작동합니다.

다만, 일부 리눅스 배포판에서는 텍스트 파일에서 메시지를 보낼 때 `sudo`를 사용해야 할 수 있는 반면, 다른 배포판에서는 `wall` 명령어 사용 시 항상 `sudo`가 필요할 수 있습니다. 이는 `wall` 명령어 자체의 작동 방식 차이라기보다는 리눅스 배포판 간의 차이입니다.

모든 사용자에게 메시지를 보내려면 `wall` 명령어를 입력한 후 공백을 두고 메시지를 입력하면 됩니다. 페도라 리눅스에서는 `sudo`를 사용해야 합니다.

sudo wall Main printer offline until further notice.

터미널 창이 열려 있는 모든 사용자에게 메시지가 전송됩니다.

로컬 사용자 Ria와 Tom, 그리고 우분투를 사용하는 원격 사용자 Dick 모두 메시지를 받습니다.

모두 동시에 메시지를 받으므로, 메시지를 확인했는지 여부에 대해 걱정할 필요가 없습니다.

파일에서 메시지 전송

텍스트 파일에 메시지를 미리 작성하여 저장한 후, 필요할 때 보낼 수 있습니다. 전송해야 할 메시지가 반복적으로 있을 경우, 미리 준비된 메시지 라이브러리를 만들면 매번 다시 입력하는 번거로움을 줄일 수 있습니다.

우리는 `message.txt`라는 텍스트 파일에 메시지를 저장하고, `cat` 명령어를 사용하여 터미널 창에 해당 메시지를 확인했습니다.

그 다음, 텍스트 파일 이름을 `wall` 명령어의 매개변수로 전달하여 메시지를 전송합니다.

cat message.txt
sudo wall message.txt

이전과 마찬가지로, 로컬 사용자 Ria와 Tom (그리고 터미널 창을 열어둔 모든 사용자)과 원격 사용자 Dick 모두 메시지를 받습니다.

메시지 사용 에티켓

`wall` 명령어는 메시지를 모든 터미널 사용자에게 강제로 전달하므로, 메시지를 받는 것이 불쾌한 경험이 될 수 있습니다. `wall` 명령어의 사용은 최소화하고 정말 필요한 경우에만 사용해야 합니다. 그렇지 않으면 매우 불편한 존재가 될 수 있습니다.

wall 메시지는 사용자 터미널 화면의 다른 모든 것 위에 표시됩니다. 화면 내용을 덮어쓰지는 않지만, 가려지기 때문에 사용자에게는 혼란스러울 수 있습니다.

예를 들어, `wall` 메시지가 전송될 때 한 사용자가 Vi 에디터에서 중요한 파일을 편집하고 있다고 가정해 봅시다.

메시지가 파일의 중간에 나타납니다.

파일의 정상적인 보기를 복원하려면 사용자가 파일을 조금 스크롤하면 됩니다.

화면을 복원하여 작업을 계속할 수 있게 하는 것은 간단하지만, 이러한 유형의 중단이 너무 많으면 사용자가 매우 불편함을 느낄 수 있습니다.

그러므로 `wall` 명령어는 신중하게 사용해야 합니다.

그래픽 데스크톱 사용자는 어떻게 되나요?

`wall` 명령어는 터미널이 열린 상태에서 로그인한 사용자에게는 메시지가 전달되지만, 터미널 창이 열려 있지 않은 그래픽 데스크톱 환경 사용자는 메시지를 받지 못합니다.

그래픽 데스크톱을 사용하면서 터미널 창을 열어둔 경우에는 해당 터미널 창에서 메시지를 볼 수 있지만, 그것이 전부입니다. 터미널 외부에 있는 사람에게 연락하기 위해 `wall` 명령어에 의존하지 마십시오.

`wall` 명령어가 전통적인 터미널 환경에서 메시지를 효과적으로 전달한다는 사실은 분명하며, 편리하게 활용할 수 있습니다.