본문 바로가기
한화시스템 Beyond SW Camp/기반기술

[리눅스]기초 : 가상 컴퓨터(VMware), 명령어, 권한, Vi 편집기

by taeh00n 2024. 11. 21.

※ 이 글에서 다룬 기반기술, 프론트엔드, 백엔드, 데브옵스 등 풀스택 개발 지식은 모두 한화시스템 Beyond SW Camp 12기에서 배운 내용을 복습한 것입니다.

 

리눅스를 들어가기에 앞서 서버, 클라이언트, 명령어는 모두 '프로그램' 한 단어로 설명할 수 있다.

 

우선, 윈도우 명령창에서 ipconfig 명령어를 쳐보겠다.

윈도우 명령창에 ipconfig 명령어 실행

이 화면만 보면은 단순히 ipconfig라는 명령어가 실행된거라고 볼 수 있다.

 

하지만 ipconfig라는 프로그램이 실행된 것이다.

C:\Windows\System32\ipconfig

위 그림을 보면 C:\Windows\System32에 있는 ipconfig라는 '프로그램'이 실행된 것을 볼 수 있다.

하지만 왜 명령창에서는 ipconfig만 쳐도 C:\Windows\System32에 있는 ipconfig가 실행되는걸까?

→ 그 이유는 시스템 환경 변수 PATH에 C:\Windows\System32가 포함되어있기 때문이다.

 

서버 : 서비스를 제공하는 프로그램

클라이언트 : 서비스를 이용하는 프로그램

서버, 클라이언트, 명령어가 모두 '프로그램'이라는 기초 지식을 바탕으로 명령어 기반으로 사용되는 리눅스를 더 잘 이용할 수 있을 것이다.

 


리눅스

강사님이 만든 가상 환경에서 가상 컴퓨터를 만들고 실행하기 위해 VMware를 사용하였다.

VMware : 하나의 물리적인 컴퓨터에서 여러 개의 가상 컴퓨터를 실행할 수 있게 해주는 가상화 소프트웨어

                    = 가상 머신을 만들어주는 프로그램

 

가상 컴퓨터 생성하기

VMware에서 가상 컴퓨터 생성

VMware에서 가상 컴퓨터를 생성하려면 File -> New Virtual Machine 으로 생성할 수 있다.

설치 방법은 기본 설정(Typical)로 설정한 후 운영체제 선택, 가상 머신 이름 및 저장 위치, 디스크 용량을 설정하면 가상 머신을 생성할 수 있다.

 

나는 강사님이 주신 파일로 가상 컴퓨터를 생성하였다.

 

가상 컴퓨터 실행

나는 강사님이 주신 파일로 가상 컴퓨터를 생성하였고 VMware에서 빨간 저 버튼을 클릭하면 가상 컴퓨터가 실행된다.

 

리눅스 명령어_기초

pwd 현재 작업 디렉토리 확인
cd 작업 디렉토리 변경
ls 디렉토리 내용 확인
mkdir 디렉토리 생성
rmdir 디렉토리 제거
mv 디렉토리 이름 변경 / 디렉토리 이동 / 파일 이름 변경 / 파일 이동
/cp 디렉토리 복사
touch 내용에 아무것도 없는 빈 파일 생성
rm 파일 제거
cp 파일 복사
cat, head, tail, more 파일 내용 확인

명령어는 이러한 것들이 있는데  구글에 검색하면 더 많은 명령어를 알 수 있다.

위의 명령어는 기본적으로 알고 있으면 좋다.

 

앞 과정에서 VMware를 통해 가상 컴퓨터를 만들어서 리눅스 명령어를 사용할 수 있지만 난 PuTTy가 더 편하다고 생각되어 PuTTy를 사용할 것이다.

PuTTy접속을 위해 가상 컴퓨터의 IP주소를 알아야하는데 리눅스 명령어 ip addr를 입력하면 IP 주소를 확인할 수 있다.

PuTTy

● PuTTY : SSH 프로토콜을 사용해 원격 서버에 접속해 명령어를 실행할 수 있는 터미널

                  = 인터넷을 통해 다른 컴퓨터에 접속해 그 컴퓨터에서 명령어를 입력하고 작업할 수 있는 프로그램

 

 

로그인 후 초기화면

PuTTy로 로그인 후 초기화면이다.

터미널에 $ 표시가 되어있는데 $는 일반 사용자를 의미한다.

관리자 권한 즉, 루트(root) 사용자로 로그인하면 #으로 바뀌는데 뒤에서 보여주겠다.

 

● $ : 일반 사용자 권한. 보통 시스템에 큰 영향을 미치지 않는 명령어 실행할 때

● # : 관리자(root) 권한. 시스템 설정 변경하거나 중요한 작업을 실행할 때 

 

리눅스 기초 명령어에서 자주 사용되는 옵션들만 간단히 설명하겠다

 

ls 명령어 - 현재 디렉토리의 파일과 폴더 나열

ls 명령어

● -a : 숨겨진 파일 포함해 모든 파일 보여주는 옵션

● -l : 각 파일과 폴더에 대한 자세한 정보를 보여주는 옵션 (권한, 소유자, 크기, 수정시간 등등)

 

rm 명령어 - 파일이나 디렉토리 삭제

rm 명령어

● -r : 디렉토리 안에 있는 모든 파일과 하위 디렉토리까지 삭제하는 옵션

● -f : 삭제를 강제로 진행 

-f 옵션을 사용하는 이유

 

이 두가지 명령어의 옵션이 가장 많이 사용되는 것 같다. 옵션을 개별로 쓸 일은 거의 없을 거 같아 통째로 외워놓으면 될 것 같다.

touch 명령어 - 빈 파일 생성

touch 명령어

내용에 아무것도 없는 빈 abc.txt라는 파일을 생성했다.

cat 명령어 - 파일 내용 확인

내용 확인을 위해 위에서 만든 abc.txt 파일에 미리 내용을 넣어두었다.

cat 명령어

미리 입력해둔 내용이 제대로 출력되는 것을 확인할 수 있다.

 

 

리눅스 경로

리눅스에서 경로를 입력하는 방식은 절대 경로 방식상대 경로 방식 두 가지가 있다.

절대 경로 : 파일 시스템의 루트부터 시작하는 전체 경로를 입력하는 방식

절대 경로 방식

 

상대 경로 : 현재 작업 중인 위치를 기준으로 파일이나 폴더의 경로를 입력하는 방식 (.은 현재 위치를 나타냄)

 

상대 경로 방식

추가로 cd ..는 한 단계 위 디렉토리로, cd ../..는 두 단계 위 디렉토리로 이동한다.

 

리눅스 권한

ls -al 명령어를 통해 권한 보기

위에서 ls -al 명령어를 실행했을 때 rwx가 반복되거나 비어있는 것을 보았다.

이 부분은 파일이나 디렉토리의 권한을 나타내는 기호이다.

● r : 읽기 권한

● w : 쓰기 권한

● x : 실행 권한

 

* 파일을 수정하려면 해당 파일을 먼저 읽어야 하기 떄문에 최소 rw-는 필요하다

* 파일을 실행을 위해서는 해당 파일을 읽을 수 있어야 실행되는 경우가 많으므로 최소 r-x는 필요하다

 

파일 소유자가 자신의 파일 권한을 바꿀 수 있으며, root 계정도 모든 파일의 권한 chmod 명령어로 변경할 수 있다.

chmod 사용법

예시) chmod 777 file => 현재 디렉토리에서 file이라는 파일의 권한을 소유자, 그룹, 다른 사용자에게 모두 읽기, 쓰기, 실행

                                       권한을 부여한다.


Vi 편집기 - 명령모드 (파일 편집)

esc를 누르면 명령모드가 된다.

gg 첫 번째 줄 이동
G (Shift + g) 마지막 줄 이동
4G 4번째 줄로 이동
$ (Shift + 4) 라인의 끝으로 이동
0 라인의 처음으로 이동
w 한 단어씩 뒤로
b 한 단어 씩 앞으로
x 한 글자씩 삭제
dd 해당 라인 삭제
d[커서이동] 커서 이동하는 만큼 삭제
yy 커서가 위치한 해당 줄 복사
p 붙여넣기

Vi 편집기 - Last Line 모드 (파일 저장, 종료 등 관리 관련 명령)

명령모드에서 콜론(:)을 누르면 last line 모드로 전환된다.

:w 저장
:q 끄기
:wq 저장하고 끄기
:wq! 강제로 저장 후 강제 종료

 

Vi 편집기 - 편집 모드

i를 누를 시에 편집 모드 (그 위치에서부터 입력 가능)

 


 

관리자 로그인 (root)

sudo su - root 명령어로  관리자 로그인

관리자로 로그인하니 root 계정으로 들어가며 터미널에도 #으로 표시된다.

관리자 권한으로 로그인되었다는 뜻이다.

 

sudo: 현재 사용자가 root 권한을 얻도록 하는 명령어.

 

su : 다른 사용자로 전환하는 명령어, 기본적으로 root로 전환.

- : root 사용자의 환경 변수와 홈 디렉토리로 전환하는 옵션.

root : 시스템의 최고 관리자 계정, 모든 권한을 가진 사용자.

 

=> root 계정은 모든 파일을 수정하거나 삭제할 수 있는 시스템의 최고 관리자다.