1. 사용자 계정의 관리
ㅇ 사용자 정보 확인 (현재 로그인된 사용자 확인)
- users : 현재 로그인된 사용자들의 id
- who [옵션] : 현재 로그인된 사용자들의 id,터미널,로그인 일시,IP주소 등
. [bdHlprtTuma]
- whoami : 현재 로그인한 사용자 본인 아이디
- id : 현재 사용자의 UID, GID, 소속 그룹 확인
- w : 로그인된 사용자와 실행 중인 프로세스 확인
- last : 시스템 로그인/로그아웃 이력 확인
- groups : 현재 사용자가 속한 그룹 목록 확인
ㅇ 계정 관리 : (생성, 수정, 삭제)
- useradd [옵션] [계정명] : 새로운 사용자 계정 생성
- usermod : 기존 사용자 계정 수정 (-aG 옵션으로 그룹 추가 가능)
- deluser 또는 userdel : 사용자 계정 삭제
* [참고] 계정 정보 저장 위치
. /etc/passwd : 사용자 계정 정보
. /etc/shadow : 비밀번호 및 암호화 정보
. /etc/group : 그룹 정보
ㅇ 패스워드 관리
- passwd [옵션] [계정명] : 비밀번호 변경 (etc/shadow 파일에 암호화 저장)
- chage -l <계정명> : 사용자의 비밀번호 변경 정책 확인
- chage -E <날짜> <계정명> : 계정 만료일 설정
ㅇ 그룹 관리
- groupadd <그룹명> : 새로운 그룹 생성
- groupdel <그룹명> : 그룹 삭제
- groupmod -n <새_그룹명> <기존_그룹명> : 그룹 이름 변경
- gpasswd -a <사용자> <그룹> : 사용자 그룹 추가
- gpasswd -d <사용자> <그룹> : 사용자 그룹 제거
2. 파일,디렉토리의 정보 확인
ㅇ 파일 정보 확인,변경
- file : 파일 종류(형식) 확인
- touch : 파일의 날짜 시간 정보를 변경 (타임스탬프 갱신)
. 만일, 파일 존재 않으면, 빈 파일 생성
- stat : 파일의 상세한 메타데이터 확인
- df -h : 디스크 사용량을 사람이 읽기 쉬운 단위로 표시
- du -sh * : 현재 디렉토리 내 파일/폴더별 사용량 확인
ㅇ 파일 내용 출력
- cat : 파일 내용 보기
- more : 페이지 단위로 파일 내용 보기
- head : 파일 앞부분 보기 (기본 처음 10줄)
- tail : 파일 뒷부분 보기 (기본 마지막 10줄)
- wc : 단어 세기 (행,단어,바이트, 파일 수)
ㅇ 파일,디렉토리 확인
- pwd (print working directory, present working directory) : 현재 작업 디렉토리 확인
. 만일, 처음 로그인하면, 홈 디렉토리가 현재 작업 디렉토리가 됨
- ls (list segments) : 현재 디렉토리에 포함된 파일,디렉토리의 확인
. 파일 종류,권한,소유자,그룹,크기,날짜,이름 등
- lsof : 프로세스 연결 정보 확인
. 프로세스에 의해 오픈된 파일/포트들의 점검
.. (프로세스명,PID,소유자,파일명,파일타입 등)
3. 파일,디렉토리의 관리
ㅇ 파일 편집기 : ed, vi, vim(vi improved)
- ed : 줄 단위 텍스트 편집기
- vi : 화면 단위 텍스트 편집기
ㅇ 파일 찾아보기
- find : 지정한 특정 범위에 해당하는 파일을 검색
- locate : (검색 DB를 미리 생성해서 속도 빠름. 하루 1회 업데이트됨)
- whereis
- which
ㅇ 파일/디렉토리 속성 변경
- chmod (change mode) : 퍼미션(파일접근권한) 변경
- chown (change owner) : 소유자 변경
- chgrp (change group) : 그룹 변경
ㅇ 파일/디렉토리 사용(복사,이름변경,이동,삭제 등)
- cp (copy) : 파일 복사
- mv (move) : 파일 이동, 파일명 변경
- rm (remove) : 파일 삭제
- ln (link) : 파일 링크
- cd (change directory) : 디렉토리 위치 변경
ㅇ 파일/디렉토리 생성/삭제
- 파일 생성 : touch, cat, 편집기(vi,...) 등으로 가능
. 例) cat > 파일명 : 표준 출력 리다이렉션 > 쓰면, 현재 키보드 입력 내용을 파일로 저장
. 例) touch 파일명 : 해당 파일 없으면, 파일 크기가 0인 빈 파일 생성
- 디렉토리 생성 : mkdir
. mkdir -p : (중간 경로 디렉토리까지 생성)
.. 例) mkdir -p yearmon/2023/01
- 파일/디렉토리 삭제 : rm
. rm -r : 재귀적으로 디렉토리 트리 삭제
. rmdir : 빈 디렉토리 만 삭제
4. 메모리의 관리
ㅇ free -h : (메모리 할당 상태 확인)
ㅇ fallocate -l 2G /swapfile : (대용량 파일 만들기, 대용량 파일 크기 조정하기)
ㅇ chmod 600 /swapfile : (스왑 파일 권한 주기)
ㅇ mkswap /swapfile : (swap 파일로 변환 만들기)
ㅇ swapon /swapfile : (swap 활성화)
ㅇ nano /etc/fstab
ㅇ /swapfile swap swap defaults 0 0 : (부팅시 스왑 파일로써 마운트)
ㅇ swapon --show : (스왑 상태 보기)
ㅇ swapoff -v /swapfile : (swap 비활성화)
5. 시스템의 관리
ㅇ 시스템 정보 확인
- 호스트 이름 확인 : hostname
- 운영체제 확인 : uname (커널 버전, 머신 타입, 호스트 이름 등)
. (옵션) -r :현재 버젼, -a : 모든 정보 출력
ㅇ 관리자 모드 진입 : sudo
ㅇ 디스크 용량 확인 : du, df
- du : 특정 디렉토리 이하의 디스크 사용량
ㅇ 자원 확인 : top
ㅇ 시간 관리 : date
- 시스템 클럭의 일시를 확인,설정 및 관리
6. 프로세스 관리
ㅇ 프로세스 확인 : ps
- 실행중인 프로세스들의 리스트, 정상 여부 확인 및 점검
ㅇ 스케줄링 관리 : cron 데몬
ㅇ 스케줄링된 작업 설정 : at
ㅇ kill : 특정 프로세스 종료
ㅇ killall <프로세스명> : 동일한 이름의 모든 프로세스 종료
ㅇ pkill <프로세스명> : 특정 패턴을 포함하는 프로세스 종료
ㅇ htop : top 명령어보다 더 강력한 프로세스 모니터링
7. 네트워크 명령어
ㅇ 네트워크 인터페이스 및 IP 정보 확인
- ifconfig : 네트워크 인터페이스 정보 확인 및 설정 (옛 명령어)
. (활성 네트워크 인터페이스 연결 정보 및 설정)
- ip a : 네트워크 인터페이스 및 IP 주소 확인 (ifconfig 대체)
- ip link : 네트워크 인터페이스 상태 확인
- ip route : 현재 라우팅 테이블 확인 (route 대체)
- ip neigh : ARP 테이블 확인 (네트워크에서 MAC 주소 조회)
ㅇ 네트워크 연결 상태 확인
- ping <호스트> : 네트워크 연결 확인 및 응답 시간 측정
- traceroute <호스트> : 네트워크 경로(라우터 경유) 추적
- tracepath <호스트> : traceroute와 유사하지만 루트 권한 불필요
- mtr <호스트> : ping과 traceroute를 결합한 실시간 네트워크 경로 모니터링
ㅇ DNS 및 네임서버 확인
- nslookup <도메인> : 도메인의 IP 주소 확인
- dig <도메인> : 보다 상세한 DNS 쿼리 확인 (nslookup 대체)
- host <도메인> : 간단한 DNS 조회
ㅇ 포트 및 연결 상태 확인
- netstat -tulnp : 현재 열려있는 포트 및 프로세스 확인 (구버전)
- ss -tulnp : 현재 열려있는 포트 및 프로세스 확인 (netstat 대체)
- lsof -i : 현재 네트워크 소켓을 사용하는 프로세스 확인
- nc -zv <포트> : 특정 포트가 열려 있는지 확인 (netcat 활용)
ㅇ 패킷 캡처 및 네트워크 분석
- tcpdump : 네트워크 패킷을 실시간으로 캡처 및 분석
- wireshark : GUI 기반 네트워크 패킷 분석 도구 (설치 필요)
ㅇ 원격 접속 및 파일 전송
- ssh <사용자>@<호스트> : 원격 서버에 SSH 접속
- scp <파일> <사용자>@<호스트>:<경로> : SSH를 이용한 파일 전송
- rsync -avz <소스> <사용자>@<호스트>:<대상> : 네트워크 파일 동기화
ㅇ 라우팅 및 네트워크 설정
- route : 라우팅 테이블 출력 및 편집
. route -n : 라우팅 테이블 확인
. `netstat -rn`,`route -n` : 거의 유사한 정보 보여줌
- ip route add <네트워크>/<마스크> via <게이트웨이> : 라우팅 추가
- ip route del <네트워크>/<마스크> : 라우팅 삭제
- ethtool <인터페이스> : 이더넷 카드 설정 확인 및 변경
8. 쉘 명령어
※ ☞ 쉘내부명령어 참조
- exit, logout, return, echo, pwd, cd, help 등
9. 기타
ㅇ 도움말 : man, info
- 각 명령어별 도움말 : <명령어> -h 또는 -? 또는 --help 또는 -help
ㅇ 히스토리 : history (history, history N, history -C)
- !! (직전), !N (히스토리 N번째), !-N (히스토리 -N번째) : 이전 명령어 실행
- !$, !* : 이전 명령어 파라미터 추출
ㅇ 담긴 내용(...)을 명령어 취급 : `...`, $(...)
- 例) date +%Y => 2025 이면, echo This year is `date +%Y` => This year is 2025
ㅇ 단순 산술 처리 : expr (명령어 기반), bc (텍스트 기반 계산기), dc (desk calculator)
ㅇ 에디터 : vi(vim), emacs, gedit
ㅇ 가상 터미널 디바이스 확인 : tty