본문 바로가기
Computer Science/OS

[OS and General Knowledge] Basic Terminal Commands - 1

by 강한수달 2021. 12. 16.

참고자료

- 사용중인 운영체제가 Window일 경우 아래 사이트에서 Linux 명령어 연습 가능

https://bellard.org/jslinux/vm.html?cpu=riscv64&url=fedora33-riscv.cfg&mem=256 

 

JSLinux

 

bellard.org

 

명령어 사용방법

grep [OPTIONS] [PATTERN] [FILE]

- 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어

 

    grep [OPTION...] PATTERN [FILE...]
        -E        : PATTERN을 확장 정규 표현식(Extended RegEx)으로 해석.
        -F        : PATTERN을 정규 표현식(RegEx)이 아닌 일반 문자열로 해석.
        -G        : PATTERN을 기본 정규 표현식(Basic RegEx)으로 해석.
        -P        : PATTERN을 Perl 정규 표현식(Perl RegEx)으로 해석.
        -e        : 매칭을 위한 PATTERN 전달.
        -f        : 파일에 기록된 내용을 PATTERN으로 사용.
        -i        : 대/소문자 무시.
        -v        : 매칭되는 PATTERN이 존재하지 않는 라인 선택.
        -w        : 단어(word) 단위로 매칭.
        -x        : 라인(line) 단위로 매칭.
        -z        : 라인을 newline(\n)이 아닌 NULL(\0)로 구분.
        -m        : 최대 검색 결과 갯수 제한.
        -b        : 패턴이 매치된 각 라인(-o 사용 시 문자열)의 바이트 옵셋 출력.
        -n        : 검색 결과 출력 라인 앞에 라인 번호 출력.
        -H        : 검색 결과 출력 라인 앞에 파일 이름 표시.
        -h        : 검색 결과 출력 시, 파일 이름 무시.
        -o        : 매치되는 문자열만 표시.
        -q        : 검색 결과 출력하지 않음.
        -a        : 바이너리 파일을 텍스트 파일처럼 처리.
        -I        : 바이너리 파일은 검사하지 않음.
        -d        : 디렉토리 처리 방식 지정. (read, recurse, skip)
        -D        : 장치 파일 처리 방식 지정. (read, skip)
        -r        : 하위 디렉토리 탐색.
        -R        : 심볼릭 링크를 따라가며 모든 하위 디렉토리 탐색.
        -L        : PATTERN이 존재하지 않는 파일 이름만 표시.
        -l        : 패턴이 존재하는 파일 이름만 표시.
        -c        : 파일 당 패턴이 일치하는 라인의 갯수 출력.

$ cat FILE.txt
grep searches for PATTERNS in each FILE.
PATTERNS is one or patterns separated by newline characters.
And grep prints each line that matches a pattern.
$ grep "PAT" FILE.txt
grep searches for PATTERNS in each FILE.
PATTERNS is one or patterns separated by newline characters.


grep 사용 예시

 

 

awk [OPTIONS] [awk program] [file]

- 공백 문자(space, tab)로 구분된 필드(Field)를 선택하고 값을 출력할 수 있는 명령어

- "awk programming language" 라는 프로그래밍 언어로 작성된 스크립트를 실행함

- 입력 데이터를 라인 단위의 레코드(Record)로 구분하고 공백 문자(Space, Tab)로 구분된 필드(Field)들로 분류함

    awk [OPTION...] [awk program] [ARGUMENT...]
      OPTION
        -F        : 필드 구분 문자 지정.
        -f        : awk program 파일 경로 지정.
        -v        : awk program에서 사용될 특정 variable값 지정.
      awk program
        -f 옵션이 사용되지 않은 경우, awk가 실행할 awk program 코드 지정.
      ARGUMENT
        입력 파일 지정 또는 variable 값 지정.

awk Recode, Field 구조

 


$ cat file.txt
1 otters  30 40 50
2 mighty 60 70 80
3 wan9s  90 10 20
$ awk '{ print $1$2, $3}' ./file.txt                // 첫번째($1), 두번째($2), 세번째($3) 필드의 값을 출력함
otters  30
2 mighty 60
wan9s  90


 

 

sed [OPTIONS] [SCRIPT] [FILE]

입력으로 전달된 파일의 내용에서 특정 문자열을 변경할 때 사용하는 명령어

 


$ cat otterhome.txt

Otter A here

Otter B here

Lion A here

Otter C here

Lion B here

$ sed '/Lion/d' otterhome.txt | cat -n           // Lion 이 포함된 행 삭제

Otter A here

Otter B here

Otter C here


 

 

curl [OPTIONS] [URL]

- 서버에 데이터 전송을 위해 사용하는 라이브러리이다

- http, https, ftp, sftps, smtp, telnet 등의 프로토콜 및 Proxy, Header, Cookie 등의 세부 옵션을 지정할 수 있음

 

    awk [OPTION...] [awk program] [ARGUMENT...]
      OPTION
        -F        : 필드 구분 문자 지정.
        -f        : awk program 파일 경로 지정.
        -v        : awk program에서 사용될 특정 variable값 지정.
      awk program
        -f 옵션이 사용되지 않은 경우, awk가 실행할 awk program 코드 지정.
      ARGUMENT
        입력 파일 지정 또는 variable 값 지정.
        
        
    curl [OPTIONS] <url>
      OPTION
        -A        : 헤더의 User-Agent 지정
        -H        : HTTP Header 지정
        -O        : 서버에 올라간 파일을 다운로드
        -d        : HTTP POST data 지정
        -L        : 지정한 URL 접속 시 해당 URL의 리다이렉트까지 접속
        -T <file> : 지정한 URL 에 <file> 을 업로드
      URL
        접속하려는 사이트의 URL

$ curl -T file.txt http://example.com             // file.txt 를 example.com 에 업로드


$ curl -v - A "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.3 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" http://example.com            // User-Agent 를 Mozilla/5.0으로 변경해서 URL로 Reqeust

                                                         // 사용자의 웹 브라우저와 무관하게 User-Agent 변경 가능

> GET / HTTP/1.1
> Host: 193.122.101.209
> User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.3 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36
> Accept: */*




 

참조

https://kibua20.tistory.com/148

리눅스 grep 명령어 사용법. (Linux grep command) - 리눅스 문자열 검색 :: 개발자를 위한 레시피 (tistory.com)

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=int_s&logNo=220483567708

 

댓글