웹사이트 검색

Linux 탐색 및 파일 관리


소개

파일 시스템에서 파일과 폴더를 탐색하고 조작하는 것은 대부분의 컴퓨터 작업의 핵심 부분입니다. 클라우드 서버는 대부분 동일한 공통 Linux 셸과 공통 Linux 명령을 사용하여 파일 및 폴더 작업을 수행합니다. 이 터미널은 이러한 명령을 사용하기 위한 몇 가지 기본 기술을 소개합니다.

전제 조건 및 목표

이 가이드를 따르려면 Linux 서버에 액세스할 수 있어야 합니다. 서버에 처음 연결하는 방법에 대한 정보가 필요한 경우 SSH를 사용하여 Linux 서버에 연결하는 방법에 대한 가이드를 따를 수 있습니다.

또한 터미널이 작동하는 방식과 Linux 명령이 어떻게 생겼는지 이해하고 싶을 것입니다. 이 안내서는 터미널에 대한 소개를 다룹니다.

이 가이드의 모든 자료는 루트가 아닌(관리자가 아닌) 일반 사용자 계정으로 수행할 수 있습니다. Ubuntu 22.04와 같은 배포판의 초기 서버 설정 가이드에 따라 이러한 유형의 사용자 계정을 구성하는 방법을 배울 수 있습니다.

시작할 준비가 되면 SSH를 사용하여 Linux 서버에 연결하고 아래에서 계속하십시오.

탐색 및 탐색

마스터해야 하는 가장 기본적인 기술은 파일 시스템을 이동하고 주변에 무엇이 있는지 파악하는 것입니다. 이 섹션에서 이를 수행할 수 있는 도구를 검토합니다.

\pwd\ 명령으로 현재 위치 찾기

서버에 로그인하면 일반적으로 사용자 계정의 홈 디렉터리로 이동합니다. 홈 디렉토리는 사용자가 파일을 저장하고 디렉토리를 생성하도록 별도로 설정한 디렉토리입니다. 파일 시스템에서 완전한 권한을 가진 위치입니다.

나머지 파일 시스템과 관련하여 홈 디렉토리의 위치를 찾으려면 pwd 명령을 사용할 수 있습니다. 이 명령은 현재 있는 디렉터리를 표시합니다.

  1. pwd
Output
/home/sammy

홈 디렉토리는 사용자 계정의 이름을 따서 명명됩니다. 이 디렉토리는 /home이라는 디렉토리 내에 있으며, 이 디렉토리는 일반적으로 "루트\ 디렉토리라고 하는 최상위 디렉토리 내에 있으며 단일 슬래시 /<로 표시됩니다. /코드>.

ls로 디렉토리 내용 보기

현재 있는 디렉토리를 표시하는 방법을 알았으므로 이제 디렉토리의 내용을 볼 수 있습니다.

현재 홈 디렉토리에는 볼 것이 많지 않으므로 더 많이 채워진 다른 디렉토리로 이동하여 탐색할 수 있습니다. cd를 사용하여 이 디렉토리로 이동하십시오. 그런 다음 pwd를 사용하여 성공적으로 이동했는지 확인합니다.

  1. cd /usr/share
  2. pwd
Output
/usr/share

이제 새 디렉터리에 있으므로 내부 내용을 살펴보겠습니다. 이렇게 하려면 ls 명령을 사용할 수 있습니다.

  1. ls
Output
adduser groff pam-configs applications grub perl apport grub-gfxpayload-lists perl5 apps hal pixmaps apt i18n pkgconfig aptitude icons polkit-1 apt-xapian-index info popularity-contest . . .

보시다시피 이 디렉토리에는 많은 항목이 있습니다. 명령에 일부 선택적 플래그를 추가하여 기본 동작을 수정할 수 있습니다. 예를 들어, 모든 내용을 확장된 형식으로 나열하려면 -l 플래그("long\ 출력용)를 사용할 수 있습니다.

  1. ls -l
Output
total 440 drwxr-xr-x 2 root root 4096 Apr 17 2022 adduser drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport drwxr-xr-x 3 root root 4096 Apr 17 2022 apps drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt drwxr-xr-x 2 root root 4096 Apr 17 2022 aptitude drwxr-xr-x 4 root root 4096 Apr 17 2022 apt-xapian-index drwxr-xr-x 2 root root 4096 Apr 17 2022 awk . . .

이 보기는 우리에게 많은 정보를 제공합니다. 첫 번째 블록은 파일 유형(첫 번째 열이 "d\이면 항목이 디렉토리이고 "-\이면 일반 파일임) 및 권한을 설명합니다. 각 후속 열은 순서대로 시스템의 다른 위치에 있는 해당 파일에 대한 하드 링크 수, 소유자, 그룹 소유자, 항목 크기, 마지막 수정 시간 및 항목 이름을 설명합니다.

숨겨진 파일 및 디렉토리를 포함하여 모든 파일 목록을 얻으려면 -a 플래그를 추가할 수 있습니다. /usr/share 디렉토리에는 실제 숨겨진 파일이 없으므로 홈 디렉토리로 돌아가서 해당 명령을 실행해 봅시다. 인수 없이 cd를 입력하여 홈 디렉토리로 돌아갈 수 있습니다.

  1. cd
  2. ls -a
Output
. .. .bash_logout .bashrc .profile

보시다시피 특수 표시자인 ...와 함께 세 개의 숨겨진 파일이 있습니다. 여기에서와 같이 구성 파일이 숨겨진 파일로 저장되는 경우가 종종 있습니다.

점 및 이중 점 항목의 경우 관련 디렉토리를 참조하는 기본 제공 방법만큼 정확히 디렉토리가 아닙니다. 단일 점은 현재 디렉토리를 나타내고 이중 점은 이 디렉토리의 상위 디렉토리를 나타냅니다. 이것은 다음 섹션에서 유용할 것입니다.

cd로 파일 시스템 이동

마지막 섹션에서 ls의 일부 속성을 보여주기 위해 이미 두 번의 디렉토리 이동을 수행했습니다. 여기에서 명령을 더 잘 살펴보겠습니다.

/usr/share 디렉토리로 돌아가서 시작하십시오.

  1. cd /usr/share

절대 경로를 제공하여 디렉토리를 변경하는 예입니다. Linux에서 모든 파일과 디렉토리는 "루트\ 디렉토리라고 하는 최상위 디렉토리 아래에 있지만 단일 슬래시 "/\로 참조됩니다. 절대 경로는 이 최상위 디렉터리와 관련된 디렉터리의 위치를 나타냅니다. 이를 통해 파일 시스템의 모든 위치에서 명확한 방식으로 디렉토리를 참조할 수 있습니다. 모든 절대 경로는 해당 슬래시로 시작해야 합니다.

대안은 상대 경로를 사용하는 것입니다. 상대 경로는 현재 디렉터리와 관련된 디렉터리를 나타냅니다. 계층 구조에서 현재 디렉토리에 가까운 디렉토리의 경우 일반적으로 더 짧고 더 넓은 파일 시스템에서 디렉토리가 있는 위치에 대해 가정할 필요가 없는 것이 때때로 유리합니다. 현재 디렉토리 내의 모든 디렉토리는 선행 슬래시 없이 이름으로 참조할 수 있습니다. 다음을 입력하여 현재 위치에서 /usr/share 내의 locale 디렉토리로 변경할 수 있습니다.

  1. cd locale

또한 현재 디렉터리의 경로 뒤에 오는 경로 부분을 제공하여 상대 경로를 사용하여 여러 디렉터리 수준을 이동할 수 있습니다. 여기에서 다음을 입력하여 en 디렉토리 내의 LC_MESSAGES 디렉토리로 이동할 수 있습니다.

  1. cd en/LC_MESSAGES

백업하려면 현재 디렉토리의 상위 디렉토리로 이동해야 하며 특별한 이중 점 표시기를 사용할 수 있습니다. 예를 들어 현재 /usr/share/locale/en/LC_MESSAGES 디렉토리에 있습니다. 한 단계 위로 이동하려면 다음을 입력하십시오.

  1. cd ..

그러면 /usr/share/locale/en 디렉토리로 이동합니다.

디렉토리를 지정하지 않고 cd를 실행하면 언제든지 홈 디렉토리로 돌아갈 수 있습니다. 다른 명령에서 홈 디렉터리 대신 ~를 사용할 수도 있습니다.

cd ~
pwd
/home/sammy

이 세 가지 명령을 사용하는 방법에 대해 자세히 알아보려면 Linux 파일 시스템 탐색에 대한 가이드를 확인하십시오.

파일 보기

지난 섹션에서는 파일 시스템을 탐색하는 방법을 배웠습니다. 다양한 디렉토리에서 ls 명령을 사용할 때 일부 파일을 보았을 것입니다. 일부 운영 체제와 달리 Linux 및 기타 유닉스 계열 운영 체제는 시스템의 상당 부분을 일반 텍스트 파일에 의존합니다.

이 자습서에서 파일을 보는 주요 방법은 less 명령을 사용하는 것입니다. 파일의 페이지를 스크롤할 수 있기 때문에 "호출기\라고 합니다. 이전 명령이 즉시 실행되어 명령줄로 돌아간 반면 less는 다음을 수행하는 응용 프로그램입니다. 종료할 때까지 계속 실행하고 화면을 차지합니다.

시스템이 알고 있는 서비스 정보가 포함된 구성 파일인 /etc/services 파일을 엽니다.

  1. less /etc/services

파일이 less로 열리므로 터미널 창 영역에 맞는 문서 부분을 볼 수 있습니다.

Output
# Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, officially ports have two entries # even if the protocol doesn't support UDP operations. # # Updated from http://www.iana.org/assignments/port-numbers and other # sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services . # New ports will be added on request if they have been officially assigned # by IANA and used in the real-world or are needed by a debian package. # If you need a huge list of used numbers please install the nmap package. tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp . . .

스크롤하려면 키보드의 위쪽 및 아래쪽 화살표 키를 사용할 수 있습니다. 페이지를 아래로 이동하려면 스페이스 바, 키보드의 "Page Down\ 버튼 또는 CTRL-f 단축키를 사용할 수 있습니다.

다시 위로 스크롤하려면 "Page Up\ 버튼이나 CTRL-b 키보드 단축키를 사용할 수 있습니다.

문서에서 일부 텍스트를 검색하려면 슬래시 "/” 다음에 검색어를 입력하면 됩니다. 예를 들어 "mail”을 검색하려면 다음을 입력합니다.

/mail

이것은 문서를 앞으로 검색하고 첫 번째 결과에서 중지합니다. 다른 결과를 얻으려면 소문자 n 키를 입력하면 됩니다.

n

이전 결과로 뒤로 이동하려면 대문자 N을 대신 사용하십시오.

N

less 프로그램을 종료하려면 q를 입력하여 종료할 수 있습니다.

q

특정 상황에서 유용한 파일을 보는 다른 많은 방법이 있습니다. cat 명령은 파일의 내용을 출력하고 즉시 프롬프트로 돌아갑니다. head 명령은 기본적으로 파일의 처음 10줄을 표시합니다. 마찬가지로 tail 명령은 마지막 10줄을 표시합니다. 이 명령은 파일 내용을 다른 프로그램에 "파이핑\하는 데 유용한 방식으로 표시합니다. 이 개념은 이 자습서 시리즈의 뒷부분에서 다룹니다.

파일 및 디렉토리 조작

이 섹션에서는 파일과 디렉터리를 만들고 조작합니다.

터치로 파일 만들기

많은 명령과 프로그램이 파일을 만들 수 있습니다. 파일을 만드는 가장 간단한 방법은 touch 명령을 사용하는 것입니다. 그러면 지정된 이름과 위치를 사용하여 빈 파일이 생성됩니다.

먼저 파일을 저장할 수 있는 권한이 있는 위치인 홈 디렉토리에 있는지 확인하십시오. 그런 다음 다음을 입력하여 file1이라는 파일을 만들 수 있습니다.

  1. cd
  2. touch file1

이제 디렉토리의 파일을 보면 새로 생성된 파일을 볼 수 있습니다.

  1. ls
Output
file1

기존 파일에 touch 명령을 사용하면 해당 파일과 관련된 "마지막 수정\ 시간이 업데이트됩니다. 이는 기억해 두는 데 도움이 될 수 있습니다.

동시에 여러 파일을 만들 수도 있습니다. 절대 경로도 사용할 수 있습니다. 예를 들어 다음과 같이 입력할 수 있습니다.

  1. touch /home/sammy/file2 /home/sammy/file3
  2. ls
Output
file1 file2 file3

mkdir로 디렉토리 생성

touch 명령과 마찬가지로 mkdir 명령을 사용하면 빈 디렉터리를 만들 수 있습니다.

예를 들어 홈 디렉토리 내에 test라는 디렉토리를 만들려면 다음과 같이 입력할 수 있습니다.

  1. cd
  2. mkdir test

다음을 입력하여 example이라는 test 디렉토리 내에 디렉토리를 만들 수 있습니다.

  1. mkdir test/example

위 명령이 작동하려면 test 디렉토리가 이미 존재해야 합니다. mkdir에게 지정된 디렉토리 경로를 구성하는 데 필요한 디렉토리를 생성해야 한다고 알리려면 -p 옵션을 사용할 수 있습니다. 이렇게 하면 한 단계에서 중첩 디렉터리를 만들 수 있습니다. 다음을 입력하여 some/other/directories와 같은 디렉토리 구조를 만들 수 있습니다.

  1. mkdir -p some/other/directories

이 명령은 먼저 some 디렉토리를 만든 다음 그 안에 other 디렉토리를 만듭니다. 마지막으로 이 두 디렉토리 내에 directories 디렉토리를 생성합니다.

\mv\를 사용하여 파일 및 디렉토리 이동 및 이름 바꾸기

mv 명령을 사용하여 파일을 새 위치로 이동할 수 있습니다. 예를 들어 다음을 입력하여 file1test 디렉토리로 이동할 수 있습니다.

  1. mv file1 test

현재 디렉터리를 참조하는 특수 점 참조를 사용하여 해당 파일을 홈 디렉터리로 다시 이동할 수 있습니다. 홈 디렉토리에 있는지 확인한 다음 mv 명령을 실행합니다.

  1. cd
  2. mv test/file1 .

mv 명령은 파일과 디렉토리의 이름 바꾸기에도 사용됩니다. 본질적으로 이동 및 이름 바꾸기는 둘 다 기존 항목의 위치와 이름을 조정하는 것입니다.

따라서 test 디렉토리의 이름을 testing으로 바꾸려면 다음을 입력할 수 있습니다.

  1. mv test testing

참고: 셸은 실수로 파괴적인 작업을 수행하는 것을 방지하지 않습니다. 파일 이름을 변경하고 이미 존재하는 이름을 선택하면 이동 중인 파일이 이전 파일을 덮어씁니다. 실수로 덮어쓴 경우 이전 파일을 복구할 방법이 없습니다.

\cp\를 사용하여 파일 및 디렉토리 복사

mv 명령을 사용하면 파일이나 디렉토리를 이동하거나 이름을 바꿀 수 있지만 복제할 수는 없습니다. cp 명령은 기존 항목의 새 복사본을 만들 수 있습니다.

예를 들어 file3file4라는 새 파일에 복사할 수 있습니다.

  1. cp file3 file4

mv 작업과 달리 file3은 더 이상 존재하지 않으므로 이제 file3file4가 모두 있습니다.

참고: mv 명령과 마찬가지로 작업 대상으로 사용 중인 파일 이름에 주의하지 않으면 파일을 덮어쓸 수 있습니다. 예를 들어 위의 예에서 file4가 이미 존재하는 경우 해당 내용은 file3의 내용으로 완전히 대체됩니다.

전체 디렉토리를 복사하려면 명령에 -r 옵션을 포함해야 합니다. 이것은 "recursive\를 의미하며 디렉토리와 디렉토리의 모든 내용을 복사합니다.

예를 들어 some 디렉토리 구조를 again이라는 새 구조로 복사하려면 다음과 같이 입력할 수 있습니다.

  1. cp -r some again

기존 대상이 덮어쓰기로 이어지는 파일과 달리 대상이 기존 디렉터리인 경우 파일 또는 디렉터리가 대상에 복사됩니다.

  1. cp file1 again

이렇게 하면 file1의 새 복사본이 생성되고 again 디렉토리 안에 배치됩니다.

rm 및 rmdir로 파일 및 디렉토리 제거

파일을 삭제하려면 rm 명령을 사용할 수 있습니다.

참고: rm과 같은 파괴적인 명령을 사용할 때는 각별히 주의하십시오. 셸에는 "실행 취소\ 명령이 없으므로 실수로 중요한 파일을 영구적으로 파괴할 수 있습니다.

일반 파일을 제거하려면 rm 명령에 전달하기만 하면 됩니다.

  1. cd
  2. rm file4

마찬가지로 빈 디렉터리를 제거하려면 rmdir 명령을 사용할 수 있습니다. 해당 디렉터리에 아무것도 없는 경우에만 성공합니다. 예를 들어, testing 디렉토리 내에서 example 디렉토리를 제거하려면:

  1. rmdir testing/example

비어 있지 않은 디렉토리를 제거하려면 rm 명령을 -r 옵션과 함께 사용합니다. 이 옵션은 디렉토리의 모든 내용과 디렉토리 자체를 재귀적으로 제거합니다.

예를 들어, again 디렉토리와 그 안의 모든 것을 제거하려면 다음과 같이 입력할 수 있습니다.

  1. rm -r again

파일 편집

현재 파일을 개체로 조작하는 방법은 알고 있지만 실제로 파일을 편집하고 내용을 추가하는 방법은 배우지 않았습니다.

nano는 몇 가지 일반적인 명령줄 Linux 텍스트 편집기 중 하나이며 초보자를 위한 훌륭한 출발점입니다. 사용 기간 동안 전체 터미널을 점유한다는 점에서 위에서 설명한 less 프로그램과 다소 유사하게 작동합니다.

nano 편집기는 기존 파일을 열거나 파일을 생성할 수 있습니다. 새 파일을 만들기로 결정한 경우 nano 편집기를 호출하거나 나중에 콘텐츠를 저장할 때 이름을 지정할 수 있습니다.

다음을 입력하여 편집을 위해 file1 파일을 열 수 있습니다.

  1. cd
  2. nano file1

nano 애플리케이션이 파일(현재 비어 있음)을 엽니다. 인터페이스는 다음과 같습니다.

  GNU nano 4.8                 file1                                         








                                  [ New File ]
^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Text ^T To Spell

맨 위에는 응용 프로그램 이름과 편집 중인 파일 이름이 있습니다. 중간에는 현재 비어 있는 파일의 내용이 표시됩니다. 아래쪽에는 편집기의 일부 컨트롤을 나타내는 여러 키 조합이 있습니다. 이들 각각에 대해 ^ 문자는 CTRL 키를 의미합니다.

편집기 내에서 도움말을 보려면 Ctrl+G를 누르십시오.

도움말 검색을 마쳤으면 Ctrl+X를 입력하여 문서로 돌아갑니다.

이 예에서는 다음 두 문장을 입력하면 됩니다.

Hello there.

Here is some text.

작업을 저장하려면 Ctrl+O를 누르십시오.

File Name to Write: file1                                                            
^G Get Help          M-D DOS Format       M-A Append           M-B Backup File
^C Cancel            M-M Mac Format       M-P Prepend

보시다시피 하단의 옵션도 변경되었습니다. 이는 상황에 따라 달라집니다. 즉, 수행하려는 작업에 따라 변경됩니다. file1에 쓰기를 확인하려면 Enter를 누르십시오.

저장한 후 추가로 변경하고 프로그램을 종료하려고 하면 비슷한 메시지가 표시됩니다. 새 줄을 추가한 다음 Ctrl+X를 눌러 nano를 종료해 봅니다.

저장하지 않은 경우 수정 사항을 저장하라는 메시지가 표시됩니다.

Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?                         
 Y Yes
 N No           ^C Cancel

Y를 눌러 변경 사항을 저장하고 N을 눌러 변경 사항을 취소하고 종료하거나 Ctrl+C를 눌러 종료를 취소할 수 있습니다. 저장을 선택하면 이전에 받은 것과 동일한 파일 프롬프트가 표시되어 변경 사항을 동일한 파일에 저장할 것인지 확인합니다. Enter를 눌러 파일을 저장하고 편집기를 종료합니다.

콘텐츠를 표시하는 cat 프로그램이나 보기 위해 파일을 여는 less 프로그램을 사용하여 생성한 파일의 콘텐츠를 볼 수 있습니다. less로 본 후 터미널로 돌아가려면 q를 눌러야 합니다.

  1. less file1
Output
Hello there. Here is some text. Another line.

특정 가이드에서 참조할 수 있는 또 다른 편집기는 vim 또는 vi입니다. 이것은 매우 강력하지만 학습 곡선이 가파른 고급 편집기입니다. vim 또는 vi를 사용하라는 지시를 받은 경우 nano를 대신 사용하십시오. vim 사용 방법을 알아보려면 vim 시작 가이드를 읽어보세요.

결론

이제 Linux 서버를 탐색하는 방법과 사용 가능한 파일 및 디렉토리를 보는 방법을 이해해야 합니다. 또한 파일 보기, 복사, 이동 또는 삭제를 허용하는 파일 조작 명령도 알고 있어야 합니다. 마지막으로 nano 텍스트 편집기를 사용하여 약간의 편집에 익숙해져야 합니다.

이러한 몇 가지 기술을 통해 다른 가이드를 계속 진행하고 서버를 최대한 활용하는 방법을 배울 수 있습니다. 다음 가이드에서는 Linux 권한을 보고 이해하는 방법을 이해하게 될 것입니다.