Linux 기본 소개
소개
Linux는 Linux 커널을 기반으로 하는 무료 오픈 소스 운영 체제 제품군입니다. Linux 기반 운영 체제는 Linux 배포판 또는 배포판으로 알려져 있습니다. 예를 들면 Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux 등이 있습니다.
Linux 커널은 1991년부터 활발히 개발되어 왔으며 매우 다재다능하고 적응력이 뛰어난 것으로 입증되었습니다. 웹 서버에서 휴대폰에 이르기까지 전 세계의 다양한 상황에서 Linux를 실행하는 컴퓨터를 찾을 수 있습니다. 오늘날 모든 클라우드 인프라의 90%와 전 세계 스마트폰의 74%가 Linux로 구동됩니다.
그러나 Linux 파일 시스템은 Windows나 MacOS에서 볼 수 있는 구조와 구조가 다르기 때문에 Linux를 처음 사용하는 사용자는 접근하기 다소 어려울 수 있습니다. 또한 Linux 기반 운영 체제는 명령줄 인터페이스 작업에 크게 의존하는 반면 대부분의 개인용 컴퓨터는 그래픽 인터페이스에 의존합니다.
이 가이드는 중요한 명령줄 개념과 기술에 대한 소개 역할을 하며 초보자가 Linux에 대해 자세히 배울 수 있도록 합니다.
전제 조건
이 가이드를 따라 하려면 Linux 기반 운영 체제를 실행하는 컴퓨터에 액세스해야 합니다. 이것은 SSH 또는 로컬 시스템으로 연결한 가상 사설 서버일 수 있습니다. 이 튜토리얼은 Ubuntu 20.04를 실행하는 Linux 서버를 사용하여 검증되었지만 주어진 예제는 모든 Linux 배포 버전을 실행하는 컴퓨터에서 작동해야 합니다.
이 가이드를 따르기 위해 원격 서버를 사용할 계획이라면 먼저 초기 서버 설정 가이드를 완료하는 것이 좋습니다. 이렇게 하면 sudo
권한이 있는 루트가 아닌 사용자와 UFW로 구성된 방화벽을 포함하여 보안 서버 환경을 설정하여 Linux 기술을 구축하는 데 사용할 수 있습니다.
터미널
"터미널\, "셸\ 및 "명령줄 인터페이스\라는 용어는 종종 같은 의미로 사용되지만 이들 사이에는 미묘한 차이가 있습니다.
- 터미널은 셸을 실행하는 텍스트 전용 창을 제공하는 입력 및 출력 환경입니다.
- 셸은 컴퓨터의 운영 체제를 사용자나 프로그램에 노출시키는 프로그램입니다. Linux 시스템에서 터미널에 표시되는 셸은 명령줄 인터프리터입니다.
- 명령줄 인터페이스는 명령을 컴퓨터 프로그램으로 처리하고 결과를 출력하는 사용자 인터페이스(명령줄 인터프리터 프로그램에 의해 관리됨)입니다.
누군가가 Linux의 맥락에서 이 세 가지 용어 중 하나를 언급할 때 일반적으로 다음과 같이 명령을 실행하고 결과가 터미널에 출력되는 것을 볼 수 있는 터미널 환경을 의미합니다.

Linux 전문가가 되려면 터미널 사용에 익숙해야 합니다. 파일 조작, 패키지 설치, 사용자 관리 등 모든 관리 작업을 터미널을 통해 수행할 수 있습니다. 터미널은 대화식입니다. 실행할 명령을 지정하면 터미널이 해당 명령의 결과를 출력합니다. 명령을 실행하려면 프롬프트에 명령을 입력하고 ENTER
를 누르십시오.
클라우드 서버에 액세스할 때 터미널 셸을 통해 액세스하는 경우가 가장 많습니다. Linux를 실행하는 개인용 컴퓨터에는 대부분의 컴퓨터 사용자에게 친숙한 종류의 그래픽 데스크톱 환경이 제공되는 경우가 많지만 터미널에 입력된 명령을 통해 특정 작업을 수행하는 것이 더 효율적이거나 실용적인 경우가 많습니다.
파일 시스템 계층 구조 표준
거의 모든 Linux 배포판은 FHS(Filesystem Hierarchy Standard)로 알려진 파일 시스템 디렉토리 구조에 대한 범용 표준을 준수합니다. FHS는 각각 고유한 특수 기능을 제공하는 일련의 디렉토리를 정의합니다.
슬래시(/
)는 FHS에 의해 정의된 파일 시스템 계층 구조의 루트 디렉토리를 나타내는 데 사용됩니다.
사용자가 셸에 로그인하면 /home/
에 저장된 자신의 사용자 디렉터리로 이동합니다. 이것은 사용자의 홈 디렉토리라고 합니다. FHS는 일반 사용자의 홈 디렉토리를 포함하는 것으로 /home/
를 정의합니다.
루트 사용자는 FHS에 의해 지정된 자체 홈 디렉토리를 가집니다: /root/
. /
는 "루트 디렉터리\라고 하며 /
에 저장되는 root/
와 다릅니다.
FHS는 Linux 시스템의 기본 파일 시스템 레이아웃이고 그 안의 각 디렉토리는 특정 목적을 위해 포함되기 때문에 기능별로 파일을 구성하는 프로세스를 단순화합니다.
항해
Linux 파일 시스템은 디렉토리 트리를 기반으로 합니다. 즉, 다른 디렉터리 내부에 디렉터리(다른 운영 체제에 있는 폴더와 기능적으로 동일함)를 만들 수 있으며 파일은 모든 디렉터리에 존재할 수 있습니다.
현재 활성화된 디렉토리를 확인하려면 "print working directory\를 나타내는 pwd
명령을 실행할 수 있습니다.
- pwd
pwd
는 현재 디렉토리의 경로를 출력합니다. 출력은 다음과 유사합니다.
Output/home/sammy
이 예제 출력은 현재 활성 디렉토리가 루트 디렉토리인 /
에 있는 home/
디렉토리 안에 있는 sammy
임을 나타냅니다. 앞에서 언급했듯이 sammy/
디렉토리는 home/
디렉토리 내에 저장되므로 sammy/
는 sammy 사용자의 홈 디렉토리를 나타냅니다.
현재 작업 디렉토리에 있는 파일 및 디렉토리 목록을 보려면 ls
명령을 실행하십시오.
- ls
그러면 현재 작업 디렉토리에 있는 파일 또는 디렉토리의 이름 목록이 반환됩니다. 그러나 새 컴퓨터에서 이 가이드를 따르는 경우 이 명령은 출력을 반환하지 않을 수 있습니다.
"make directory\를 나타내는 mkdir
명령을 사용하여 현재 작업 디렉토리 내에 하나 이상의 새 디렉토리를 생성할 수 있습니다. 예를 들어, testdir1
및 testdir2
, 다음 명령을 실행할 수 있습니다.
- mkdir testdir1 testdir2
이제 ls
명령을 실행하면 다음 디렉토리가 출력에 나타납니다.
- ls
Outputtestdir1
testdir2
이러한 새 디렉토리 중 하나로 이동하려면 cd
명령("change directory\를 나타냄)을 실행하고 디렉토리 이름을 지정하십시오.
- cd testdir1
이것은 새로운 현재 작업 디렉토리를 지정한 디렉토리로 변경합니다. pwd
로 이것을 볼 수 있습니다:
- pwd
Output/home/sammy/testdir1
그러나 testdir1
과 testdir2
는 모두 sammy 사용자의 홈 디렉토리에 있으므로 디렉토리 트리의 서로 다른 분기에 상주합니다. cd
명령은 현재 작업 디렉토리 내의 디렉토리를 찾습니다. 따라서 cd
는 이전에 생성한 testdir2
디렉토리로 직접 cd
할 수 없습니다. code>testdir1은 작업 디렉토리입니다.
- cd testdir2
Outputbash: cd: testdir2: No such file or directory
그러나 탐색하려는 디렉토리의 전체 경로를 지정하면 현재 작업 디렉토리에 관계없이 기존 디렉토리로 이동할 수 있습니다.
- cd /home/sammy/testdir2
참고: Linux에서 물결표(~
)는 로그인한 사용자의 홈 디렉터리를 약칭합니다. 이를 알면 이전 명령을 다음과 같이 작성할 수 있으며 동일한 결과를 얻을 수 있습니다.
- cd ~/testdir2
또한 ..
를 지정하여 경로에서 한 수준 위의 디렉토리로 변경할 수 있습니다. 원래 디렉터리로 돌아가려면:
- cd ..
탐색 트리에서 자신이 어디에 있는지 혼란스럽다면 언제든지 pwd
명령을 실행하여 현재 디렉터리를 찾을 수 있음을 기억하십시오. 많은 최신 쉘(많은 Linux 배포판의 기본값인 Bash 포함)도 이 섹션의 예제 명령에 표시된 대로 현재 디렉토리를 나타냅니다.
파일 조작
cd
를 사용하여 파일과 상호 작용할 수 없습니다. cd
는 "디렉토리 변경\을 나타내며 디렉토리 탐색만 허용합니다. 그러나 파일 내용을 생성, 편집 및 볼 수 있습니다.
파일을 만드는 한 가지 방법은 touch
명령을 사용하는 것입니다. file.txt
라는 새 파일을 만들려면:
- touch file.txt
이렇게 하면 현재 작업 디렉토리에 file.txt
라는 이름의 빈 파일이 생성됩니다. 이 파일의 내용은 비어 있습니다.
나중에 file.txt
의 이름을 바꾸려면 mv
명령을 사용하면 됩니다.
- mv file.txt newfile.txt
mv
는 "이동\을 의미하며 한 위치에서 다른 위치로 파일이나 디렉토리를 이동할 수 있습니다. 원본 파일인 file.txt
를 지정하면 "이동할 수 있습니다. ” 현재 작업 디렉토리의 새 위치로 이동하여 이름을 바꿉니다.
cp
명령을 사용하여 파일을 새 위치에 복사할 수도 있습니다. file.txt
를 다시 가져오지만 newfile.txt
는 유지하려면 file이라는
는 다음과 같습니다.newfile.txt
의 복사본을 만들 수 있습니다. .txt
- cp newfile.txt file.txt
짐작하셨겠지만 cp
는 "복사\의 줄임말입니다. newfile.txt
를 file.txt
라는 새 파일에 복사하면 다른 이름으로 새 파일에 원본 파일을 복제했습니다.
그러나 파일에 아무 것도 포함되어 있지 않으면 파일이 별로 쓸모가 없습니다. 파일을 편집하려면 파일 편집기가 필요합니다.
매일 사용하기 위해 전문가가 만든 파일 편집기에는 다양한 옵션이 있습니다. 이러한 편집기에는 vim
, emacs
, nano
및 pico
가 포함됩니다.
nano
는 초보자에게 적합한 옵션입니다. 상대적으로 사용자 친화적이고 비밀스러운 옵션이나 명령으로 인해 과부하가 걸리지 않습니다.
nano
를 사용하여 file.txt
에 텍스트를 추가하려면 다음 명령을 실행합니다.
- nano file.txt
이렇게 하면 즉시 입력을 시작하여 file.txt
를 편집할 수 있는 공간이 열립니다. 원하는 텍스트를 추가하거나 다음 예제의 텍스트를 복사할 수 있습니다.
Say it's only a paper moon
Sailing over a cardboard sea,
But it wouldn't be make believe
If you believed in me.
Yes it's only a canvas sky
Hanging over a muslin tree,
But it wouldn't be make believe
If you believed in me.
Without your love,
It's a honky-tonk parade.
Without your love,
It's a melody played in a penny arcade.
It's a Barnum and Bailey world,
Just as phony as it can be,
But it wouldn't be make believe
If you believed in me.
작성한 텍스트를 저장하려면 CTRL + X
, Y
를 누른 다음 ENTER
를 누르십시오. 이렇게 하면 새로 저장된 file.txt
파일이 있는 셸로 돌아갑니다.
이제 file.txt
에 일부 텍스트가 있으므로 cat
또는 less
를 사용하여 볼 수 있습니다.
cat
명령은 지정된 파일의 내용을 시스템 출력에 인쇄합니다. cat
을 실행하고 방금 편집한 file.txt
파일을 인수로 전달합니다.
- cat file.txt
이렇게 하면 file.txt
의 전체 내용이 터미널에 출력됩니다. 이전 예제의 텍스트를 사용한 경우 이 명령은 다음과 유사한 출력을 반환합니다.
OutputSay it's only a paper moon
Sailing over a cardboard sea,
But it wouldn't be make believe
If you believed in me.
Yes it's only a canvas sky
Hanging over a muslin tree,
But it wouldn't be make believe
If you believed in me.
Without your love,
It's a honky-tonk parade.
Without your love,
It's a melody played in a penny arcade.
It's a Barnum and Bailey world,
Just as phony as it can be,
But it wouldn't be make believe
If you believed in me.
cat
을 사용하여 파일 내용을 보는 것은 파일이 특히 긴 경우 다루기 힘들고 읽기 어려울 수 있습니다. 대안으로 less
명령을 사용하여 출력에 페이지를 매길 수 있습니다.
다음과 같이 less
를 사용하여 file.txt
파일의 내용을 봅니다.
- less file.txt
이렇게 하면 file.txt
의 내용도 인쇄되지만 파일 시작 부분에서 시작하여 한 번에 하나의 터미널 페이지가 인쇄됩니다. 스페이스바를 사용하여 페이지를 넘기거나 화살표 키를 사용하여 한 줄씩 위아래로 이동할 수 있습니다.
less
를 종료하려면 q
를 누르세요.
마지막으로 file.txt
파일을 삭제하려면 rm
에 파일 이름을 인수로 전달합니다.
- rm file.txt
참고: 다른 옵션이 없으면 rm
명령("제거\를 나타냄)을 사용하여 디렉토리를 삭제할 수 없습니다. 그러나 -d
플래그는 빈 디렉토리를 삭제하려면:
- rm -d directory
rmdir
명령을 사용하여 빈 디렉토리를 제거할 수도 있습니다.
- rmdir directory
비어 있지 않은 디렉토리를 삭제하려면 -r
플래그와 함께 rm
을 실행할 수 있습니다. 이렇게 하면 모든 파일 및 하위 디렉터리를 포함하여 해당 내용과 함께 지정된 디렉터리가 삭제됩니다.
- rm -r directory
그러나 콘텐츠 삭제는 영구적인 작업이므로 지정된 디렉터리를 삭제하려는 것이 확실한 경우에만 rm
을 -r
옵션과 함께 실행해야 합니다.
배움의 문화
터미널 창을 통해 Linux 시스템을 편안하게 탐색하려면 특히 완전히 새로운 경우에 시간, 헌신 및 호기심 많은 사고 방식이 필요합니다.
특정 작업을 수행하는 방법에 대한 질문이 있을 때 사용할 수 있는 몇 가지 방법이 있습니다. DigitalOcean의 커뮤니티 Q&A와 같은 검색 엔진. 질문이 있는 경우 다른 많은 사람들이 이미 질문을 했고 질문에 대한 답을 얻었을 확률이 높습니다.
질문이 특정 Linux 명령과 관련이 있는 경우 매뉴얼 페이지에서 거의 모든 명령에 대한 상세하고 통찰력 있는 문서를 제공합니다. 명령에 대한 매뉴얼 페이지를 보려면 명령 이름을 man
명령에 대한 인수로 전달하십시오.
- man command
예를 들어 man rm
은 rm
의 목적, 사용 방법, 사용 가능한 옵션, 사용 예 및 더 유용한 정보를 표시합니다.
결론
이 가이드는 Linux 환경 작업에 대한 소개 역할을 합니다. 그러나 Linux와 모든 구성 요소를 완전히 이해하는 것은 단일 자습서의 범위를 훨씬 뛰어넘습니다. 예를 들어 이 튜토리얼에서는 Linux 시스템 관리의 기본 개념인 권한에 대해 언급하지 않습니다.
Linux Basics 태그 페이지에서 찾을 수 있는 모든 소개 Linux 콘텐츠를 확인하는 것이 좋습니다.