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
mkdir
mkdir tmp
ls
- 현재 접근할 폴더의 파일 확인
- list segments

pwd
- 현재 폴더 경로를 절대 경로로 보여줌 : print working directory
pwd
cd
cd tmp
echo
echo "hi"
cp

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

insert mode

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

- esc를 누른 후 콜론을 누르면 나오는 mode
bash
bash vi-test.sh
sudo
- 관리자 권한으로 실행하고 싶은 경우 앞에 sudo를 붙임
- sudo와 rm은 항상 조심해야 함
mv
- move (파일 폴더 이동하기, 또는 이름 바꿀때도 활용 )
mv vi-test.sh vi-test3.sh
cat
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

find
find. -name "file"
- 현재 폴더에서 File이란 이름을 가지는 파일 및 디렉토리 검색
export
export water="물"
echo $water
물
- 환경 변수를 설정
- 쉘에서는 띄어쓰기 하면 안됨
- export시에 터미널이 꺼지면 사라지게 됨
- .bashrc, .zshrc에 저장하고, source ~/.bashrc, source ~/.zshrc 를 입력하면 source 사용 가능
alias

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

head, tail
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에서 연습 해보자