[이것이 리눅스다] 4장 정리

리눅스의 기본 명령어, 사용자 관리와 파일 속성, 관리자를 위한 명령어, 파일 압축, 파일 묶기, 파일 위치 검색, CRON과 AT, 파이프, 필터, 리디렉션 등에 대한 자세한 설명과 사용법이 담겨있다. 이를 통해 리눅스를 운영하는데 필요한 기본 내용과 서버 구축에 필요한 필수 개념과 명령을 학습할 수 있다.
DriedPollack's avatar
Apr 15, 2024
[이것이 리눅스다] 4장 정리

🌼리눅스를 운영하는 데 알아야 할 개념

💡핵심 키워드

시스템 시작과 종료

  • 터미널에서 poweroff, shutdown -P now, halt -pinit 0 명령을 실행해 시스템을 종료할 수 있다.
    • shutdown 명령의 옵션 중 now 부분에 시간을 지정하면 그 시간에 시스템을 종료한다.
  • 리눅스에서는 대문자와 소문자를 명확히 구분한다.
  • 일반 사용자가 관리자 권한을 얻으려면 su- 또는 su 명령을 실행한 후 root 사용자의 비밀번호를 입력해야 한다.

시스템 재부팅

  • 터미널에서 shutdown -r now, reboot, init 6 등의 명령을 실행해 시스템을 재부팅할 수 있다.

로그아웃

  • 터미널에서 logout, exit 명령을 실행한다.

가상 콘솔

  • Rocky Linux는 총 6개의 가상 콘솔을 제공한다.
    • 가상 콘솔로 이동하는 단축키는 Ctrl + Alt + F1 ~ F6 이다.

런레벨

  • init 명령 뒤에 붙는 숫자를 런레벨이라고 부른다.
    • 런레벨
      영문 모드
      설명
      비고
      0
      Power off
      종료 모드
      1
      Resque
      시스템 복구 모드
      단일 사용자 모드
      2
      Multi-User
      사용하지 않음
      3
      Multi-User
      텍스트 모드의 다중 사용자 모드
      4
      Multi-User
      사용하지 않음
      5
      Graphical
      그래픽 모드의 다중 사용자 모드
      6
      Reboot
      재부팅 모드

자동 완성과 히스토리

  • 자동 완성이란 파일 이름의 일부만 입력하고 Tab을 눌러 나머지 파일 이름 또는 폴더 이름을 자동으로 채우는 기능을 말한다.

에디터 사용

  • vi 에디터가 비정상적으로 종료되었을 때 swp 파일이 생성되므로 ls -a 명령을 통해 파일을 확인하고 rm -f .test.txt.swp 명령을 통해 해당 스왑 파일을 삭제한다.
    • 설명
      설명
      i
      현재 커서의 위치부터 입력
      I
      현재 커서 줄의 맨 팡에서부터 입력
      a
      현재 커서의 위치 다음 칸부터 입력
      A
      현재 커서 줄의 맨 마지막부터 입력
      o
      현재 커서의 다음 줄에 입력
      O
      현재 커서의 이전 줄에 입력
      s
      현재 커서 위치의 한 글자를 지우고 입력
      S
      현재 커서의 한 줄을 지우고 입력
      설명
      설명
      h
      커서를 왼쪽으로 한 칸 이동
      j
      커서를 아래로 한 칸 이동
      k
      커서를 위로 한 칸 이동
      i
      커서를 오른쪽으로 한 칸 이동
      Ctrl + F
      다음 화면으로 이동
      Ctrl + B
      이전 화면으로 이동
      ^
      현재 행의 처음으로 이동
      $
      현재 행의 마지막으로 이동
      gg
      제일 첫 행으로 이동
      G
      제일 끝 행으로 이동
      숫자G
      해당 숫자의 행으로 이동
      :숫자Enter
      해당 숫자의 행으로 이동
      설명
      설명
      h
      커서를 왼쪽으로 한 칸 이동
      j
      커서를 아래로 한 칸 이동
      k
      커서를 위로 한 칸 이동
      i
      커서를 오른쪽으로 한 칸 이동
      Ctrl + F
      다음 화면으로 이동
      Ctrl + B
      이전 화면으로 이동
      ^
      현재 행의 처음으로 이동
      $
      현재 행의 마지막으로 이동
      gg
      제일 첫 행으로 이동
      G
      제일 끝 행으로 이동
      숫자G
      해당 숫자의 행으로 이동
      :숫자Enter
      해당 숫자의 행으로 이동
      설명
      설명
      x
      현재 커서가 위치한 글자 삭제
      X
      현재 커서가 위치한 앞 글자 삭제
      dd
      현재 커서의 행 삭제
      숫자dd
      현재 커서부터 숫자만큼의 행 삭제
      yy
      현재 커서가 있는 행을 복사
      숫자yy
      현재 커서부터 숫자만큼의 행을 복사
      p
      복사한 내용을 현재 행 이후에 붙여넣기
      P
      복사한 내용을 현재 행 이전에 붙여넣기
      설명
      설명
      /문자열Enter
      해당 문자열을 찾음
      n
      찾은 문자 중에서 다음 문자로 이동

도움말 사용법

  • man 명령어 명령을 통해 각 명령의 체계화된 도움말을 불러올 수 있다.

마운트와 CD/DVD/USB의 활용

  • 리눅스에서 하드디스크의 파티션, CD/DVD, USB 메모리 등을 특정 디렉터리에 연결하려면 마운트를 해야 한다.
  • 이를 위해서 VMware Player에 CD나 DVD를 삽입한 후 mount 명령어를 사용한다.
 

🌼리눅스 기본 명령

💡핵심 키워드

ls

  • LiSt의 약자로 Windows 명령 프롬프트의 dir 명령과 같은 역할을 한다.
    • -a 숨김 파일 포함
    • -l 자세히 표시

cd

  • Change Directory의 약자로 디렉토리를 이동하는 명령이다.
    • cd 현재 사용자의 홈 디렉터리로 이동
    • ~사용자명 특정 사용자의 홈 디렉터리로 이동
    • .. 바로 상위의 디렉터리로 이동

pwd

  • Print Working Directory의 약자로 현재 디렉터리의 전체 경로를 화면에 표시한다.

rm

  • ReMove의 약자로 파일이나 디렉터리를 삭제한다.
    • -i 삭제 시 정말 삭제할 지 확인하는 메시지를 표시
    • -f 삭제 시 확인하지 않고 바로 삭제
    • -r 해당 디렉터리를 삭제
    • -rf 디렉터리와 하위 디렉터리를 강제로 전부 삭제

cp

  • CoPy의 약자로 파일이나 디렉터리를 복사한다.
    • cp 원본파일 복사파일명 원본파일을 지정한 이름으로 복사
    • -r 해당 디렉터리를 복사

touch

  • 크기가 0인 새 파일을 생성하거나 생성된 파일이 존재한다면 파일의 최종 수정 시간을 변경

mv

  • MoVe의 약자로 파일이나 디렉터리의 이름을 변경하거나 다른 디렉터리로 옮길 때 사용
    • mv 원본파일 변경할파일명 원본파일의 이름을 지정한 파일명으로 변경해서 이동

mkdir

  • MaKe DIRectory의 약자로 새로운 디렉토리를 생성
    • mkdir -p 부모디렉터리/자식디렉터리 부모 디렉터리가 없다면 자동 생성

rmdir

  • ReMove DIRectory의 약자로 디렉터리를 삭제

cat

  • conCATenate의 약자로 파일 내용을 화면에 출력

head, tail

  • 텍스트 형식으로 작성된 파일의 앞 10행 또는 마지막 10행만 출력
    • head -3 파일명 앞 3행만 화면에 출력

more

  • 텍스트 형식으로 작성된 파일을 페이지 단위로 화면에 출력
    • Space를 누르면 다음 페이지로 이동
    • Q를 누르면 명령 종료
    • more +30 파일명 30행부터 출력

less

  • more에서 사용하는 키와 더불어 화살표 키, PageUp, PageDown도 사용 가능

file

  • 파일의 종류를 표시

clear

  • 현재 사용중인 터미널 화면을 지움
 

🌼사용자 관리와 파일 속성

💡핵심 키워드

사용자와 그룹

  • 리눅스는 다중 사용자 시스템으로 1대의 리눅스에 여러 명의 사용자가 동시에 접속해서 사용할 수 있다.
  • 기본적으로 root라는 이름을 가진 슈퍼 유저가 있다.
  • /etc/passwd 파일의 구조
    • 사용자 이름:비밀번호:사용자 ID:사용자가 소속된 그룹 ID:전체 이름:홈 디렉터리:기본 셸
  • /etc/group 파일의 구조
    • 그룹 이름:비밀번호:그룹 id:그룹에 속한 사용자 이름
    • useradd(또는 addUser)

    • 새로운 사용자를 추가
      • -u 사용자 ID를 지정
      • -g 사용자 그룹에 사용자를 포함
      • -d 사용자 홈 디렉터리 지정
      • -s 사용자 기본 셀 지정

      passwd

    • 사용자 비밀번호를 지정하거나 변경
    • usermod

    • 사용자의 속성을 변경, 사용 가능한 옵션은 useradd와 동일
    • userdel

    • 사용자를 삭제
      • -r 사용자를 삭제하면서 홈 디렉터리까지 삭제

      change

    • 사용자의 비밀번호를 주기적으로 변경
      • -l 설정된 사항을 확인
      • -m 설정한 비밀번호를 사용해야 하는 최소 일자
      • -M 설정한 비밀번호를 사용할 수 있는 최대 일자
      • -E 설정한 비밀번호가 만료되는 날짜
      • -W 설정한 비밀번호가 만료되기 전에 경고하는 기간

      groups

    • 사용자가 소속된 그룹을 표시
    • groupadd

    • 새로운 그룹을 생성
      • -g 그룹 ID 지정

      groupmod

    • 그룹의 속성을 변경
      • -n 그룹의 이름을 변경

      groupdel

    • 그룹을 삭제
    • gpasswd

    • 그룹의 비밀번호를 설정하거나 그룹 관리를 수행
      • -A 사용자를 그룹의 관리자로 지정
      • -a 사용자를 그룹에 추가
      • -d 사용자를 그룹에서 제거

파일과 디렉터리의 소유와 허가권

  • ls -l 명령으로 파일의 정보를 조회할 수 있다.
    • 파일 유형 | 파일 허가권 | 링크 수 | 파일 소유자 이름 | 파일 소유그룹 이름 | 파일 크기 | 마지막 변경 날짜/시간 | 파일 이름
    • 파일 유형은 파일의 종류를 나타낸다.
      • 디렉터리의 경우 d , 일반적인 파일 - , 블록 디바이스 b , 문자 디바이스 c , 링크 1
    • 파일 허가권은 파일을 읽고 쓰고, 실행할 수 있는 권한을 나타내며 3개씩 끊어 읽는다.
      • rw-, r—, r—인 경우 644로 표현 가능하다.
    • 파일 소유권은 파일을 소유한 사용자와 그룹을 의미한다.

링크

  • 파일의 링크에는 하드 링크와 심볼릭 링크가 있다.
    • 하드 링크는 원본 파일 데이터를 가리키는 inode를 사용한다.
      • ln 링크대상파일이름 링크파일이름
    • 심볼릭 링크를 생성하면 새로운 inode가 만들어지며 데이터는 원본 파일 포인터를 가리킨다.
      • ln -s 링크대상파일이름 링크파일이름
 

🌼리눅스 관리자를 위한 명령어

💡핵심 키워드

프로그램 설치를 위한 RPM

  • 초창기 리눅스는 프로그램 설치가 어려웠고, 이를 개선해 Windows의 setup.exe와 비슷하게 설치 후 바로 실행할 수 있는 설치 파일을 제작했다.
  • 패키지이름-버전-릴리스번호.Rocky 리눅스 버전.아키텍쳐.rpm 의 형식이다.
  • 설치
    • -U 패키지가 설치되어 있지 않았다면 설치하고, 패키지가 설치되어 있다면 업데이트
    • -v 설치 과정을 확인
    • -h 설치 진행 과정을 # 기호를 붙여 화면에 출력
  • 삭제
    • -e
  • 이미 설치된 패키지 조회
    • -qa 패키지가 설치되었는지 확인
    • -qf 이미 설치된 파일이 어느 패키지에 포함된 것인지 확인
    • -ql 특정 패키지에 어떤 파일이 포함되었는지 확인
    • -qi 설치된 패키지의 상세 정보
  • 아직 설치되지 않은 rpm 파일 조회
    • -qlp 패키지 파일에 어떤 파일이 포함되었는지 확인
    • -qip 패키지 파일의 상세 정보
  • 의존성이 있는 파일은 한 번에 설치할 수 없다.

편리하게 패키지를 설치하는 DNF

  • dnf 명령을 rpm 명령의 패키지 의존성 문제를 완전히 해결한다.
  • 기본 설치 방법
    • dnf -y install 패키지이름
  • rpm 파일 설치 방법
    • dnf install rpm파일이름.rpm
  • 업데이트 가능한 목록 보기
    • dnf check-update
  • 업데이트
    • dnf update 패키지이름
  • 삭제
    • dnf remove 패키지이름
  • 정보 확인
    • dnf info 패키지 이름
  • 패키지 그룹 설치
    • dnf groupinstall “패키지그룹이름”
  • 패키지 리스트 확인
    • dnf list 패키지이름
  • 특정 파일이 속한 패키지 이름 확인
    • dnf provides 파일이름
  • GPG 키 검사 생략
    • dnf install —nogpgcheck rpm파일이름.rpm
  • 기존 저장소 목록 지우기
    • dnf clean all
  • DNF의 작동 방식과 설정 파일
    • dnf install 입력
    • /etc/yum.repos.d/ 디렉터리의 repo 파일을 열어서 URL 주소 확인
    • 전체 패키지 목록 파일 요청
    • 전체 패키지 목록 파일만 다운로드
    • 설치할 패키지와 관련된 패키지의 이름을 화면에 출력
    • y를 입력하면 설치에 필요한 패키지 파일 요청
    • 설치할 패키지 파일을 다운로드해서 자동 설치

파일 압축

  • xz
    • 확장명 xz로 파일을 압축하거나 압축 해제한다.
    • -d 압축해제
    • -l 파일 목록과 압축률 등을 출력
    • -k 압축 후 기존 파일을 삭제하지 않음
  • bzip2
    • 확장명 bz2로 파일을 압축하거나 압축 해제한다.
  • bunzip2
    • bz2로 압축 파일을 푼다.
  • gzip
    • 확장명 gz로 파일을 압축하거나 dz 파일을 압축 해제한다.
  • gunzip
    • gz 파일을 압축 해제한다.
  • zip
    • Windows와 호환되는 확장명 zip으로 압축한다.
  • unzip
    • zip 파일을 압축 해제한다.

파일 묶기

  • tar
    • 확장명 tar로 파일을 묶거나 tar 묶음 파일을 푼다.
    • 동작
      • c 새로운 묶음 파일 생성
      • x 묶음 파일을 품
      • t 묶음 파일 해제 전에 묶인 경로를 표시
      • C 지정된 디렉터리에 묶음 파일을 품
    • 옵션
      • f 묶음 파일의 이름을 지정
      • v 파일이 묶이거나 풀리는 과정을 표시
      • J tar + xz
      • z tar + gzip
      • j tar + bzip2

파일 위치 검색

  • find 경로옵션조선 action
    • 옵션
      • -name
      • -user 소유자
      • -newer 전, 후
      • -perm 허가권
      • -size 크기
    • 동작
      • -print 기본값
      • -exec 외부 명령 실행
  • which 실행파일이름
    • PATH에 설정된 디렉터리만 섬색
  • whereis 실행파일이름
    • 실행 파일 및 소스, man 페이지 파일까지 검색
  • locate 파일이름
    • 파일 목록 데이터베이스에서 실행 파일을 검색
    • 검색이 빠르지만, updatedb 명령을 1회 실행해야 사용 가능

CRON과 AT

  • cron
    • 주기적으로 반복되는 시스템 작업을 예약하는 소프트웨어
    • /etc/crontab의 형식
      • 분 | 시 | 일 | 월 | 요일 | 사용자 | 실행명령
  • at
    • 일회성 작업을 예약하는 명령
    • 명령 사용법
      • at 일시 명령을 입력 후 Enter
      • at> 프롬프트에서 예약할 명령을 입력 후 Enter 누름
      • 예약할 명령을 모두 입력했다면 Ctrl + D 입력
 

🌼파이프, 필터, 리디렉션

💡핵심 키워드

파이프

  • 2개의 프로그램을 연결하는 통로
  • 명령에 | 를 추가해 파이프를 표현

필터

  • 필요한 것만 걸러주는 기능
  • grep, tail, wc, sort, awk, sed 명령 등으로 사용 가능

리디렉션

  • 표준 입출력의 방향을 바꾸는 기능
  • ls -l > list.txt 해당 파일에 명령의 결과를 저장
  • ls -l >> list.txt 해당 파일이 기존에 있으면 기존의 내용에 이어 씀
  • sort < list.txt 해당 파일을 정렬해서 화면에 출력
 

🏁결론

해당 내용을 정리하면서 관리자로서 리눅스를 운영할 때 필요한 기본 내용을 학습할 수 있었다.
특히 서버를 구축하는 데 알아야 할 필수 개념과 명령을 익힐 수 있었다.
Share article

More articles

See more posts

👨🏻‍💻DriedPollack's Blog