Linux?
서버에서 자주 사용하는 OS이며 여러 버전이 존재한다.
또한 안전성, 신뢰성이 높으며 쉘 커맨드, 쉘 스크립트를 통한 작업이 가능하다.
CLI를 사용한다.
CLI
Command-Line Interface로 글자를 입력하여 컴퓨터에 명령을 내리는 방식.
Shell Command
서버에서 접속해 사용할 때, Linux의 내장 기능을 활용하거나 데이터 전처리, Docker사용 등 여러 상황에서 shell command를 사용한다.
가장 유명한 shell commands
ls
list files and directories : 어떤 파일이나 폴더가 존재하는지 알 수 있다.
ls 사용 : 현재 폴더 기준으로 실행, 폴더를 작성하면 폴더 기준으로 실행
-a : .으로 시작하는 파일, 폴더를 포함한 전체를 출력
-l : 퍼미션, 소유자, 만든 날짜, 용량까지 출력
-h: 용량을 사람이 읽기 쉽도록 GB, MB등으로 표현
cd
change directory : working directory를 바꿀 때 사용
cd ~ : Home으로 이동
rm
파일 제거 기능
echo
Python의 print 처럼 터미널에 텍스트를 출력함
cp
cp vi-test.sh vi-test2.sh 와 같이 파일 또는 폴더를 복사함.
-r : 디렉토리를 복사할 때 디렉토리 안에 파일이 있으면 재귀적으로 모두 복사
-f : 복사할 때 강제로 실행
vi
vim 편집기로 파일 생성 -Insert 모드에서만 수정 가능
ESC를 누른 후 :wq (저장하고 나가기)
ESC : wq ! : 강제 저장하고 나가기
ESC : q: 그냥 나가기
mv
파일, 폴더 이동하기
cat
특정 파일 내용 출력 : concatenate
여러 파일을 인자로 주면 합쳐서 출력
파일에 저장하고 싶은 경우 (overwrite)
ex) cat vi-test2.sh vi-test3.sh > new_test.sh
파일에 추가하고 싶은 경우 (append)
ex) cat vi-test2.sh vi-test3.sh >> new_test.sh
clear
터미널 창을 정리함
find
파일 및 디렉토리를 검색할 때 사용
find . -name "File" : 현재 폴더에서 File이란 이름을 가지는 파일 및 디렉토리를 검색
export
export로 환경 변수 설정
export water="물"
echo $water (실행)
> export water = "물"
export로 설정한 환경 변수는 터미널이 꺼지면 사라짐.
alias
터미널에서 alias를 치면 현재 별칭으로 설정된 것을 볼 수 있음.
tree
폴더의 하위 구조를 계층적으로 표현함.
head, tail
파일의 앞/뒤 n행 출력
sort
행 단위 정렬
-r : 정렬을 내림차순으로 정렬
-n : Numeric sort
uniq
중복된 행이 연속으로 있는 경우 중복 제거
-c : 중복 행의 개수 출력
grep
파일에 주어진 패턴 목록과 매칭되는 라인 검색
-i : Insensitively하게, 대소문자 구분 x
-w : 정확히 그 단어만 찾기
-v : 특정 패턴 제외한 결과 출력
-E : 정규 표현식 사용
cut
파일에서 특정 필드 추출
-f : 잘라낼 필드 지정
-d : 필드를 구분하는 구분자.
Redirection & pipe (표준 스트림)
Unix에서 동작하는 프로그램은 커맨드 실행시 3개의 stream이 생성된다.
stdin : 0으로 표현, 입력
stdout : 1로 표현, 출력 값 (터미널에)
stderr : 2로 표현, 디버깅 정보나 에러 출력
Redirection : 프로그램의 출력을 다른 파일이나 스트림으로 전달
> : 덮어쓰기 (Overwrite)
>> : 맨 아래에 추가하기 (Append)
ex)
echo "hi" > vi-test3.sh
echo "hello" >> vi-test3.sh
Pipe : 프로그램의 출력(stdout)을 다른 프로그램의 입력으로 사용하고 싶은 경우
A의 output을 B의 input으로 사용
현재 폴더에 있는 파일명 중 vi가 들어간 단어를 찾고 싶은 경우
ls | grep "vi"
위 결과를 다시 output.txt에 저장하는 경우
ls | grep "vi" > output.txt
서버에서 자주 사용하는 쉘 커맨드
ps
현재 실행중인 프로세스 출력하기
-e : 모든 프로세스
-f : Full Format으로 자세히 보여줌
curl
Command Line 기반의 Data Transfer 커맨드 : Client URL
Request를 테스트할 수 있는 명령어
웹 서버를 작성한 후 요청이 제대로 실행되는지 확인 가능
df
현재 사용중인 디스크 용량 확인 : Disk Free
-h : 사람이 읽기 쉬운 형태로 출력
scp
SSH를 이용해 네트워크로 연결된 호스트 간 파일을 주고 받는 명령어
-r : 재귀적 복사
-P : ssh포트 지정
-i : SSH설정을 활용해 실행
local > remote
remote > remote
remote > local
nohup
터미널 종료 후에도 계속 작업을 유지하도록 실행
nohup python3 app.py &
실행될 파일이 Permission 755여야함.
종료는 ps ef | grep app.py 후, pid를 찾은 후 kill -9 pid로 프로세스를 Kill 해야함
nohup.out에 로그가 저장됌
chmod
파일의 권한을 변경하는 경우 사용
Permission
r = Read (4)
w = Write (2)
x = eXecute (실행하기, 1)
755 퍼미션은
r + w + x = 4 + 2 + 1 = 7,
r + x = 4 + 1 = 5
이런 방식으로 r, w, x에 대한 권한을 의미.
'네이버 부스트캠프 학습 정리 > 8주차' 카테고리의 다른 글
[AI 서비스 기초] Docker (0) | 2023.04.29 |
---|---|
[AI 서비스 기초] 파이썬 버전 관리 (0) | 2023.04.29 |