[부스트캠프 AI Tech 5기] 리눅스 (Linux)

박상우·2023년 4월 24일
0

부스트캠프

목록 보기
42/54
post-thumbnail

Linux

Linux

  • 프로그래밍에 본격 입문하면 Linux를 다룰 일이 많음
  • 서버에서 자주 사용하는 OS
  • 여러 버전이 존재
  • 안정성
  • Debian, Ubuntu, Redhat, CentOS 등
  • 보통은 Ubuntu로 시작하는 것을 권함
  • 최초에는 자주 사용하는 쉘 커맨드, 스크립트 위주로 학습
  • 필요한 코드가 있는 경우 검색해서 찾기
  • 배경 지식이 필요한 경우 OS 학습

CLI

  • 터미널 (Command Line Interface)
  • GUI (Desktop)

Shell Command

  • 쉘 : 사용자가 문자를 입력해 컴퓨터에 명령할 수 있도록 하는 프로그램
  • 터미널/콘솔 : 쉘을 실행하기 위해 문자 입력을 받아 컴퓨터에 전달
  • sh : 최초의 쉘
  • bash : Linux 표준 쉘
  • zsh : mac 카탈리나 os 기본 쉘

쉘을 사용하는 경우

  • 서버에서 접속해서 사용
  • crontab 등 Linux의 내장 기능을 활용
  • 데이터 전처리를 위해
  • Docker 사용
  • 서버를 관리
  • Test code 실행
  • 배포 파이프라인 실행

man

  • 쉘 커맨드 매뉴얼 문서를 보고 싶은 경우
man python
  • :q로 종료

mkdir

  • 폴더 생성
mkdir tmp

ls

  • 현재 접근할 폴더의 파일 확인
  • list segments

pwd

  • 현재 폴더 경로를 절대 경로로 보여줌 : print working directory
pwd

cd

  • change directory
cd tmp

echo

  • 터미널의 텍스트 출력
echo "hi"

cp

  • copy

vi

  • vim 편집기로 파일 생성
  • Insert 모드에서만 수정할 수 있음

insert mode

  • Insert mode에서 Command Mode로 다시 이동하고 싶다면 ESC 입력

last line mode

  • esc를 누른 후 콜론을 누르면 나오는 mode

bash

bash vi-test.sh 
  • vi에서 작성한 내용이 출력

sudo

  • 관리자 권한으로 실행하고 싶은 경우 앞에 sudo를 붙임
  • sudo와 rm은 항상 조심해야 함

mv

  • move (파일 폴더 이동하기, 또는 이름 바꿀때도 활용 )
mv vi-test.sh vi-test3.sh

cat

  • concatenate 특정 파일 내용 출력
cat vi-test.sh
cat vi-test2.sh vi-test3.sh > new_test.sh
cat vi-test2.sh vi-test3.sh >> new_test.sh
  • 여러 파일을 합쳐서 출력
  • 한 개는 overwrite 두 개를 쓰면 파일을 추가

clear

  • 터미널 창을 깨끗하게 해줌

history

  • 최근 입력한 쉘 커맨드 history를 출력

find

find. -name "file"
  • 현재 폴더에서 File이란 이름을 가지는 파일 및 디렉토리 검색

export

export water="물"
echo $water
  • 환경 변수를 설정
  • 쉘에서는 띄어쓰기 하면 안됨
  • export시에 터미널이 꺼지면 사라지게 됨
  • .bashrc, .zshrc에 저장하고, source ~/.bashrc, source ~/.zshrc 를 입력하면 source 사용 가능

alias

  • 별칭으로 설정된 것을 볼 수 있음


앞의 커맨드들은 일상처럼 사용할 수 있도록 연습!

tree

  • 폴더의 하위 구조를 계층적으로 표현

head, tail

  • 파일의 앞/뒤 n 행 출력
head -n 3 vi-test.sh 

sort

  • 행 단위 정렬

uniq

  • 중복된 행이 연속으로 있을 경우 중복 제거

grep


  • 파일에 주어진 패턴 목록과 매칭되는 라인 검색
  • 뒤에 나올 pipe와 주로 같이 사용

cut

  • 파일에서 특정 필드 추출

stream

  • 유닉스에서 동작하는 프로그램은 커맨드 실행 시 3개의 stream 생성

Redirection

  • 프로그램의 출력을 다른 파일이나 스트림으로 전달

Pipe

  • 프로그램의 출력을 다른 프로그램의 입력으로 사용
history | grep "echo"
  • 최근 입력 커맨드 중 echo가 들어간 명령어를 찾기

ps

  • process status
  • -e : 모든 프로세스
  • -f : full format으로 자세히 보여줌

curl

  • client url
  • request 를 테스트 할 수있는 명령어
  • 웹 서버를 작성한 후 요청이 제대로 실행되는지 확인할 수 있음
curl -X localhost:5000/ {data}
  • 유사하게 httpie(가독성), postman 등이 있음

df

  • disk free
  • -h : 사람이 읽기 쉬운 형태로 출력
  • 디스크 용량 확인

scp

  • ssh를 이용해 네트워크로 연결된 호스트간 파일을 주고 받는 명령어
  • Secure Copy

nohup

  • 터미널 종료 후에도 계속 작업이 유지하도록 실행 (백그라운드)
nohup python3 app.py &
  • nohup으로 실행된 파일은 permission이 755여야 함

chmod

  • 파일의 권한 변경
  • change mode
  • 유닉스에서 파일이나 디렉토리 수정

chmod 755 vi-test2.sh 
  • 다음과 같은 코드로 파일의 permission 변경 가능
  • 사용하다보면 이해가 될 것

쉘 스크립트

  • .sh 파일을 생성하고 그 안에 쉘 커맨드를 추가
  • if, while, case 문이 존재하며 bash name.sh 로 실행 가능
  • 쉘 스크립트는 쉘 커맨드의 조합이니, 익숙해지면 추후에 하나씩 만들어 보자

  • 마스터님의 쉘 스크립트 repo에서 연습 해보자
profile
세상아 덤벼라

0개의 댓글