Linux II

eunheelog·2024년 5월 14일
0

Beyond SW

목록 보기
2/15

⛧ IP 주소가 바뀔 수 있어서 MobaXterm에서 연결이 안된다면 ipconfig로 IP 주소가 바꼈는지 확인해야함 !

[ IP 주소가 바뀐 경우 ]

  1. MobaXterm에서 User sessions에 있는 세션 우클릭 후 Edit session 눌러서 다시 설정해주기
  2. VirtualBox 에서도 IP 설정 다시 해주기(호스트 IP)

ssh-keygen -t rsa

  • rsa 알고리즘을 이용해서 암호화 키를 만드는 명령어
    → 공개키, 비공개키 2개가 만들어짐(빨간 네모 부분이 뜨면 잘 만들어진 것 !)
  • 공개키, 비공개키 있는지 확인할 수 있음

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

    * 공개키는 서버에서 가지고 있어야함 !

[ 비공개키를 윈도우로 가져오는 방법 ]

  1. .ssh 폴더로 이동

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

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

    → Advanced SSH settings > Use private key 체크하면 파일 업로드가 활성화돼서 파일 선택하면 됨
  • 이때 포트번호 30027로 설정해야함 !

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 포함된 것만 출력
profile
⛧1일 1알고리즘⛧

0개의 댓글