Linux
server에서 자주 사용하는 OS
- 비용
window에서 서버를 사용하려면 라이센스비용을 내야하지만 linux는 오픈소스로 존재해서 비용이 필요하지 않다. - 확장 가능
- 안정성, 신뢰성
CLI
Command Line Interface : 터미널
윈도우에서는 WSL
GUI
Graphic User Interface : 데스크탑
Linux 배포판
- Debian
- Ubuntu
영국의 회사에서 만들었음
쉽고 편한 설치로 초보자들이 사용하게 좋음 - Redhat
레드햇회사에서 배포 - CentOS
Shell
사용자가 문자를 입력해 컴퓨터에 명령할 수 있도록 하는 프로그램
터미널이나 콘솔에서 쉘을 실행할 수 있는데, 문자 입력을 받아서 쉘에 보내고, 쉘에서 처리한 출력을 화면에 보여주는 역할을 한다.
Shell 종류
- sh
- bash
- zsh
host=컴퓨터
hostname=컴퓨터이름
Shell을 사용하는 경우
- 서버에 접속해서 사용하는 경우
- Linux 내장 기능 사용하 때
- 데이터 전처리
- Docker
- 서버 관리
- notebook에서 !를 붙혀서 쉘 command를 사용할 수 있다.
- test, 배포 실행
Shell command
wsl를 설치해서 windows terminal을 열면 shell을 실행해볼 수 있다.
명령어 wsl치고 시작할 것!!!!!! (나를 위한 조언)
기본 명령어
더보기
- 파이썬 메뉴얼
man python q # 메뉴얼 종료
- 폴더 생성하기
mkdir : MaKe DIRectorymkdir directory_name
- 현재 폴더의 파일과 폴더 확인
ls : List Segmentsls # 현재폴더의 파일탐색 ls directory_name # 특정 폴더의 파일 탐색 ls -a # .으로 시작하는 파일이나 폴더도 찾아서 보여준다 ls -l # 소유자, 만든 날짜, 용량 등 부가 정보도 같이 출력 ls -h # 파일 크기를 단위를 붙혀서 표현해준다. ls -lh # l과 h옵션을 동시에 적용
- 절대 경로 출력
현재 나의 위치에서 절대 경로를 printpwd
pwd : Print Working Directory - 폴더 변경/이동
cd : Change Directorycd to_this_directory cd .. # 하나 상위 directory로 이동
- 출력
echo "hello" >>>hello echo `pwd` #현재 위치에서 '(backtick) 안에 있는 명령어를 실행한 결과를 출력 >>>절대 경로
- vim 편집기로 파일 생성
vi new_vi_file.sh # vim 편집기로 파일 생성 # 새 창이 뜸 i # insert 모드로 변경 # 글을 다 작성하면 esc :wq # write -> quit #후에 enter :wq! # 강제저장
- command mode
vi 실행시 기본 mode - insert mode
파일을 수정할 수 있는 상태
esc를 누르면 다시 command mode로 돌아갈 수 있다. - last line mode
command mode에서 :을 누르면 나오는 mode
하단에 따로 입력할 수 있게 된다
- command mode
- bash
bash new_vi.sh #new_vi.sh에 작성했던 내용이 실행된다.
- 관리자 권한으로 실행
sudo : superuser dosudo
조심해서 사용해야 한다. - 파일 or 폴더 복사하기
cp : copycp new_vi.sh newest_vi.sh #cp '복사할 파일' '복사된 파일에 붙힐 이름' cp -r '폴더이름' '복사된 폴더에 붙힐 이름' cp -f ~ ~ # 강제복사
-r 를 붙히면 폴더 안에 있는 파일도 모두 복사해 준다. - 파일, 폴더 이동
mv new_vi.sh change_name_vi.sh # 이름 바꾸는 용도로 사용 # mv '선택할 파일' '바꿀 파일 이름' mv new_vi.sh ../move_new_vi.sh # 파일 복사 + 이동 # mv '선택할 파일' '이동 주소만 혹은 바꿀 파일 이름도 함께'
mv : move - 특정 파일 내용
cat new_vi.sh newest_vi.sh # 두 파일 내용을 합쳐서 출력한다.
cat : concatenate
굳이 두 내용을 합칠 때 보다는, 파일 내부 내용을 출력할 때 많이 사용하는 것 같다. - 창을 깨끗하게 비움
clear
- 최근에 입력했던 명령어 기록 출력
history !24 # history의 24번째 있는 명령어를 실행한다.
- 파일이나 디렉토리를 검색
그 파일이 존재하는 폴더의 위치 반환-name : 파일 명으로 검색하겠다는 옵션
. : 현재 경로find . -name "new_vi.sh"
현재경로로 위치를 지정해서 상대경로로 위치를 반환해준다. - 환경변수 설정
터미널이 꺼지면 환경 변수가 사라진다.export pikachu="cute" # export pikachu = "cute" #띄어쓰기 하면 안 됌 echo $pikachu #변수처럼 사용하되, 앞에 $를 붙혀야 내용물이 나온다. >>>cute
- 별칭 지정
기본 명령어를 줄여서 지정할 수 있다.alias ll='ls -l' ll >>>출력내용들,,
터미널이 종료되면 설정이 역시 날아간다.
추가 명령어
더보기
- sort
알파벳 순으로 정렬한다.cat file.txt|sort cat file.txt|sort -r # reverse 순으로 출력
- uniq
cat filename.txt|uniq >>>중복제거한 내용 cat filename.txt|sort|uniq|wc -l # wc: word count >>>3
유일한 값 출력, 중복된 행 제거
연속으로 중복되야지만 제거하기 때문에 sort를 하고 uniq를 다음에 많이 사용한다 - grep
cat filename.txt|grep -E ^a # 정규표현식 사용, a로 시작하는 것 찾기
-i 대소문자 없이 찾기 : insensitively -w 정확히 해당 단어만 찾기 -v 특정패턴을 제외한 결과 출력 -E 정규표현식 사용 ^a : a로 시작하는 것 찾기
cd$ : cd로 끝나는 것 찾기
.a : a가 들어가는 것 찾기 - cut
cat filename.txt|cut -d" " -f1 # 공백으로 잘라서 첫번째 도막난 것을 사용하겠다
파일에서 특정 부분 추출
서버 기본 명령어
더보기
- 현재 실행 중인 process 출력
ps : Process Statusps -e # 모든 프로세스 출력 ps -f # time,ppid 등 자세히 full format으로 출력
- request를 테스트
curl -X localhost:5000/ data
curl : Client URL
웹 서버 요청이 제대로 실행되었는지 확인 - 디스크 용량 확인
df : Disk Free웹 서버 요청이 제대로 실행되었는지 확인df df -h # 그냥 df보다 읽기 쉬운 형태로 출력
- SSH를 이용해 파일을 호스트간 주고 받음
scp : Secure CoPyscp local_path user@ip:remote_directory # local의 파일이 remote로 scp user@ip:remote_directory local path # remote파일이 local로 다운 scp user@ip:remote_directory user@ip:destination_remote_directory #서버(remote)에서 서버(다른 remote로)
- 백그라운드 실행
nohup python3 app.py & # 유지 #종료 ps ef|grep app.py #로 pid를 찾고 kill -9 app_pid_num #그 pid를 죽인다
터미널 종료 후에도 계속 작업 유지
파일의 permission 755이어야한다.
nohup을 종료하고 싶다면 ps로 pid를 찾아서 kill시켜야 한다.
로그가 nohup.out에 저장된다. - 파일의 권한을 변경
chmod : CHange MODels -l >>>-rwxrwxrwx 1 user user 282 Feb 18 2021 #에서 "-rwxrwxrwx"가 permission을 나타낸다. chmod 755 new_vi.sh # 7=4+2+1 : 3개의 permission(권한)을 user에게 다 준다.
753면 순서대로 7은 user permission, 5는 group permission, 3은 기타 permission을 의미한다.
Permission 종류
- r : read : 4
- w : write : 2
- x : execute : 1
- - : denied
표준스트림 : stream
command를 실행시에 3개의 stream이 생성된다.
- stdin : standard in
0으로 표현
사용자의 입력 - stdout : standard out
1로 표현
터미널의 출력 - stderr : standard error
2로 표현
디버깅이나 에러 출력
Redirection
stdout을 다른 파일이나 stream으로 전달
- >
덮어쓰기 = overwrite
파일이 없을 경우에는 파일을 새로 생성하고 저장한다
echo 'overwrite'>filename.txt
- >>
맨 아래에 추가하기 = append
echo 'banana'>>filename.txt
Pipe
stdout을 다른 프로그램의 입력으로 사용하고 싶은 경우
ls|grep "txt" # 현재 폴더에 있는 파일들 중 txt가 들어가는 파일명을 찾는다
#ls의 출력을 grep의 입력으로 사용
Shell script
shell 명령어들을 하나의 파일로 연결
if, while등을 사용해서 sh파일로 작성해서 bash로 사용할 수 있다.
'부스트캠프 AI Tech 3기 > 이론 : U-stage' 카테고리의 다른 글
[Day19] AI 서비스 개발 특강 3. AI Ethics (0) | 2022.02.16 |
---|---|
[Day18] AI 서비스 개발 특강 2. 내가 만든 AI 모델은 합법일까, 불법일까 (0) | 2022.02.15 |
[Day17] AI 서비스 개발 특강 1. 서비스 향 AI 모델 개발하기 (0) | 2022.02.15 |
[Day17] AI 서비스 개발 2. 머신러닝 프로젝트 라이프 사이클 (0) | 2022.02.14 |
[Day16] DL Basic 10. Generative Model - 2 : VAE, GAN (0) | 2022.02.12 |