cd, pwd 및 ls를 사용하여 Linux 서버에서 파일 시스템을 탐색하는 방법
소개
명령줄에 익숙해지는 것은 Linux 서버 플랫폼의 기능을 활용하기 위한 첫 번째 단계입니다. 또한 이 환경에서 수행하려는 기본적으로 모든 서버 관련 활동의 필수 전제 조건입니다.
많은 도구에 대한 그래픽 대안이 존재하지만 명령줄을 배우는 것은 대부분의 GUI(그래픽 사용자 인터페이스)를 통해서는 불가능한 방식으로 효율성, 속도 및 유연성을 가지고 작업할 수 있게 해주는 기술입니다.
우리 모두는 어딘가에서 시작해야 하므로 이 기사에서는 시스템을 탐색하고 거기에 무엇이 있는지 찾는 방법에 대한 기본 사항을 다룰 것입니다.
전제 조건
이 문서는 매우 기본적이므로 많은 사전 지식이 필요하지 않습니다. 그러나 탐색을 시작하려면 VPS 인스턴스에 로그인해야 합니다. 이 작업을 수행하는 데 사용할 수 있는 옵션은 주로 집에서 사용하는 운영 체제에 따라 다릅니다.
새 DigitalOcean 드롭릿을 생성하면 새 서버에 액세스할 수 있는 암호와 IP 주소가 이메일로 전송됩니다. 링크된 문서를 사용하여 VPS에 연결하는 방법을 알아보세요.
- ssh root@your_IP
또 다른 옵션은 DigitalOcean 제어판의 오른쪽 상단에 있는 "콘솔 액세스\ 버튼을 사용하는 것입니다. 이렇게 하면 웹 브라우저 창에서 직접 가상 터미널 세션이 생성됩니다.
pwd로 현재 위치 찾기
이 시점에서 Linux 시스템에 로그인해야 합니다. 다음과 같은 내용이 표시될 것입니다.
root@your_hostname:~#
이것은 프롬프트입니다. 명령을 입력하는 곳입니다.
그러나 그것보다 더 많은 것이 있습니다. 또한 서버 파일 시스템의 특정 위치에 있습니다. 사용자는 항상 서버 파일 계층 구조의 한 위치 또는 다른 위치에 있으며 입력하는 명령이 작동하는 방식에 영향을 미칩니다.
이는 로컬 컴퓨터에서 파일 브라우저를 열 때와 유사합니다. 다른 폴더를 클릭하여 파일 시스템의 다른 위치로 이동할 수 있습니다. 파일 브라우저의 편집 메뉴로 이동하면 현재 있는 특정 폴더의 항목에 적용되는 몇 가지 옵션이 있을 수 있습니다.
명령줄은 동일한 아이디어를 텍스트로 표현한 것일 뿐입니다.
파일 시스템에서 우리는 정확히 어디에 있습니까? 프롬프트 자체에 한 가지 단서가 있습니다. 프롬프트 끝의 #
또는 $
문자 바로 앞에(로그인한 사용자에 따라 다름) 물결표 문자(~)가 표시됩니다. . 이것은 "홈\ 디렉터리를 나타냅니다.
홈 디렉토리는 사용자의 파일이 저장되는 장소입니다. ~ 문자는 이 디렉토리의 줄임말입니다.
파일 시스템에서 현재 위치를 찾는 또 다른 방법은 pwd
라는 명령을 사용하는 것입니다. 이것이 첫 번째 명령이 될 것입니다!
다음 문자를 터미널에 입력하고 Enter 키를 누릅니다.
pwd
/root
/root
디렉토리는 루트(관리자) 사용자의 홈 디렉토리입니다. 다른 사용자로 로그인한 경우 대신 다음과 같이 표시됩니다.
- pwd
/home/your_username
이 튜토리얼에서 어떤 사용자로 로그인했는지는 중요하지 않으므로 두 출력 모두 괜찮습니다.
ls로 둘러보기
이제 현재 어느 디렉토리에 있는지 알 수 있습니다. 하지만 이 디렉토리에 무엇이 있는지 어떻게 알 수 있습니까?
ls
라는 명령으로 현재 디렉토리에 어떤 파일과 디렉토리가 있는지 서버에 요청할 수 있습니다. 지금 명령 프롬프트에 입력하십시오.
ls
이렇게 하면 명령 프롬프트로 돌아가고 어떤 정보도 제공하지 않습니다. 명령이 실패했습니까? 아니요, 성공했습니다. 현재 디렉터리에서 파일이나 폴더를 찾지 못했습니다.
이 디렉토리에 파일이 있을 때 ls
가 어떻게 작동하는지 알아보기 위해 몇 가지 테스트 파일을 만들어 봅시다. 다음을 입력하여 몇 개의 파일을 만듭니다.
touch file{1..5}
그러면 현재 디렉토리에 file1, file2, …, file5라는 5개의 파일이 생성됩니다.
ls
명령을 다시 시도하여 무엇을 하는지 살펴보겠습니다.
ls
file1 file2 file3 file4 file5
아주 멋진. 이제 이 명령은 홈 디렉토리에 일부 파일이 있음을 인식합니다.
대부분의 명령에는 위에서 수행한 것처럼 호출할 때 실행되는 기본 동작이 있습니다. 그러나 대부분의 명령 동작은 선택적 인수를 명령에 전달하여 보강할 수도 있습니다. "옵션\, "인수\, "플래그\ 또는 "매개변수\라고 하는 것을 들을 수 있습니다.
경우에 따라 명령을 통해 사용할 수 있는 선택적 기능을 활성화하고 다른 경우에는 명령을 수행해야 하는 개체를 지정합니다.
첫 번째 상황부터 시작하겠습니다.
ls 옵션 살펴보기
모든 명령에 기본 제공 도움말 옵션이 있는 것은 아니지만 많은 명령이 있습니다. 대부분의 경우 명령 끝에 --help
또는 -h
를 추가하여 액세스할 수 있습니다. 이제 ls
명령으로 이것을 시도할 수 있습니다:
ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print C-style escapes for nongraphic characters
--block-size=SIZE scale sizes by SIZE before printing them. E.g.,
. . .
이렇게 하면 명령의 올바른 사용법에 대한 몇 가지 지침을 제공하고 기본 동작을 변경하는 데 사용할 수 있는 옵션에 대한 아이디어를 얻을 수 있습니다. 왼쪽 열은 명령을 보강하기 위해 입력할 문자를 제공하고 오른쪽 열은 각 플래그를 설명합니다.
추가한 --help
는 전달할 수 있는 옵션의 예입니다.
관심 있는 명령에 사용할 수 있는 옵션을 찾는 또 다른 방법은 설명서를 확인하는 것입니다. man
다음에 관심 있는 명령을 입력하면 됩니다. 지금 시도해 보십시오.
man ls
화살표 키로 페이지를 스크롤하고 "q\를 입력하여 종료할 수 있습니다.
보시다시피 ls
에는 동작을 변경하기 위해 명령에 전달할 수 있는 몇 가지 옵션이 있습니다. 몇 가지를 시도해 보겠습니다.
ls -l
-rw-r--r-- 1 root root 0 Feb 28 19:45 file1
-rw-r--r-- 1 root root 0 Feb 28 19:45 file2
-rw-r--r-- 1 root root 0 Feb 28 19:45 file3
-rw-r--r-- 1 root root 0 Feb 28 19:45 file4
-rw-r--r-- 1 root root 0 Feb 28 19:45 file5
이것은 동일한 5개의 파일을 보여주지만 "긴\ 형식으로 보여줍니다. 이것은 소유자(첫 번째 "root\), 그룹 소유자(두 번째 "root\)와 같은 파일에 대한 자세한 정보를 제공합니다. , 파일 크기( 0 ), 파일이 마지막으로 수정된 날짜 및 기타 정보.
다른 옵션을 시도해 보겠습니다.
ls -a
. .aptitude .bashrc file2 file4 .profile .ssh
.. .bash_history file1 file3 file5 .rnd .viminfo
이전에 볼 수 없었던 일부 파일이 표시됩니다. -a
플래그는 --all
플래그와 동의어입니다. 숨겨진 파일을 포함하여 현재 디렉토리에 있는 모든 파일을 보여줍니다.
Linux 시스템에서 시작 점이 있는 이름이 지정된 모든 파일은 기본적으로 숨겨져 있습니다. 그것들은 비밀이 아니며 누구나 찾을 수 있습니다. 파일을 쉽게 관리할 수 있도록 비켜둘 뿐입니다. -a
플래그를 전달하면 ls
에 이러한 파일도 표시하도록 지시할 수 있습니다.
단순히 함께 문자열을 지정하여 여러 플래그를 전달할 수도 있습니다.
ls -l -a
drwx------ 4 root root 4096 Feb 28 19:45 .
drwxr-xr-x 23 root root 4096 May 3 2013 ..
drwx------ 2 root root 4096 Feb 28 17:19 .aptitude
-rw------- 1 root root 2036 Feb 28 18:20 .bash_history
-rw-r--r-- 1 root root 570 Jan 31 2010 .bashrc
-rw-r--r-- 1 root root 0 Feb 28 19:45 file1
. . .
이것은 잘 작동하지만 다음과 같이 옵션 플래그를 축소할 수도 있습니다.
ls -la
이것은 정확히 동일하게 작동하며 타이핑이 덜 걸립니다.
또 다른 흥미로운 옵션은 파일을 재귀적으로 나열하는 -R
플래그입니다. 홈 디렉토리 내에 있는 유일한 디렉토리는 숨겨져 있으므로 -a
옵션도 전달해야 합니다.
ls -Ra
.:
. .aptitude .bashrc file2 file4 .profile .ssh
.. .bash_history file1 file3 file5 .rnd .viminfo
./.aptitude:
. .. cache config
./.ssh:
. .. authorized_keys
ls
의 동작 방식을 변경하는 방법을 알았으니 이제 ls
가 작동하는 "객체\를 변경해 보겠습니다.
다른 디렉토리에서 ls 사용
기본적으로 ls
는 현재 디렉토리의 내용을 나열합니다. 그러나 내용을 보려는 디렉토리의 이름을 명령 끝에 전달할 수 있습니다.
예를 들어 다음을 입력하면 모든 Linux 시스템에서 사용할 수 있는 /etc
라는 디렉토리의 내용을 볼 수 있습니다.
ls /etc
acpi fstab magic rc.local
adduser.conf fstab.d magic.mime rc.local.orig
aliases fuse.conf mailcap rcS.d
aliases.db gai.conf mailcap.order reportbug.conf
alternatives groff mailname resolvconf
anacrontab group mail.rc resolv.conf
apm group- manpath.config rmt
. . .
여기에서 이 디렉토리에 많은 파일이 있음을 알 수 있습니다.
슬래시(/)로 시작하는 모든 디렉터리 경로를 "절대\ 경로라고 합니다. 이는 특히 "/\ 문자로 지정되는 루트 디렉터리인 최상위 디렉터리의 디렉터리 경로를 참조하기 때문입니다. .
디렉토리를 참조하는 또 다른 방법은 "상대\ 경로를 사용하는 것입니다. 이것은 현재 있는 디렉토리에 상대적인 디렉토리를 찾습니다. 이러한 디렉토리 지정은 슬래시로 시작하지 않습니다.
현재 폴더에는 숨겨지지 않은 디렉토리가 없으므로 시연을 위해 몇 가지를 빠르게 만들어 보겠습니다. 내부에 일부 파일도 추가합니다. 지금 바로 이러한 명령에 대해 걱정하지 마세요. 지금 아이디어를 보여주기 위해 사용되는 것이므로 그대로 입력하세요.
mkdir dir{1..3}
touch dir{1..3}/test{A,B,C}
내부에 일부 파일이 있는 일부 디렉토리가 생성됩니다. 일반 ls
명령으로 디렉토리를 볼 수 있습니다.
ls
dir1 dir2 dir3 file1 file2 file3 file4 file5
"dir1\ 디렉토리 내부에 무엇이 있는지 확인하기 위해 위에서 설명한 것처럼 현재 값의 끝에 보고자 하는 디렉토리를 추가하여 절대 경로를 할 수 있습니다. 현재 디렉토리를 찾을 수 있습니다.
pwd
/root
그런 다음 관심 있는 디렉토리를 끝에 추가합니다.
ls /root/dir1
testA testB testC
그러나 우리는 이것을 할 필요가 없습니다. 다음과 같이 디렉토리 이름을 지정하여 현재 디렉토리 내부의 디렉토리를 참조할 수 있습니다.
ls dir1
testA testB testC
슬래시로 경로 지정을 시작하지 않으면 운영 체제는 현재 디렉터리에서 시작하는 디렉터리 경로를 찾습니다.
이동
지금까지 파일 시스템에서 우리가 어디에 있는지 알아내는 방법과 ls
명령을 사용하여 특정 디렉토리에 있는 파일에 대한 정보를 찾는 방법을 배웠습니다.
그러나 작업 디렉토리를 어떻게 변경합니까? 작업 디렉토리를 변경하면 다른 위치의 상대 경로를 사용할 수 있습니다. 일반적으로 파일이 포함된 디렉토리에서 파일을 조작하는 것이 더 쉽습니다.
cd
명령을 사용하여 파일 계층을 이동할 수 있습니다. 이 명령은 디렉토리 변경을 나타냅니다.
가장 기본적인 사용법은 다음과 같이 입력하면 됩니다.
cd
아무 작업도 수행하지 않는 것 같습니다. 사실 그렇지 않습니다. 추가 정보 없이 cd
가 수행하는 작업은 홈 디렉토리로 변경하는 것입니다. 우리는 이미 홈 디렉토리에 있으므로 명령이 수행할 작업이 없습니다.
명령을 사용하는 방법에 대한 보다 일반적인 아이디어는 다음과 같습니다.
- cd /path/to/directory
이 경우 /path/to/directory
는 이동하려는 디렉토리 위치의 경로로 대체되어야 합니다. 예를 들어, 트리의 맨 위에 있는 단일 슬래시(/)로 지정된 "루트\ 디렉토리로 변경하려면 다음과 같이 입력할 수 있습니다.
cd /
참고: 루트 디렉토리(슬래시 "/”로 지정됨)는 루트 사용자의 홈 디렉토리("/root”에 있음)와 다릅니다. 이것은 처음에는 혼란스러울 수 있지만 디렉토리 트리의 맨 위를 파일 시스템 루트라고 합니다.
명령 프롬프트가 변경되었음을 알 수 있습니다.
"#\ 또는 "$\ 직전에 디렉토리 목록이 물결표(사용자의 홈 디렉토리를 나타내는 "~\ 모양의 기호를 기억하십시오)에서 다음의 "루트\ 디렉토리로 변경되었습니다. 파일 시스템.
pwd
명령을 다시 사용하여 현재 다른 디렉토리에 있는지 확인할 수 있습니다.
pwd
/
새 디렉터리의 파일을 확인할 수도 있습니다.
ls
bin etc lib media proc sbin sys var
boot home lib64 mnt root selinux tmp vmlinuz
dev initrd.img lost+found opt run srv usr
다른 위치로 성공적으로 이전했습니다. 이제 상대 경로를 사용하여 새 디렉토리로 이동해 보겠습니다. 이 디렉토리 내에 usr
라는 디렉토리가 있음을 알 수 있습니다. 다음을 입력하여 변경하십시오.
cd usr
보시다시피 cd
에도 상대 경로를 사용할 수 있습니다. 루트 디렉토리로 다시 이동하려면 어떻게 해야 합니까? 이전에 사용한 것과 동일한 cd /
명령을 입력할 수 있지만 다른 것을 시도해 보겠습니다.
상대 경로를 사용하여 트리를 위로 이동해 봅시다. 상대 경로를 사용하여 현재 폴더가 포함된 폴더를 어떻게 참조합니까?
특수 구문을 사용하여 현재 디렉토리를 포함하는 디렉토리를 참조할 수 있습니다. 현재 디렉토리를 포함하는 디렉토리를 "상위\ 디렉토리라고 합니다. 점 두 개(…)를 사용하여 상위 디렉토리를 참조할 수 있습니다.
다시 한 단계 위로 이동해 보겠습니다.
cd ..
pwd
/
보시다시피 루트 디렉토리로 돌아왔습니다. 단일 점으로 현재 디렉토리를 참조할 수도 있습니다.
ls .
bin etc lib media proc sbin sys var
boot home lib64 mnt root selinux tmp vmlinuz
dev initrd.img lost+found opt run srv usr
이것은 이 단계에서 명확하지 않을 수 있는 여러 상황에서 유용하지만 나중에 현재 디렉토리를 쉽게 참조할 수 있는 기능에 감사할 것입니다.
앞에서 말했듯이 "~\ 기호는 홈 디렉토리를 참조합니다. 이를 다른 디렉토리 경로의 시작으로 사용하여 홈 내부의 "dir1\로 변경해 보겠습니다.
cd ~/dir1
pwd
/root/dir1
이제 "~\ 기호를 사용하여 경로의 첫 번째 부분을 대체하여 매우 쉽게 홈 디렉토리 내의 디렉토리로 이동했습니다.
하지만 디렉터리를 변경하기 전에 해야 할 일을 잊고 가장 최근 디렉터리로 돌아가고 싶다면 어떻게 해야 할까요? 다음을 입력하여 이전 디렉토리로 돌아갈 수 있습니다.
cd -
pwd
/
마지막 디렉토리로 돌아왔습니다.
홈 디렉토리로 돌아가서 마무리하겠습니다. 물결표를 전환 경로로 사용하여 이를 수행할 수 있습니다. 그러나 cd
의 기본 모드는 경로를 추가하지 않으면 홈 디렉토리로 돌아가는 것임을 기억할 것입니다. 대신 시도해 보겠습니다.
cd
pwd
/root
보시다시피 다시 홈 디렉토리로 돌아갔습니다.
결론
이제 파일 시스템을 꽤 많이 탐색하는 데 필요한 도구가 있어야 합니다. 아직 파일을 조사하는 방법을 모르지만 시스템을 쉽게 탐색하고 현재 위치를 추적하고 주변에 있는 파일을 볼 수 있어야 합니다.