- Linux2023년 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번째값을가져옴 ------------------------------------
시간이 된다면 사전으로 한번 정리해서 웹사이트로 배포를 해봐야겠다
다음글이전글이전 글이 없습니다.댓글