프로세스
- 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.
'Linux' 카테고리의 다른 글
[Linux] Linux 명령어 쉽게 기억하기! (0) | 2021.08.12 |
---|---|
[Linux] vi/vim 편집기 유용한 단축키 정리(복사 및 이동, 검색) (0) | 2021.08.04 |