Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

Linux Command

Linux Command

리눅스 사용하면서 썻던 명령어들을 정리하여두었습니다.

‘>’ 와 ‘»’

  • > : 명령어 뒤에 나오는 File에 Write or Overwrite
  • >> : 명령어 뒤에 나오는 파일에 추가할 때 사용 Append
globs

Glob Patterns로, 패턴 매칭 역할.

  • ?
    • 정확하게 한글자만 매칭
    • a,ab,ac,ad,abc,abcd 파일이 있다고 할 때 → ab,ac,ad 파일만 표현

      1
      2
      
        $ ls data/ma??.txt
        > data/main.txt, data/mail.txt ..
      
  • *
    • 문자열의 길이와 상관없이 어떤 문자열과 부합(공백 포함)
    • 특수 기호 = linux /, window \ 은 제외
    • a,ab,abc,abc.txt,abc.mp3 → 모든 파일을 다 찾을 수 있다.
    1
    
      $ ls a*
    
  • **
    • 0개 이상의 하위 Directory를 매칭시켜 검색
    • 하위 디렉토리 아래에서 특정 데이터를 찾고 싶은 경우
    1
    
      $ ls **/*.md
    
  • {}
    • 선택지를 모두 합쳐서 찾을 때
    1
    
      $ ls {*.md,*.MD}
    
grep

  • 특정 문자열을 찾을 때 사용
1
2
$ grep "abc" test.txt
$ echo 'test 123' > test.txt & cat test.txt | grep 12
curl

  • http를 활용하여 return 값 확인
  • -o = 명령 결과 저장
  • -s = silent
  • -L = Redirect Header를 무시
    1
    2
    3
    
    $ curl "www.google.com"
    $ curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url
    $ curl -o /tmp/launches.json -L url
    
cut

  • 파일, 입력 받은 문자열 split → indexing
  • -d = 지정 문자를 구분자로 사용
  • -f = 필드 기준으로 잘라내기
1
2
3
4
5
6
7
8
9
10
11
12
13
$ cat sed-example.txt
> 
unix is great os. unix is opensource. unix is free os.
learn operating system.
unix linux which one you choose.
unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.

$ cut -c 2-4 < sed-example.txt
> 
nix
ear
nix
nix
1
$ curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4
history

  • 과거 command 이력들을 보여준다.
  • tail 옵션을 주어 최근 N개까지 보여주기 가능
1
$ history | tail -5
wget

  • 파일 다운로드를 도와준다.
1
$ wget url
wget

NC


Netcat = nc로 TCP/UDP을 사용하여 서버 연결 확인 및 서버가 되어 확인 가능하다.

  • 서버에 연결여부 확인
    • nc [서버 IP] [대상 PORT]
    • nc -v [서버 IP] [PORT] = -v 옵션은 상세한 정보 요청
    • nc -zv [IP,URL] [PORT] = Connection 연결 없이 report

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
        $ nc ip port
        > 
        #성공
        대기상태
        #실패
        Ncat: No route to host.
              
        $ nc -v ip port
        > 
        #성공
        Ncat: Version x.xx
        Ncat: Connected to ip:port.
        #실패
        Ncat: No route to host.
              
        $ nc -zv ip port
      
  • 서버가 되어 연결 여부 확인
    • nc -l [PORT] = 서버 구성
    1
    2
    3
    4
    5
    
      # Server
      $ nc -l 30000
        
      $ Client
      $ nc ip port