[우분투 서버 공부] 기본 사용 방법 및 디렉터리 탐색 - Whitmem
[우분투 서버 공부] 기본 사용 방법 및 디렉터리 탐색
System
2023-09-21 16:56 게시 a78be93a5aacd17a808b

0
0
134
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
리눅스 서버 주요 사용 방법 및 유의 사항
이 게시글에서는 우분투 서버를 접속하는 방법과 함께 명령어를 알아보고자 합니다. 게시글에서 제시하는 서버는 필자의 개인 서버로 오직 테스트 용도로만 실행됨을 고지합니다. 실제 24시간 업타임 되는 서버, 서비스 등에서는 명령을 수행하기 전 해당 작업이 문제가 없는지 확인하고 유의 해야 합니다. 잘못된 명령 요청이 서버의 치명적인 문제, 피해, 오류를 유발할 수 있습니다.
서버 서비스의 접속
리눅스 서버는 기본적으로 SSH 라는 프로토콜을 활용해서 서버를 원격제어 합니다. 기본적으로 GUI 환경으로 조작하지는 않기 때문에 모든 것을 명령 터미널단에서 수행하며 서버에 접속한 뒤 수행되는 모든 명령어와 결과는 서버에서 수행된 결과임에 유의해야 합니다. 즉 서버를 접속한 이후부터 해당 창에서 수행되는 모든 명령은 서버에서 동작되는 작업이며 본인 PC와 전혀 관련 없음을 명심해야 합니다.
명령 터미널의 접속 과정
사용자의 PC 터미널에서 ssh클라이언트 명령어를 통해 원격 IP/port에 해당하는 서버에 접속할 수 있습니다. 접속 명령어는 다음과 같은 형태입니다.
ssh 계정명@서버아이피 -p 포트
계정 명, 서버 아이피, 포트는 모두 서버 관리자가 제공하는 정보입니다.
명령 터미널 비밀번호 입력
이후 비밀번호를 입력합니다. 비밀번호는 화면 상에 출력되지 않습니다.
명령 터미널의 구성 및 설명
서버를 접속하게 되면 기본적으로 아래와 같은 화면이 표시 됩니다. 현재 출력된 메시지들과 입력되는 내용이 표시되는 부분이 존재합니다. 특히 사용자가 입력하는 부분의 좌측에 사용자계정@PC명:~$ 으로 표시가 되고 있습니다. 그렇지 않다면, bash 명령어를 통해서 배시 프롬프트 모드로 진입해야 합니다.
배시 모드
$ bash
bash 입력 후 엔터
bash로 진입되면 사용자 계정 정보와 PC 정보가 앞에 표시됩니다. 우리는 기본적으로 이 모드에서 모든 명령들을 수행하고 처리할 수 있습니다.
권한 표시 및 디렉터리
기본적으로 터미널에서 명령어를 입력할 때 현재 작업 디렉터리와 권한 정보에 의식해야 합니다. 명령어를 입력하는 공간 앞 달러 표시 $는 사용자의 권한 상태를 나타냅니다. 기본적으로 $ 인 경우, 일반 사용자 권한단계에서 명령어를 실행할 수 있음을 의미합니다. 즉 이러한 상태에서는 엑세스 권한이 없는 시스템의 폴더나 디렉터리, 데이터를 수정하거나 열람할 수 없음을 의미합니다. 사용자가 직접 생성하고 처리한 디렉터리만 수정하고 변경할 수 있음을 의미하며, 앞으로 실행하는 모든 명령어는 일반 사용자 권한에서 실행됩니다.
권한 표시
한편 관리자 모드에 진입하는 경우 끝 표시은 #이 되며, 계정 역시 관리자 계정을 의미하는 계정으로 권한 상승됩니다. 여기서 수행하는 명령어는 모두 관리자 권한에서 실행되며 특히 잘못 입력하는 명령어는 치명적인 서버 오류를 유발할 수 있으므로 절대적으로 유의 해야 합니다.
관리자 권한
작업 영역 디렉터리
한편 명령어를 수행할 때 그 명령이 수행되는 기반 디렉터리가 존재합니다. 이를 작업 영역 디렉터리 - Working Directory 라고 부릅니다. 이러한 현재 디렉터리는 : 뒤에 표시되어 있으며, 기본적으로 ~로 설정되어 있음을 확인할 수 있습니다.
작업 영역 디렉터리
~디렉터리는 기본적으로 사용자 홈 디렉터리를 의미하며 우분투 서버 기준 /home/사용자명/ 이라는 위치를 의미합니다. 만약 다른 위치로 작업 영역을 변경한다면 다음과 같이 표시 됩니다.
/home
현재 작업 디렉터리가 /home 임을 확인할 수 있습니다. 이 상태에서는 명령어를 수행하면 /home 경로를 기반으로 실행됩니다.
서버 구성 정리
결과적으로 위 과정을 통해 원격 서버에 접속 해 보았습니다. 원격 서버에 접속하여 명령어를 수행하면 그 모든 명령어는 원격 서버에서 수행되고 결과조차 원격 서버에서 응답하게 됩니다. 즉 본인의 PC와는 전혀 관련 없으며, 파일 조차 원격 서버에 존재하는 파일들로 작업을 수행하게 됩니다. 즉 본인 PC에 파일이 있더라도 원격 서버에 업로드 하지 않는 한 이를 활용할 수 없으며 별개 프로그램이나 도구를 활용해서 원격 서버에 파일을 업로드 해야 합니다. 그러한 도구를 우리는 FTP 프로그램이라고 부릅니다.
즉, SSH는 원격 서버에 명령어를 송신하고 수신하기 위한 프로토콜을 의미하고 FTP / SFTP는 원격 서버에 파일을 업로드 하기 위한 프로토콜 입니다. 즉 보통 두 연결 도구는 한 쌍으로 사용됩니다.
사용법
디렉터리 관련 명령어
지금부터 디렉터리를 탐색하고 사용하는 방법에 대해서 매우 간단하게 알아봅니다. 여기서는 제일 기본적인 내용만 언급하며 별개 정보는 언급하지 않습니다.
디렉터리 조회
지금 작업 영역은 ~ 로 홈 디렉터리를 의미합니다.
현재 상황에서 현재 작업 영역의 디렉터리 및 파일 목록을 확인하려면 ls를 입력합니다.
$ ls
디렉터리 조회
현재 디렉터리에 존재하는 폴더 파일들이 모두 표시 됩니다.
디렉터리 조회
글자 색상이 짙은 색은 디렉터리를 의미하고, 단순 흰색은 파일을 의미합니다.
한편 ls 명령 뒤에 디렉터리 조회할 위치를 명시적으로 부여할 수 있습니다. 현재 디렉터리로 부터 Desktop 디렉터리 내의 목록을 확인하려면 다음과 같이 입력합니다.
$ ls Desktop
$ ls <경로>
상대 디렉터리 조회
참고
ls 에 경로를 명시적으로 부여할 때 상대 경로로 지정할지 절대 경로로 지정할지 결정할 수 있습니다. 예를 들어 ls Desktop은 현재 작업 영역으로부터 Desktop을 탐색하게 되고, ls /Desktop 은 현재 작업 영역이 아닌 시스템의 루트 디렉터리 / 에서 Desktop을 탐색하게 됩니다.
기본적으로 시스템에는 /Desktop 이라는 디렉터리는 없기 때문에 엑세스할 수 없다는 메시지가 표시 됩니다. 리눅스 시스템에서의 파일 경로는 윈도우 운영체제의 C:\와 다르게 / 부터 시작하므로 앞에 "/"가 붙어 있다면 절대 경로를 의미합니다.
유의
리눅스에서는 경로를 탐색할 때 역슬래쉬(\)가 아닌 슬래쉬(/)를 사용합니다. \를 사용하면 시스템에서 파일 명으로 간주하기 때문에 반드시 /를 사용해야 합니다.
작업 디렉터리 이동
작업 디렉터리를 이동하기 위해서 cd 명령어를 사용합니다.
$ cd <이동할 대상>
이동할 대상은 디렉터리 명이 될 수도 있고, 상대 경로가 될 수도, 절대 경로가 될 수도 있습니다. 해당 디렉터리의 부모 디렉터리로 이동하려면 ..을 사용합니다
$ cd ..
경로에 부모 디렉터리의 경로 등을 직접 삽입할 수 있습니다.
$ cd ../../home/
루트 디렉터리로 이동하기
$ cd /
홈 디렉터리로 이동하기
$ cd ~/
현재 디렉터리로 이동하기 (변화 없음)
$ cd ./
디렉터리 생성
현재 디렉터리를 기준으로 새로운 디렉터리를 생성하려면 mkdir 명령어를 사용합니다. 디렉터리 명에 경로가 포함될 수 있습니다.
$ mkdir <새 디렉터리명>
현재 작업 영역을 기준으로 home 디렉터리 새로 생성
$ mkdir home
현재 작업 영역을 기준으로 부모 디렉터리에 home 디렉터리 새로 생성
$ mkdir ../home
절대 경로의 / 위치에 hello 디렉터리 새로 생성
$ mkdir /hello
유의 사항
/ 디렉터리는 관리자 권한이 있어야 수정, 생성, 편집 등의 작업을 수행할 수 있습니다. 이 디렉터리에 존재하는 파일을 잘못 건들거나 삭제하는 경우 시스템이 손상될 수 있습니다.
디렉터리 또는 파일 이동 및 이름 변경
파일이나 디렉터리를 이동하기 위해서 mv명령어를 사용합니다.
$ mv <이동하고자 하는 경로> <이동 대상 경로>
현재 작업 영역의 test 파일 또는 디렉터리를 현재 작업 영역에 존재하는 Desktop 내부로 이동
$ mv test Desktop/
루트 폴더에 있는 hello.txt 파일을 현재 작업 영역에 존재하는 Desktop 내부로 이동
$ mv /hello.txt Desktop/
한편 대상 디렉터리 뒤에 /를 붙이지 않는 경우 해당 명칭으로 이름을 변경합니다.
현재 test 디렉터리 또는 파일 명을 test2로 변경
$ mv test test2
현재 test 디렉터리 또는 파일 명을 현재 작업 영역 Desktop 내로 이동하면서 test2로 변경
$ mv test Desktop/test2
파일 제거 및 디렉터리 제거
형식상으로, 파일을 제거하기 위해서는 rm 명령어를 사용하고, 디렉터리를 제거하기 위해서는 rmdir을 사용합니다.
$ rm <파일 또는 경로명>
$ rmdir <파일 또는 경로명>
원칙상 rmdir 기본 명령어로는 빈 디렉터리만 제거할 수 있습니다.
디렉터리가 비어있지 않습니다.
따라서 대부분 rm 명령에 하위 내용까지 제거되는 옵션을 사용해서 제거합니다.
$ rm -rf <경로명 또는 디렉터리>
경고
해당 명령을 수행하면 다시 되돌릴 수 없습니다. 명령이 수행되는 순간 모두 제거 시작되며 복구가 힘들어집니다. 잘못된 명령 수행은 서버에 치명적인 손상을 발생시킬 수 있으며, 재산상 손해를 끼칠 수 있습니다. 특히 관리자 권한으로 루트 디렉터리 / 에 대한 제거 요청은 절대 금합니다.
경로 권한
리눅스에서는 모든 디렉터리에 대해 특정 권한이 부여되어 있습니다. 사용자가 엑세스할 수 있는지, 편집할 수 있는지, 또 해당 영역에서 실행할 수 있는지에 대한 모든 권한을 관리할 수 있습니다. 하지만 이 게시글에서는 주요 내용으로 다루지는 않습니다.
ls -al
$ ls -al
명령 ls -al을 통해 현재 작업 디렉터리의 상세한 구조를 조회할 수 있습니다.
구조
drwxr-x--- 16 whitmemit_test whitmemit_test 4096 9월 21 12:11 . drwxr-xr-x 3 root root 4096 9월 21 10:23 .. -rw------- 1 whitmemit_test whitmemit_test 35 9월 21 10:58 .bash_history
첫 번째 열은 권한 구조를 나타냅니다. 소유자의 읽기r,쓰기w,실행x, 그룹의 읽기r,쓰기w,실행x, 이외 또 다른 사용자의 읽기r,쓰기w,실행x 가능 여부를 나타냅니다. 두 번째 열은 소유자의 계정 명, 세 번째 열은 권한을 가지는 그룹 명, 네 번째 열의 숫자는 파일 크기를 나타냅니다.
파일 내용 보기
파일 내용을 보려면 명령어 cat 또는 tail을 사용합니다.
$ cat <파일 명>
$ tail <파일 명>
댓글 0개
댓글은 일회용 패스워드가 발급되며 사이트 이용 약관에 동의로 간주됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.