Shell 현명하게 사용하기

 

컴퓨터가 무언가 동작을 하기 위해서는 명령을 내려야 한다. 대부분은 그래픽으로 마우스를 움직이거나 (이 웹페이지를 보듯이요..!) 손가락으로 스크롤을 해서 보고는 한다. 그렇지만 서버와 같이 연산에 집중하는 경우 이러한 그래픽을 보여주기 보다는 쉘을 통해 명령을 내리게 된다. 영화나 만화에서 컴퓨터 검은화면에 키보드만 사용하는 것이 이러한 예시? 가 될 것이다. 실제로는 이러한 쉘 기반으로 명령을 내리는게 먼저였고, 이후에 마우스가 발명이 되면서 그래픽 기반의 운영체제가 접근성이 좋아지게 되었다.

Shell script

쉘에 내리는 명령을 자동화 한 것 (ToDo…)

bashrc?

Shell에 접속할 때, bashrc에 있는 내용은 시작할 때 실행이 되게 된다. 만약 시작하고 나서 무언가를 작업해야 하는 루틴이 있다면 여기에 작성을 해두면 이러한 내용을 번거롭게 입력할 수고를 덜 것이다. 예를 들어 alias ll='ls -al과 같은 약칭을 등록을 해야한다면 bashrc에 작성해두면 접속할 때 저 명령을 두 번 적을 필요는 없을 것이다.

일반적인 user의 bashrc는 ~/.bashrc에 있으며, global하게 적용을 하고 싶다면, sudo user의 권한으로 /etc/bash.bashrc를 수정하면 될 것이다.

Tmux

Tmux wiki

Tmux는 터미널 멀티플렉서로써, 하나의 터미널 창에서 동시에 여러 터미널 혹은 프로그램을 돌릴 수 있게 해주는 프로그램이다. 그렇지만 연구실에서는 “터미널이 종료된 이후에도 프로그램이 계속 실행” 해주는 목적으로 많이 활용된다. 기존의 프로그램의 경우 터미널이 종료된 경우, 거기에서 실행 중인 프로그램도 동시에 종료되었다. 특히 예상하지 못한 이유(windows update랄지…)로 종료된다면, 실험이 중단되는 문제가 생길 것이다. Tmux 위에서 이를 실행하게 된다면, 실행 중인 터미널과 별개로 프로그램이 계속해서 tmux server에서 돌아가며, 이러한 출력 결과도 별도로 살펴 볼 수 있는 장점이 존재한다. 반대로 하나의 터미널에서 돌린 결과를 다른 터미널로 옮겨도 유지되는 장점이 존재한다.

설치는 apt를 통해서 간단히 수행할 수 있다.

sudo apt install tmux

세션의 생성

Tmux에서 하나 혹은 그 이상의 창을 띄우는 모임을 세션이라 칭한다. 기본적인 프로그램의 실행은 이 세션 위에서 실행을 하게 될 것이다.

tmux new

이름을 지정하고 싶으면 아래와 같이 -s 옵션을 추가하면 된다.

tmux new -s <session_name>

기존 열린 세션에서의 이름의 수정은 Ctrl+b 그리고 $ 키를 통해 수정할 수 있다. Tmux에서 Ctrl+b는 대부분의 단축키의 시작이다.

세션에서 나가기

일반적으로 shell의 종료는 exit을 통해 할 수 있다. tmux도 마찬가지로 종료할 수 있다.

exit

만약 종료가 아니라 현재 창에서 나가고 싶다면 Ctrl+b, d 를 통해 나갈 수 있다.

기존 세션의 접속

현재 돌아가고 있는 세션이 얼마나 있는지 알고 싶다면 아래 명령어를 실행하면 된다.

tmux ls

열린 세션으로의 접속은 (번호로도 가능하다.)

tmux attach -t <session_name>

tmux 세션의 설정은 ~/.tmux.conf 에 저장하면 시작 시 불러오게 된다.

스크롤하기

터미널을 스크롤 하기 위해서는 Ctrl+b, [ 을 통해 할 수 있다.