[Linux] 터미널 명령어 정리 (3) - 텍스트 & 기타

조희우·2022년 10월 19일

리눅스

목록 보기
3/3
post-thumbnail

📝 서문

역시 CLI.. 명령어 너무 많아요..

📗 텍스트 명령어

📋 cat (concatenate)

텍스트 파일의 내용을 표준 출력하는 명령어이다.
리다이렉선션*(redirection) 기호로 파일을 생성하거나 병합할 수 있다.
$ cat [option] [filename(s)]

주요 옵션

옵션의미
-b텍스트 파일 출력 시 행 번호 부착 (공백줄 제외)
-n텍스트 파일 출력 시 행 번호 부착 (공백줄 포함)
-E각 라인의 맨 끝에 개행문자 $를 출력
-T탭 문자를 ^│ 로 표시하여 출력
-v인쇄 불가능한 문자를 식별하여 출력
-A일반적으로 출력되지 않는 문자 출력(-vET 옵션 통합)
-s인접한 여러 공백 줄을 하나의 공백줄로 출력
[사용예시]
$ cat
 -> 표준 입력을 표준 출력으로 출력
 	키보드에 내용을 입력 후 enter를 누르면
    그대로 모니터로 출력한다.
    CTRL + C로 종료한다.
    
$ cat > a.txt
 -> 입력받은 내용을 a.txt에 저장한다.
 	입력 후 CTRL + D를 누르면 a.txt에 저장된다.
    
$ cat < a.txt || $ cat a.txt
 -> a.txt의 내용을 출력한다.
 
$ cat < a.txt > b.txt (= $ cp a.txt b.txt)**
 -> a.txt의 내용을 b.txt라는 파일에 출력한다.

$ cat a.txt b.txt
 -> a.txt와 b.txt의 내용을 화면에 출력한다.
 
$ cat a.txt b.txt > c.txt
 -> a.txt와 b.txt의 내용을 c.txt에 병합하여 저장한다. 

*리다이렉션(redirection)
입출력의 방향을 바꾸는 역할을 한다.

기호사용법
>출력 전환 (모니터 -> 파일이나 기타장치)
>>특수 출력 (파일 저장 시 뒷부분 추가)
<입력 전환 (키보드 -> 파일이나 기타장치)
<<특수 입력 (제시된 문자열이 입력될 때까지 대기하였다가 한 번에 출력)

** cp 사용법 : [Linux] 터미널 명령어 정리 (2) - 디렉토리 & 파일

📋 head

텍스트 파일의 첫 부분을 보여주는 명령어이다.
기본 옵션 : 10줄
$ head [option] filname(s)

주요 옵션

  • -n 행수
    파일의 앞 부분에서 지정된 행수만큼 출력한다.
  • -c n
    n 바이트까지 출력한다.
    byte 단위가 KB나 MB일 경우 k나 m을 사용한다.
  • -q
    여러개의 파일이 처리 될 때 파일 이름 헤더를 출력하지 않는다.
[사용예시]
$ head -3 *.c
$ head -q *.txt

📋 tail

텍스트 파일의 끝부분을 보여주는 명령어이다.
기본 옵션 : 10줄
$ tail [option] filename(s)

주요 옵션

  • -n 행수
    파일의 뒷 부분에서 지정된 수만큼 출력한다.
    • c n
      마지막 n 바이트만 출력한다.
      byte 단위가 KB나 MB일 경우 k나 m을 사용한다.
  • -f (--follow)
    특정 파일의 끝부분에 새로운 행이 추가될 경우 실시간으로 출력한다.
    로그 파일을 모니터링할 때 주로 사용한다.
  • -q
    여러 개의 파일이 처리될 때 파일 이름 헤더를 출력하지 않는다.
[사용예시]
$ tail /etc/password
$ tail -f /var/log/messages

📋 more

텍스트 파일의 내용이 긴 경우 화면 단위(page)로 출력한다.
$ more [option] filename

주요 옵션

  • -d
    잘못된 명령어를 눌렀을 때 도움말을 띄워준다.
  • -f
    개행문자(엔터) 기준으로 화면을 출력한다.
  • -num
    한 페이지를 num의 줄 수로 지정한다. (num 줄 수 씩 출력)
  • +num
    지정한 num 줄 이후 출력한다.
  • +/string
    해당 값(string)이 있는 화면부터 출력한다.

more 상태에서 사용하는 명령어

명령키의미
[h]more에 대한 도움말(help)
[Enter]다음 줄
[space], [z]다음 페이지
[d], [CTRL]+[d]다음 반 페이지
[b], [CTRL]+[b]이전 페이지(back)
[f]한 페이지 skip 후 다음 페이지(forward)
[CTRL]+[l]화면을 다시 출력
=현재 줄 번호 출력
:f현재 파일명과 줄 번호 출력
!다른 명령을 입력 할 수 있는 상태로 전환
vi현재 화면에서 vi 편집창으로 전환
/pattern현재 파일에서 지정한 패턴(pattern) 검색
[q] 혹은 [Q]more 명령어 종료(quit)
[사용예시]
$ more /etc/password
$ more -20 /etc/passwd
$ ls -l /etc |more

📋 less

more과 비슷하게 한 화면씩 출력한다.
커서키를 이용하여 상하좌우 이동이 가능하고 vi에서 사용하는 명령어를 사용할 수 있다.
$ less [option] filename

주요 옵션

  • -?
    less에서 사용하는 명령어에 대한 도움말 출력한다.
  • -c
    화면에 출력 전 화면을 정리하여 맨 처음에 위치하도록 한다.
  • -s
    인접한 여러 공백 줄을 하나의 공백 줄로 처리한다.
  • -e
    less 실행 시 맨 끝에 도달할 경우 [Enter]나 [Space]를 누르면 자동으로 화면을 종료한다.
  • -N
    줄 번호를 표시한다.
  • +행번호
    지정한 행 번호부터 출력한다.

less 상태에서 사용하는 명령어

명령키의미
[h]less에 대한 도움말(help)
[Enter], [e]다음 줄
[space], [z]다음 페이지
[d], [CTRL]+[d]다음 반 페이지
[y]이전 줄
[u], [CTRL]+[u]이전 반 페이지
[SPACE], [f], [CTRL]+[f]한 페이지 skip 후 다음 페이지(forward)
/pattern현재 파일에서 지정한 패턴(pattern) 아래 방향으로 검색
?pattern현재 파일에서 지정한 패턴(pattern)으로 위 방향으로 검색
[n]검색 시 정방향으로 다음 문자열을 찾아 화면의 맨 첫 줄로 위치
[N]검색 시 역방향으로 다음 문자열을 찾아 화면의 맨 첫 줄로 위치
[q] 혹은 [Q]more 명령어 종료(quit)
[사용예시]
$ less /etc/passwd
$ less -N /etc/passwd

📋 grep (Global Regular Expression Print)

텍스트 파일에서 특정 패턴(pattern, 문자열)을 갖는 줄을 찾아서 출력한다.
$ grep [option] pattern file(s)

주요 옵션
* 방대한 양의 옵션이 있기에 일부만 정리하였다.

옵션의미
-c (--count)일치하는 패턴이 있는 줄의 개수를 출력한다.
-h여러 개의 파일을 검색 시 출력하는 파일의 이름이 붙는 것을 방지한다.
-n일치하는 패턴이 있는 줄의 번호와 내용을 출력한다.
-w패턴과 한 단어로 일치해야 출력한다.
-x패턴과 한 줄로 일치해야 출력한다.
[사용예시]
$ grep linux *
$ grep -c linux *
$ grep -h linux *
$ grep "[0-9]" readme

📋 wc (word count)

텍스트 파일의 행(line) 수, 단어(word) 수, 문자(byte) 수를 출력한다.
$ wc [option] file

주요 옵션

  • -l (--lines)
    행 수만 출력한다.
  • -w (--words)
    단어 수만 출력한다.
  • -c (--bytes)
    문자 수만 출력한다.
  • -L (--max-line-length)
    가장 긴 라인의 길이를 출력한다.
[사용예시]
$ wc readme
$ who | wc -l

who 명령어 : 접속자 수 확인

📋 sort

텍스트 파일의 내용을 행 단위로 정렬한다.
공백, 숫자, 특수문자, 대문자, 소문자 순으로 출력한다.
숫자 : 숫자 형태의 문자로 취급
특수 문자 : ASCII 코드값 순
$ sort [option] file

주요 옵션
* 방대한 양의 옵션이 있기에 일부만 정리하였다.

  • -b
    선행하는 공백문자 무시한다.(공백라인은 제외)
  • -d (--dictionary-order)
    공백과 알파벳, 숫자만으로 정렬한다.
  • -f (--ignore-case)
    대소문자를 무시한다.
  • -r
    정렬 순서를 반대로하여 내림차순으로 정렬한다.
    소문자, 대문자, 특수 문자, 숫자, 공백
  • -o
    정렬한 결과를 파일명으로 저장한다.
  • -n
    숫자를 문자가 아닌 숫자값으로 비교하여 정렬한다.
  • -u (--unique)
    중복되는 줄을 무시한다.
  • -t
    필드의 구분자를 지정할 때 사용한다.
    기본 구분자 : 공백
[사용예시]
$ sort jalin.txt
$ sort -r -o jalin_rev.txt jalin.txt
$ sort -t: -n -k3 /etc/passwd

📋 cut

데이터의 열(column)을 추출할 때 사용한다.
추출하는 데이터 : 글자(character), 바이트(byte), 행(row, field)
$ cut [option] file

주요 옵션

  • -c (--character)
    문자 수를 기준으로 추출한다.
  • -f (--field)
    파일의 필드를 기준으로 추출한다.
  • -d (--deliometer)
    필드의 구분자를 지정한다.
    기본 구분자 : tab
[사용예시]
$ cut -c 1-10 /etc/passwd
$ cut -f 1,3 -d: /etc/passwd

📋 split

하나의 파일을 여러 개의 파일로 분리한다.

  • 별도의 옵션을 지정하지 않으면 1000줄 단위로 파일을 구분한다.
  • 별도의 파일 명을 지정하지 않으면 분리되어 생성되는 파일명은 xaa, xab, xac등 x+알파벳으로 생성된다.
  • 옵션을 지정할 경우 파일명+알파벳으로 생성된다.
    $ split [option] file [file_name]

주요 옵션

  • -b value (--bytes=value)
    파일을 주어진 value 만큼 바이트 크기로 분리한다.
    K, M등의 단위를 붙혀서 사용할 수 있다.
  • -l value (--lines=value, -value)
    파일을 주어진 값의 줄(line) 크기로 분리한다.
[사용예시]
$ split -l 30 /etc/passwd
  => $ split -30 /etc/passwd
$ split -b 1M /tmp/data data

📋 tr

텍스트 파일 안의 임의의 문자(열)을 변경하거나 제거할 떄 사용한다.

  • 원본 파일은 변경되지 않는다.
  • 명령어로 사용할 경우 리다이렉션 기호 중 '<'기호를 이용한다.
    $ tr [option] 문자1 문자2 < 파일명
       -> 파일의 문자1을 문자2로 변경한다.
    $ tr option 문자 < 파일명
      -> 파일의 문자를 조건에 맞춰 변경한다.

주요 옵션

  • -d (--delete)
    주어진 문자를 삭제한다.
  • -s (--sqeeze-repeats)
    문자가 중복일 경우 하나만 남기고 모두 삭제한다.
[사용예시]
$ tr o i < tr.txt
$ tr -s 'o' < tr.txt
$ tr '[a-z]' '[A-Z]' < tr.txt
$ tr -d 'o' < tr.txt

📘 기타 명령어

📋 cal (calender)

달력을 출력하는 명령이다.
$ cal [option] [[month] year]

주요 옵션

  • -1
    현재 속한 달의 달력을 출력한다. (디폴트 옵션)
  • -j
    1월 1일부터 날짜수를 계산하여 출력한다.
  • -y
    올해의 달력을 출력한다.
[사용예시]
$ cal
$ cal -j
$ cal 2022 

📋 date

시스템의 날짜 및 시간을 출력하거나 변경한다.
# date [option] [+FORMAT]
# date [option] [MMDDhhmm[[CC]YY][.ss]]

MM : 월 (01~12)
DD : 일 (01~31)
hh : 시 (00~23)
mm : 분 (00~59)
CC : 연도의 앞 두자리
YY : 연도의 뒤 두자리
.ss : 초 (00~59)

주요 옵션

  • -s (--set)
    일반적으로 사용하는 다양한 날짜 및 시간 형식을 지원한다.
    ("CCYY-MM-DD hh:mm:ss", "hh:mm:ss", "hhmm")
  • -u (--utc, --universal)
    UTC (Universal Time Coordinated) 시간을 출력한다.
  • -d (--date)
    지정한 날짜 관련 문자열에 해당하는 정보를 출력한다.
[사용예시]
$ date
# date 1222210511
# date -s 06:40:20
$ date -u

FORMAT 포스팅은 생략한다. (추후 포스팅 예정)

📋 uname

시스템 정보를 출력한다.
커널 버전, 머신 타입(하드웨어 타입) 등을 알 수 있다.
$ uname [option]

주요 옵션

  • -s (--kernel-name)
    커널의 이름을 출력한다. (디폴트 옵션)
  • -m (--machine)
    하드웨어의 타입을 출력한다. (arch 명령어와 동일)
  • -n (--nodename)
    시스템에 설정된 이름을 출력한다. (기본적으로 호스트명 출력)
  • -r (--kernel-release)
    커널 릴리즈 정보를 출력한다. (커널 버전 확인 가능)
  • -v (--kernel-version)
    커널 버전을 출력한다. (최근 배포판에서는 날짜 관련 정보 출력)
  • -p
    프로세서 정보를 출력하거나 "unknown"을 출력한다.
  • -i (--hardware-platfrom)
    하드웨어 플랫폼 정보를 출력한다.
  • -o (--operatin-system)
    운영체제 정보를 출력한다.
  • -a (--all)
    위에 열거된 모든 정보를 출력한다.
[사용예시]
$ uname -a
Linux www 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 6NU/Linu

📚 결문

GUI의 발전은 4차 산업 혁명 시대의 도래를 앞당겼다.

profile
인생은 짧고... 열심히 해라

0개의 댓글