⛧ IP 주소가 바뀔 수 있어서 MobaXterm에서 연결이 안된다면 ipconfig로 IP 주소가 바꼈는지 확인해야함 !
[ IP 주소가 바뀐 경우 ]
- MobaXterm에서 User sessions에 있는 세션 우클릭 후 Edit session 눌러서 다시 설정해주기
- VirtualBox 에서도 IP 설정 다시 해주기(호스트 IP)
ssh-keygen -t rsa
- rsa 알고리즘을 이용해서 암호화 키를 만드는 명령어
→ 공개키, 비공개키 2개가 만들어짐(빨간 네모 부분이 뜨면 잘 만들어진 것 !)

- 공개키, 비공개키 있는지 확인할 수 있음

→ 공개키는 이름을 변경해줘야함(authorized_keys)

* 공개키는 서버에서 가지고 있어야함 !
[ 비공개키를 윈도우로 가져오는 방법 ]
- .ssh 폴더로 이동

→ 만약 .ssh 폴더가 보이지 않으면 위에 새로고침 누르기 !
- id_rsa download

→ 여기서 id_rsa 우클릭 후 download !
- 새로운 session 생성하기

→ Advanced SSH settings > Use private key 체크하면 파일 업로드가 활성화돼서 파일 선택하면 됨
Vim
sudo apt install vim 으로 vim 설치 !

- vim --version 을 통해 버전 확인 가능
- sudo apt update로 목록을 최신화할 수 있음(apt는 동기화 X)
[ Vim 명령어 ]
- vim 입력 시 실행, :q 입력 시 종료
- vim 으로 파일 수정하려면 vim 파일명
ex) vim sample.txt
- :w hello1.txt → hello1 이라는 이름으로 저장한다는 뜻
- hello2 라는 파일이 없는데 vim hello2.txt 를 실행하면 새로 생성하는데 저장해야함 !(저장 안하면 생성 X)
i(a, o) 하면 수정할 수 있고 :wq 하면 저장 후 종료됨
- shift + w : 공백으로만 구분
→ ex) 만나서, 반갑습니다. 일 경우 만에서 W 누를 시 ,가 아니라 만으로 감 !
- 행 번호 나타내는 명령어
:set number

→ 내용 옆에 행 번호 나타남 !

여기서 2G를 누르면 커서가 만으로 이동
⛧ 잘라내기
- x : 한글자 삭제
- d 로 범위를 지정해 문자 삭제 가능
- d$는 현재 커서 위치 ~ 행의 마지막
- d0은 현재 커서 위치 ~ 행의 시작
- dl은 문자 한 개
- dw는 단어 한 개
- dgg는 현재 커서 위치의 행 ~ 문서 시작
- dG는 현재 커서 위치의 행 ~ 문서 끝
- 전체 행을 자르려면 보통 모드에서 dd 를 사용한다 !
⛧ 붙여넣기
: p 로 원하는 곳에 붙여넣을 수 있음
⛧ 복사
- y 명령어로 범위를 지정해서 문자 복사 가능
- y$ : 현재 커서 위치 ~ 행의 마지막
- y0 : 현재 커서 위치 ~ 행의 시작
- yl : 문자 한 개
- yw : 단어 한 개
- ygg : 현재 커서 위치의 행 ~ 문서 시작
- yG : 현재 커서 위치의 행 ~ 문서 끝
⛧ 취소와 재실행
- u : 방금 실행한 동작 취소
- ctrl + r : 취소한 동작에 대해 다시 실행
⛧ 검색
- /문자열 : 아래 방향으로 검색
- ?문자열 : 위 방향으로 검색
- n : 검색 결과가 여러 개면 다음 검색 결과로 이동
- N : 검색 결과가 여러 개면 이전 검색 결과로 이동

→ 더 이상 해당 문자열이 없다면 이 문구가 뜸
텍스트 처리
[ 바이트 수, 단어 수, 행의 수 세기 ]
- wc : 행의 수, 단어 수, 바이트 수 출력

→ 순서대로 행의 수, 단어 수, 바이트 수가 출력됨
- wc -l : 행의 수만 출력

- wc -w : 단어 수만 출력

- wc -c : 바이트 수만 출력

[ 행 단위로 정렬 ]
- sort : 행 단위로 정렬


→ 대문자가 소문자보다 우선, ㄱ이 ㅎ보다 우선 !

→ 숫자가 아니라 문자로 저장돼서 코드값으로 비교하기 때문에 정렬이 제대로 되지 않음 ★★
- sort -n : 숫자 값으로 정렬

- sort -r : 역순으로 정렬
- sort -nr : 숫자 값이 큰 순으로 정렬

→ 숫자 값으로 비교하되 내림차순으로 정렬 가능 !
- 파일 정렬

→ 5번째(파일 크기) 값으로 정렬함
[ 중복 제거 ]
- uniq : 중복된 데이터를 제거

→ 연속으로 중복되지 않는 데이터는 남아있음
- 연속되지 않지만 중복되는 데이터도 삭제하고 싶은 경우 → 정렬 후 제거하면 됨 !

- uniq -c : 중복된 행의 개수 출력
[ 일부 추출 ]
- cut -d <구분자> -f <필드 번호> [<파일 이름>]

→ rw- : 소유자, r--는 그룹 사용자, ---는 일반 사용자 권한 (--- 는 아무 권한 X)

→ '/bin/bash' 가 있는 행만 출력하는 것 !
[ 문자 치환 ]
tr <치환 전 문자> <치환 후 문자>
- 소문자를 대문자로 치환
→ tr a-z A-Z
- 표준 입력으로만 가능(파일명을 입력하면 에러 발생)

- 파일을 입력으로 받아서 문자 치환하는 방법

- cat 으로 파일의 내용을 표준 입력으로 tr에 전달하면 에러 발생 X

[ 리다이렉션 ]
- 명령의 출력을 변경할 수 있다
> : 덮어쓰기
>> : 기존 파일 내용 뒤에 결과 추가하기
- 에러메시지를 리다이렉션 할 경우, 표준 출력 내용은 없기 때문에 저장되는 내용이 없음(에러는 모니터로 출력됨)

- 표준 에러 출력 리다이렉션은
2> 로 사용함 !
→ ls /arr 2> error.txt(이 경우에는 에러가 출력되지 않음)

- cat 은 표준 입력을 받아서 출력해주는 명령어(ctrl + C로 종료)
* 표준 입력 : 키보드로 입력 받는 것

→ 두 결과가 같음
[ 파일의 마지막 부분 출력 ]
- tail : 파일의 마지막 내용부터 출력(공백 포함)
- tail <파일 이름> : 파일의 마지막 10개 행 출력
- tail -n 5 <파일 이름> : 파일의 마지막 5개 행을 출력
- tail -f <파일이름> : 파일의 내용이 추가될 때마다 실시간으로 내용을 출력하여 파일 모니터링 가능

새창에서 echo '오렌지' >> sample.txt 할 경우(내용을 추가할 경우)

→ 창이 파란색으로 변함 ! + 내용이 추가됨

- head : 파일의 앞 내용부터 출력
사용자 계정 추가/삭제
- adduser 로 만들 수 있음

- userdel 로 계정 삭제 가능

사용자 계정 변경(로그인)/로그아웃/접근 권한
- 사용자 계정 변경

* su : select user 의 약자
- 사용자 계정 로그아웃 → exit 로 로그아웃 !
- 다른 계정으로 접근 > 권한이 없어서 불가능(sudo 명령어를 사용해도 불가능)

사용자 권한 부여
- 소유자 권한, 소유 그룹에 대한 권한, 기타(일반) 사용자 권한 다 변경 가능 !
- chmod u-r hello.txt

→ -연산자로 user 권한에서 r 뺌
→ +연산자로 user 권한에서 r 더함 (원상복귀)
- 기타 사용자 권한 변경

- 실행 권한 부여

→ 실행 권한이 생기면 파일 이름이 녹색으로 변함 !!
사용자 권한 제거
- 읽기 권한 없앤 후 cat 할 경우 → 에러 발생

- 쓰기 권한 없앤 후 vim 으로 파일을 열 경우 → 에러 발생

- 실행 권한 없앤 후 이동, 복사할 경우 → 에러 발생

- 읽기 권한이 없어도 이동은 가능 !
⛧⛧⛧ 읽기 권한이 없으면 ls 불가능, 실행 권한이 없으면 이동, 복사가 불가능 !!!
사용자 권한 2진수로 지정하기
- 권한이 있으면 1 없으면 0
- rwxr-x--- 인 경우 111/101/000 이므로 10진수로 바꾸면 750 !
검색
- grep 으로 만족하는 행들 출력하기

- 대소문자 구분하지 않고 찾기(-i 옵션 사용)

- 결과를 행 번호와 같이 출력하기(-n 옵션 사용)

- ps -ef 로 프로세스 조회 가능 !

→ grep 으로 sshd 포함된 것만 출력