리눅스 필수 명령어 (2일차)

Tyun_Record·2023년 8월 9일
0

시작, 종료

  • 종료
    • 'shutdown -P now' , 'half -p' , 'init 0'
      • now 대신 +숫자 또는 10:00과 같이 사용 가능 (예약종료)
  • 재부팅
    • 'shutdown -r now' , 'reboot' , 'init 6'
  • 로그아웃
    • 'logout' , 'exit'
      • GUI에서는 logout 사용

가상콘솔

  • 가상 모니터라고 생각하면 됨
  • 여러 명의 사용자가 동시 접속 가능
  • CentOS는 총 5~6개 가상 콘솔 제공
  • 각각 가상 콘솔로 이동하는 단축키, ctrl+alt+F3 ~ F6

런 레벨(Runlevel)

  • 0 ~ 6까지 있음
  • init 명령어 뒤에 붙는 숫자임
  • CLI로 변경 (level 3)
    • ln –sf /lib/system/system/multi-user.target /etc/systemd/system/default.target
  • GUI로 변경 (level 5)
    • ln –sf /lib/system/system/graphical.target /etc/systemd/system/default.target

자동 완성

  • 일부 입력한 후에 Tab키 누르면 됨
  • 겹치는 게 있으면 안나옴, 여러번 누르면 리스트가 뜬다
  • history 명령어는 최근에 사용한 명령어를 보여줌
  • 도스 키
    • 이전에 입력한 명령어를 화살표 상/하 키를 이용하여 다시 나타내는 기능

에디터 사용

  • gedit
  • vi

    • 명령 모드에서 수정
      • r 누르고 수정
    • 명령 모드에서 커서 맨 끝으로
      • shift + g
  • 한/영 전환은 shift+spacebar, 그냥 영어로 쓰는게 편함

도움말 사용법과 마운트

  • 'man 명령어' 사용하면 도움말 출력

    • ex ) man ls
  • mount

    • 보조기억장치(HDD, FDD, CD-ROM 등)나 파일 시스템이 다른 디스크를 /의 하위 디렉터리로 연결해서 사용해주는 것
    • umount 방법
      • umount /dev/cdrdom
    • umount 후 다시 mount 방법 ( 디렉토리 간단하게 하기 위해 )
      • mount /dev/sr0 /test (test는 mkdir로 생성한 디렉토리)

기본 명령어

  • ls
    • 해당 디렉터리에 있는 파일의 목록을 나열
      • ls /etc/sysconfig
  • cd
    • 디렉터리를 이동
      • cd ../etc/sysconfig
      • cd linktest
      • . > 현재 디렉터리
      • .. > 현재의 상위 디렉터리
  • pwd
    • 현재 디렉터리의 전체 경로를 출력
  • rm
    • 파일이나 디렉터리를 삭제
      • rm -rf abc
  • cp
    • 파일이나 디렉터리를 복사
      • cp abc.txt cab.txt (abc 복사, cba에 붙여넣기)
  • touch
    • 크기가 0인 새 파일을 생성, 이미 존재하는 경우 수정 시간 병경
      • touch abc.txt
  • mv
    • 파일과 디렉터리의 이름을 변경하거나 위치 이동 시 사용
      • mv abc.txt ww.txt
  • mkdir
    • 새로운 디렉터리를 생성
      • mkdir abc
  • rmdir
    • 디렉터리 삭제 (비어 있어야 함)
      • rmdir abc
  • cat
    • 텍스트로 작성된 파일 화면에 출력
      • cat a.txt b.txt
  • head, tail
    • 텍스트로 작성된 파일의 앞 10행 또는 마지막 10행만 출력
      • head anaconda-ks.cfg, tail -5 anaconda-ks.cfg (5줄만 출력)
  • more
    • 텍스트로 작성된 파일을 화면에 페이지 단위로 출력
      (space bar로 다음 페이지, b로 앞페이지, q로 종료)
      • more anaconda-ks.cfg
  • less
    • more와 용도가 비슷, 하지만 기능이 더 확장됨
      (more + page up&down, 화살표 가능)
      • less anaconda-ks.cfg

  • file
    • File 종류 표시
      • file anaconda-ks.cfg
  • clear

사용자와 그룹

  • 리눅스는 다중 사용자 시스템

  • 기본적으로 root의 슈퍼유저가 있으며, 모든 작업 권한이 있음

  • 모든 사용자는 하나 이상의 그룹에 소속

  • 사용자는 /etc/passwd 파일에 정의 되어 있음

  • 사용자 이름:암호:사용자 ID:사용자가 소속된 그룹 ID:전체 이름:홈: 디렉터리:기본 셀

  • 사용자의 비밀번호는 /etc/shadow 파일에 정의되어 있음

  • 그룹은 /etc/group 파일에 정의되어 있음

    • 그룹명:비밀번호:그룹id:그룹에 속한 사용자명
  • 사용자 및 그룹 관련 명령어

    • useradd
      • 새로운 사용자 추가
        • useradd testuser
  • passwd

    • 사용자의 비밀번호 지정 및 변경
      • passwd testuser
  • usermod

    • 사용자의 속성 변겅
      • usermod -g root testuser
  • userdel

    • 사용자 삭제
      • userdel testuser
  • chage

    • 사용자 암호 주기적으로 변경하도록 설정
      • chage -m 2 testuser ( 2달마다 변경 )
  • groups

    • 현재 사용자가 속한 그룹 보여줌
      • groups
  • groupadd

    • 새로운 그룹 생성
      • groupadd newgroup
  • groupmod

    • 그룹의 속성 변경
      • groupmod -n newgruop mygroup
  • groupdel

    • 그룹 삭제
      -groupdel newgroup
  • gpasswd

    • 그룹의 암호를 설정하거나, 그룹의 관리를 수행
      • gpasswd newgroup

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

  • 파일 유형

    • 디렉터리일 경우는 d, 일반적 파일은 -로 표시
  • 파일 허가권 ( Permission )

    • "rw-", "r--", "r--", 3개씩 끊어서 읽음 ( read, write, execute )
    • 첫 번째 "rw-"는 소유자의 파일접근 권한
    • 두 번째의 "r--"는 그룹의 파일접근 권한
    • 세 번째의 "r--"는 그 외의 사용자의 파일접근 권한
    • 숫자로도 표시 가능 (8진수)
    • w는 혼자 표시 불가, r이 같이 있어야함
  • chmod 명령

    • 파일 허가권 변경 명령어
    • ex) # chmod 777 sample.txt
  • 파일 소유권 ( Ownership )

    • 파일을 소유한 사용자와 그룹을 의미
  • chown/chgrp 명령

    • 파일의 소유권을 바꾸는 명령어
    • ex) # chown centos.centos sample.txt (소유자와 그룹을 동시에 변경)
    • ex) # chown centos sample.txt 및 # chgrp centos sample.txt
  • 사용자는 root에 접근 권한 없음!!

INODE

  • 리눅스 / 유닉스 파일 시스템에서 사용하는 자료구조
  • 파일이나 디렉터리의 여러가지 정보를 가지고 있음
    • 주민번호라고 생각하면 됨!!
  • 모든 파일이나 디렉터리는 1개씩 inode를 가짐, inode에는 파일의 소유권, 허가권, 파일종류 등의 정보와 해당 파일의 실제위치를 가지고 있음
  • inode들이 모여있는 공간은 inode 블록

링크

  • 파일의 링크에는 하드 링크와 심볼릭 링크(소프트 링크)가 있음
  • 하드 링크를 생성하면 "하드링크파일"만 하나 생성되며 같은 inode1을 사용
    • ln 링크대상파일이름 링크파일이름

  • 심볼릭 링크를 생성하면 새로운 inode2를 만들고, 데이터는 원본 파일을 연결하는 효과
    • ln -s 링크대상파일이름 링크파일이름

    RPM

    • windows의 setup.exe와 비슷한 설치 파일
    • 확장명은 *.rpm, 이를 패키지라고 부름.
    • 자주 사용하는 RPM 명령어 옵션
      • 설치 : rpm -Uvh 패키지파일이름.rpm
        • U > (대문자) 패키지가 설치/업그레이드
        • v > 설치과정의 확인
        • h > 설치진행과정을 # 마크로 화면에 출력
      • 삭제 : rpm -e 패키지이름
      • 이미 설치된 패키지 질의
        • rpm -qa 패키지 이름 > 패키지가 설치되었는지 확인
        • rpm -qf 파일의절대경로
          • 파일이 어느 패키지에 포함된 것인지 확인
      • 아직 설치되지 않은 rpm 파일에 대한 질의
        • rpm -qlp 패키지파일이름.rpm
          • 패키지 파일에 어떤 파일들이 포함되었는지 확인
        • rpm -qip 패키지파일이름.rpm > 패키지 파일의 상세정보
  • RPM 단점
    • '의존성' 문제
      • A패키지가 설치되기 위해서 B패키지가 필요할 경우, RPM으로는 해결이 까다롭
      • 이를 해결하기 위해 DNF(또는 YUM)가 등장

0개의 댓글