티스토리 뷰

블로깅을 하다보면 주로 제가 사용하다 불편한 것들을 위주로 하게 되는데,

이번 포스팅도 이런 실전형(?) 블로깅 이네요 ㅋㅋ


win-sshfs 관련 포스팅에서도 언급했듯이,

저희 연구실에서는 리눅스 워크스테이션을 사용하고 있습니다.

그런데 다른 워크스테이션에서는 원격 터미널이 정상적으로 동작하는데,

이상하게 우분투 서버를 사용하고 있는 워크스테이션에서 이상한 문제가 발생했습니다.



리눅스 쉘에서는 기존에 입력했던 명령어들을 키보드 윗 방향키를 눌렀을 때, 기존에 입력했던 명령어를 기억하여 로드해준 다던가

자동 완성 기능으로 Tab키를 눌렀을 때 명령어를 완성시켜 주는데, 그런 기본적인 기능들이 안되는 것이었습니다.


저는 원격 클라이언트인 putty의 문제일거라 생각하고 이리저리 찾아보았지만 도무지 방법을 찾을 수 없었습니다.

헌데 구글링 중 우분투 포럼에서 다음과 같은 글을 발견했습니다.


제목: Arrow keys in terminal: [[A^[[B^[[D^[[C


!!!

바로 제가 겪고 있는 문제와 같은 현상이죠. 화살표가 저렇게 표시되는..

내용을 보니 기본 쉘 설정의 문제였습니다.


일반적으로 리눅스 계열의 운영체제에서는 bash shell을 사용합니다.

shell은 운영체제 위에 돌아가는 운영체제와 대화할 수 있게 해주는 프로그램 이라고 생각하시면 될 것 같습니다.

쉘의 종류는 여러가지가 있으며 자신이 사용하고 있는 쉘은 환경변수를 통해 확인이 가능하며 다음과 같은 명령어를 치면 됩니다.

echo $SHELL


확인해 보니 저는 리눅스 기본 쉘 (/bin/sh) 로 설정이 되어 있었습니다.

이 쉘에서는 방향키 지원을 하지 않는다고 합니다.

혹은 /etc/passwd 파일을 통해서도 사용중인 쉘을 확인할 수 있습니다. 다음과 같이 되어 있네요.

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/bin/sh

bin:x:2:2:bin:/bin:/bin/sh

sys:x:3:3:sys:/dev:/bin/sh

sync:x:4:65534:sync:/bin:/bin/sync

...
bywords:x:...:.....:.....:/bin/sh
...

첫 번째 필드가 아이디, 마지막 필드가 기본 쉘의 path 입니다.


기본 쉘의 수정은 다음의 명령어를 통해 가능합니다. 혹은 /etc/passwd파일에 직접 수정도 가능하나, 관리자 권한이 필요하기 때문에 다음의 명령어를 사용하길 추천드립니다.

$ chsh


chsh를 입력하면 압호 입력을 하게 되고, 가능한 쉘의 리스트들 중 하나를 선택하시면 됩니다. 

bash쉘을 선택하기 위해서는 /bin/bash 를 입력하시면 됩니다.

쉘 수정을 하였더니 정상적으로 작동합니다!

아마 서버 관리자가 처음에 제 계정을 추가할 때, 설정을 잘못 해주었나 봅니다.ㅎㅎ



댓글