[Overthewire] level1 -> level2
level1에서 cat명령어로 readme파일을 출력했을 때 나온 bandit1의 계정 패스워드로 로그인을 해봅시다.
정상적으로 로그인을 성공했습니다.
이제 level1에서 level2로 가기 위해 어떤 문제가 주어졌는지 확인해봅시다.
다음 레벨의 비밀번호는 홈 디렉토리에 있는 -라는 파일에 저장된다.
일단 level1에서 했던거 처럼 ls명령어를 통해서 어떤 파일이 있는지 찾아봅시다.
-라는 파일이 존재하네요 뭔가 의미심장하게 특수문자로 되어있네요...허허
cat 명령어를 통해서 실행시켜봅시다.
왜 아무것도 출력이 안될까요..? ㅠㅠㅠ
그 이유는 -라는 문자는 명령어 인자로 받아들이기 때문입니다. 그럼 이 파일을 실행시키기 위해서 어떻게 해야할지 고민을 하던 찰나에 떠오르는게 파일의 경로라는게 생각이 났습니다.
경로에 대해서 배워보겠습니다. 리눅스는 상대 경로와 절대 경로라는게 존재합니다.
절대 경로 : 디렉터리를 이동하거나 또는 파일을 실행하거나 할 때 쓰는 경로, /(슬래시)로 디렉터리 사이를 구분
상대 경로 : 지금의 위치를 상대적으로 판단해서 가는 경로, 현재 작업하고 있는 상대적인 위치, " . "은 현재 디렉터리
그럼 이 리눅스 계층구조를 한번 봅시다.
젤 위에있는 /는 최상의 루트 디렉토리입니다. 그 밑에 bin boot .... var까지 루트 디렉터리 아래 위치한 하위 디렉터리 입니다. pwd명령어를 사용해보니 현재 제가 있는 위치하고 있는 디렉터리는 home디렉터리에 자식 디렉터리인 bandit1입니다.
그럼 현재 디렉터리를 지정하기 위해선 어떻게 해야하는지 알아보겠습니다.
./ 이라는 명령을 써주면되는데 ./ 명령어는 현재 디렉터리를 지정해서 이 디렉터리에 있는 파일을 출력 해주는 명령어입니다. 그럼 cat ./- 이렇게 써주면 파일이 출력이 되겠죠?? 한번 해봅시다.
정상적으로 파일이 출력되는것을 알 수 있습니다. 오늘 알아야하는 부분은 ./을 이용하면 현재 디렉터리에 있는 파일을 실행시킬 수 있다는것입니다. 또한 이것말고 " ../ " 도 있으니 따로 공부해보시길 바랍니다.