[Linux] Linux에서 작업하며 배운 몇 가지

CI/CD 구축 막바지

작년부터 Google 신(神)과 사내 Confluence를 등에 업고, CI/CD 구축 업무를 경험했다. 그러다보니 전문가는 아니지만 Jenkins 부터 Nexus, Ansible까지 이것저것 사용해 볼 수 있었다. 물론 내가 기술을 익히는 방법은 머리 보다는 몸으로(?) 느껴가며 배우는 스타일이라 배우는 속도가 느리다고 스스로 생각하고 있었다. 이것 때문에 요즘은 퇴근이 늦었는데, 오랜만에 일찍 집에 온 기념으로 Github Issue에 일기처럼 적어 놓았던 내용들을 정리한다.

Linux 에서 실행은 dot-slash

개발계 NGINX 설정과 운영계 NGINX 설정이 조금 달라, 이전에 SI 과제 PM으로 계셨고, 지금은 SDS클라우드 쪽으로 넘어가신 프로님께 연락드렸다. 바쁘실텐데도 메일 받으신 바로 다음날 아침, 화면 공유해서 하나씩 도와주면서 설명해주셨다.

nginx.conf 파일 편집은 모두 마쳤는데, nginx -t로 테스트만 해보려고 하면 command를 찾을 수 없다는 메시지가 계속 나타났다. 심지어 ps -ef | grep nginx 하면 정상적으로 돌고 있고, 시스템도 정상 운영되고 있고, 운영 담당자님께서도 active 상태로 running 하고 있다고 얘기를 해주시니 참 혼란하기 그지 없었다.

원인은 당연하게도, Nginx 환경변수가 잡혀있지 않았던게 이유였다. nginx 디렉토리 안 sbin에 nginx 실행파일이 있는데, 거기서 실행하면 정상적으로 실행된다는 것. 어떻게 nginx 까지는 잘 찾아들어갔는데, 여기서 파일을 실행하려고 하는 순간 잠깐 손이 멈췄다. shell은 sh, war 파일은 java -jar, … 그런데 그냥 실행 파일은 어떻게 하더라? 하는 생각이 들었다.

“어엇.. 리눅스에서 실행할 때는 쩜슬래시(./)를 붙이셔야 해요 (웃음)”

이렇게 또 몸이 하나를 기억하게 됐다. 그 후에 습관처럼 로그를 보라는 느낌으로 로그 파일 위치를 가르쳐 주셨다. 이전에 비슷한 일이 있었는데, 그 때는 로그 파일을 vim으로 열어보려고 했었다. 개발자님께서 tail -n 100 error.log로 보면 뒤부터 100줄을 편하게 볼 수 있고, 실시간으로 로그가 추가되면 알아서 스크롤이 올라간다고 말씀해주셨다.

이래서 과외를 받는구나, 라는 생각이 들었던 하루였다.

명령어의 출력이 너무 길 때

명령어의 출력 결과가 너무 길어서, 한 화면에 다 나오지 않을 때에는, 화면 출력을 한 페이지씩 짧게 나누어서 화면에 출력하는 명령어인 less 를 사용해 ls /usr/bin | less 같은 형태로 사용하면 된다.

이렇게 less (LESS 의 소문자) 명령을 뒤에 붙이면, 한 페이지씩 나누어서 읽기 쉽게 출력된다. 페이지 이동을 위해서는 PageUp / PageDown 키를 누르면 한 페이지씩 상하로 이동한다.

less 앞에 있는 | 이 기호는 백슬래쉬 기호(\) 위에 있는 파이프(|)로 키보드의 플러스(+)기호 우측에 위치한다. “ls /usr/bin” 명령의 출력을, | 이 기호를 사용하여, “less” 명령에 입력하는 것으로, 이런 것을 파이핑(Piping)이라고 한다.

유닉스에 less 명령이 없다면 이때는 more 명령을 대신 사용하면 된다. more 명령은 less 와 달리 화면을 아래 위로 이동하며 볼 수 없기에 조금 불편하게 느껴질 수 있으며, Enter키를 칠 때마다 한 줄씩 아래로 내려가고, 스페이스키를 누르면 한 페이지씩 내려가며 읽을 수 있다.

vi / vim 에서 되돌리기는 u

윈도우에서는 Ctrl + Z를 누르면 되돌리기가 된다. 이걸 리눅스 계열 편집기에서 쓰면 그대로 프로세스 종료가 된다. 운영계 nginx.conf 파일을 살펴보다가 실수로 } 괄호를 지운채 저장할 뻔 했다. 다행히 readonly 상태여서 'readonly' option is set (add ! to override) 가 나왔고, 습관적으로 Ctrl + Z를 누르려다가, 예전에 똑같은 일로 스크립트 락을 걸었던 기억을 떠올릴 수 있었다. 침착하게 검색해서, u (undo) 할 수 있었다.

그냥 :w!를 눌러서 넘기지 않도록 하자. 항상 의미없는 Warning은 없다고 생각하는 편이었는데, 그 습관 덕분에 실수를 줄일 수 있었던 건 아닐까 싶다.

Updated:

Leave a comment