ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스 기본 명령어
    고병재 2021. 9. 16. 00:15

    shutdown P : 10분후 종료(p : power off)

    shutdown r 22:00 : 오후 10시에 재부팅

    shutdown c : 예약된 shutdown 취소

    shutdown k +15 : 접속한 사용자에게 15분 후에 종료된다고 알림(실제로 종료 X)

     

    우분투 종료 방법 : poweroff, shutdown P now, halt P, init 0

    우분투 재부팅 방법 : reboot, shutdown r now, init6

     

    런레벨 영문 모드 설명 비고
    0 Power Off 종료 모드  
    1 Rescue 시스템 복구 모드 단일 사용자 모드
    2 Multi-User   사용하지 않음
    3 Multi-User 텍스트 모드의 다중 사용자 모드  
    4 Multi-User   사용하지 않음
    5 Graphical 그래픽 모드의 다중 사용자 모드  
    6 Reboot    

     

    ls l runlevel?.target 런레벨 종류 확인

    ls l /lib/systemd/system/default.target default.target은 시스템에 기본적으로 설정된 런레벨

    ln sf /lib/systemd/system/multi-user.target /lib/systemd/system/default.target 부팅 시 텍스트 모드로 부팅되도록 런레벨 변경

     

    ls

    LiSt의 약자로 Windows'dir'과 같은 역할을 한다. , 해당 디렉터리(=폴더)에 있는 파일의 목록을 나열한다.

    [사용 예]

    # ls - 현재 디렉터리의 파일 목록

    # ls /etc/sysconfig - /etc/sysconfig 디렉터리의 목록

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

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

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

    # ls -l /etc/sysconfig/a* - etc/sysconfig 디렉터리에 있는 목록 중 앞 글자가

    'a'인 것의 목록을 자세히 보여줌

     

    cd

    Change Directory의 약자로 디렉터리를 이동하는 명령이다.


    [사용 예]

    # cd - 현재 사용자의 홈 디렉터리로 이동, 만약 현재 사용자가 root

    '/root' 디렉터리로 이동

    # cd ~fedora - fedora 사용자의 홈 디렉터리로 이동

    # cd .. - 바로 상위의 디렉터리로 이동. '..'은 현 디렉터리의 부모 디렉터 리를 의미(예를 들어, 현재 디렉터리가 /etc/sysconfig, 바로 상위인 '/etc' 디렉터리로 이동)

    # cd /etc/sysconfig - /etc/sysconfig 디렉터리로 이동(절대 경로)

    # cd ../etc/sysconfig - 상대 경로로 이동. 현재 디렉터리의 상위('..')로 이동한 후, 다시

    /etc/sysconfig로 이동

     

    pwd

    Print Working Directiory의 약자로 현재 디렉터리의 전체 경로를 화면에 보여준다

     

    [사용 예]

    # pwd - 현재 작업 중인 디렉터리의 경로 출력

     

    rm

    ReMove의 약자로 파일이나 디렉터리를 삭제한다. 당연히 파일이나 디렉터리를 삭제할 권한이 있어야 한다. , root 사용자는 모든 권한이 있으므로 이 명령에 제약이 없다.

    # rm abc.txt - 해당 파일을 삭제(내부적으로 'rm-i'로 연결됨)

    # rm -i abc.txt - 삭제 시 정말 삭제할 지 확인하는 메시지가 나옴

    # rm f abc.txt - 삭제 시 확인하지 않고 바로 삭제(fForce의 약자)

    # rm r abc - 해당 디렉터리를 삭제함(rRecursive의 약자)

    # rm -rf abc - r 옵션과 f 옵션을 합친 것으로, abc 디렉터리와 그 아래에 있는 하위 디렉터리를 강제로 전부 삭제(편리하지만 상당히 주의해서 사용해야 함)

     

    cp

    CoPy의 약자로 파일이나 디렉터리를 복사한다. 새로 복사한 파일은 복사한 사용자의 소유가 된다. 그러므로 명령어를 실행하는 사용자는 해당 파일의 읽기 권한이 필요하다

     

    [사용 예]

    # cp abc.txt cba.txt - abc.txtcba.txt라는 이름으로 바꿔서 복사

    # cp -r abc cba - 디렉터리 복사

     

    touch

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

     

    [사용 예]

    # touch abc.txt - 파일이 없을 경우엔 abc.txt라는 빈 파일을 생성하고,

    abc.txt가 있을 경우엔 파일의 최종 수정 시간을 현재

    시간으로 변경

     

     

    mv

    MoVe의 약자로 파일이나 디렉터리의 이름을 변경하거나, 다른 디렉터리로 옮길 때 사용한다

     

    [사용 예]

    # mv abc.txt /etc/sysconfig/ - abc.txt/etc/sysconfig/ 디렉터리로 이동

    # mv aaa bbb ccc ddd - aaa, bbb, ccc 파일을 '/ddd' 디렉터리로 이동

    # mv abc.txt www.txt - abc.txt의 이름을 www.txt로 변경해서 이동

     

    mkdir

    MaKe DIRectory의 약자로 새로운 디렉터리를 생성한다. 생성된 디렉터리는 명령어를 실행한 사용자의 소유가 됨 

     

    [사용 예]

    # mkdir abc - 현재 디렉터리 아래에 '/abc'라는 디렉터리 생성

    # mkdir -p /def/fgh - /def/fgh 디렉터를 생성하는데, 만약 '/fgh'의 부모

    디렉터리인 '/def' 디렉터리가 없다면 자동으로 생

    성됨(pParents의 약자)

     

     

    rmdir

    ReMove DIRectory의 약자로 디렉터리를 삭제한다. 해당 디렉터리의 삭제 권한이 있어야 하며, 디렉터리는 비어 있어야 한다. 파일이 들어 있는 디렉터리를 삭제하려면 'rm -r'을 실행해야 한다

     

    [사용 예]

    # rmdir abc - '/abc' 디렉터리를 삭제

     

    cat

    conCATenate의 약자로 파일의 내용을 화면에 보여준다. 여러 개 파일을 나열하면 파일을 연결해서 보여준다

     

    [사용 예]

     

    # cat a.txt b.txt - a.txtb.txt를 연결해 파일의 내용을 화면에 보여줌

     

    head, tail

    텍스트 형식으로 작성된 파일의 앞 10행 또는 마지막 10행만 화면에 출력한다

     

    [사용 예]

    # head anaconda-ks.cfg - 해당 파일의 앞 10행을 화면에 출력

    # head -3 anaconda-ks.cfg - 3행만 화면에 출력

    # tail 5 anaconda-ks.cfg - 마지막 5행만 화면에 출력

     

     

    more

    텍스트 형식으로 작성된 파일을 페이지 단위로 화면에 출력한다. Space를 누르면 다음 페이지로 이동하며, B를 누르면 앞 페이지로 이동한다. Q를 누르면 종료한다

     

    [사용 예]

    # more anaconda-ks.cfg

    # more +100 anaconda-ks.cfg - 100행부터 출력

     

     

    less

    'more' 명령어와 용도가 비슷하지만, 기능이 더 확장되어 있다. 'more'에서 사용하는 키도 사용할 수 있으며, 추가로 화살표 키나 Page Up, Page Down도 사용할 수 있다

     

    [사용 예]

    # less anaconda-ks.cfg

    # less +100 anaconda-ks.cfg - 100행부터 출력

     

     

    file

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

     

    [사용 예]

     

    # file anaconda-ks.cfg - anaconda-ks.cfg는 텍스트 파일이므로 아스키(ASCII) 파일로 표시됨

    # file /usr/bin/gzip - gzip은 실행 파일이므로 Executable 파일로 표시됨

     

    clear

    현재 사용 중인 터미널 화면을 깨끗하게 지워준다

     

    [사용 예]

    # clear

     

    사용자와 그룹

    리눅스는 다중 사용자 시스템이다. 1대에 리눅스에 사용자 여러 명이 동시에 접속해서 사용할 수 있는 시스템이다. 기본적으로 root라는 이름을 가진 슈퍼 유저가 있다. root 사용자는 시스템의 모든 작업을 실행할 수 있는 권한이 있다. 또한 시스템에 접속할 수 있는 사용자를 생성할 수 있는 권한도 있다.

     

    모든 사용자는 하나 이상의 그룹에 소속되어 있어야 한다.

     

    사용자 및 그룹과 관련된 명령어

     

     

    useradd(또는 adduser)

     

    새로운 사용자를 추가해준다. 이 명령어를 실행하면 /etc/passwd, /etc/shadow, /etc/group 파일에 새로운 행이 추가된다.

     

     

     

    [사용 예]

     

    # useradd newuser - newuser라는 이름의 사용자 생성

    # useradd -u 1111 newuser - newuser 사용자를 생성하면서, 사용자 ID1111로 지정

    # useradd -g mygroup newuser - newuser 사용자를 생성하면서, mygroup에 사용자를 포함

    # useradd -d /newhome newuser - newuser 사용자를 생성하면서, 홈 디렉터리를 /newhome으로 지정

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

     

    passwd

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

     

    [사용 예]

    # passwd newuser - newuser 사용자의 비밀번호를 지정(또는 변경)

     

     

     

     

    usermod

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

     

    [사용 예]

    # usermod -g root newuser - newuser 사용자의 그룹을 root 그룹으로 변경

     

    userdel

    사용자를 삭제한다.

     

    [사용 예]

    # userdel newuser - newuser 사용자를 삭제

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

     

     

    chage

     

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

     

    [사용 예]

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

    # chage -m 2 newuser - newuser가 설정된 암호를 사용해야 하는 최소 일자

    (, 변경 후 최소 2일은 사용해야 함)

    # chage -M 30 newuser - newuser가 설정한 암호를 사용할 수 있는 최대 일자

    (, 변경후 최대 30일 까지 사용 할 수 있음)

    # chage -E 2013/12/12 newuser - newuser가 설정한 암호가 만료되는 날짜

    (, 2013/12/12 까지만 사용할 수 있음)

    # chage -W 10 newuser - newuser가 설정한 만료되기 전에 경고하는 기간

    미지정시 기본값 7(, 암호가 만료되기 10

    전부터 경고 메시지가 나감)

     

    groups

    사용자가 소속된 그룹을 보여준다.

     

    [사용 예]

    # groups - 현재 사용자가 소속된 그룹을 보여줌

    # groups newuser - newuser가 소속된 그룹을 보여줌

     

     

    groupadd

    새로운 그룹을 생성한다.

     

    [사용 예]

    # groupadd newgroup - newgroup이라는 그룹을 생성

    # groupadd -g 2222 newgroup - newgroup 그룹을 생성하면서 그룹 ID2222로 지정

     

     

     

     

    groupmod

    그룹을 속성을 변경한다.

     

     

     

    [사용 예]

     

    # groupmod -n newgroup mygroup - newgroup 그룹의 이름을 mygroup으로 변경

     

     

    groupdel

    그룹을 삭제한다.

     

    [사용 예]

    # groupdel newgroup - newgroup 그룹을 삭제(, 해당 그룹을 주요 그룹으로 지정한 사용자가 없어야 함)

     

     

    gpasswd

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

     

    [사용 예]

    # gpasswd newgroup - newgroup 그룹의 암호를 지정

    # gpasswd -A user1 newgroup - user1 사용자를 newgroup 그룹의 관리자로 지정

    # gpasswd -a user1 newgroup - user1newgroup 그룹의 사용자로 추가

    # gpasswd -d user1 newgroup - user1newgroup 그룹의 사용자에서 제거

     

     

     

    파일 허가권

     

    파일 허가권은 'rw-', 'r--', 'r--' 3개씩 끊어서 인식하면 된다.

    'r'read, 'w''write, 'x'execute의 약자다. 'rw-'는 읽거나 쓸 수는 있지만 실행할 수는 없다는 의미다. 'rwx'로 표시되면 읽고, 쓰고, 실행이 가능한 파일이라는 의미다.

    1번째 'rw-': 소유자의 파일 접근 권한

    2번째 'r--': 그룹의 파일 접근 권한

    3번째 'r--': 그 외 사용자의 파일 접근 권한

    sample.txt - 소유자는 읽거나 쓸 수 있고 그룹은 읽을 수만 있고, 그 외 사용자도 읽을 수만 있도록 허가되어 있다.

     

    sample.txt 파일의 허가권을 아래와 같이 숫자로도 표현이 가능하다.

     

     

    디렉터리(=폴더)는 해당 디렉터리로 이동하려면 실행('x') 권한이 반드시 있어야 한다. 그래서 디렉터리는 일반적으로 소유자/그룹/기타 사요자 모두에게 실행('x') 권한이 설정되어 있을 것이다.

     

     

     

    명령어

     

     

    chmod

     

    root 사용자 또는 해당 파일의 소유자만이 실행할 수 있다.

     

    예를 들어 'chmod 777 sample.txt'를 실행하면 sample.txt 파일은 모든 사용자가 읽고, 쓰고, 실행할 수 있는 파일이 된다.

     

    상대 모드로도 사용할 수 있다.

     

    'chmod u+x 파일이름' - 소유자에게 실행 권한을 허가하라(+)는 의미

     

    u-wx - 사용자에게 쓰기와 실행권한을 제거하라는 의미

     

    g+rx - 그룹에게 읽기와 실행 권한을 허가하라

     

    o+rwx - 그 외 사용자에게 읽기/쓰기/실행 권한을 허가하라

     

     

     

     

     

    파일 소유권

     

    파일을 소유한 사용자와 그룹을 의미

    smaple.txt 파일은 root라는 사용자가 소유자, 그룹도 root

     

    명령어

     

    chown

     

    'chown 새로운사용자이름(.새로운그룹이름) 파일이름의 형식으로 사용

     

    chown fedora sample.txt - smaple.txt 파일의 소유자를 fedora로 변경

     

    chown fedora.fedora sample.txt - 파일의 그룹도 fedora 그룹으로 변경

     

    chgrp fedora sample.txt - 그룹만 fedora 그룹으로 변경

     

     

     

     

     

    링크

    파일의 링크는 하드 링크, 심볼릭 링크 2가지가 있다.

     

     

     

    하드 링크와 심볼릭 링크의 비교

     

     

     

    원본 파일이 inode1을 사용할 때, 하드 링크를 생성하면 '하드 링크 파일'만 하나 생성되며 같은 inode1을 사용하게 된다. 하드 링크를 생성하려면 'ln 링크대상파일이름 링크파일이름'을 실행하면 된다.

     

    심볼릭 링크를 생성하면 새로운 inode2를 만들고, 데이터는 원본 파일과 연결되는 효과를 갖는다. 일반적으로는 주로 심볼릭 링크를 사용하며, Windows의 바로 가기 아이콘도 심볼릭 링크에 해당된다. 심볼릭 링크를 생성하려면 'ln -s 링크대상파일이름 링크파일이름'을 실행하면 된다.

     

     

     

    inode

    inode는 리눅스/유닉스의 파일 시스템에서 사용하는 자료구조를 말하는데, 파일이나 디렉터리의 여러 가지 정보가 있다. 모든 파일이나 디렉터리는 각자 1개씩의 inode가 있으며, inode에는 해당 파일의 소유권, 허가권, 파일 종류 등의 정보와 해당 파일의 실제 데이터가 어디에 있는지 위치(=주소)도 있다. 이러한 inode가 모여 있는 공간이 inode 블록이며 일반적으로 전체 디스크 공간의 1% 정도를 차지한다. Data 블록은 실제 데이터가 저장되어 있는 디스크 공간으로 전체 디스크의 대부분을 차지한다.

     

     

    apt : 패키지를 편리하게 설치가능

     

    apt 명령어는 dpkg 명령어의 패키지 의존성 문제를 해결해줌

     

    기본설치 방법 : apt y install 패키지이름

     

    패키지 목록 업데이트 : apt update

     

    기존 설치된 패키지를 제거 : apt remove 패키지이름

     

    기존 설치된 패키지를 설정파일을 포함하여 완전히 제거 : apt purge

     

    패키지 정보 보기 : apt-cache show 패키지 이름

     

    패키지 의존성 확인 : apt-cache depends 패키지 이름

    패키지 역 의존성 확인 : apt-cache-rdepends 패키지 이름

     

    tar

     

    확장명 tar로 묶음 파일을 만들거나 묶음을 풀어주는 명령어.

     

     

    [ 동작 ]

     

    c : 새로운 묶음을 만든다.

    x : 묶인 파일을 푼다.

    t : 묶음을 풀기 전에 묶인 경로를 보여준다.

    C : 묶음을 풀 대 지정된 디렉터리에 압축을 푼다. 지정하지 않으면 묶을 때와 동일한 디렉터리에 묶음이 풀린다.

     

     

    [ 옵션 ]

     

    f : 필수 옵션. 묶음 파일의 이름을 지정한다. 원래 tar는 테이프 장치 백업이 기본이다.(생략하면 테이프로 보내진다.)

    v : visual의 의미로 파일이 묶이거나 풀리는 과정을 보여준다.(생략 가능)

    J : tar + xz

    z : tar + jzip

    j : tar + bzip2

     

     

    [ 사용 예 ]

     

    tar cvfJ my.tar.xz /etc/sysconfig/

    : 묶기 + xz 압축

    tar cvfz my.tar.gz /etc/sysconfig/

    : 묶기 + gzip 압축

    tar cvfj my.tar. bz2 /etc/sysconfig/

    : 묶기 + bzip2 압축

    tar tvf my.tar

    : 파일 확인

    tar xvf my.tar

    : tar 풀기

    tar Cxvf newdir my.tar

    : newdirtar 풀기

    tar xfJ my.tar.xz

    : xz 압축 해제 + tar 풀기

    tar xfz my.tar.gz

    : gzip 압축 해제 + tar 풀기

    tar xfj my.tar.bz2

    : bzip2 압축 해제 + tar 풀기

     

    파일압축하기

     

    xz

     

    확장명 xz로 압축하거나 풀어주는 명령어. 비교적 최신의 압축 명령으로 압축률이 뛰어나다.

     

    º 옵션

     

    [xz 파일이름]

     

    : '파일이름'을 압축 파일인 '파일이름.xz'로 만든다. 기본 파일은 삭제된다.

     

    [xz -d 파일이름.xz]

     

    : '파일이름.xz' 압축 파일을 일반 파일인 '파일이름'으로 만든다.

     

    [xz -l 파일이름.xz]

     

    : '파일이름.xz' 압축 파일에 포함된 파일 목록과 압축률 등을 출력(list)

     

    [xz -k 파일이름.xz]

     

    : 압축 후에 기존 파일을 삭제하지 않고 그대로 둠(keep)

     

     

     

    bzip2

     

    확장명 bz2로 압축하거나 풀어주는 명령어.

     

    º 옵션

     

    [bzip2 파일이름]

     

    : '파일이름'을 압축 파일인 '파일이름.bz2'로 만든다.

     

    [bzip2 -d 파일이름.bz2]

     

    : '파일이름.bz2' 압축 파일을 일반 파일인 '파일이름'으로 만든다.

     

     

     

    bunzip2

     

    확장명 bz2의 압축을 풀어주는 명령어. [bzip2 -d]와 동일.

     

     

     

    gzip

     

    확장명 gz으로 압축하거나 풀어주는 명령어.

     

    º 옵션

     

    [gzip 파일이름]

     

    : '파일이름'을 압축 파일인 '파일명.gz'로 만든다.

     

    [gzip -d 파일이름.gz]

     

    : '파일이름.gz' 압축 파일을 일반 파일인 '파일이름'으로 만든다.

     

     

     

    gunzip

     

    확장명 gzip의 압축을 풀어주는 명령어. [gzip -d]와 동일.

     

     

     

    gzip

     

    윈도우용과 호환되는 확장명 gzip으로 압축하거나 풀어주는 명령어.

     

    º 옵션

     

    [zip 생성할파일이름.zip 압축할파일이름]

     

    : 압축할 파일 이름을 '새로생성될파일이름'으로 만든다.

     

     

     

    unzip

     

    윈도우용과 호환되는 확장명 gzip으로 묶은 압축 파일을 풀어주는 명령어.

     

    º 옵션

     

    [unzip 압축할파일이름.zip]

     

    : '압축할파일이름.zip'의 압축을 풀어준다.

     

     

    파이프

     

    파이프는 2개의 명령어(프로그램)을 연결해주는 연결통로를 의미한다.

     

    '|' 를 이용하여 사용하면된다.

     

     

     

    사용 예제

     

    ls -l /etc | more

    많은량의 파일리스트를 확인할 때 페이지로 나눠서 볼수 있게한다는 의미임

     

     

     

    필터

     

    필터는 필요한 것만 걸러주는 명령어이다. grep, tail, wc, sort, awk, sed 등의 명령어가 있는데, 위에서 설명한 파이프와 같이 잘 사용하니 잘 익혀두기 바란다.

     

     

     

    사용 예제

     

    ps -ef | grep http

    웹서버가 떠있는지 확인하는 명령어 . ps -ef 를 입력하면 모든 프로세스의 번호를 출력한다.

     

     

     

    tail -f nohup.log

    실시간으로 nohup 로그를 볼때 많이 날리는 명령어임. 아주 많이 쓴다 ..!

     

     

     

    리다이렉션 (>)

     

    표준 입출력 방향을 바꿔주는 기능이다. 표준입력은 키보드, 표준출력은 모니터지만 이걸 파일로 처리하고 싶을때 쓰면된다.

     

     

     

    사용 예제

     

    ls -l > test.txt

    ls -l 의 결과를 test.txt 파일에 입력한다. 만약에 test.txt 파일이 있으면 덮어쓴다.

     

     

     

    ls -l >> test.txt

    ls -l 의 결과를 test.txt 파일에 입력한다. 만약에 test.txt 파일이 있으면 기존의 내용에 이어서 쓴다.

     

     

     

    sort < test.txt

    test.txt 파일을 정렬해서 화면에 출력한다.

     

     

     

    sort < test1.txt > test2.txt

    test1.txt 파일안의 내용을 정렬해서 test2.txt 에 입력한다.

    프로세스의 현재 상태를 보여주는 명령어이다.

     

     

    ps [옵션]

    전체적인 프로세스와 관련된 옵션

    -A : 모든 프로세스를 보여준다.

    -N : -A 옵션과 비슷하나, ps 명령을 위해 실행한 ps 프로세스만 제외하여 보여준다. (실행을 취소한다)

    -a : 세션 리더 및 터미널과 관련되지 않은 프로세스를 제외한 모든 프로세스를 보여준다.

    -d : 세션 리더를 제외한 모든 프로세스를 보여준다.

    -e : 커널 프로세스를 제외한 모든 프로세스를 보여준다.

    T : 현 터미널에서의 모든 프로세스를 보여준다.

    a : 한 터미널의 사용자 고유 프로세스를 보여준다.

    r : 현재 실행중인 프로세스를 보여준다.

    x : 터미널 없는 프로세스를 보여준다.

     

    리눅스 -kill 명령어

     

    프로세스에 특정한 signal을 보내는 명령어이다. 일반적으로 종료되지 않는 프로세스를 종료 시킬 때 많이 사용한다.

     

     

    -kill 사용 방법

    kill [-옵션 or 시그널] PID

    $kill -9 11

     

    -kill 옵션

    1 SIGHUP(HUP) : hang up의 약자로 프로세스를 재시작시키는 시그널이다.

    2 SIGINT(INT) : 인터럽트. 실행을 중지시킨다. [CTRL] + [C] 를 눌렀을 때 보내지는 시그널이다.

    3 SIGQUIT(QUIT) : 키보드 종료 [CTRL] + [\]

    9 SIGKILL(KILL) : 무조건 종료, 즉 강제 종료시키는 시그널이다.

    15 SIGTERM(TERM) : Terminate의 약자로 가능한 정상 종료시키는 시그널로 kill 명령의 기본

    18 CONT : Continue. STOP등에 의해 정지된 프로세스를 다시 실행한다.

    19 STOP : 무조건적, 즉각적 정지한다.

    20 TSTP : 실행 정지후 다시 실행을 계속하기 위하여 대기시키는 시그널 [CTRL] +[Z] 를 눌렀을 때 보내지는 시그널이다.

     

    pstree

    부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여준다.

     

     

    변수

     

    변수의 기본

    셸 스크립트에서는 미리 선언하는 것이 아닌 처음 변수에 값이 할당되면 자동으로 변수가 생성된다.

    변수에 넣는 모든 값은 문자열취급 -> 숫자를 넣어도 문자열 취급

    대소문자 구분, 대입 시 ‘=’ 좌우에 공백이 없어야함.

    변수의 입력과 출력

     

    ’$’라는 문자가 들어간 글자를 출력하려면 ‘‘로 묶어주거나 앞에 ‘'를 붙여야합니다. 또한, ““로 변수를 묶거나 묶지않아도 됩니다.

     

    vi name.sh 로 작성

     

    #!/bin/sh

    echo “username : ” $USERNAME

    echo “hostname : ” $HOSTNAME

    exit

    실행은 sh name.sh로 하거나 허가권을 추가하여 ./name.sh 로 실행

     

     

    vi val1.sh 로 작성

     

    #!/bin/sh

    myvar="Hi Woo"

    echo $myvar //정상출력

    echo "$myvar" //정상출력

    echo '$myvar' //'$myvar'출력

    echo \$myvar //$를 문자열 취급하여 $myvar출력

    echo input plz :

    read myvar

    echo '$myvar' = $myvar

    exit 0

     

     

    숫자 계산

     

    기본적으로 변수에 넣은 값은 모두 문자열 취급하므로 ‘expr’키워드를 사용해야 합니다.

    (`) 키로 수식을 묶어야 한다고 합니다.

    괄호를 사용하려면 ‘'를 붙여줘야한다고 합니다.

    사칙연산 중 곱하기(*)에도 ‘'를 붙여줘야한다고 합니다.

    vi numcalc.sh

     

    #!/bin/sh

    num1=100

    num2=$num1+200

    echo $num2

    num3=`expr $num1 + 200`

    echo $num3

    num4=`expr \( $num1 + 200 \) / 10 \* 2`

    echo $num4

    exit 0

     

     

    에러가 2번 났는데 주의점이 있습니다.

     

    첫 번째는 따옴표가 1번옆에 있는 ` 이걸 써야한다는 점

    두 번째는 괄호에서 ‘(‘ 이부분 에 붙여 쓰면 에러납니다. 그래서 한 칸 띄고 써줘야합니다.

    파라미터 변수

     

    파라미터 변수는 ‘$0’, ‘$1’ 등의 형태를 갖습니다. 이는 실행하는 명령의 부분 하나하나를 변수로 지정한다는 의미입니다.

    예를 들어 ‘yum -y install gftp’yum$0, -y$1이런 식입니다.

     

    vi paravar.sh

     

    #!/bin/sh

    echo "first excute file name is <$0>"

    echo "first parameter is <$1>, second parameter is <$2>"

    echo "all of parameter is <$*>"

    exit 0

     

     

     

    '고병재' 카테고리의 다른 글

    NFS  (0) 2021.09.16
    ACL(ing)  (0) 2021.09.16
    Switch 정리  (0) 2021.09.16
    Window Server 구성, HPE Server구성, Esxi설치 과제  (0) 2021.09.14
    Router 정리  (0) 2021.09.13
Designed by Tistory.