리눅스

Jun·2022년 5월 11일
0

네이버 부스트캠프

목록 보기
1/21

목차


  • 리눅스
  • 셸 스크립트
  • crontab
  • oh-my-zsh

1. 리눅스


리눅스는 유닉스 기반의 오픈소스 운영체제 입니다.

그리고 여러 사용자가 들어와 사용하는 멀티 유저 시스템입니다.

1.1 리눅스 구조


리눅스는 크게 3가지로 구성되어 있습니다.

  • 커널

    • Linux커널은 Linux 운영 체제의 주요 구성 요소이며 컴퓨터 하드웨어와 프로세스를 잇는 핵심 인터페이스로 다음 4가지 기능을 수행합니다.
      • 메모리 관리
      • 프로세스 관리
      • 장치 드라이버
      • 시스템 호출 및 보안
    • 셸은 명령어와 프로그램을 실행할 때 사용하는 인터페이스입니다.

    • 커널과 사용자간의 다리 역할을 하는 하나의 프로그램입니다.

    • 즉, 사용자가 echo 같은 명령어를 수행하면 이를 커널에 넘겨 동작을 수행하게 합니다.

      셸 종류

  • 응용 프로그램

    응용 프로그램은 리눅스의 개발 도구, 문서 편집 도구, 네트워크 관련 도구 등을 뜻합니다.

2304583B5547468220

출처: https://andrew0409.tistory.com/11

1.2 리눅스 파일의 종류


  • 일반 파일 (-)

    • 일반 파일은 데이터를 저장하는데 사용됩니다.
    • 텍스트 파일, 실행 파일 등 일반적인 파일을 뜻합니다.

_2021-07-20__9 53 55

  • 디렉토리 (d)

    • 리눅스에서 리렉토리도 파일로 구분됩니다. (키보드나 마우스 같은 장치들도 파일로 구분됨)

      _2021-07-20__9 55 16

  • 링크 파일 (l)

    • 링크 파일이란 다른 파일을 가리키는 파일입니다.
    • 즉, 윈도우의 바로가기와 유사합니다.
    • 링크 파일은 소프트링크와 하드링크가 있습니다.
      • 하드링크는 원본파일의 inode의 위치를 가르킵니다. (inode란 리눅
      • 소프트링크는 새로운 inode를 가진 링크파일이 생성됩니다.
  • 특수 파일

    • 블록형 장치 파일(b)
    • 문자형(c)
    • 파이프(p)
    • 소켓(s)

    1.3 리눅스 디렉토리 구조


    리눅스는 전체 파일을 용도에 따라 계층 적으로 구분하여 관리합니다.

    그리고 이것을 파일 시스템이라고 합니다.

    Day02%20a108a/_2021-07-20__10.05.42.png

    출처: https://it-serial.tistory.com/19

    • 주요 디렉토리 기능들

      • / (루트) 최상위 디렉토리
      • /bin 바이너리를 저장하는 디렉토리, 기본 명령어들이 저장됨
      • /etc 리눅스설정을 위한 각종 파일들 존재
      • /dev 장치 파일들이 저장됨
      • /var 시스템 사용 중 발생한 데이터, 로그가 저장됨
      • /home 사용자 홈 디렉토리 (사용자 마다 다름)
      • /usr 일반 사용자들이 사용하는 프로그램과 데이터들이 존재

      등 이외에도 많은 디렉토리가 존재합니다.

    1.4 파일 권한


    리눅스는 멀티 유저 시스템이기 때문에 유저 마다 권한이 각각 다릅니다.

    보안 상의 문제로 일반 유저가 비밀 자료 등을 조회 및 수정하는 것을 방지하기 위해서 입니다.

    -rwxrwxrwx root root 4096 Jul 20 22:10 boostcamp

    위와 같은 파일이 있을 때 rwx는 권한을 나타냅니다.

    각각은 read, write, execution 을 뜻합니다.

    그리고 rwx가 총 3가지 있는 데, 이는 각각 소유자, 소유자가 속한 그룹, 그 외 사용자를 뜻합니다.

    즉 위의 경우는 모든 사용자가 수정, 조회, 실행이 가능합니다.

    반면에 아래의 경우는 소유자만 수정, 조회, 실행이 가능합니다.

    -rwx------ root root 4096 Jul 20 22:10 boostcamp

    추가적으로 뒤의 root 와 root는 각각 소유자와 소유자 그룹을 의미합니다.

    1.5 리눅스 주요 명령어


    • pwd 현재 디렉토리 경로를 확인
    • ls 디렉토리의 내용을 보여줌
      • [-l] 파일의 상세 정보를 나타냄
      • [-a] 숨어있는 파일도 표시
      • [-t] 파일을 최신 시간별로 정렬
      • [-rt] 오래된 시간별로 정렬
      • [-F] 파일을 표시할 때 마지막에 유형을 나타내는 파일명을 끝에 표시합니다.
    • tree 특정 디렉토리의 내용을 구조적으로 보여줌
    • mkdir 새로운 디렉토리 생성
      • [-p] 하위 디렉토리 까지 생성합니다.
      • [-m] 특정 권한을 갖는 디렉토리를 생성합니다.
    • cd 디렉토리 변경
    • cat 파일 내용 표시
    • less 긴 파일의 내용을 끊어서 표시 (cat은 한번에 표시)
    • history 명령어 이력 표시
    • cp, mv, rm 파일 복사, 이동, 삭제
    • fine [디렉토리] -name [파일명] 해당 디렉토리에서 파일을 검색
    • touch 파일 생성
      • [-c] file의 시간을 현재 시간으로 변경합니다.
      • [-r] 두 파일의 날짜를 같게 변경합니다.
    • redirection 화면에 출력되는 결과를 파일로 저장하는 명령어
    • alias 자주 수행하는 명령어들을 쉽게 사용할 수 있도록 설정

    추가적인 옵션 : https://gomguard.tistory.com/73

    1.6 리눅스의 역사, 유닉스와의 비교


    바로가기

    2. 셸 스크립트


    우선 스크립트란 인터프러터 방식으로 컴파일 되지 않은 프로그램이다.

    즉 한 라인 씩 읽어 해석하고 실행한다.

    그리고 셸은 앞서 말한 스크립트를 실행해주는 인터프리터 엔진인 셈이다.

    따라서 셸 스크립트는 셸 환경에서 동작하는 스크립트라고 할 수 있다.

    • 셸에서 명령어를 수행할 때 우리는 한번에 하나의 명령어를 차례로 입력하고 결과를 바로 본다.
    • 하지만 스크립트로 작성하고 실행하면 한번에 여러 명령어를 빠르게 수행할 수 있다.
    • 그리고 자주 사용하는 명령어 로직이 있다면 스크립트로 작성해두어 계속 사용하면 더욱 효율적이다.

    2.1 셸 스크립트 활용 사례


    • 서버 상태 감시

      서버의 상태를 확인 할 때 가장 기본적으로 Ping 을 이용한다.

      만약 여러대의 서버를 확인해야하는 경우 각각 확인하는 것은 번거롭다.

      따라서 스크립트를 이용하면 더욱 빠르게 점검할 수 있다.

    • 점검 결과를 메일로 보고

      점검 결과를 관리자의 메일로 전송해준다면 관리자는 시스템을 더욱 편리하게 관리할 수 있게된다.

      이 또한 쉘 스크립트를 이용하여 활용할 수 있다.

      출처: https://www.kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=40&dbnum=175565&mode=detail&type=techreport

    • 디스크 상태 및 파일 시스템 점검

    • 주요 파일 권한 점검

      출처: 2013 마이크로소프트웨어 9월호

    등등 다양한 사례가 존재한다.

    2.2 Crontab


    • 위와 같은 셸 스크립트를 더욱 편하게 활용하기 위해서 존재하는 도구이다.
    • 셸 스크립트나 명령어를 자동으로 실행시켜준다.
    • 특정 시간 뿐만 아니라 일, 월, 년으로도 간격을 정해 셸 스크립트를 자동화 할 수 있다.
    • crontab을 사용한다면 일정 간격으로 시스템을 점검하거나 로그를 백업하는 등 번거로운 작업을 자동화 할 수 있다.

    3. Oh-my-zsh


    맥 환경에서는 보통 zsh셸을 주로 사용한다. 그리고 oh-my-zsh를 이용해 더 많은 기능을 추가할 수 있다.

    oh-my-zsh는 zsh를 더욱 편리하게 이용하게 해주는 일종의 플러그인이다.

    • iTerm2를 설치한다.
    • homebrew를 설치한다.
    • homebrew를 이용해 zsh를 설치한다.
    • 아래 명령어로 oh-my-zsh를 설치한다.
    sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    • 그리고 터미널을 더욱 이쁘게 꾸밀 수 있는 다양한 기능또한 존재한다.

    출처:[https://beomi.github.io/2017/07/07/Beautify-ZSH/](

profile
HiHi

0개의 댓글