OS/Linux

bash shell 명령어 정리

tpcable 2021. 3. 7. 05:50

ctrl + a

- 라인 맨 앞으로 커서 이동

ctrl + e

- 라인 맨 끝으로 커서 이동

ctrl + r

- history 검색, ctrl + r 을 통해 이전 항목으로 돌아감.

 

ls -alt

- 파일 목록을 시간 순으로 정렬

- r 옵션은 역순

ls -1

- 파일 목록을 하나의 열로 나열

 

df -T

- 디스크 타입 출력

 

stat [파일명]

- 파일 정보 출력 

 

cp -rfp

- r: recursive
- f: force 동일 파일이 있더라도 덮어 씌우는 옵션
- p: permission 권한을 그대로 복사

 

rename

- rename [변경전 파일명] [변경후 파일명] [대상파일]

- rename test test0 test?

 

paste

- 파일을 행으로 읽어 병합

- paste [파일1] [파일1]

[root@vm tmp]# paste text1 text2
a 1
b 2
c 3

 

dd

- 랜덤 데이터로 파일을 생성해 드라이브 성능 측정 (덤프 파일 생성)

- dd if=/dev/urandom of=[output파일] bs=[바이트] count=[블럭 복사 횟수]

- urandom 랜덤 문자를 생성하는 장치 파일

 

ps -ef

- 프로세스 확인

  • -e 시스템에서 실행 중인 모든 프로세스 정보 출력
  • -f 프로세스의 자세한 정보 출력
  • -p pid로 지정한 특정 프로세스 정보 출력 

ps aux

- 프로세스 확인 및 CPU, MEM 사용률 확인

  • -a 터미널에서 실행한 프로세스 정보 출력
  • -u 프로세스 소유자이름 CPU, MEM 등 상세출력
  • -x 시스템에서 실행 중인 모든 프로세스 정보 출력

ps afxwww

- w를 많이 쓸 수록 출력 내용을 많이 볼 수 있음

 

pgrep

- 지정한 패턴과 일치하는 프로세스를 찾음

  • -x: 정확히 일치
  • -u: 사용자
  • -p: PID
  • -l: PID와 프로세스 이름 출력

pgrep -l nginx

pgrep -a nginx

ps afxwwwww | grep nginx

ps -fp $(pgrep -x bash)

 

top

- 프로세스의 목록을 일정 시간마다 새로고침, k를 누르면 많이 사용중인 프로세스를 확인가능

  • top - 현재 시간
  • up  시스템이 up된 시간
  • load average: 서버에 걸리는 부하의 평균값, 부하는 CPU가 처리하지 못하고 대기하고 있는 프로세스의 평균 숫자 높을 서버가 느려질 가능성이 높다. 1분 평균 | 5분 평균 | 10분 평균
  • user 몇 명이 접속 중인지
  • tasks 현재 가동중인 프로세스
  • running CPU 가 실행중인 프로세스
  • %CPU CPU에 대한 통계, 숫자 1을 누르면 코어별로 확인가능

 

nohup

- 쉘 스크립트 파일을 데몬 형태로 실행

- 표준 출력을 지정한 파일로 리다이렉트

 

주요 시그널

  • SIGINT: -2 인터럽트 ctrl +c
  • SIGKILL: -9 프로세스 강제종료
  • SIGTERM: -15 일반적인 프로세스 종료

 

netstat -nltpu / ss

- 오픈중인 포트와 프로그램을 확인 

  • n: ip 나 포트 번호로 표현
  • l: listening 상태
  • t: tcp
  • p: 프로그램 이름 출력
  • u: udp

 

netstat -tanu / ss

- 현재 네트워크 상태 전체를 확인

- ESTABLISHED: 현재 사용중

 

iptables -nL / firewalld  동일한 기능

  • n: ip 나 포트 번호로 표현
  • L: list- Chin INPUT: inbound rule

- Chain FORWARD: 서버를 경유해서 통과

- Chain OUTPUT: outbound rule

 

 

curl -Lkso /dev/null -w "%{http_code}\n" 접속URL

  • L: 리다이렉트 페이지로
  • k: https의 인증 무시
  • s: curl 통계값 무시
  • o: output 파일 지정
  • -w: output format 설정

 

grep 옵션 문자열 파일명

- grep error /var/log/messages

  • i: ignore
  • r: 하위 디렉터리 까지
  • -v: grep 제외 (ps -ef | grep nfs | grep -cv grep)
  • -c: 문자열 카운트 옵션
  • |wc -l

 

redirection

- echo abc >| test  쉘 스크립트 내부에서 없는 파일을 생성 할 때 사용

 

w 및 who

- 현재 시스템에 로그인한 사용자 출력

- w를 누르면 더 상세히 확인 가능

 

date

- 특정 시점의 날짜와 시간을 지정 가능 "day / week / month / hour / minute / second"

과거시점: date -d '-1 day' 

미래시점: date -d '3 day' 

(date '+%Y-%m-%d %H:%M:%S' 와 같이 형식 변경)

(date '+%Y%m%d')

 

seq

- 지정한 규칙으로 숫자열 출력(문자는 오류)

(seq 0 10)

  • -w 옵션을 통해 가장 큰 숫자에 맞춰 0을 채워줌 seq -w 0 10
  • -f %02g 1 5

 

watch -n 초 명령어

- n 초 만큼 명령어를 재실행

- watch -n 2 uptime

 

timeout Ns 명령어

- n 초 뒤 명령어 종료 

 

crontab

  • -e: 파일 생성 및 수정
  • -l: 작업 목록 확인
  • -r: crontab 에 등록된 일정을 모두 삭제
  • /var/spool/cron 에 작업 정보 저장

AND 조건

A && B

A: 참/거짓을 판단하는 조건/명령

B: A가 참일 경우 실행 할 명령

  • 하나라도 거짓이면 전체가 거짓
  • 좌측 결과가 참이면 우측 명령 실행, 좌측 결과가 거짓이면 우측 실행 x

 

OR 조건

A || B

A: 참일 경우 B실행 x

B: A가 거짓일 경우 실행

  • 하나라도 참이 있으면 전체가 참
  • 좌측 결과가 참이면 우측 명령 실행 x, 좌측 결과가 거짓이면 우측 명령 실행

 

test

test 1 == 1 && echo "정답"

[ 1 == 1 ] && echo "정답"

  • -e: 파일이 존재하는지
  • -f: 지정한 파일이 참이면 참
  • -d: 지정한 파일이 디렉토리면 참

([ -e /var/log/messages ] && tail -n 15 /var/log/messages)

 

column

- 공백을 원하는 옵션으로 처리

(mount | column -t)

 

vim 비주얼 모드

- ctrl + v 누른 후 범위 지정

- y: 복사, p: 붙여넣기, x:잘라내기, d:삭제

- Shift + i #으로 주석처리

 

wc

- 지정한 파일의 단어 갯수를 반환, -l 은 line 수 반환

- 라인 단어갯수 byte

 

1. pwd: 현재 디렉터리 확인(절대 경로)

2. cd: 디렉터리 이동

3. ls: 현재 디렉터리 내용 출력

디렉터리: /가 뒤에 붙음

심볼릭 링크(바로가기): @가 뒤에 붙음

  • -a: 숨김 파일 확인
  • -F: 파일 종류 확인
  • -R: 서브디렉터리의 내용 확인

ls -aF
ls -R

4. 디렉터리 생성

- mkdir 후 띄어쓰기로 동시에 생성

-p: 옵션을 통해 하위 항목 순차적으로 디렉터리 생성

5. 디렉터리 삭제: rmdir

6. 파일 내용 확인: cat

  • -n: 행 번호 같이 출력

7. 파일확인: more, less, tail

- 공통적으로 /검색어 명령어를 통해서 검색 가능

  • more: 넘어간 페이지는 뒤로갈 수 없음
  • less: j, k를 통해 행 전환 가능
  • tail: 끝의 행을 기준으로 결과 값 출력 
    -f 옵션을 통해 결과값을 지속적으로 출력 (ctrl+c 를 통해 명령 종료)
    -숫자 옵션을 통해 끝에서 숫자만큼의 행만 가져온다.

 

 

 

------------------------------

 

nginx 설정 파일 경로

/etc/nginx/nginx.conf

pid /run/nginx.pid 를 통해 nginx 마스터 프로세스 확인가능

'OS > Linux' 카테고리의 다른 글

Shell Script 정리(디스크 용량)  (0) 2021.03.10
Shell Script 정리  (0) 2021.03.09
CentOS 설치 후 자동완성이 되지 않을 경우  (0) 2021.02.25
[Linux] RAID 기본 설정 방법  (0) 2020.12.29
[Linux] tar, 파일 압축  (0) 2020.12.28