ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux 입문] 필수 개념과 명령어 (1)
    맨땅에코딩/Linux 2020. 6. 19. 15:53

     

    마운트(Mount)?

    : 하드디스크의 파티션, CD/DVD, USB 메모리 등 사용하려면 특정한 위치에 연결을 해 줘야 한다.

    이렇게 물리적인 장치를 특정한 위치(대개는 디렉토리)에 연결시켜 주는 과정 

     

    mount [물리장치] [연결할 디렉토리위치]

    df -h : 현재 마운트된 저장 장치 목록 확인


    [기본명령어]

     

    ls    도스의  "dir" 과 같은 역할로 해당 디렉토리에 있는 파일 목록을 나열한다.

          [사용 예]

          ls : 현재 디렉토리의 파일 목록

          ls /usr/bin :  /usr/bin/ 디렉토리의 목록

          ls -a : 현재 디렉토리의 목록 (숨김 파일 포함)

          ls -l  : 현재 디렉토리의 목록을 자세히 보여줌

          ls *.txt :  확장자가 txt인 목록을 보여줌

          ls -l  /usr/bin/a*   :  /usr/bin/ 디렉토리에 있는 목록 중 앞 글자가 'a' 인것의 목록을 자세히 보여줌

     

    cd   디렉토리를 이동한다.

          [사용 예]

         cd : 현재 사용자의 홈 디렉토리로 이동함

         cd ~root : root 사용자의 홈 디렉토리로 이동함

         cd .. : 바로 상위 디렉토리로 이동  ".." 은 현 디렉토리의 부모 디렉토리를 의미함 

         cd /usr/bin : '/usr/bin' 디렉토리로 이동함 (절대경로)

         cd ../usr/bin : 상대경로로 이동함

     

    pwd 현재 디렉토리의 전체 경로를 출력한다.

     

    rm     파일이나 디렉토리를 삭제한다. 해당 파일이나 디렉토리에 삭제 권한이 있어야 한다.

             [사용 예]

             rm abc.txt : 그냥 삭제(내부적으로 'rm -i'로 연결함)

             rm -i abc.txt : 삭제 시 확인여부 물어봄

             rm -r abc : 디렉토리 삭제

             rm -rf abc : abc 디렉토리와 그 하부를 강제로 전부 삭제

     

    cp     파일이나 디렉토리를 복사한다. 새로 복사한 파일은 사용자의 소유가 된다.

            [사용 예]

            cp abc.txt cba.txt : abc.txt 파일을 cba.txt 파일로 복사

            cp -r abc cba     : 디렉토리 복사

         

    touch 크기가 0인 새 파일을 생성하거나 이미 존재하는 파일인 경우 수정 시간을 변경한다.

             [사용 예]

             touch abc.txt  :  파일이 없을 경우엔 abc.txt라는 빈 파일을 생성하고 abc.txt가 있을 경우에는 파일의

                               수정 시간을 현재 시각으로 변경함

     

    mv      파일과 디렉토리의 이름을 변경하거나 위치 이동 시 사용한다.

              [사용 예]

              mv aaa bbb ccc ddd  : aaa,bbb,ccc 파일을 ddd 디렉토리로 이동

              mv abc.txt www.txt : 이름 변경 

     

    mkdir  새로운 디렉토리를 생성한다. 생성한 디렉토리는 명령어를 수행한 사용자의 소유가 된다.

              [사용 예]

              mkdir abc : 현재 디렉토리 아래에 abc라는 디렉토리 생성

              mkdir -p def/fgh :  현재 디렉토리 아래에 def 디렉토리 생성하고, 그 안에 fgh 디렉토리 생성

     

    rmdir   디렉토리를 삭제한다. 헤당 디렉토리의 삭제 권한이 있어야 하며, 파일이 들어 있으면 안된다.

              파일이 들어 있는 디렉토리를 삭제하려면 "rm -r"을 사용해야 한다.

             [사용 예]

             rmdir abc

     

    cat      텍스트로 작성된 파일을 화면에 출력한다. 파일의 내용을 간단히 확인하기 위해서 주로 사용한다.

             [사용 예]

             cat install.log

     

    head    텍스트로 작성된 파일의 앞 10행 또는 마지막 10행만 출력한다.

    ,tail      [사용 예]

              head install.log

              tail intall.log

     

    more     텍스트로 작성된 파일을 화면에 페이지 단위로 출력한다. [space]는 다음 페이지, [b]는 앞페이지,

                [Q]는 종료이다.

                [사용 예]

                more install.log

                more +100 install.log : 100행부터 출력해줌

     

    less       more와 용도가 비슷하지만 기능이 더 확장된 명령이다. more의 키 및 화살표, [Page Up], [Page Down]도

               작동한다.(vi의 기능이 일부 추가되었다고 생각하면 됨)

               [사용 예]

               less install.log

               less +100 install.log  : 100행부터 출력해줌

     

    file      File이 어떤 종류의 파일인지를 표시해 준다.

              [사용 예]

              file install.log

              file /bin/gzip

     

    clear    명령창을 깨끗하게 지워준다.


    [사용자와 그룹]       

     

    /etc/passwd : 사용자정보가 있는 파일

    열의미 : 사용자 이름:암호:사용자 ID:사용자가 소속된 그룹ID:전체 이름 :홈 디렉토리:기본 셸

    암호가 x : /etc/shadow 파일에 비밀번호가 지정되어있다.

     

    /etc/group : 그룹파일

    열의미 : 그룹명:비밀번호:그룹 id:그룹에 속한 사용자명

     

    [관련 명령어]

     

    useradd    새로운 사용자를 추가해준다. 이 명령을 실행하면 /etc/passwd, /etc/shadow 및 /etc/group에 새로운 행이 추

    (또는        가된다.

    adduser)   [사용 예]

                  useradd newuser

                  useradd -u 555 newuser : newuser를 생성하면서,  사용자ID를 555로 지정             

                  useradd -g mygroup newuser : newuser를 생성하면서, mygroup이라는 그룹으로 사용자를 포함시킴

                  useradd -d /newhome newuser : newuser를 생성하면서, 홈 디렉토리를 /newhome으로 지정함

                  useradd -s /bin/csh newuser : newuser를 생성하면서, 기본 셸을 /bin/csh로 지정

     

    passwd   사용자의 비밀번호를 지정하거나,변경한다.

     

    usermode  사용자의 속성을 변경한다. 옵션은 useradd와 동일하다.

                  [사용 예]

                  usermod -g root newuser : newuser의 그룹을 root 그룹으로 변경한다.

    userdel   사용자를 삭제한다.

     

    chage   사용자의 암호를 주기적으로 변경하도록 설정한다.

                 [사용 예]

                 chage -l newuser  : newuser에 설정된 사항을 확인한다.

                 chage -m 2 newuser : newuser가 설정한 암호를 사용해야 하는 최소 일자 ( 즉, 변경 후 최소 2일은 사용!)

                 chage -M 30 newuser : newuser가 설정한 암호를 사용할 수 있는 최대 일자 (즉,변경 후 최대 30일까지 사용!)

                 change -E 2020/12/31 newuser : 설정한 암호가 만료되는 날짜

                 chage -W 10 newuser : newuser가 설정한 만료되기 전에 경고하는 기간 (미지정시 기본값 7일)

     

    groups   현재 사용자가 속한 그룹을 보여준다.

     

    groupadd   새로운 그룹을 생성한다.

     

    groupmod 그룹의 속성을 변경한다.

                   [사용 예]

                   groupmod -n newgroup  mygroup  :newgroup의 이름을 mygroup으로 변경한다.

     

    groupdel  그룹을 삭제한다.

                  groupdel newgroup : 단 해당 그룹을 주요 그룹으로 지정한 사용자가 없어야 한다.

     

    gpasswd   그룹의 암호를 설정하거나, 그룹의 관리를 수행한다.

                  [사용 예]

                  gpasswd newgroup : newgroup의 암호를 지정한다.

                  gpasswd -A newuser newgroup : newuser를 newgroup의 관리자로 지정한다.

                  gpasswd -a user1 newgroup : user1을 newgroup의 사용자로 추가한다.

                  gpasswd -d user1 newgroup : user1을 newgroup의 사용자에서 제거한다.

     


    [파일과 디렉토리의 소유와 허가권]

     

    각각의 파일과 디렉토리마다 소유권 및 허가권의 속성이 있다. "ls -l" 명령을 실행하면 볼 수 있다.

     

                  

    파일 속성

    (1) 파일 유형

    • d :  디렉토리 
    • - : 일반적인 파일
    • b : 블록디바이스
    • c : 문자디바이스
    • l : 링크

     

    (2) 파일 허가권

    파일 허가권은 3개씩(소유자/그룹/그 외 사용자) 끊어 읽는다 r(read),w(write),e(execute)

    chmod : 파일 허가권을 변경하는 명령어로 root 사용자 혹은 해당 파일의 소유자만 가능하다.

    [사용예] chmod 777 install.log

    chmod u+x  : 소유자에게 실행권한을허가하라  / chmod g-rw  그룹에게 읽기쓰기권한을 제거하라

     

    (3) 파일 소유권

    파일 소유권은 파일을 소유한 사용자와 그룹을 의미한다.

    chown : 파일의 소유권을 바꾸는 명령어

    [사용예] 

    chown newuser install.log : install.log 파일의 소유자를 newuser로 변경

    chown newuser.newuser install.log : 파일의 그룹도 newuser 그룹으로 변경

    chgrp newuser install.log : 그룹만 newuser 그룹으로 변경

     

    (4) 링크(Link)

    파일의 링크에는 하드 링크(Hard Link)와 심볼릭 링크(Symbolic Link or Soft Link) 두 가지가 있다.

    ln  [링크대상파일] [링크명] : 하드링크 >> 원본파일이 이동해도 읽기가능

    ln -s [링크대상파일] [링크명] :소프트링크 >> 원본파일이 이동하면 읽기X  

     

    * 하드링크 파일 목록 확인

    stat [링크명] | grep Inode  : inode 정보 확인

    find / -inum [Inode번호] : 파일 목록 확인


    [리눅스 관리자를 위한 명령어]

     

    패키지(프로그램)을 설치하기 위해 가장 많이 사용되는 것은 RPM과 YUM이다.

    YUM이 RPM의 기능을 포함하기때문에 RPM의 개념을 익혀야 한다.

     

    (1) RPM(Redhat Package Manager)

    windows의 "setup.exe"와 비슷하게 프로그램을 설치한 후에 바로 실행할 수 있는 설치 파일을 제작

    >> *.rpm이며 이를 패키지(package)라고 부른다.

     

    (2) RPM 파일형식

    패키지이름-버전-릴리즈번호.페도라버전.아키텍처.rpm

     

    (3) 자주 쓰이는 rpm의 사용법

     

    rpm -Uvh <패키지 파일(*.rpm)>

     

    설치)

    • U -> (대문자) 기존에 패키지가 설치되지 않았다면 "i"와 가티 일반적인 설치를 하고, 기존에 설치되어 있다면 업그레이드를 한다.
    • v  -> 설치과정의 확인
    • h  -> 설치진행과정을 "#" 마크로 화면에 출력

    삭제)

    rpm -e <패키지 이름>

     

    이미 설치된 패키지 질의)

    • rpm -qa <패키지 이름>  -> 시스템에 패키지가 설치되었는지 확인
    • rpm -qf <패키지 이름>   -> 이미 설치된 파일이 어느 패키지에 포함된 것인지 확인
    • rpm -ql <패키지 이름>   -> 특정 패키지에 어떤 파일들이 포함되었는지 확인
    • rpm -qi <패키지 이름>   -> 설치된 패키지의 상세정보

    아직 설치되지 않은 rpm 파일에 대한 질의)

    rpm -qlp <패키지 파일(*.rpm)> -> 패키지 파일에 어떤 파일들이 포함되엇는지 확인

    * rpm -qip <패키지 파일(*.rpm)> -> 설치할 패키지 파일의 상세정보

    : 미리 확인할때 유용하게 사용

     

    편리한 패키지 설치,YUM (Yellowdog Updater Modified)

    RPM의 의존성 문제를 해결하기 위한 편리한 툴

     


     

    (1) YUM 개념

    "yum" 명령은 "rpm" 명령의 패키지 의존성 문제를 완전하게 해결해 준다.

    즉, 특정 패키지를 설치하고자 할때 의존성이 있는 다른 패키지를 자동으로 먼저 설치해주는 툴..!

     

    저장소의 URL :  "/etc/yum.repos.d/"

     

    (2) YUM 기본적인 사용법

     

    기본설치: yum install <패키지 이름>

    yum -y install <패키지 이름> : 무조건 yes를 입력한것으로 간주하고 자동으로 넘어감

     

    RPM파일설치 : yum install <*.rpm 파일 이름>

     

    • 업데이트 가능한 목록 보기 : yum check-update

    시스템에 설치된 패키지 중에서 업데이트가 가능한 패키지의 목록을 출력해 준다.

     

    업데이트 : yum update <패키지 이름>

    별로 쓰일일이 없다.install 명령어 입력 시 처리해주기때문

     

    • 삭제 : yum remove <패키지 이름>
    • 정보확인:yum info <패키지 이름>

    (3) YUM 고급 사용법

     

    로컬에서 설치 : yum localinsatll <*.rpm 파일>

    네트워크 없이 현재 디렉토리에 있는 *.rpm 파일을 설치할 때 사용

     

    • 패키지 그룹 설치 :yum groupinstall <패키지 그룹 이름>

      패키지 그룹에 포함되는 패키지들을 통째로 설치할 때 사용할 수 있다.

      패키지 그룹의 종류는 "yum grouplist" 명령으로 확인이 가능하다. 

       또한 패키지 그룹의 이름은 주로 띄어쓰기가 많으므로 꼭 "" 안에 써줘야 한다.

     

    • 패키지 리스트 확인 : yum list <패키지 이름>

      yum list all / yum list mysql* / yum list available

    특정 파일이 속한 패키지 이름 확인 : yum provides <파일 이름>

    GPG 키 검사 생략 : yum install --nogpgcheck <*.rpm 파일>

     

    (4) YUM 설정 파일

    /etc/yum.conf , /etc/yum.repos.d /

    : yum 명령어와 관련된 설정 파일  (이 파일의 상세한 사항은 man.yum.conf 명령으로 확인할 수 있다.)

     

    [파일의 압축과 묶기]

     

    (1) 파일 압축

    bz2, gz  : bz2 > gz 압축률이 더 좋음

    • bzip2 파일명  -> 파일명을 압축파일인 파일명.bz2로 만들어줌
    • bzip2 -d "파일명.bz2" -> "파일명.bz2" 압축파일을 일반파일인 "파일명" 으로 만들어줌
    • bunzip -> 확장명 bz2의 압축을 풀어준다.  = bzip2 -d 와 동일
    • gzip 파일명 -> 파일명을 압축파일인 파일명.gz로 만들어줌
    • gzip -d "파일명.gz" -> "파일명.gz" 압축파일을 일반파일인 "파일명"으로 만들어줌
    • gunzip 확장명 gz의 압축을 풀어준다. = gzip -d 와 동일

    (2) 파일 묶기

    tar 확장명 tar로 묶음 파일을 만들어 주거나 묶음을 풀어 준다

       동작)

        c -> 새로운 묶음

        x -> 묶인 파일을 풀어줌

        t -> 묶음을 풀기 전에 묶인 경로를 보여줌

        옵션)

        f (필수) - 묶음 파일명 지정 -> 원래 tar는 tape 장치 백업이 기본임(생략시 tape로)

        v - visual  -> 파일이 묶이거나 풀리는 과정을 보여줌

        z - tar+gzip

        j - tar+bzip2

    [사용예]

    • tar cvf  xinetd.tar /etc/xinetd.d/ -> 묶기
    • tar cvfz xinetd.tar.gz /etc/xinetd.d/ -> 묶기 + gzip 압축
    • tar cvfj  xinetd.tar.bz2 /etc/xinetd.d/ -> 묶기 + bzip2 압축
    • tar tvf  xinetd.tar -> 파일 확인
    • tar xvf  xinetd.tar -> tar 풀기
    • *tar xvfz  xinetd.tar.gz -> gzip 압축 해제 + tar 풀기
    • *tar xvfj  xinetd.tar.bz2 -> bzip2 압축 해제 + tar 풀기

     

    [파일 위치 검색]

     

    find     

    [경로]  

    [옵션] -name, -user(소유자), -newer(전,후), -perm(허가권), -size(크기)

    [조건]

    [action] -print(디폴트), -exec(외부명령 실행)

     

    [사용예]

    • find /etc -name "*.conf" -> /etc 디렉토리 하위에 확장명이 "*.conf"인 파일 검색
    • find /home -user fedora -> /home 디렉토리 하위에 소유자가 fedora인 파일 검색
    • find ~ -perm 644 -> 현재 사용자의 홈디렉토리 하위에 허가권이 644인 파일 검색
    • find /bin -size +10k -size -100k -> /bin 디렉토리 하위에 파일 크기가 10KB~100KB인 파일 검색
    • find ~ -size 0k -exec ls -l { } \;  -> 현재 사용자의 홈 디레고리 하위에 파일 크기가 0인 파일의 목록을 상세히 출력
    • find /home -name "*.swp" -exec rm { } \; -> /home 디렉토리 하위에 확장명이 "*.swp"인 파일을 삭제

    -exec \n  : 외부 명령어의 시작과 끝을 표시함

     

    which <실행파일명>   PATH에 설정된 디렉토리만 검색

    whereis <실행파일명> 실행 파일 및 소스, man페이지 파일까지 검색

    locate <파일명> 파일 목록 데이터 베이스에서 검색하기 때문에 매우 빠르고 유용하지만 updatedb 명령을 1회 수행해 줘야

    사용할 수 있음

    또한 updatedb 명령 이후에 설치된 실행 파일은 찾을 수 없음

     

    [CRON과 AT]

     

    (1) cron

    주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정해 놓는 것을 cron이라고 부른다. 

    관련된 데몬(서비스)은 "crond"이며, 관련 파일로는 "/etc/crontab"이 있다.

     

    (2) at

    at은 일회성 작업을 예약하는 것이다. 즉, at는 예약을 해놓으면 한 번만 실행되고 소멸되는 것이다.

     

    at <시간> 3:00am tomorrow / 11:00pm January 30 / now + 1 hours 

    완료되면 [Ctrl+D] 

    at -l  -> 확인

    atrm <작업번호> -> 취소

     


     

     

Designed by Tistory.