[Boostcamp AI Tech] Linux & Shell Command

이성범·2022년 2월 14일
0

Boostcamp AI Tech

목록 보기
31/49

Linux & Shell Command

이번 강에서는 Linux 환경에서 사용되는 꼭 알고 있으면 좋을 Shell Command에 대하여 학습을 진행했다.

00. 학습 내용

  • Linux & Shell에 대하여 학습
  • Shell Command에 대하여 학습

01. Linux & Shell

  • Linux는 서버에서 자주 사용하는 OS이다.
  • Linux는 무료이며, 오픈소스라는 특징을 가진다.
  • Linux는 안정성(유닉스 기반), 신뢰성(유닉스 기반), 확장성(오픈소스라 다양한 버전이 존재함)에서 큰 장점을 가진다.
  • Linux는 Command Line Interface(CLI, Terminal)에서 셀 커맨드와 셀 스크립트를 이용해 명령어를 작성할 수 있더.
  • 우리가 쉘을 사용하는 이유는 아래와 같다
    • 서버에서 접속해서 사용하는 경우
    • crontab 등 Linux의 내장 기능을 활용하는 경우
    • 데이터 전처리를 하기 위해 쉘 커맨드를 사용
    • Docker를 사용하는 경우
    • 수백대의 서버를 관리할 경우
    • Jupyter Notebook의 Cell에서 앞에 !를 붙이면 쉘 커맨드가 사용됨
    • 터미널에서 python3, jupyter notebook 도 쉘 커맨드
    • Test Code 실행
    • 배포 파이프라인 실행(Github Action 등에서 실행)
    • ....

02. Shell Command

  • mkdir 폴더이름, Make Directory로 폴더를 생성하는 명령어
  • ls -옵션, List Segments로 현재 경로에 존재하는 파일을 확인하는 명령어, 뒤 옵션 부분에 a, l h 등을 포함하여 어느 속성까지 볼 지를 결정가능
  • cd 파일경로, Change Directory로 파일 경로에 해당하는 폴더로 이동하는 명령어
  • pwd, Print Working Directory로 현재 폴더의 절대 경로를 보여주는 명령어
  • echo 출력명, 터미널에 텍스트로 출력해주는 명령어, 출력명 부분에 "", '', `` 등에 따라서 셀커맨드를 단순히 글자로 또는 커맨드의 아웃풋을 출력할 수 있음
  • vi 파일명.sh, vim 편집기로 파일을 생성하고 해당 파일에 접근하여 내용을 수정할 수 있음
  • bash 파일명.sh, vi로 생성한 쉘스크립 파일을 실행해주는 명령어
  • sudo, 관리자 권한으로 실행하는 명령어
  • cp 복사대상파일 복사한파일의이름, Copy로 파일 또는 폴더를 복사하는 명령어
  • mv 기존이름 변경후이름, Move로 파일의 이름을 바꾸거나, 이동할 때 사용하는 명령어
  • cat 파일명, concatenate로 특정 파일 내용을 출력하는 명령어
  • clear, 터미널 창을 깨끗하게 지워주는 명령어
  • history, 최근에 사용한 쉘 커맨드의 명령어를 출력해주는 명령어, 해당 결과에서 !숫자를 입력하면 해당하는 숫자의 쉘 커맨드를 다시 사용할 수 있음
  • export 변수명=값, 환경 변수를 설정하는 명령어
  • find . -name “File”, 현재 폴더에서 File이란 이름을 가지는 파일 및 디렉토리 검색
  • alias ll2=’ls -l’, 명령어의 별칭을 지정하는 명령어, ll2를 입력하면 ls -l이 동작됨
  • wget 옵션 url, Web Get'의 약어로 웹 상의 파일을 다운로드 받을 때 사용하는 명령어
  • 퀴즈
    • test.txt 파일에 "Hi!!!!"를 입력 : echo 'Hi!!!!' > test.txt, ""를 사용하면 셀커맨드의 출력값이 출력됨(!!명령어 자체가 과거에 사용한 명령어를 불러오는 것이라 과거의 사용한 명령어가 출력) 따라서 ''를 사용하여 그 값 자체를 출력하게 함
    • test.txt 파일 맨마지막에 "kkkkk"를 입력 : echo "kkkkk" >> test.txt
    • test.txt의 라인 수를 출력 : cat test.txt | wc -l
    • 카카오톡 대화방에서 제일 메세지를 많이 보낸 TOP 3명 추출하기
      • txt 데이터의 경우 [이름]과 같은 패턴이 존재함 따라서 grep으로 패턴을 찾고, -o 명령어로 패턴에 맞는 단어만 빼오고, sort, uniq, -c 를 적절히 사용하여 카운팅을 해주고 출력해주면됨
      • grep -Eo "\[..\]|\[...\]" kakao.txt | sort | uniq -c | sort -r | head -n 3
      • 해당 정규표현식의 모든 경우에 다 맞지는 않고 현재 상황에만 맞는 정규표현식임
profile
Machine Learning Engineer at Konan Technology

0개의 댓글