2022. 11. 09 팀 아침회의!
< 1주차 Linux의 특징과 이해 >
목표 - 1. Linux OS에 대해 이해, 작업 환경 구축
2. Linux 명령어를 사용해 원하는 작업하기
< Linux & Docker 강의를 통해 얻어갈 수 있는 것 >
Linux OS에 대한 이해 [ ]
Linux OS 설치 및 사용 방법 [ ]
docker 라이브러리 설치 및 사용 방벙 [ ]
docker를 사용해 배포 환경을 구축하는 방법 [ ]
도메인을 구매하고, 구매한 도메인을 사용해 배포 환경에 접속하는 방법 [ ]
< 1주차 >
Linux의 명령어는 명령어 -옵션 의 구조이다.
ls
# 파일 목록을 보여주는 명령어
ls -l
# -l : 파일 목록을 더 자세히 보여주는 옵션
ls -a
# -a : 숨김 파일까지 보여주는 옵션
2개 이상의 옵션을 한번에 사용할 수도 있다.
ls -al
# 옵션의 순서는 무관.
일부 명령어는 source와 destination의 구조이다.
cp a.txt a_copy.txt
# a.txt를 a_copy.txt로 복사
cp -r folder folder_copy
# folder를 복사 할 때는 -r 옵션이 필요!
왜 Linux를 사용하는걸까?
AWS 로그인 -> EC2 검색 -> 리전(서울) -> 인스턴스 시작 -> 서버이름 작성 후 Ubuntu OS선택 -> 새 키 페어 생성 -> 임의의 키페어 생성 -> .pem 파일이 다운되는데 ssh연결 시 필요하므로 따로 보관필수 -> 방화벽 설정 (SSH,HTTPs,HTTP 트래픽 허용) -> 스토리지 30GiB 입력 -> 인스턴스 시작
Linux 환경에서 작업할 때에 ssh 연결하여 작업하게 된다.
< 보완 그룹 설정 >
인바운드 규칙 편집 - SSH가 존재하는 지 확인. 없으면 추가.
.pem 파일이 있는 경로에서 터미널 창을 열어준다.
-> ssh -i ubuntu@$퍼블릭IPv4주소
-> 이후 연결하겠습니까? 뜨는데 (처음연결할때만 뜸.) yes를 입력 후 엔터.
터미널창 깨끗하게 하려면 clear 입력.
리눅스에서 디렉토리를 이동하거나 파일지정할 때, 상대 또는 절대경로를 사용하게 된다.
상대 경로
cd ./dir/
현재 위치에 존재하는 dir 디렉토리로 이동cd ../
현재 위치를 기준으로 상위 디렉토리로 이동절대 경로
cd /home/user/example/dir/
wild card(*
)란?
특정 파일이나 디렉토리를 지정할 때, *
을 사용하면 빠르게 탐색가능.
ls -l ./*.txt
# .txt로 끝나는 모든 파일 목록 출력하기mkdir
/ 디렉토리 생성하기mkdir ./test
# 현재 경로에 test 디렉토리 생성하기
mkdir ./test/test2
# test 디렉토리 안에 test2 디렉토리 생성하기
mkdir /home/ubuntu/test3
# /home/user 경로에 test3 디렉토리 생성하기 (절대경로)
pwd
# 현재 경로 확인
cd
/ 경로 이동하기cd ./test
# 현재 경로의 test 디렉토리로 이동
cd ./test/test2
# test 디렉토리 안에 test2 디렉토리로 이동
cd ../test3
# 상위 디렉토리의 test3 디렉토리로 이동
cd /home/user/test4
# /home/user/test4 디렉토리로 이동
ls
/ 파일 목록 보기ls
# 현재 위치에 파일 목록 보기
ls ./test
# test 경로에 파일 목록 보기
ls -l
# 현재 위치에 파일 목록을 더 자세히 보기
ls -a
# 현재 위치에 숨겨짐 파일을 포함해서 보기
ls -al
# 현재 위치에 숨겨진 파일을 포함해서 목록을 더 자세히 보기
ls --help
명령어로 확인 가능합니다.touch test.txt
# test.txt 파일 생성하기
cp test.txt test_copy.txt
# test.txt 파일을 test_copy.txt라는 이름으로 복사하기
cp -r directory directory_copy
# 폴더를 복사할 경우 -r 옵션 사용
mv ./directory1/test.txt ./
# directory1 경로의 test.txt 파일을 현재 경로로 이동
mv test.txt text2.txt
# test.txt 파일의 이름을 test2.txt로 변경rm test.txt
# test.txt 파일 삭제
rm -r directory
# 디렉토리를 삭제하기 위해서는 -r 옵션을 붙여줘야 합니다.
touch test
: test라는 이름의 파일 생성touch .test
: .test라는 이름의 숨김 파일 생성ls
명령어의 -a
옵션으로 확인할 수 있다.vi test.txt
# vi 편집기로 test.txt을 열어준다.
vi 편집기 mode 종류
insert mode 진입 방법
i
: 현재 위치에서 insert mode 진입a
: 현재 위치에서 커서를 한 칸 앞으로 이동 후 insert mode 진입A
: 현재 위치에서 가장 마지막 텍스트로 이동 한 후 insert mode 진입o
: 현재 위치에서 한칸 개행 한 후 insert mode 진입esc
: insert mode 나가기commend mode 명령어
u
: undo (ctrl + z와 동일)ctrl + r
: redogg
: 커서를 가장 처음으로 옮김G
: 커서를 마지막 줄로 옮김dd
: line 잘라내기yy
: line 복사p
: 붙여넣기:se nu
: 라인 줄 표시:숫자
: 숫자 라인으로 이동 (ex - :10
: 10번째 라인으로 이동)특정 단어 검색
- /word
: word라는 단어를 검색
- /\cword
: 대소문자를 구분하지 않고 word라는 단어를 검색
- n
: 다음 단어 검색
- N
: 이전 단어 검색
수정한 문서 저장
:w
: 저장
:q
: 나가기
:wq
: 저장 하고 나가기
:q!
: 수정내역이 있어도 저장하지 않고 강제로 나가기
파일에 있는 내용 확인하기
cat
/ 파일 내용 보기cat test.txt # test.txt 파일의 내용 보기
head
/ 파일의 시작 부분 보기head test.txt # test.txt 파일의 첫 10줄 내용 보기
head -50 test.txt # text.txt 파일의 첫 50줄 내용 보기
tail
/ 파일의 끝 부분 보기 python에서 pip을 사용해 외부 패키지를 사용한 것처럼 apt 명령어를 사용해 패키지를 설치하기.
ubuntu에서는 ifconfig 라는 명령어를 사용해 ip 주소를 포함해 다양한 네트워크 정보를 확인할 수 있다.
하지만, 명령어를 실행시켜 보면 아래와 같은 에러가 발생하며 명령어 실행이 되지 않는다. (ubuntu 버전에 따라 ifconfig 명령어가 기본적으로 설치 되어 있을 수도 있다.)
때문에 ifconfig 명령어를 사용하기 위해서는 패키지 설치가 필요합니다.
sudo apt update
# apt install 명령어로 설치할 수 있는 패키지들을 최신화한다.
※ update 옵션은 os 설치 후 최초 한 번만 실행시켜 주면 된다.
sudo apt install net-tools
패키지 설치 이후 ifconfig 명령어를 실행시켜 보면 네트워크 정보를 확인할 수 있다.
apt install package
/ pakage 설치하기
grep
/ 특정 문자열이 포함 된 파일 찾기grep word ./* # 현재 경로의 모든 파일을 대상으로 word라는 단어가 포함된 파일 찾기
grep word ./* -r # -r 옵션을 붙이면 디렉토리 내부까지 모두 탐색합니다.
find
/ 특정 조건의 파일 찾기find / -name "*.txt" # 최상위 경로에서 .txt로 끝나는 파일 혹은 디렉토리 검색
find ./ -type d # 현재 경로에서 모든 디렉토리 검색
find ./ -type f -name "*.txt" # 현재 경로에서 .txt로 끝나는 파일 검색
history
/ 명령어 기록 출력하기history # 지금까지 사용한 명령어 출력
htop
/ 리소스 사용량 확인하기htop # 현재 사용중인 리소스 확인하기
df
/ 남은 디스크 용량 확인하기df -h # 디스크 여유 공간 확인하기
du
/ 특정 파일 혹은 폴더가 사용중인 디스크 용량 확인하기du -sh ./* # 현재 경로의 파일 및 디렉토리가 차지하는 용량 확인하기