• 티스토리 홈
  • 프로필사진
    Cat_Code
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
Cat_Code
  • 프로필사진
    Cat_Code
    • 분류 전체보기 (116)
      • [네이버 부스트캠프] (46)
        • ⭐주간 학습 정리 (43)
        • 🎶추가 학습 정리 (3)
      • [연습의 흔적들] (27)
        • 백준⚾ (26)
        • 캐글 & 데이콘 🤝 (1)
      • [ML] (23)
        • 머신러닝 💕 (5)
        • 딥러닝 🔫 (10)
        • 데이터 분석 🖤 (1)
        • 수학 ☑️ (4)
        • LLM🦜 (3)
      • [CS] (16)
        • 파이썬 🖤 (12)
        • 해체 분석기📝 (3)
        • Service Product (1)
        • MultiMedia (0)
      • [개발일지] (2)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Linux
        2023년 04월 26일
        • Cat_Code
        • 작성자
        • 2023.04.26.:22

        본 글은 네이버 부스트 캠프 AI Tech 기간동안

        개인적으로 배운 내용들을 주단위로 정리한 글입니다

         

        본 글의 내용은 새롭게 알게 된 내용을 중심으로 정리하였고

        복습 중요도를 선정해서 정리하였습니다

         

        ✅ Week 8

        1. Linux

        2. Shell Command


        1. Linux

        Linux의 경우 서버환경의 컴퓨터를 다룰때 많이 만나게 된다

        사실상 ML / DL을 한다면 Linux는 필수적으로 알고있어야한다

         

        Linux의 장점은 다음과 같다

        1. Free, 오픈 소스 - 역시 공짜가 최고야

        2. 안정성, 신뢰성, 유닉스라 안정성과 신뢰성이 좋아

        3. 쉘 커맨드, 쉘 스크립트를 활용해서 효율적으로 운영가능

         

        Linux가 거부감이 드는 이유는 대부분 CLI 기반에서 실행되기 때문이다

        즉, Terminal 환경에서 실행된다는 것이다

        물론 GUI도 있지만 우리는 개발자이다!! GUI 따위 ..

         


        대표적인 Linux 배포판은 다음과 같다

         

        1. Debian - 온라인 커뮤니티에서 제작해 배포

        2. Ubuntu - 초보자들이 쉽게 접근 - 많이 사용

        3. Redhat - 레드햇 이라는 회사에서 배포

        4. CentOS - Redhat의 공개 버전을 가져와 브랜드와 로고를 제거한 버전


        2. Shell Command

        Linux에서 우리가 학습해야할 부분은 Shell Script이다

        즉, Shell Script를 활용해서 효율적으로 Linux를 운용할 수 있기 때문에

        우리같은 개발자에게 Shell Script를 공부하는 것은 큰 도움이 된다

         


        쉘에도 다양한 종류가 있다

         

        sh - 최초의 쉘

        bash - Linux 표준 쉘

        zsh - Mac 카탈리나 OS 기본 쉘

         

        그럼 쉘을 왜 사용할까?

        1. 서버에서 접속해서 사용하는 경우 사용

        2. crontab등 Linux 내장 기능을 사용할때 사용한다

        3. 데이터 전처리를 할때 간단한 쉘 스크립트로 가능

        4. Docker를 사용할때 사용해야한다

        5. 여러대 - 수백대 컴퓨터를 관리할 때 사용해야한다

        6. 배포 파이프라인 - Github Action 등에서 실행할때 사용한다

         


        쉘 커맨드의 매뉴얼 문서를 보고 싶은 경우 

        man python

        을 입력해주면 되고 

        종료 하고 싶다면 ':q'을 입력해주면 된다

         

        대표적인 쉘 커맨드를 정리하자면

        mkidr '폴더명' #폴더생성
        ------------------------------------
        ls #현재 디렉토리에 있는 폴더와 파일 확인 
        #옵션
        -a #.으로 시작하는 파일, 폴더를 포함해 전체 파일 출력
        -l #퍼미션, 소유자, 만든날짜, 용량까지 출력
        -h #용량을 읽기 쉽게 GB,MB 등 표현 '-l'과 같이 사용
        ------------------------------------
        pwd #현재 폴더까지 경로를 절대경로로 보여줌
        ------------------------------------
        cd '폴더명' #폴더 변경하기, 이동하기
        ------------------------------------
        echo "hi" #python의 print와 같이 터미널에 텍스트 출력
        #쉘 커맨드 입력시 쉘 커맨드의 결과 출력 
        ech `pwd`
        ------------------------------------
        cp #파일 또는 폴더 복사하기
        #옵션 
        -r : 디렉토리를 복사할때 디렉토리 안에 파일이 있으면 재귀적으로 모두 복사
        -f : 복사할 때 강제로 실행
        ------------------------------------
        vi #vim 편집기로 파일 생성 - INSERT모드에서만 수정가능
        #저장
        :wq 저장하고 나가기
        :wq! 강제로 저장하고 나가기
        :q 그냥나가기
        
        #mode에는 Command mode, Insert Mode, Last Line Mode가 있음
        
        #Command Mode
        dd:현재위치한한줄삭제
        i:INSERT모드로변경
        x:커서가위치한곳의글자1개삭제(5x:문자5개삭제)
        yy:현재줄을복사(1줄을ctrl+c)
        p:현재커서가있는줄바로아래에붙여넣기
        k:커서위로
        j:커서아래로
        l:커서오른쪽으로
        h:커서왼쪽으로
        
        #Last Line Mode
        w:현재파일명으로저장
        q:vi종료(저장되지않음)
        q!:vi강제종료(!는강제를의미)
        wq:저장한후종료
        /문자:문자탐색
        -탐색한후n을누르면계속탐색실행
        setnu:vi라인번호출력
        ------------------------------------
        #쉘 스크립트 실행 
        bash '쉘 스크립트'
        ------------------------------------
        #관리자 권한으로 실행하고 싶은 경우 커맨드 앞에 sudo를 사용
        sudo 명령어 - 최고 권한으로 실행
        ------------------------------------
        mv '파일 or 폴더' #이동, 이름 변경
        ------------------------------------
        cat : 특정 파일 내용 출력
        
        여러파일을인자로주면합쳐서(CONCAT)출력
        catvi-test2.shvi-test3.sh
        
        파일에저장하고(OVERWRITE)싶은경우
        catvi-test2.shvi-test3.sh>new_test.sh
        
        파일에추가(APPEND)싶은경우
        catvi-test2.shvi-test3.sh>>new_test.sh
        ------------------------------------
        clear 터미널 창을 깨끗하게 해줌
        ------------------------------------
        history #최근 입력한 쉘 커맨드 출력
        
        ! 숫자 입력시 그 커맨드 다시 사용
        ------------------------------------
        find #파일 및 디렉토리를 검색할 때 사용
        find . -name 'File'
        ------------------------------------
        export water='물'
        환경변수 지정
        echo $water #출력가능
        
        터미널을 끄면 사라진다
        
        매번쉘을실행할때마다환경변수를저장하고싶으면.bashrc,.zshrc에저장하면됨
        (Linux)vi~/.bashrc또는vi~/.zshrc(자신이사용하는쉘에따라다름)
        ------------------------------------
        alias #현재 별칭을 볼수 있다
        ------------------------------------
        tree #폴더의 하위 구조를 계층적으로 표현
        
        tree-L레벨
        tree-L1:1단계까지보여주기
        tree-L2:2단계까지보여주기
        ------------------------------------
        head,tail #pandas와 같음
        ------------------------------------
        sort #정렬
        -r : 내림차순
        -n : Numeric Sort
        ------------------------------------
        uniq #중복된 행이 연속으로 있는 경우 제거
        -c : 중복행의 개수 출력
        
        catfruits.txt|uniq
        catfruits.txt|sort|uniq
        catfruits.txt|uniq|wc-l
        catfruits.txt|sort|uniq|wc-l
        ------------------------------------
        grep #파일에 주어진 패턴 목록과 매칭되는 라인 검색
        
        #옵션
        -i:Insensitively하게,대소문자구분없이찾기
        -w:정확히그단어만찾기
        -v:특정패턴제외한결과출력
        -E:정규표현식사용
        ------------------------------------
        cut #파일에서 특정 필드 추출
        
        -f:잘라낼필드지정
        -d:필드를구분하는구분자.Default는\t
        
        예시)
        vicut_file
        
        root:x:0:0:root:/root:/bin/bash
        bin:x:1:1:bin:/bin:/sbin/nologin
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        ESC:wq
        
        catcut_file|cut-d:-f1,7
        #1번째,7번째값을가져옴
        ------------------------------------

         

        시간이 된다면 사전으로 한번 정리해서 웹사이트로 배포를 해봐야겠다

        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바