Gom3rye
Linux 본문
Virtual Box에서 가상 머신이 인터넷을 하기 위한 설정
- NAT 설정을 해줘야 한다.(NAT: IP를 변경해서 외부와 통신하는 기술)
SSH 접속을 위한 설정
SSH: Secure Shell의 약자로 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜
- 예전에는 telnet을 이용했는데 telnet은 보안성이 떨어져서 지금은 거의 대부분 SSH를 이용
ssh 설치
**sudo apt update #**(기존에 설치된 패키지 업데이트)
**sudo apt install openssh-server**
ssh 서비스 실행 후 상태 확인
**sudo systemctl start ssh
sudo systemctl status ssh**
방화벽에서 ssh를 외부에서 사용할 수 있도록 개방
**sudo ufw allow ssh**
설정
- 리눅스에서 hostname -I 명령을 이용해서 IP를 확인: 10.0.2.15
- 윈도우에서 실제 IP를 확인: ipconfig (IPv4 주소 . . . . . . . . . : 192.168.56.1)
**hostname -I #로 가상 머신 ip 확인
ipconfig #로 내 컴퓨터 실제 ip 확인**
종료
**shutdown**
예약
**shutdown -P +시간**: 시간 분 후에 종료
**shutdown -r 시간**: 시간에 종료
**shutdown -c**: 예약한 shutdown 취소
**shutdown -k +분**: 분 후에 접속한 사용자들에게 종료된다는 메시지를 전송하지만 실제 종료는 안 됨
재부팅
**reboot #Virtual Box에서 해야 함 -> 이 명령 후 cmd는 자동으로 끊어져서 다시 연결해야 함
또는 init 6**
기본적인 명령어 사용
- Shell
- 사용자가 입력한 명령을 해석해서 커널로 전달하거나 커널의 처리 결과를 사용자에게 전달하는 역할 수행
- GUI에서는 터미널이라는 프로그램을 이용해서 사용할 수 있고 외부에서 SSH로 접속하면 Shell에 접속한 것이다.
- 프롬프트 (명령어를 입력할 때 보여지는 문자열)
- kyla@master:~$
- kyla: 사용자 이름
- master: 호스트 이름
- ~: 현재사용자의 홈 디렉토리
- $이면 일반 사용자이고 #이면 슈퍼 사용자
- 명령어 입력 방식
- 대화형으로 명령어 입력하고 결과를 바로 확인하는 방식
- 미리 파일에 명령어를 기록해두고 그 파일을 shell에 넘겨주는 스크립트 방식이 있다.
- 명령어 입력 시 발생하는 에러
- 키보드 입력이 안 되는 경우: 화면을 잠그는 CTRL+s가 눌러지는 경우로 이 경우에는 CTRL+q를 눌러서 화면 잠금 해제
- 실행한 명령이 종료되지 않은 경우: CTRL+c
- 프롬프트의 문자가 깨지는 경우: CTRL+I를 눌러서 클리어
- 명령어 구조
명령어 [옵션][인자]
- 옵션은 명령의 세부기능으로 -또는 --로 시작 (-: 옵션 한 글자, --: 옵션이 단어)
- 옵션 여러 개 사용 가능(-a -l -p등), 대부분 순서 없음, 결합 가능(-alp)
- 인자는 명령에 전달하는 값
**ls -al
ls /tmp # /tmp라는 인자 사용
ls -a /tmp # 옵션과 인자 동시에 사용**
- 명령어 자동 완성
- tab 누르기, 명령이 여러 개로 이루어졌다면 2번 누르기
- history
- history -d 라인번호: 라인번호에 해당하는 명령 보여줌
- history -c: 명령어 전체 삭제
- !
- !번호: 번호에 해당하는 명령 재실행
- !문자열: 문자열로 시작하는 마지막 명령 실행
- 명령어 도움말
--help 옵션을 이용하면 도움말을 출력해준다. ex. cat --help
man [옵션][section] 명령어 ex. man ls
- shell이 명령어를 찾는 순서
**echo $PATH**
- whereis : 명령어 위치 확인
- -b: 바이너리 파일만 검색
- -m: 메뉴얼만 검색
- -s: 소스 파일만 검색
- which : PATH에 기록된 디렉토리에서 명령어의 위치를 검색
- which [옵션][명령어]
- -a, -all : 모든 내용 출력
- **which -a lsmod**
- 기본 명령어
- passwd : 비번 변경
- exit : 터미널 종료, 원격 접속인 경우는 접속 해제
- clear : 현재 보이는 화면 삭제
- alias : alias 별명 = ‘실제값’
- ex. ls -F 명령을 ls로 설정 → alias ls=’ls -F’
- type 명령어를 이용하면 별명인지 확인 가능
- unalias 이용하면 별명 삭제 가능
- 원본 명령어 실행하고 싶으면 전체 경로로 명령어 실행 or command 명령어 or \명령어
- 날짜와 시간 관련 명령어
- date
- timedatectl (더 자세한 시간과 날짜)
- 시스템 사용자 정보 확인
- logname : 현재 사용 중인 계정 확인
- users : 접속한 사용자의 계정 확인
- who : 서버 관리자가 되면 많이 사용, 로그인한 모든 사용자 계정 확인
- whoami : 현재 ubuntu 사용자 확인
- 시스템 정보
- uname [옵션]
- -a : all 정보 확인 #Linux master 6.8.0-59-generic #61-Ubuntu SMP PREEMPT_DYNAMIC Fri Apr 11 23:16:11 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
- -m : 하드웨어 정보 확인 (cpu 아키텍처) #x86_64
- -n : 호스트 네임 #master
- -r : 운영체제 릴리즈 번호 #6.8.0-59-generic
- -s : 운영체제 이름 #Linux
- -v : 버전 출시 일자
- 환경 변수 확인 : env
- sudo 와 su
- sudo : 관리자의 권한을 빌려서 명령을 실행하는 것으로 관리자 비번을 입력해야 한다.
- su 계정 : 현재 계정의 환경 변수들을 유지하면서 다른 계정으로 전환
- su - 계정 : 새로운 계정의 환경 변수들을 유지하면서 다른 계정으로 전환
- su : root로 전환
GUI 설치
**sudo apt update
sudo apt install ubuntu-desktop**
추가 설정
- 로케일 설정
- 현재 로케일 확인: locale
- 로케일 수정
- **sudo apt install language-pack-ko sudo update-locale LANG=ko_KR.UTF-8 sudo dpkg-reconfigure locales 명령 후 ko_KR.UTF-8 선택 exit 으로 재부팅하면 변경되어 있음**
편집기
- 행단위 편집기(한 줄 단위로 화면에서 입력): ed, ex, sed
- 화면 단위 편집기(화면 단위로 입출력): vi(vim), emacs, nano(메뉴 기반 에디터) 등
- GUI 편집기: gedit
모드형 편집기와 비모드형 편집기
- 모드형 편집기 (vi)
- 입력 모드와 명령 모드가 구분
- 입력 모드에서는 텍스트를 입력하거나 수정을 할 수 있고 명령 모드에서 저장이나 종료 등을 수행
- 동일한 글자라도 입력 모드에서는 글자가 되지만 명령 모드에서는 명령어가 된다. ex. i → insert
- 비모드형 편집기 (nano)
- 입력 모드와 명령 모드가 구분되어 있지 않음
- 편집 기능을 CTRL 이나 ALT 같은 특수 키 또는 메뉴로 제공
vim
vi 이후에 개발된 editor
**sudo apt install vim**
동작 모드
vi를 시작하면 명령 모드로 집입
- 명령 모드 → 입력 모드) i, I(현재 위치), a, A(뒤에 들어감), o, O(엔터 친 후 아래쪽에 들어감)
- 입력 모드 → 명령 모드) esc 누르기
- 명령 모드 → 저장 및 종료) ZZ
- 명령 모드 → 마지막 행 모드) :(콜론), /(슬래시), ?(물음표)
- 마지막 행 모드 → 명령 모드) enter, esc
- 마지막 행 모드 → 저장 안 하고 종료) :q, :q! / 반대로 저장 후 종료) :wq
문서 작성
‘vim 파일 경로’ 작성- 해당 파일이 존재하면 파일의 내용이 보이고 존재하지 않는 파일이면 빈 파일이 열림
파일 경로를 생략- 메시지 창이 보임
수정 권한이 없는 경우- 읽기 전용으로 열림
**vim test.txt**
커서 이동
- k/ j : 한 행 위, 아래로 이동
- i/ h : 한 글자 앞, 뒤로 이동
- ^, 0/$ : 커서를 현재 행의 맨 앞이나 맨 뒤로 이동
- -/+ 또는 Enter : 커서를 다음 행의 처음으로 이동
- H/M/L : 커서를 화면의 맨 위/중간/아래로 이동
- w/e : 커서를 다음 단어의 처음/마지막 글자로 이동
- b : 앞 단어의 첫 글자로 이동
화면 이동
- CTRL + u : 반 화면 위로 이동
- CTRL + d : 반 화면 아래로 이동
- CTRL + b : 한 화면 위로 이동
- CTRL + f : 한 화면 아래로 이동
- CTRL + y : 화면을 한 행만 위로 이동
- CTRL + e : 화면을 한 행만 뒤로 이동
특정 행 이동
- shift + g : 파일의 마지막 행으로 이동 (= :$) → 맨 뒤로 넘길 때, 양이 많은 문서를 읽을 때 사용
- 행번호 shift + g : 지정한 행 번호로 이동 (= :행번호)
수정
- r : 커서가 위치한 글자를 다른 글자로 수정
- cw, #cw : 커서 위치부터 현재 단어의 끝까지 수정하는데 # 자리에 숫자를 지정하면 수정할 단어의 수가 된다.
- s, #s : 커서 위치부터 esc를 누를 때까지 수정하는데 #에서는 수정할 글자 수를 설정
- cc : 현재 행을 전부 수정
- C : 커서 위치부터 행의 끝까지 수정
삭제
- x, #x : 글자 삭제
- dw, #dw : 단어 삭제
- dd, #dd : 행을 삭제
- shift + d : 커서 위치부터 행의 끝까지 삭제
명령 취소
- u : 명령 취소
- U : 해당 행에서 수행한 모든 명령을 취소
- :e! : 마지막 저장한 내용 이후의 것을 버리고 새로 작업
복사 잘라내기, 붙여넣기
- yy, #yy : 커서가 위치한 행을 복사
- p : 커서가 위치한 행의 아래쪽에 붙이기
- P : 커서가 위치한 행의 위에 붙이기
- dd, #dd : 행 잘라내기
연습 문제
exec.txt 파일 열어서 마지막 행에 Welcome Linux World 추가하고 파일 저장 후 종료하기
vim exec.txt
i 누르고
Welcome Linux World
:wq
버퍼
저장할 수 있는 공간
- 복사나 잘라내기를 할 때 내용을 버퍼에 저장한다.
- 이때 사용하는 버퍼는 언네임드 버터라고 하고 하나의 내용만 저장한다.
- 네임드 버퍼는 버퍼에 이름을 붙여서 사용하는 것으로 여러 개의 버퍼를 만들 수 있다.
- 만드는 방법은 “문자나 숫자, 복사나 잘라내기 수행
- 붙여넣기- “버퍼이름+p
728x90
반응형
'현대 오토에버 클라우드 스쿨' 카테고리의 다른 글
Linux (0) | 2025.05.20 |
---|---|
Linux (0) | 2025.05.20 |
Linux (0) | 2025.05.20 |
파이썬과 데이터베이스 연동 (1) | 2025.05.20 |
Mongo DB (0) | 2025.05.20 |