- 오픈소스
소스코드를 자유롭게 보고 수정할 수 있다
다양한 종류의 Linux기반 OS가 존재- 마우스/키보드를 사용해 조작하는 GUI 환경의 Windows/MAX과 달리
기본적으로 CLI환경에서 사용한다.- Linux의 명령어와 옵션의 구조
- Linux를 사용하는 이유
오픈소스이기때문에 무료로 사용 가능
다양한 사람들이 소스코드를 보고 수정할 수 있다.
다른 종류의 OS에 비해 안정적인 환경에서 운영 할 수 있다.
- SSH 설정
SSH는 보안에 민감한 문제이기 때문에 아무 IP에서 접근하도록 하는것은 적합하지 않다, 하지만 테스트 환경이기때문에 아무 IP에서 접근할 수 있도록 설정
- 시큐어 셸 (SSH)
네트워크 상의 다른 컴퓨터에 로그인 하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용프로그램
- cmd , git bash
ssh -i <keypair 경로> ubuntu@<EC2 PUBLIC IP>
- 상대경로
나의 현재 위치를 기준으로 경로를 지정
ex)cd ./dir/현재 위치에 존재하는 dir 디렉토리로 이동
ex)cd ../현재 위치를 기준으로 상위 디렉토리로 이동- 절대 경로
현재 위치와 관계없이 절대적인 경로 이용
ex)cd /home/user/example/dir/
wild card(*)란?
특정 파일이나 디렉토리를 지정할 때, 이름을 지정해 줘야 하는 경우
wild card(*)를 사용하면 더 빠르게 탐색하거나 실행이 가능ls -l ./*.txt # .txt로 끝나는 모든 파일 목록 출력하기
디렉토리를 생성하고 이동해보기
mkdir/ 디렉토리 생성하기mkdir ./test # 현재 경로에 test 디렉토리 생성하기 mkdir ./test/test2 # test 디렉토리 안에 test2 디렉토리 생성하기 mkdir /home/ubuntu/test3 # /home/user 경로에 test3 디렉토리 생성하기pwd/ 현재 경로 확인하기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/ 파일 생성하기touch test.txt # test.txt 파일 생성하기cp/ 파일 복사하기cp test.txt test_copy.txt # test.txt 파일을 test_copy.txt라는 이름으로 복사하기 cp -r directory directory_copy # 폴더를 복사할 경우 -r 옵션 사용mv/ 파일 이동하기mv ./directory1/test.txt ./ # directory1 경로의 test.txt 파일을 현재 경로로 이동 # mv는 파일의 이름을 변경할 때도 사용됩니다. mv test.txt text2.txt # test.txt 파일의 이름을 test2.txt로 변경rm/ 파일 삭제하기rm test.txt # test.txt 파일 삭제 rm -r directory # 디렉토리를 삭제하기 위해서는 -r 옵션을 붙여줘야 합니다.
- vi 편집기 활용해보기
vi test.txt # 만약 존재하는 파일이 아니라면 파일을 자동 생성 # 경로 설정을 안해줄시 현재 경로에 생성된다.- vi 편집기 mode 종류 - insert mode : 텍스트를 입력 할 수 있는 상태 - commend mode : 특수한 commend를 입력 할 수 있는 상태 - 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라는 단어를 검색 (ex - /\cword)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/ 파일의 끝 부분 보기tail text.txt # text.txt 파일의 마지막 10줄 내용 보기 tail -50 text.txt # text.txt 파일의 마지막 50줄 내용 보기
Ubuntu 패키지 매니저 APT
- Linux 버전에따라 사용하는 매니저가 다르다.
- ubuntu에서는 ifconfig 라는 명령어를 사용해 ip 주소를 포함해 다양한 네트워크 정보를 확인할 수 있습니다.
ubuntu 버전에 따라 ifconfig 명령어가 기본적으로 설치 되어 있을 수도 있습니다.sudo apt update # apt install 명령어로 설치할 수 있는 패키지들을 최신화한다. sudo apt install net-tools
- sudo : 관리자 권한
- tab / 자동완성 시키기
- 키보드의 tab 버튼을 활용해 파일, 디렉토리 이름 등을 자동완성 시킬 수 있습니다.
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 ./* # 현재 경로의 파일 및 디렉토리가 차지하는 용량 확인하기
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
ssh-keygen
cat ~/.ssh/id_rsa.pub
