엔지니어 공부

[Linux] 명령어 정리

병걸 2024. 6. 10. 17:35

 

리눅스 환경에서 작업할 일이 많아져 리눅스 명령어에 대해서 정리하고자 한다.

 

ps -ef | grep [찾고싶은 프로세스]

 

ps : 현재 실행중인 프로세스 목록과 상태 출력

-e : 모든 프로세스 출력

-f : 다양한 정보 출력 ( 소유자, 식별자, PID 등 )

grep : 특정 문자열을 찾는 명령어 (찾고 싶은 프로세스를 뒤에 입력한다.)


rpm -qa | grep [조회하고자 하는 패키지명]

 

rpm : 현재 디렉토리에 파일이 있을 때 설치하거나, 현재 설치되어있는 패키지를 관리하는 명령어

( Red Hat Package Manager의 약자로 Red Hat 계열 OS에서 프로그램 설치 등을 수행할 수 있는 명령어이다.)

-q(--query) : 조회
-qa : 시스템에 설체된 전체 패키지 목록을 출력

 

rpm 관련 명령어는 아래와 같은 명령어가 있다.

--force : 강제로 설치 진행
--nodeps : 의존성을 무시하고 진행
--replacekgs : 설치된 동일한 패키지 존재 시 패키지를 교체
--replavefiles : 설치된 동일한 패키지 존재 시 파일을 교체

-i(--install) : 설치
-U : 업그레이드
-e(--erase) : 삭제

-q(--query) : 조회
-qa : 시스템에 설체된 전체 패키지 목록을 출력
-qi : 설치된 패키지 정보 확인
-ql : 내부 파일 목록 확인
-qc : 내부 설정 파일 확인
-qd : 내부 문서 파일 확인

netstat -an | grep 27700   : 포트로 검색
netstat -an | grep 8.8.8.8 : IP로 검색

 

netstat : 전송 제어 프로토콜,라우팅 테이블 등 수 많은 네트워크 인터페이스, 네트워크 프로토콜 통계를 위한

네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령어

( 보통 사용할 경우 grep 명령어를 추가하여 IP 또는 port를 검색하여 연결을 확인합니다.)

 

-a : 현재 다른 서버 또는 PC와 연결, 리스닝 되어있는 모든 포트 번호를 확인한다. 
-n : 현재 다른 서버 또는 PC와 연결되어 있는 포트 번호를 확인한다.
-s : IP, ICMP, UDP 프로토콜의 상태 확인한다.
-u : UDP 프로토콜을 보여준다.
-t : TCP 프로토콜을 보여준다.
-c : 1초 단위로 보여준다.
-p : 프로토콜에서 사용 PID를 보여준다.
-e : 랜카드에서 송수신한 패킷의 정보를 확인한다. 
-r : 라우팅 테이블 확인과 연결된 있는 포트 번호를 확인한다.

tcpdump [옵션][조건부]

 

tcpdump : 네트워크를 통해 송수신 되는 패킷 정보를 표시해주는 프로그램 명령어

-c [숫자] : 지정한 수 만큼 출력
-i [네트워크 인터페이스] : 지정한 네트워크 인터페이스를 경유하는 패킥을 출력
-w file : 출력한 패킷 정보를 파일로 생성
-r file : w 옵션으로 만든 파일을 정보 출력
-v : 패킷 내용을 상세히 출력

 

자주 사용하는 리눅스 명령어 옵션

 

1. 검색 옵션

ll -a

-l : 현재 위치 파일들을 나열함
-a : 경로 안의 모든 파일들 출력함 (숨김파일 포함)
-R : 현재 위치의 디렉터리의 하부 디렉토리까지 출력
-h : 파일크기도 함께 출력
-r : 출력결과 내림차순으로 정렬
-t : 출력 결과를 파일이 수정된 시간순으로 정렬

 

 

2. 삭제 옵션

rm -f [삭제 대상]

-r : 강제로 파일이나 디렉토리를 삭제하고 대상이 없는 경우에는 메시지를 출력하지 않음
-f : 디렉토리 내부의 모든 내용을 삭제
-d : 비어있는 데릭토리들만 제거
-i : 매번 삭제할때마다 사용자에게 삭제할 것인지 확인
-v : 삭제되는 대상의 정보를 출력

 

 

3. 압축 옵션

tar -xvf [파일명.tar]

-c : 파일을 tar로 묶음
-p : 파일 권한을 저장
-v : 묶거나 파일을 풀 때 과정을 화면에 출력
-f : 파일 이름을 지정
-C : 경로를 지정
-x : tar 압축을 풂
-z : gzip으로 합축하거나 해제

 

 

4. 복사 옵션

cp [옵션] [복사 대상 디렉터리 or 파일] [복사될 디렉터리 or 파일]

-r : 해당 옵션을 주면 하위 디렉터리까지 모두 복사
-v : cp 명령어를 수행하면서 복사 진행 상태를 출력
-p : 파일 or 디렉터리를 복사할 때 복사 대상의 소유자(계정), 그룹, 권한등의 정보까지 복사
-i : 복사대상 파일이 이미 해당 위치에 있다면 사용자한테 덮어 쓰기 여부를 묻고 복사
-f : 복사대상 파일이 이미 해당 위치에 있다면 파일을 지우고, 강제로 복사

 

 

5. 리눅스 종료 옵션

shutdown -h now : 지금 즉시 종료
shutdown -h +3 : 3분 후 종료
shutdown -r now : 지금 즉시 재부팅

-r : 종료 후 재부팅
-h : shutdown 이 완료된 후 시스템을 종료
-c : 진행중인 shutdown 명령을 취소
-k : 경고 메시지만 출력하고, 실제로는 shutdown을 하지 않음
-t [지정시간] : 지정시간에 시스템을 재시동

 

기본 명령어

 

1. 파일시스템 탐색을 위한 명령어

pwd : 현재 사용자가 위치하고 있는 경로를 보여줌
ls : 현재 위치 내에 있는 내용을 보여줌
cd [파일명] : 원하는 파일 위치로 이동함
절대 경로 -> /[파일명] 으로 /부터 시작해서 목표 디렉토리까지 가는 경로를 전부 기술하는 방식(최상의 디렉토리) 
상대 경로 -> "현재 자신이 있는 위치를 기준으로" 이동을 함
mkdir : 새 dir 생성
rmdir : 빈 dir 삭제
df : 파일 시스템의 디스크 공간에 대한 필수 정보 표시
ㄴ -a : 모든 파일 시스템 출력
   -h : 사람이 읽기 쉬운 형태로 출력
   -Th : 파일 시스템의 유형 추가된 상태로 출력

 

 

2. 시스템 조작을 위한 명령어

uname : 이름, 버전, 기타 시스템 특정 세부사항 등 OS 및 커널 버전 빠르게 확인 가능
ps : 현재 시스템에서 싱행중인 프로세스 시각화(모니터링 도구)
kill : 자원 제한으로 인해 멈춘 프로세스 중지
service : 리눅스 터미널에서 시스템 전체 서비스 호출하기 위한 명령
batch : 미리 정의된 일정에 따라 시스템 서비스 실행
shutdowm : 현재 접속 중인 모든 사용자에게 시스템이 종료된다는 메시지 보낼 수 있음
histroy : 최근 사용했던 명령어들을 숫자와 함께 출력

 

 

3. 파일 관리를 위한 명령어

touch : 유효한 빈 파일 작성하기 위한 명령어
cat : 파일 내용 확인
head : 터미널에서 직접 파일 or 파이프 된 데이터의 시작 확인
tail : 파일 마지막 행 기준으로 입부 내용 출력
cp : 파일/디렉토리 복사
mv : 파일 위치 이동
comm : 두 개의 파일을 공통 행과 구별되는 행으로 비교 가능
ln : 특정 파일에 대한 심벌릭 링크 생성
cmp : 두 파일을 비교하고 결과 출력
alias : 터미널에서 직접 파일의 다른 문자열로 단어 변경 가능

 

 

4. I / O 및 소유권 다루는 명령어

clear : 화면 지움
echo : 터미널 콘솔에 특정 텍스트 출력
sort : 정렬
sudo : 권한 없는 사용자가 낮은 수준의 권한이 필요한 파일에 액세스 하고 수정 가능
chmod : 시스템 파일 or 객체의 엑세스 권한 변경 및 수정 (root 권한 필요)
ㄴ chomod 755 -> 각 자리에 따라 첫번쨰는 소유자(user) 권한 / 두번쨰는 그룹 사용자 권한 / 세번째는 기타 사용자 권한이다.
              -> 7 : 모든 권한 / 5 : 읽기 / 실행 권한

 

기타 명령어

vmstat : 기본적인 시스템 모니터링 명령어

위 그림과 같이 첫번째로 나오는 결과는 수집된 정도에 때한 평균치 이다.

 

1) procs : CPU 내에 존재하는 Queue에 적체된 Command의 수를 의미

    ㄴ r (run queue) : 작업 수행을 위해 CPU 자원을 기다리는 Command 수  

    ㄴ b (blocked queue) : 메모리나 기타 I/O 등에 대해 자원을 기다리는 Command 수

2) memory : 말그대로 메모리의 정보를 의미

    ㄴ free : 해당 OS의 실제 남은 메모리를 의미

3) system : 시스템 콜 및 인터럽트에 관련된 정보를 출력

    ㄴ cs (context switch) : CPU 내에서 Process간 Context 정보를 교체하는 횟수

4) us, sy, id의 의미

  1. us (user time)
    • 정의: 사용자 모드에서 실행되는 프로세스가 사용하는 CPU 시간입니다.
    • 설명: 애플리케이션이나 유저가 실행한 프로그램이 차지하는 CPU 사용률입니다. 이 필드는 시스템이 실제 사용자 작업을 처리하는 데 얼마나 많은 CPU 시간을 소비하는지 보여줍니다.
  2. sy (system time)
    • 정의: 커널 모드에서 실행되는 프로세스가 사용하는 CPU 시간입니다.
    • 설명: 운영 체제 커널이 시스템 호출이나 시스템 자원 관리를 위해 사용하는 CPU 사용률입니다. 이 필드는 시스템이 하드웨어 장치 관리, 프로세스 관리, 시스템 호출 등을 처리하는 데 얼마나 많은 CPU 시간을 소비하는지 보여줍니다.
  3. id (idle time)
    • 정의: 유휴 상태에서 CPU가 사용하는 시간입니다.
    • 설명: CPU가 아무 일도 하지 않는 시간의 비율입니다. 이 필드의 값이 높을수록 CPU가 대부분 유휴 상태에 있음을 의미합니다.

 

free : 메모리의 전체적인 현황을 가장 빠르게 살펴볼 수 있는 명령어

 

-g : GB 단위로 출력

-m : MB 단위로 출력

-w : 각열의 이름씩 출력

위 그림은 free -w -m 을 실행한 출력값이다.

 

total :  전체 메모리 용량

used : 사용 중인 메모리

free : 여분의 사용 가능한 메모리

shared : 공유 메모리

buff/cache : 버퍼 및 캐시된 메모리

available : 실제 사용 가능한 메모리