[리눅스] 명령어 모음집 (feat. 리눅스 마스터 2급 대비)

Woonil·2025년 6월 18일
0

리눅스

목록 보기
4/4

전공 수업부터 리눅스 마스터 2급 자격증을 준비하기까지 학습했던 리눅스 명령어들을 정리했다. 전반적인 명령어를 익히는 누군가에게 도움이 되었으면 좋겠다. 더 자세한 사용방법이 알고 싶다면 추가 공부를 할 것을 권장한다.

🤔분류

🔗시스템

uname (unix)

시스템 정보 출력

옵션설명
-a사용 가능한 모든 시스템 정보 출력 ⇒ 커널 이름, 노드 이름(호스트 이름), 커널 릴리스, 커널 버전, 머신 하드웨어 이름, 프로세서 유형(가능한 경우), 하드웨어 플랫폼(가능한 경우), 운영체제
-m하드웨어 종류 출력
-n호스트이름 출력
-r커널 릴리스 출력

date

날짜와 시간을 출력

timedatectl

시스템 시간대를 지정하며, timedatectl set-timezone 타임존 으로 시간대를 변경할 수 있다.

출력 내용의미
Local time현재 지역의 시간
Universal time협정 세계시
RTC time하드웨어 시계
Time zone서버 지정 국가 및 시간
System clock synchronized시스템 시간 동기화 여부
NTP(Network Time Protocol) service타임서버의 동기화 여부

timedatectl list-timezones

타임존 목록을 확인할 수 있다.

exit

터미널 종료

shutdown

rc 스크립트를 실행하며, init 명령어와 비슷한 기능을 수행

옵션설명
-r재부팅
-h종료
-t시간 지정

🔗패키지

Debian 계열

  • 온라인
    • apt-get
      명령설명비고
      update패키지 저장소에서 새로운 패키지 정보를 가져옴 (/etc/apt/sources.list에 명시한 저장소로부터 패키지 정보를 읽어 동기화)
      upgrade현재 설치되어 있는 패키지를 업그레이드--no-upgrade: 해당 패키지가 설치되어 있을 경우 업그레이드 하지 않음 / --only-upgrade : 새로운 패키지를 설치하지 않고 이미 패키지가 설치된 경우 업그레이드만 함
      install패키지 설치
      remove패키지 삭제패키지의 설정 파일은 남겨둠 ⇒ 설정파일을 포함하여 패키지 삭제 시 purge 서브 명령을 사용하거나 remove 서브 명령과 함께 --purge 옵션 사용
      purge환경설정까지 삭제
      download패키지를 현재 디렉터리로 내려 받음
      autoclean불완전하게 내려받았거나 오래된 패키지 삭제
      clean/var/cache/apt/archives에 캐시되어 있는 모든 패키지를 삭제하여 디스크 공간을 확보
      check의존성이 깨진 패키지 확인
      옵션설명
      -f의존성이 깨진 패키지를 수정하려고 시도
      -h간단한 도움말 출력
    • apt-cache: apt 캐시(패키지 DB)에서 정보 검색 apt-cache [옵션] <서브명령>
      명령설명
      stats캐시에 대한 통계 정보 출력
      dump현재 설치되어 있는 패키지를 업그레이드
      search 캐시에서 키워드로 검색
      showpkg 패키지명패키지에 대한 의존성 정보와 역의존성 정보를 검색하여 출력
      show 패키지명패키지에 대한 간단한 정보 출력
      pkgnames사용 가능한 모든 패키지 이름 출력
    • apt (advanced packaging tool): .deb(바이너리 패키지의 저장소)형식의 패키지들을 관리(설치, 제거, 업데이트)하며, apt-get과 거의 유사 사용자의 편의를 위해 제작되었다.
  • 오프라인
    • dpkg (download package)
      옵션설명
      -r패키지 제거
      -P패키지 및 관련 설정 파일 모두 삭제
      -i패키지 파일 설치

Red Hat 계열

  • 오프라인
    • rpm (Redhat Package Manager)
      옵션설명
      -p설치되거나 설치되지 않은 패키지 파일에 대한 질의 수행
      -qa (query, all)패키지 설치 여부 확인
      -ql (query, long)패키지 위 파일들의 위치 확인
      -qi (query, information)설치된 패키지 정보 출력
      -qf (query, file)특정 파일을 설치한 패키지명 출력
      -ivh (install, verbose, human readable)패키지 설치
      -e (erase)패키지 제거
      -U (update)패키지 업데이트
      --nodeps의존성 패키지 제거
      -F (freshen)패키지 업그레이드 또는 설치
  • 온라인: 인터넷 레포지토리(도메인 접속 가능해야함)에서 패키지 다운 및 설치
    • yum (Yellowdog Updater Modified): 의존성이 있는 파일을 모두 설치한다.
      명령어설명비고
      yum info미설치된 패키지 정보 확인
      yum install [패키지명]설치yum install epel-release : 확장 패키지 관련 저장소 설치
      yum search [문자열]문자열이 포함된 패키지 검색
      yum erase [패키지명]삭제
      yum upgrade [패키지명]업그레이드
      yum history작업 이력(설치, 삭제 등) 목록
      yum list전체 패키지 정보 출력

      EPEL(Extra Packages for Enterprise Linux Release)

      Fedora Project에서 제공하는 저장소로, 각종 패키지의 최신 버전을 제공하는 커뮤니티 기반의 저장소이다.

    • dnf (Fedora, CentOS 등)

🔗환경변수

env (environment) 또는 printenv

설정된 모든 환경변수(전역변수) 출력

set / unset

셸 변수(지역변수) 조회 및 등록 / 셸 변수 해제

🔗별칭

alias

이름='명령' 이름='명령1;명령2' (여러 명령을 적용)

별칭을 설정 및 해제할 수 있으며, 긴 명령어나 자주 사용하는 명령어를 짧게 지정할 때 유용하다. (자주 사용되는 명령어를 입력해두고 간편하게 사용)

unalias

별칭 해제

🔗셸

chsh (change login shell)

chsh [옵션] <사용자명>

사용자의 로그인 쉘을 변경

옵션설명
-s (shell)지정하는 쉘을 앞으로 사용할 로그인 쉘로 변경
-l (list)사용가능한 쉘 출력

set

특정 사용자가 로그인 한 이후 선언한 셸 변수(지역 변수)를 전부 확인할 수 있다.

unset

셸 변수 지정 해제한다.

🔗출력

watch

지정한 명령어의 결과를 원하는 시간 주기로 갱신하며 출력

echo

입력한 문자열 출력

옵션설명
-n마지막에 줄 바꿈 하지 않음
  • 파일 쓰기
    • "문자열" > 파일명 : 파일 내에 문자열 덮어쓰기
    • "문자열" >> 파일명 : 파일 내에 문자열 이어쓰기

cat (concatenate)

cat [옵션] <파일명>

파일명을 인자로 받은 후 그 내용을 이어서 출력한다. Ctrl + d 키 입력 시, 이전 작업으로 되돌아온다.

옵션설명
-n행 번호를 붙여서 출력

tail

tail [옵션] <파일명>

파일 뒷부분 몇 행 출력

옵션설명
+지정한 행 번호부터 끝까지 출력
-화면에 출력할 행의 수 지정
-f파일 출력이 종료되지 않고 주기적으로 계속 출력

clear

화면 정리

🔗탐색

find

find <디렉터리 경로> [파일명] [옵션] (-exec 수행할 명령)

특정 경로(폴더)/파일 탐색

리눅스 find 명령어 사용법. (Linux find command) - 리눅스 파일 검색.

옵션설명
-name파일명으로 검색(파일형식이나 이름에 포함되는 글자 등이 들어갈수 있음)
-type타입명으로 검색 (f: 일반파일, d: 디렉터리, l: 심볼릭링크 파일, s: 소켓파일 등)
-size용량으로 파일 검색
-user지정한 유저명이 보유하고 있는 파일 검색
-perm지정한 액세스 권한과 동일한 파일 검색
-atime +(-)n오늘을 기준으로 n일 이전(이내)에 액세스한 적이 있는 파일 검색
-mtime +(-)n최근 n일 이전(이내)에 변경된 적이 있는 파일 검색
명령설명
-ls자세한 결과 출력
-exec 명령어 {} \;검색된 파일({}내에 들어감)에 지정한 명령 실행

grep (global regular expression print)

grep [옵션] <검색할 문자> <파일명>

옵션설명
-i파일내 검색할 문자열 대소문자 구별없이 탐색
-n파일내 검색할 문자열이 몇번째 줄인지 탐색
-v (invert match)패턴을 제외한 내용만 출력
-w단어 단위로 검색
-c매칭되는 줄 수 표시
-l매칭되는 패턴이 있는 파일 이름 출력
패턴설명
^patternpattern으로 시작하는 라인
pattern$pattern으로 끝나는 라인
[][] 내 문자열에서 한 문자와 일치
.아무 문자 하나

🔗히스토리

history

명령 입력 기록을 출력하며, 사용자 홈 0디렉터리의 .bash_history 파일에 저장된다.

명령
!!바로 직전에 실행한 명령 재실행
!번호히스토리에 해당 번호의 명령 재실행
!문자열히스토리에서 해당 문자열로 시작하는 마지막 명령 실행
n최근 실행 명령 n개 출력

🔗네트워크

nmcli (NetworkManager CLI)

NetworkManager를 제어하고 네트워크 상태를 보고하는 데 사용

  • 예시
    sudo nmcli con mod ens160 ipv4.addresses 192.168.52.131/24
    sudo nmcli con mod ens160 ipv4.gateway 192.168.52.2
    sudo nmcli con mod ens160 ipv4.dns "192.168.52.2 8.8.8.8"
    sudo nmcli con mod ens160 ipv4.method manual
    sudo nmcli con up ens160

netstat

옵션설명
-a(--all)모든 소켓 정보 출력
-r(--route)라우팅 테이블 정보 출력
-n(--numeric)호스트 이름 대신 IP 주소 출력
-I(--interface)모든 네트워크 인터페이스 정보 출력
-s(--statistics)프로토콜별로 네트워크 통계정보 출력
-p(--program)해당 소켓과 관련된 프로세스의 이름과 PID 출력
-t (tcp)TCP 연결 표시
-m (memory)소켓 버퍼의 메모리 사용 상태 표시

nslookup (name server)

DNS 서버와 대화식으로 질의 응답

traceroute

traceroute <목적지 주소>

목적지까지 패킷이 거치는 경로 출력

tcpdump

ping [옵션] <목적지 주소>

네트워크 상의 트랙픽 덤프 출력

옵션설명
-a통신이 되면 소리 출력
-q테스트 결과를 지속적으로 보여주지 않고 종합 결과만 출력
-c보낼 패킷 수 지정

ping

네트워크 장비에 ECHO_REQUEST 신호 전송

route

라우팅 테이블 출력 및 편집

게이트웨이 추가

route add default gw 'ip address'

🔗아카이빙

아카이브는 여러 파일을 하나의 묶음으로 보관하는 것을 뜻한다.

tar (tape archieve)

tar <기능> [옵션] [아카이브 파일] <파일명>

파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성하며, GNU 프로젝트에 의해 개조되어 압축 관련 옵션을 지원한다.

원래 여러 파일이나 디렉터리를 묶어서 마그네틱 테이프와 같은 이동식 저장 장치에 보관하기 위해 사용하는 명령이었다.

  • 특징
    • 아카이브 사용에는 여러 목적이 있지만, 전통적으로는 파일의 저장용도로 사용되었다.
    • 테이프 장치에 파일을 보관하여 백업하거나 여러 파일을 하나의 파일로 묶어서 보관하였다.
    • 현재는 파일을 저장할 때 뿐 아니라 단순히 여러 파일을 하나의 파일로 묶을 때도 사용한다.
    • 일반적으로 프로그램은 tar 아카이브 이후, gzip 압축한 형태로 배포하는 경우가 많다.
    • 다른 파일 시스템과 파일을 주고 받을 때 사용된다.
    • 백업 시 여러 파일이나 디렉터리를 하나의 아카이브 파일로 생성 시 사용된다.
    • 기존 아카이브에서 파일 추출 시 사용된다.
기능설명
c (create)새로운 tar 파일 생성
(원본 파일은 그대로 유지)
C디렉터리 변경
x (extract)tar 파일에서 원본 파일 추출
(아카이브 해제)
t (table of contents)tar 파일 내용 출력
(미리보기)
v (verbose)명령어 수행과정을 자세히 출력
r (append)이미 생성된 아카이브에 새로운 파일을 아카이브 마지막에 추가
u (update)지정한 파일이 아카이브에 없는 파일이거나, 아카이브에 있는 파일이지만 수정된 파일인 경우 아카이브 마지막에 추가

cvf : 아카이브 생성

xvf : 아카이브 해제

r vs u

u기능은 아카이브 파일에 파일이 이미 있는지 확인하고 추가하는 반면, r기능은 지정한 파일을 무조건 아카이브 마지막에 추가

옵션설명
v (verbose)처리중인 파일의 명령어 수행과정을 자세히 출력
f아카이브 파일이나 테이프장치 지정
h심벌릭 링크의 원본 파일 포함
p파일 복구시 원래의 접근권한 유지
Jxz로 압축하거나 해제
jbzip2로 압축하거나 해제
zgzip으로 압축하거나 해제
Zcompress로 압축하거나 해제

(J/j/Z/z)xvf 를 통해 tar 아카이브 후 압축된 파일에 대해 압축 해제와 아카이브 해제 모두 수행할 수 있다.

bzip2 / bunzip2

아카이브된 파일 압축/압축해제

옵션명령
-d압축 해제
--best최대한 압축
-l압축된 파일 정보 출력

gzip / gunzip

아카이브된 파일 압축/압축해제

옵션설명
-d압축 해제
-9최대한 압축
-l압축된 파일 정보 출력

zip / unzip

아카이브된 파일 압축/압축해제

🔗컴파일

make

makefile의 내용대로 컴파일한다.

명령어설명
clean이전에 컴파일했던 내용 삭제
discleanautomake에서 분류되지 않은 나머지 파일 삭제
install컴파일된 파일을 설치
옵션설명
-f특정 Makefile을 사용하여 빌드
  • 프로그램을 소스 파일로 설치하는 과정
    1. configure (Makefile 생성을 위한 스크립트): 소스 코드를 컴파일하기 전에 시스템 환경을 검사
    2. make (컴파일): Makefile에 기록된 지시에 따라 소스 코드를 컴파일하고 실행 파일을 생성
    3. make install (설치): 컴파일된 프로그램을 시스템의 적절한 위치에 설치

cmake

make의 대체 프로그램으로 멀티플랫폼을 지원하기 위한 목적으로 등장한 오픈 소스 프로젝트이다. make 과정을 수행하지 않고, 지정한 운영체제에 맞는 make 파일 생성이 주요 목적이다. 대표적인 프로그램으로 mysql이 있다.

🔗프로세스 상태

ps (process status)

옵션없이 사용하면 현재 쉘이나 터미널에서 실행한 프로세스를 출력한다.

출력 정보의미비고
F프로세스 플래그
S프로세스 상태코드
UID프로세스 소유자 이름
SZ프로세스 이미지가 차지하는 물리적 페이지 크기
USER사용자 계정 이름
PID프로세스 번호
PPID부모 프로세스의 아이디
CCPU 사용량(%)UNIX
PRI프로세스의 우선순위낮을수록 높은 우선순위를 가짐
NInice 값 (우선순위)-20~19 (디폴트: 0)
%CPUBSD
%MEM물리적 메모리 사용량(%)
VSZ사용 중인 가상 메모리 크기(KB)
RSS사용 중인 무리적 메모리 크기(KB)
STIME프로세스 시작 날짜 또는 시간
TTY (teletype)현재 터미널의 번호 (장치 번호)
TIME프로세스가 사용한 누적 CPU 시간
CMD프로세스의 실행 명령어
STAT (state)프로세스의 현재 상태
START프로세스 시작 시간
  • STAT(프로세스의 상태)
    문자의미비고
    R (running)실행중
    S (sleep)인터럽트가 가능한 대기 상태
    I커널 스레드가 유휴 상태
    D (uninterruptible sleep)인터럽트가 불가능한 대기 상태일반적으로 입출력 상태를 의미
    T (stopped)작업 제어에 의해 정지된 상태
    Z (zombie)좀비 프로세스
    <우선순위가 높은 프로세스
    ⇒ 더 많은 CPU time을 할당
    s세션 리더 프로세스BSD
    +포그라운드 프로세스 그룹BSD
    멀티스레드
  • UNIX 옵션 (-로 시작)
    옵션설명
    -e (every)시스템에서 실행 중인 모든 프로세스의 정보 출력
    -f (full)프로세스의 자세한 정보 출력
    -u특정 사용자에 대한 모든 프로세스 정보 출력
    -ppid로 지정한 특정 프로세스 정보 출력
    -o포맷 지정
  • BSD 옵션
    옵션설명
    a터미널에서 실행한 프로세스 정보 출력
    u (usage)프로세스 소유자 이름, CPU 사용량, 메모리 사용량 등 상세 정보 출력
    x시스템에서 실행 중인 모든 프로세스 정보 출력
  • GNU 옵션 (--로 시작)
    옵션설명
    --pid목록으로 지정한 특정 PID의 정보 출력

top

현재 실행 중인 프로세스의 정보를 실시간/주기적으로 출력하며, 상단에는 프로세스의 자세한 요약 정보, 하단에는 각 프로세스의 정보를 출력한다.

[Linux] top 명령어로 서버의 상태 파악하기

  • 옵션
    옵션설명
    -n지정한 숫자만큼 화면 출력 갱신
    -u지정한 사용자의 프로세스 모니터링
    -b출력결과를 파일이나 다른 프로그램으로 전달
    -d화면 갱신주기를 초 단위로 설정
    -p지정한 PID 프로세스를 모니터링
  • %Cpu (CPU 상태)
    • us : 프로세스의 유저 영역에서의 CPU 사용률
    • sy : 프로세스의 커널 영역에서의 CPU 사용률
    • ni : 프로세스의 우선순위(priority) 설정에 사용하는 CPU 사용률
    • id (idle) : 사용하고 있지 않는 비율
    • wa : IO가 완료될때까지 기다리고 있는 CPU 비율
    • hi : 하드웨어 인터럽트에 사용되는 CPU 사용률
    • si : 소프트웨어 인터럽트에 사용되는 CPU 사용률
  • 항목
    • PR: 우선순위
    • NI: nice 값
    • VIRT: 프로세스에 사용된 가상 메모리 총 사용량
    • RES: 프로세스가 사용하는 실제 메모리양
    • SHR: 프로세스가 사용하는 공유 메모리양
    • S: 현재 프로세스의 상태
    • TIME+: 프로세스가 시작하여 사용한 CPU 시간

pgrep

특정 프로세스가 실행 중인지 확인

옵션설명
-x패턴과 정확히 일치하는 프로세스의 정보 출력
-n패턴을 포함하고 있는 가장 최근 프로세스의 정보 출력
-u특정 사용자에 대한 모든 프로세스 출력
-lPID와 프로세스 이름 출력
-t특정 단말기와 관련된 프로세스의 정보 출력

pmap

프로세스의 메모리 자원 사용량 상세 출력

bg (background)

현재 실행 중인 프로세스를 백그라운드 작업으로 전환하며, 명령어 수행 이전에 먼저 Ctrl + z(SIGSTP, 20)로 프로세스를 대기 상태로 전환한다.

fg (foreground)

포그라운드 작업으로 전환

stop

stop <%작업번호>

포그라운드 작업을 정지(종료 아닌 일시 정지)

nohup (no hang up)

사용자가 로그아웃하거나 작업 중인 터미널 창이 닫혀도 프로세스를 백그라운드 프로세스로 계속해서 작업할 수 있도록 한다.

jobs

jobs <%작업번호>

백그라운드 작업 목록을 출력

항목출력 예의미상세
작업번호[1]작업번호로서 백그라운드로 실행할 때마다 순차적으로 증가
작업순서+작업 순서 표시+ : 가장 최근에 접근한 작업, - : + 작업보다 바로 전에 접근한 작업, 공백 : 그 외의 작업
상태Running작업 상태 표시Running : 실행 중 Done : 작업이 정상적으로 종료 Exit : 작업이 비정상적으로 종료 Stopped : 잠시 작업이 중단됨
명령sleep 100 &백그라운드로 실행 중인 명령

🔗프로세스 우선순위

프로세스의 소유자와 루트 권한자만이 명령을 내릴 수 있으며, 우선 순위는 -20부터 19까지 높은 순~낮은 순으로 지정 가능하다.

nice

프로세스명을 사용하여 우선순위를 변경하며, nice 값을 기본적으로 10 증가(우선순위 낮춤)시킨다. 양수값에 ‘-’, 음수값에 ‘--’를 사용한다.

renice

renice [옵션] [n] [PID]

PID(프로세스 아이디)를 사용하여 이미 실행중인 프로세스의 우선순위를 변경한다. 양수값에 ‘-’를 사용하지 않는다.

🔗프로세스 제어

kill

kill <시그널> <PID>

지정한 시그널을 특정 PID의 프로세스에게 보내 프로세스를 종료시키며, 작업번호로 종료시키려면 %[작업번호]를 지정한다.

[Ctrl] + c 는 인터럽트 시그널을 프로세스에 보내 종료시킨다.

옵션설명
-l리눅스에서 지원하는 시그널의 목록 출력

pkill

지정한 시그널을 특정 프로세스명의 프로세스에게 보내 프로세스를 종료(지정 CMD의 프로세스 종료)한다. 같은 명령이 여러 개 검색될 경우, 한 번에 모두 종료한다. (자신이 소유한 프로세스만 종료 가능)

killall

프로세스명을 사용하여 프로세스를 종료시킨다.

systemctl

systemd 제어

유닛기능
service시스템 서비스 유닛으로 데몬을 시작, 종료, 재시작 및 로드
target유닛을 그룹화
automount디렉터리 계층 구조에서 자동 마운트 포인트를 관리
mount디렉터리 계층 구조의 마운트 포인트를 관리
device리눅스 장치 트리의 장치를 관리
path파일 시스템의 파일이나 디렉터리 등 경로를 관리
scope외부에서 생성된 프로세스를 관리
slice시스템의 프로세스를 계층적으로 관리
socket소켓을 관리
swap스왑 장치를 관리
timer타이머와 관련된 기능을 관리
명령설명
start유닛 시작
stop유닛 정지
reload유닛 설정 파일 다시 읽음
restart유닛 재시작
status유닛의 현재 상태 확인
enable부팅 시 유닛 자동 시작으로 설정
disable부팅 시 유닛 자동 시작하지 않게 설정
옵션설명
-a상태와 관계없이 유닛 전체 출력
-t지정한 종류의 유닛만을 출력

restart vs reload

restart의 경우는 service를 재시작하므로 service를 shutdown한 후 다시 시작하는 반면, reload의 경우 해당 서비스의 configuration 파일들을 reload한다.

🔗디스크 파티션

mount

mount [옵션] [장치] [마운트 포인트(특정 디렉토리)]

  • 장치: 마운트 포인트와 연결할 장치를 지정하며, 일반적으로 파일 시스템을 생성한 파티션을 지정한다.
  • 마운트 포인트: 특정 디렉토리를 지정하며, 해당 디렉토리로 접근 시 지정한 장치로 이동된다.
옵션설명
-t특정 파일 시스템의 종류 지정
-a/etc/fstab 의 마운트 정보를 모두 적용
-o이미 마운트된 파일 시스템을 다시 마운트하면서 모드 변경

umount

마운트 해제

df (disk free)

disk [옵션] <파일 시스템>

디스크의 남은 공간(용량)을 확인하며, 파티션 단위로 출력한다. (파일시스템, 디스크의 크기, 사용량, 남아있는 용량, 사용률, 마운트 지점 순)

옵션설명
-a모든 파일 시스템을 대상으로 디스크 사용량 확인
-k , -m사용량을 해당하는 단위로 출력
-hGB, MB, KB 등의 단위로 사람이 인식하기 쉽게 표현
-t지정한 파일시스템에 해당하는 디스크 사용량 출력
-T파일 시스템 종류 출력

du (disk usage)

디렉터리의 디스크 사용량 확인

blkid (block id)

블록 장치에 있는 파티션의 UUID와 파일 시스템 유형 확인

lsblk (list block device)

블록 장치에 대한 정보를 트리 형태로 표현

fdisk

fdisk [옵션] <장치명>

디스크의 파티션 생성, 삭제, 보기 등 파티션 관리

명령어설명
n (new)새로운 파티션 생성
w (write)파티션 정보 저장하고 종료
q (quit)저장 안하고 종료
x (expert mode)전문가 모드로 진입
d (delete)파티션 삭제
옵션설명
-l파티션 테이블 출력
-b섹터 크기 지정

🔗파일 시스템

mkfs (make file system)

mkfs [옵션] <파일시스템>

리눅스 파일 시스템 생성하며, mkfs.ext{?} 명령도 가능하다.

옵션설명
-t파일 시스템의 종류 지정 (디폴트는 ext2)
ext4는 journaling 기능을 지원

mke2fs

mke2fs [옵션] <장치명>

리눅스 확장 파일 시스템 (ext2, ext3, ext4) 생성

옵션설명
-t파일 시스템의 종류 지정 (기본: ext2)
-b블럭 크기를 바이트 수로 지정
-c배드 블럭 체크

pwd (print working directory)

현재의 전체 절대 경로를 출력

cd (change directory)

cd <디렉터리명>

경로(폴더) 변경하며, cd 입력 후 탭(Tab)키를 바로 눌러 내부 경로 순차 탐색 또는 글자 입력 후 눌러 자동 완성기능을 사용할 수 있다.

touch

touch [옵션] <생성할 파일명>

파일 생성 또는 파일의 파일 시스템 변경

옵션설명
-c인자로 입력한 파일의 타임스탬프를 현재시간으로 업데이트
-t원하는 시간으로 타임스탬프 업데이트 (YYYYMMDDhhmm 포맷)

rm (remove)

rm [옵션] <원본 파일or디렉터리명>

파일 삭제

옵션설명
-r폴더 삭제
-i인자로 입력한 파일을 삭제할 것인지 안내 메시지 출력

rmdir (remove directory)

옵션설명
-p지정한 디렉터리 삭제(부모 디렉터리가 비어 있다면 부모 디렉터리도 삭제

🔗사용자 정보

w

현재 시스템을 사용하는 사용자의 정보와 작업정보 출력

who

현재 시스템을 사용하는 사용자의 정보 출력

옵션설명
-q사용자 이름만 출력
-H출력 항목의 제목도 함께 출력
-b마지막으로 시스템이 부팅한 날짜와 시간 출력
-r런레벨 확인

who am i / whoami

내가 처음 로그인한 기준으로 정보 표시 / 현재 내가 로그인한 사용자 표시

users

현재 호스트에 로그인되어 있는 모든 사용자 출력

su (switch user)

사용자 전환

옵션설명
-입력한 사용자의 사용자 초기화 파일 적용 (환경변수 적용 및 워킹 디렉토리 변경)

sudo (superuser do)

root(관리자) 권한 사용

🔗사용자 관리

useradd

useradd [옵션] <새 로그인ID>

사용자 계정 생성

옵션설명예시
-uUID 지정
-gGID 지정 (존재하는 그룹이여야 함)
-G보조 그룹의 GID 지정
-d홈 디렉터리 경로 지정useradd -m -d /home/room/testuser
-m홈 디렉터리 지정 시 존재하지 않는 경우, 지정한 디렉터리명으로 디렉터리를 자동으로 생성useradd -m testuser
-s로그인 시 사용할 기본 쉘 지정
-c사용자의 이름 등 부가적인 설명 지정
-f사용자 계정의 유효일 지정(INACTIVE 항목 설정)useradd -f 7
-e사용자 계정 만기일 지정(EXPIRE 항목 설정)useradd -e 2024007-28 testuser
-D사용자 생성 시 기본 설정 출력

usermod (modify)

usermod [옵션] <로그인 ID>

옵션설명
-uUID 변경
-gGID 변경
-G보조 그룹의 GID 변경
-d홈 디렉터리 변경
-m홈 디렉터리 변경시 기존에 사용하던 파일 및 디렉터리를 옮김
-s로그인시 사용할 기본 쉘 변경
-c사용자의 이름 등 부가적인 설명 변경
-f유효일 변경(INACTIVE 항목 설정)
-e만기일 변경(EXPIRE 항목 설정)
-l아이디 변경
-L비밀번호 잠금

userdel (delete)

userdel [옵션] <로그인 ID>

사용자 계정 삭제하며, 옵션 없이 삭제 시 다른 사용자에게 남아있는 홈 디렉터리가 보일 수 있다.

옵션설명
-r사용자 홈 디렉터리까지 삭제

🔗파일 접근 권한

umask

기본 접근 권한은 출력하거나 변경

옵션설명
-S마스크 값을 문자로 출력

chmod (change mode)

파일 또는 디렉터리의 접근 권한 변경한다. 해당 파일의 소유주나 root(슈퍼 유저)만이 실행 가능하며, 기호 모드 또는 숫자 모드로 접근 권한 변경 가능하다.

옵션설명
-R하위 디렉터리까지 변경

chown (ownership)

chown [옵션] <사용자 계정> <파일명>

파일과 디렉터리의 소유자와 소유그룹 변경

옵션설명
-R서브 디렉터리의 소유자와 소유 그룹도 변경

🔗파일 속성

chown

chown [옵션][:그룹명] 파일명

옵션설명
-R서브 디렉터리의 소유자와 소유 그룹도 변경

🔗작업 예약

crontab

반복 작업(cron: 주기적으로 반복되는 일을 자동적으로 실행)을 예약한다.

날짜 표현 방법: 분/시/일/월/요일

옵션설명
-e편집기 실행
-l작업 조회
-r작업 삭제 (모두 삭제)

at

단일 작업 예약

🔗원격

put / get

로컬 시스템에 있는 파일을 FTP 서버에 업로드 / 다운로드

ssh (secure shell)

ssh를 통해 원격지의 서버 컴퓨터에 접속할 수 있다.

옵션설명
-l계정 변경해서 접속
-nssh가 끝날 때 까지 터미널을 차지하지 않고 ssh를 백그라운드에서 실행
-p포트 변경
  • 키 발급 과정

    1. 키 쌍 생성: ssh-keygen 명령어를 통해 ssh 공개키, 개인키를 발급한다. 아래 명령어를 통해 키를 발급(rsa 비대칭키 알고리즘 사용)하면 개인 키(비밀 키)는 ~/.ssh/id_rsa 에 저장되고, 공개 키는 ~/.ssh/id_rsa.pub 에 저장된다.

      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    2. 공개 키를 서버에 배포: 생성된 공개 키(id_rsa.pub)를 원격 서버의 사용자의 홈 디렉터리에 있는 .ssh/authorized_keys 파일에 추가해야 한다. 이 파일에 저장된 공개 키들을 통해 사용자가 비밀번호 없이 SSH를 통해 서버에 접속할 수 있다. 아래 명령어를 통해 서버 컴퓨터의 ~/.ssh/authorized_keys 에 공개키가 등록된다.

      ssh-copy-id username@server_ip_address

      업로드중..

    3. SSH를 통한 접속: 개인 키를 사용하여 SSH 클라이언트에서 서버에 접속할 수 있다. 이후 클라이언트는 개인 키로 서버에서 받은 메시지를 암호 해독하여 인증을 수행한다.

      ssh username@server_ip_address

scp (secure copy)

로컬과 원격지 간 파일 또는 디렉터리를 전송

rsync

파일 및 디렉토리를 로컬 및 원격 시스템 간에 효율적으로 복사

🔗기타

source

스크립트 파일 수정 후 수정된 내용을 바로 적용

profile
프론트 개발과 클라우드 환경에 관심이 많습니다:)

0개의 댓글