Sky Archive

Linux

[Linux] 자주 사용되는 리눅스 command 명령어 정리!

Anchovy ʕ-᷅ᴥ-᷄ʔ 2021. 9. 14. 06:02

프로세스

- top : 현재 실행 중인 프로세스 목록(실시간 CPU 사용률)

※ 실시간 모드 정렬

  • Shift + P : CPU 사용률 순 (기본)
  • Shift + M : 메모리 사용률 순
  • Shift + T : 실행시간 순

 

- ps (process status) : 현재 실행 중인 프로세스 목록(프로세스 전체 사용시간 동안의 cpu 사용률)

※ ps로는 현재의 cpu 사용률을 확인할 수 없고 top은 모니터링을 위해, ps는 스냅샷을 위해 사용하면 된다.

 

※ 자주 사용되는 옵션

→ 단일 유닉스 규격 표준을 지원하는 운영 체제

ex. ps -ef | grep 프로세스명 | grep -v grep

ps -ef : PID와 PPID 등 확인 가능
ps -ef | grep 단어 : 단어가 포함된 것만 조건부 출력
grep -v grep : grep 문자열이 들어간 프로세스 제외

"-e"는 모든(every) 프로세스, "-f"는 완전한(full) 출력 포맷.
이 외 자주 사용하는 옵션으로 "-l"이 있으며 긴(long) 출력 포맷을 지정

 

→ POSIX와 UNIX 표준 옵션을 사용하지 않는 운영체제(BSD로부터 유래된 대부분)

ex. ps aux | grep 프로세스명 | grep -v grep

ps aux : CPU, MEM 사용률, 프로세스 상태 코드 등 확인

비표준 옵션 aux로 실행한다. aux에서 "a"는 모든 프로세스를 열거(다른 사용자들의 프로세스도 포함). "x"는 통제하는 터미널 없이 모든 프로세스들을 열거, "u"는 각각의 프로세스에 대하여 통제하는 사용자를 추가
※ 이러한 신택스를 사용하는 경우 최대 호환성을 위하여 "aux" 앞에 "-"가 없음을 주의하고 모든 변수들을 포함하여 프로세스에 대한 완벽한 정보를 위한 "ps auxwww"와 같이 aux 뒤에 'www'를 추가할 수 있다.

 

- pgrep (process grep) : 프로세스 이름으로 PID 확인

ex. pgrep pid

 

- pkill (process kill) : 프로세스 종료

ex. pkill pid

※ 옵션
-f : 모든 아규먼트를 비교
-9 : SIGKILL, 프로세스 강제 종료 시그널

ex. pkill -9 -f java
→ java라는 프로세스 종료 시그널 전송

ex. kill -9 `ps -ef | grep java | awk '{print $2}'`
→ `java라는 프로세스 리스트 중 두번째 필드값(pid) 출력` 프로세스 종료 시그널 전송

권한/계정

- chmod (change mode) : 파일 또는 폴더의 사용권한 변경

ex. chmod a+x 대상
→ 모든 사용자(a)의 실행(x) 권한 추가(+)

ex. chmod a-wx 대상
→ 모든 사용자(a)의 쓰기(w), 실행(x) 권한 제거(-)

ex. chmod 755 대상
→ 퍼미션을 755(rwxr-xr-x)로 설정, 순서대로 소유자, 그룹 사용자, 기타 사용자 권한

 

- chown (change owner) : 파일 또는 폴더의 소유권한 변경

ex. chown testuser:testuser test.txt
→ test.txt 파일의 사용자와 그룹 소유권한 변경

ex. chown [-R] [사용자][:그룹] 대상1 [대상2..]
→ 경로와 그 하위 파일들을 모두 변경

※ 자주 사용되는 옵션
-R : 경로와 그 하위 파일들을 모두 변경한다.
-c : 변경된 파일만 자세히 보여준다
-f : 변경되지 않은 파일에 대해서 오류 메시지를 보여주지 않는다
-v : 작업 상태를 자세히 보여준다.

 

- su (substitute user) : 다른 계정으로 전환

ex. su - root
→ 일시적으로 root 환경으로 쉘 실행

ex. su root
→ root 계정으로 전환

logout, exit 으로 나갈 수 있음.

 

- sudo (superuser do) : 다른 사용자의 권한으로 프로그램을 실행(기본값. 슈퍼유저)

※ sudo, su, su -차이점
sudo : 현재 계정에서 다른 계정의 권한만 빌림
sudo -i : 다른 계정으로 로그인
su : 다른 계정으로 전환 + 기존 사용자 환경에서 설정된 환경변수 유지
su - : 다른 계정으로 전환

 

- passwd (password) : 패스워드 변경

ex.
[root@anchovy ~]# passwd
Changing password for user root.
New password:

→ 원하는 패스워드 입력하고 ↵ Enter
Retype new password:

→ 동일한 패스워드를 한번 더 입력하고 ↵ Enter
passwd: all authentication tokens updated successfully.​

보기

- cat(concat, concatenate) : 파일 내용 출력

ex. cat -n test.txt
→ -n 옵션: 행 번호 보기

 

- more : 한 페이지씩 출력

※ 키 입력
q : 종료
Ctrl+C : 종료
Enter : 다음 줄
Space Bar : 다음 페이지

 

- less : 한 페이지씩 출력 + @

more와 유사하지만 위/아래로 이동 가능

 특징

리눅스용 텍스트 파일 뷰어
vi와 유사하지만 읽기 전용
vi처럼 정규식 검색 가능
큰 파일을 열 때도 빠름
gzip 압축파일도 열 수 있음
터미널 창 높이에 맞추어 출력됨

※ 키 입력
q : 종료
Enter : 아래로 1 이동
Space Bar : 아래로 1페이지 이동
↑: 위로 1행 이동
↓: 아래로 1행 이동
Ctrl+f : 아래로 1페이지 이동
Ctrl+b : 위로 1페이지 이동
PageUp : 위로 1페이지 이동
PageDn : 아래로 1페이지 이동

 

- head : 첫 부분 출력


- tail : 마지막 부분 출력

 


폴더/디렉터리

- pwd (print working directory) : 현재 디렉터리 확인

 

- cd (change directory)

ex. cd /

ex. cd -
→ 이전 디렉터리로 이동

 

- ls (list directory contents) : 디렉토리 내용 목록보기

- ll (ls -l)

 

- tree : 디렉토리 목록 트리구조로 보기

ex. tree -d
→ 하위 디렉토리 목록 보기

 

- mkdir (make directory) : 디렉토리 생성

ex. mkdir test

ex. mkdir -p a/b
→ 부모 디렉토리 'a' 아래 'b' 디렉터리가 함께 생성

파일 이동/편집

- mv (move) : 파일/디렉터리 이동 및 이름 변경

mv hello.txt 경로/새파일명

 

- cp (copy) : 파일 복사

-a (archive) : 모든 것을 동일하게 복제함(recursive + preserve) ★★
-i (interactive) : 파일이 이미 있을 경우 덮어 쓸지 물어봄 (기본값)
-f (force) : 파일이 있어도 덮어씀 (기본적으로 사용불가)
-P : 심볼릭 링크를 복사
-p (preserve) : 수정시간, 소유자, 그룹, 퍼미션 유지
-r (recursive) : 하위 폴더 및 파일 포함 ★

ex. cp -r a/ /test/b/
→ /test 폴더가 없으면 오류.
/test/b 폴더가 없으면 a폴더를 test폴더 아래에 b라는 이름으로 복사. => /test/b /test/b
폴더가 있으면 a폴더를 b폴더 아래에 복사. => /test/b/a

 

- rm (remove) : 파일 삭제

※ 자주 사용되는 옵션
-f : force, 강제 삭제
-r : 하위 폴더/파일을 모두 삭제

시스템 정보

- df (disk free) : 디스크(파일 시스템) 사용량 확인

ex. df -h
→ -h 옵션(human-readable)을 주면 읽기 쉬운 단위로 표현됨


- du (disk usage) : 디렉터리 용량 확인

ex. du -hsx * | sort -rh | head -n 10
→ 현재 폴더에 있는 폴더 및 파일 중에서 용량이 큰 것 순으로 10개 보기


- free : 여유, 사용 메모리양 확인

ex. free -m
→ 옵션 -m : MB, -g : GB, -h : human-readable

검색

- locate : 파일 검색

 

- grep : 파일명 검색 또는 파일 내 문자열 검색

ex. grep [-옵션] 패턴 파일명

※ 옵션
-c : 패턴이 일치하는 행의 수를 출력
-i : 비교 시 대소문자를 구별 안 함
-v : 지정한 패턴과 일치하지 않는 행만 출력
-n : 행의 번호를 함께 출력
-l : 패턴이 포함된 파일의 이름을 출력
-w : 패턴이 전체 단어와 일치하는 행만 출력
-E : 확장 정규 표현식 사용 (모든 환경에서 지원되는 옵션은 아님. egrep과 동일)
-P : 펄 정규 표현식 사용 (모든 환경에서 지원되는 옵션은 아님)

ex. ll | grep .txt
→ 출력 명령과 함께 사용

 

- awk : 텍스트 형태로 되어있는 데이터를 필드로 구분하여 패턴 검색 및 처리

ex. cat /etc/passwd | head | awk -F: '{print $1}'
 공백을 필드 구분자로 :사용하여 필드를 나눈 후 1번째 필드 출력

ex. df -h | awk '{print $1"\t"$5}'
 1열과 5열만 출력 (탭으로 구분)

필드 값 변수
$0 → 모든 필드 (행의 값 그대로)
$1 → 첫 번째 필드
$2 → 두 번째 필드

$(NF-1) → 마지막 전 필드
$NF → 마지막 필드


기타

- clear : 화면 지움

 

- date : 현재 날짜와 시간을 출력

 

- echo : 주어진 문자열을, 문자열 사이에 포함된 공백과 줄 마지막에 개행 문자를 포함하여 출력

ex. echo $PATH
→ PATH로 선언된 변수 출력

※ 옵션
-n : 마지막에 따라오는 개행 문자(newline) 문자를 출력하지 않음
 -e : 문자열에서 역슬래시(\)와 조합되는 이스케이프 문자(escape sequence)를 인용부호(")로 묶어 인식

 

- history : 명령어 기록

ex. !123
→ 명령어 순번을 입력하면 해당 명령어 재실행

ex. !-이력상대순번
→ 뒤에서 2번째 명령어 재실행

ex. !!
→ 직전 명령어 실행

 

- sed (stream editor) : 텍스트 변환 유틸

줄단위(\n) 처리를 함
줄단위 처리가 기본이지만 메모리를 이용한 여러 줄 처리도 가능함

ex. echo -e "aaa\nbbb\nccc\nddd" | sed "2d"
→ d를 사용하여 줄 삭제. 여기에서는 2d이므로 2번째 줄 삭제.

ex. sed -i "s/short_open_tag = Off/short_open_tag = On/g" /etc/php.ini
→ 파일 내 문자열 치환, s/regexp/replacement/[flag]의 형태
short_open_tag = Off 가 short_open_tag = On로 치환됨

 

 

 

 

 

 

 

 

 

 

ref.

https://www.nextree.co.kr/p4243/