자주쓰는 Shell Command 정리

PangDae·2021년 12월 29일
0
post-custom-banner

Shell Command 정리

기본 쉘커맨드

-man

  • 쉘 커맨드의 매뉴얼 문서를 보고 싶은 경우

  • man python

  • 종료:q 입력

-mkdir

  • 폴더를 생성하는 커멘드

  • mkdir linux-test

-ls

  • 현재 접근한 폴더의 폴더, 파일 확인

옵션

  • -a: .으로 시작하는 파일, 폴더를 포함해 전체 파일 출력
  • -l: 퍼미션, 소유자,만든 날짜, 용량까지 출력
  • -h: 용량을 사람이 읽기 쉽도록 GB,MB 등 표현. '-l'과 같이 사용

ls ~
ls
ls -al
ls -lh

-pwd

  • 현재 폴더 경로를 절대 경로로 보여줌

-cd

  • 폴더 변경하기, 폴더로 이동하기

-cd linux-test

-echo

-print 처럼 터미널에 텍스트를 출력

-echo "hi"

  • 빽틱을 사용하면 변수의 내용을 출력함

-echo pwd

-vi

  • vim 편집기로 파일 생성

  • vi vi-test.sh

  • ESC를 누른 후: wq(저장하고 나가기)

  • ESC를 누른후 wq!(강제로 저장하고 나오기)

  • ESC를 누른 후 q (그냥 나가기)

vi의 Mode

  • Command Mode
  • Insert Mode
  • Last Line Mode
Comand Mode
  • dd: 현재 위치한 한 줄 삭제
  • i: INSERT 모드로 변경
  • X: 커서가 위치한 곳의 글자 1개 삭제 (5x:문자 5개 삭제)
  • yy: 현재 줄을 복사(1줄을 ctrl+c)
  • p: 현재 커서가 있는 줄 바로 아래에 붙여넣기
  • k: 커서 위로
  • j: 커서 아래로
  • i: 커서 오른쪽으로
  • h: 커서 왼쪽으로
Insert Mode
  • 파일을 수정할 수 있는 Mode
Last Line Mode
  • ESC를 누른 후 콜론(:)DMF SNFMAUS SKDHSMS Mode

-bash

  • bash vi-test.sh

  • vi-test.sh가 bash로 실행됨

-sudo

  • 관리자 권한으로 실행하고 싶은 경우 커멘드 앞에 sudo를 붙임

  • sudo 명렁어: 최고 권한을 가진 슈퍼 유저로 프로그램을 실행

-cp

  • 파일 또는 폴더 복사하기

  • cp vi-test.sh vi-test2.sh

옵션

  • r: 디렉토리를 복사할 때 디렉토리 안에 파일이 있으면 recursive(재귀적으로) 모두 복사
  • f: 복사할 때 강제로 실행

-mv

  • 파일,폴더 이동하기(또는 이름 바꿀 때도 활용)

  • mv vi-test.sh vi-test3.sh

-cat

  • 특정 파일 내용을 출력

  • cat vi-test.sh

-history

  • 최근에 입력한 쉘 커멘드 History 출력

  • History 결과에서 느낌표를 붙이고 숫자 입력시 그 커멘드를 다시 활용할 수 있음

-find

  • 파일 및 디렉토리를 검색할 때 사용

  • find .-name "File": 현재 폴더에서 File이란 이름을 가지는 파일 및 디렉토리 검색

-export

  • export로 환경 변수 설정

  • export water="물"

  • echo $water

  • export 로 환경 변수를 설절한 경우, 터미널이 꺼지면 사라지게 됨.
    매번 쉘을 실행할 때마다 환경변수를 저장하고 싶으면 .bashrc, .zshrc에 저장하면 됨

  • vi ~/.bashrc 또는 ~/.zshrc

-alias

  • 터밀널에서 alias라고 치면 현재 별칭으로 설정된 것을 볼 수 있음

  • alias는 기본 명령어를 간단히 줄일 수 있는 것

그 밖에 Command

- head, tail

  • 파일의 앞이나 끝의 문장을 출력함

  • head -n 3 vi-test.sh

-sort

  • 행 단위 정렬

-r : 정렬을 내림차순으로 정렬
-n: Numeric SoRT

vi fruits.txt

banana
orange
apple
apple
arange
orange
apple
banana

cat fruits.txt |sort
cat fruits.txt |sort -r

-uniq

  • 중복된 행이 연속으로 있는 경우 중복 제거
    sort와 함께 사용

-c: 중복 행의 개수 출력

cat fruits.txt|uniq
cat fruits.txt|sort|uniq

cat fruits.txt|uniq|wc -l
cat fruits.txt|sort|uniq|wc -l

- grep

  • 파일에 주어진 패턴 목록과 매칭되는 라인 검색

  • i : Insensitively 하게, 대소문자 구분 없이 찾기

  • w : 정확히 그 단어만 찾기

  • v : 특정 패턴 제외한 결과 출력

  • E : 정규 표현식 사용

-cut

  • 파일에서 특정 필드 추출
  • f : 잘라낼 필드 지정
  • d : 필드를 구분하는 구분자. Default는 \t

Redirection & Pipe

Redirection

  • : 덮어쓰기 파일이 없으면 생성하고 저장

  • : 맨 아래에 추가하기

Pipe

  • Pipe:프로그램의 출력을 다른 프로그램의 입력으로 사용하고 싶은 경우
ls|grep "vi"> output.txt

grep "vi": 특정 단어 찾기

서버에서 자주 사용되는 쉘 커맨드

-ps

  • 현재 실행되고 있는 프로세스 출력하기
  • e: 모든 프로세스
  • f: Full Format으로 자세히 보여줌

- curl

  • Command Line 기반의 Data Transfer 커맨드
  • Request를 테스트할 수 있는 명렁어
  • 웹 서버를 작성한 후 요청이 제대로 실행되는지 확인할 수 있음
curl-X localhost:5000/{data}

curl 외에 httpie 등도 있음

-df

  • 현재 사용 중인 디스크 용량 확인

  • h: 사람이 일기 쉬운 형태로 출력

profile
개발이 하고싶습니다.
post-custom-banner

0개의 댓글