티스토리 뷰

유닉스는 1969년 처음 발표되어 리눅스로 계승되면서 현재까지 활발하게 사용되고 있다. 윈도우를 사용하는 많은 사용자들에게는 조금 낯설 수 있으나 전문영역에서는 가장 안정적인 시스템으로 여겨지고 있다. 오랜 역사를 가진 만큼 많은 유닉스 명령어도 오랜 시간 '살아남은' 것들이다. 다시말해 사용자들에 의해 그 필요성과 유용성이 철저히 검증되었다고 할 수 있다. 실제로 이들은 하나 하나가 모두 작은 프로그램이다. 하지만 모든 유닉스/리눅스 계열 시스템에 기본으로 장착되어 있어 마치 자체 명령어처럼 느껴지는 것들이다. 이중에 많이 사용하는 것들을 소개한다.


1. cat, head, tail, less, more

텍스트 파일을 열어보고 싶을때 사용한다. 유닉스/리눅스의 기본 파일 시스템은 텍스트 파일로서 데이터나 프로그램 코드를 볼때 이들을 이용할 수 있다. cat은 파일 전체를 화면에 출력해 준다. head는 파일의 첫 10 줄, tail 은 마지막 10줄을 보여준다. less 와 more은 파일을 한 페이지씩 보여주기 때문에 큰 용량의 파일을 위에서부터 조금씩 볼 때 유용하다. less와 more은 매우 유사한데 메모리의 사용 방법이 다를 뿐이다. 


2. grep

파일안에 특정 문자열이 존재하는지 확인할 때 사용한다. 예를들어 파일안에 "bacteria"라는 문자열이 포함되었는지 보고 싶다면 아래와 같이 사용한다.

grep bacteria filename.txt

  

3. cut

데이터 파일이 테이블 형태로 되어 있을 때, 특정 열(culumn)을 보고 싶다면 cut을 이용한다. 기본은 탭으로 나누어져 있을 때지만 스페이스나 콤마도 사용가능하다. 예를들어 (탭으로 나누어져 있는경우) 두번째 열만 보고 싶다면 아래와 같이 사용한다.

cut -f2 filename.txt 

만약 탭이 아닌 다른 방법으로 나누어져 있다면 -d 를 이용해 지정할 수 있다. 예를들어 콤마를 이용해 나누어져 있다면(예를들어 csv) 아래와 같이 사용한다.

cut -d ',' -f2 filename.txt


4. sed

파일안의 내용중에 특정 문자열을 다른 문자열로 바꿀때 사용한다. 예를들어 파일안에 모든 스페이스를 콤마로 바꾸고 싶다면 아래와 같이 사용한다.

sed s/" "/","/g filename.txt > output_filename.txt


5. tr

윈도우와 유닉스/리눅스에서는 서로 다른 '줄바꿈'을 사용한다. 눈에는 보이지 않지만 각 줄의 마지막에는 return carriage 라는 특적 기호가 들어가는데, 키보드에서 "enter" 또는 "return"키에 해당한다. 윈도우(도스)에서는 '\15' 를 사용하고 유닉스/도스 에서는 '\n'을 사용한다. 윈도우의 노트패드나 엑셀에서 만든 tsv,txt,csv파일이 유닉스/리눅스에서 제대로 보이지 않는 이유가 이것이다. 이때 tr 을 이용해 '\15'를 '\n'으로 바꾸어 준다.

tr '\15' '\n' < filename.txt > output_filename.txt


6. >, <

이미 이 포스트의 예제에서 사용된 '부등호'는 유닉스/리눅스에서 입력파일 또는 결과파일로 사용하기에 편리하다. 예를들어 > 부호는 화면에 출력되는 모든 내용을 파일로 저장한다. 따라서 흔히 output_file로 이용된다. 반대로 < 부호는 프로그램에 입력 파일로 사용되게 된다. 


7. | 

키보드에서 잘 사용하지 않는 부호라 어디에 있는지 생소할 수 있는데, 백슬래시(\)의 위쪽(shift)에 있다. '파이프'라고 부르는 이것은 유닉스/리눅스를 강력하게 만드는데 모두가 고개를 끄덕일 수 있게 해주는 이유 중 하나이다. 이 부호는 이전 프로그램의 결과를 다음 프로그램으로 넘겨주는 역할을 한다. 예를들어 cat으로 파일을 열고, sort로 그 내용을 정열하고, uniq로 반복되는 내용을 지우고 싶다고 하자. 그러면 총 3개의 프로그램을 실행해야 하고, 각 단계에서 중간 파일을 만드는 것이 복잡할 수 있다. 하지만 파이프를 사용하면 중간 파일없이 세개의 프로그램을 한꺼번에 돌릴 수 있다. 아래와 같이 사용한다. 

cat filename.txt | sort | uniq


8. wc

wc는 word-count의 약자로 파일안에 몇줄이 있는지, 몇개의 단어가 있는지 세어준다. 결과 파일은 줄수, 단어수, 문자수 이다.

wc filename.txt


9. tac

만약 파일을 위에서 아래로 뒤집고 싶다면 cat의 반대인 tac을 사용한다. 파일의 맨 아래부터 순차적으로 화면에 출력해 준다. 이것을 > 부호를 사용하여 저장하면 파일을 뒤집을 수 있다.

tac filename.txt > output_filename.txt



차례

1. 터미널 설치하기

2. 기본 명령어 익히기


도움이 되셨다면

공감 눌러주세요 ^.^ 


신고
댓글
댓글쓰기 폼
공지사항
Total
8,556
Today
1
Yesterday
74
링크
«   2017/10   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
글 보관함