본문 바로가기

소프트웨어 이야기/인프라

[리눅스/유닉스] 신입 소프트웨어 엔지니어에게 유용한 명령어

나에게 에버노트는 개발 비법 같은 존재이다 ㅎㅅㅎ 

내 에버노트가 사라진다면, 나 또한 사라질 것이다 ㅎㅅㅎ ...

오늘은 내 에버노트에서 꾸준히 찾아보는 한 게시물을 블로그로 옮겨볼까 한다.


오늘의 주제는 리눅스 / 유닉스 환경에서 유용한 명령어 정리이다.

나같은 리눅스 / 유닉스 환경을 1도 몰랐던... 신입 or 왕초보에게는 유용한 명령어이다 ㅎㅅㅎ 




  데이터 처리에 유용한 명령어 

1. CSV 파일 길이 보기 

wc -파일명.csv

일을 하다보면 데이터를 CSV 파일에 저장해서 사용하고는 한다. 특히, 운영성 업무에서는 데이터를 전달할 때 CSV 파일을 사용하고는 하는 데, 이때 내가 전달하는 데이터의 크기가 몇인지, 길이가 얼마나 되는지 궁금할 때가 있다.

이때 'wc -l 파일명' 명령어를 사용하면 손쉽게 파일 길이를 알 수 있다. (60만개, 300만개의 데이터가 담긴 CSV를 numbers로 켜서 데이터 크기를 확인하는 바보같은 + 답답한 행동을 할 때쯤이면 이 명령어가 절실히 필요하다.)


2. CSV 파일 분할하기

split -200 {파일명}.csv

지난 주에 유용하게 사용한 명령어이다. 이런 일이 있었다. 데이터를 추출했는데 데이터 크기가 300만건 정도가 되었다. 열심히 데이터를 추출해냈는데 데이터를 쪼개서 전달해달라는 추가적인 요청이 들어왔다. 순간... 데이터를 쪼개는 스크립트를 제플린에 짜야하는건가..? 고민했다. 그런데 생각해보니 그냥 분할하면 되는거였다! 

그래서 이 명령어를 찾아서, 야무지게 쪼개서 넘겨 드렸었다. 

용량이 큰 데이터를 분할해서 전달할 때에는 split 명령어를 사용하면 유용하다.


  로그 분석에 유용한 명령어 

1. 에러 로그만 찾아보기 + 에러 로그 위 아래로 쌓인 몇줄의 로그도 더 보기 

tail -100000 production.log  | grep "fail log issue" --before-context=2 --after-context=2 

일을 하다보면 서버에서 에러가 날 때가 있다. 테스트 단계에서 에러로그를 확인할 때나, 운영성 시스템의 에러로그를 확인할 때에는 서버에 직접 접속해서 에러로그를 확인한다.

이 때 위의 명령어를 사용한다. -10000은 아래에서 몇개까지의 라인을 볼지를 세는 것 같다. 

그리고 로그 파일명을 쓰고, grep 조건문을 줘서 원하는 에러로그를 찾는다. 이 때 쌍따옴표를 쓰면, 띄어쓰기되어있는 텍스트도 조회할 수 있다.

그리고 --before-context / --after-context 옵션을 주면 내가 찾고자 하는 에러로그 위 / 아래의 로그를 추가적으로 볼 수 있다. 


  기타

1. 터미널에서 보고 있는 현재 경로 확인하기

pwd


2. 폴더 만들기

mkdir


3. 파일 리스트 보기

ls


4. 파일 보기 / 수정하기

vi hello_ruby.rb


5. vi열어본 파일 닫기

q!


6. vi열어본 파일 저장 후 닫기

wq!


정리를 하는 것 조차 숙연해지는 기본적인 명령어이지만, 가장 자주 사용하는 명령어이기 때문에 정리해보았다. 파일을 삭제하는 명령어는 모르는게 약인거 같아서 얘는 위에 따로 쓰지 않았다. ㅎ_ㅎ ... 공포의 알엠 알에프... 



끝! 챡챡챡~~