아까 열어둔 명령창에서 계속 진행합니다.
IP가 뭐야?
IP는 인터넷에서의 컴퓨터의 집주소입니다.
IPv4 (버전 4)는 네 자리 숫자로 이루어져있습니다. 192.168.0.1 많이 보셨죠? 이런 형태입니다.
이전 단계에서 구매한 도메인을 사용하면, 이 네 자리 숫자를 외우지 않고도 영어로 된 주소를 입력해서 해당 IP에 있는 컴퓨터에 접속할 수 있습니다.
(* IP는 정확히는 Internet Protocol의 약자로, 프로토콜 자체를 의미하지만, "IP 주소" 도 IP라고 부르는 일이 잦습니다. 그냥 인터넷상에서의 컴퓨터의 집주소라고 기억해주세요.)
예시)
1. don.naru.cafe를 브라우저 창에 입력해서 접속
2. -> 어디선가 don.naru.cafe의 실제 IP 주소는 152.69.233.5 라고 알려준다
3. -> 접속 성공
아까 만든 가상 컴퓨터의 공개 IP 찾기
전용 IP는 사설 IP이므로 그거로는 접속할 수 없습니다. 공용 IP를 복사해둡시다.
SSH로 접속
위에서 설명한 것처럼 [영어로 된 도메인과 IP주소를 연결]하기 전에, 명령줄로 방금 만든 가상의 컴퓨터에 접속해서 가벼운 보안 설정을 해줄 것입니다.
이미 SSH 비밀키 / 공개키 쌍을 만들어서 접속하는 것만 가능하므로, 암호를 마구잡이로 입력해보는 나쁜 사람들한테는 이미 면역입니다. 키 관리 잘 하세요!
아까 열어둔 명령창에, 다음을 입력합니다.
# 숫자는 아까 복사해둔 공용 IP로 교체하세요 ssh ubuntu@123.123.234.234 # 만약 SSH 키를 C:\Users\사용자명\.ssh\id_ed25519 에 옮기지 않았다면 ssh ubuntu@123.123.234.234 -i my_ssh_key_file
- ubuntu: 사용자 이름입니다.
- 123.123.234.234: 컴퓨터의 주소입니다.
- -i: 비밀키 파일을 지정합니다.
암호도 입력하고 나면, 짜잔, 아까 만든 가상 컴퓨터에 로그인되었습니다.
이것이 가장 대중적인 리눅스인 우분투입니다.
Windows같은 그래픽 환경도 지원하지만, 서버에서는 굳이 필요하지 않아 설치도 사용도 하지 않습니다. 전부 명령줄로 작업할 겁니다.
sudo: 우분투에서 관리자 권한으로 프로그램 실행하기
관리자 권한으로 프로그램을 실행하려면
sudo 명령어
를 입력하면 됩니다. 한 번 해볼까요?
우분투에서 폴더 돌아다니기
ls: 현재 폴더의 내용 보기 (list)
sudo ls
"ls" (엘 에스) 라는 프로그램은 현재 경로의 파일들을 출력하는 명령어입니다. 무엇이 나오나요?
실행 예시
ubuntu@my-firefish-instance:~$ sudo ls ubuntu@my-firefish-instance:~$
아무것도 안 나오죠. 현재 경로에 아무것도 없기 때문입니다.
<!> 앞으로 스크린샷 대신에 위와 같이 (ubuntu@...) 명령줄의 내용을 보여드릴겁니다. (1)명령어에 대한 설명과 (2)실행 결과 샘플을 헷갈리지 마세요!
sudo 없는 ls & 숨김 파일
아 맞다, ls는 관리자 권한이 없어도 실행할 수 있어요. sudo를 빼고 추가 옵션을 붙여서 실행해볼까요?
ls -al
- -a 옵션: 숨김파일, 현재 경로(.), 상위 경로(..) 까지 포함해서 모두(all) 출력합니다.
- -l (엘) 옵션: 리스트 형태로 출력합니다.
실행 예시
ubuntu@my-firefish-instance:~$ sudo ls -al total 32 drwxr-x--- 4 ubuntu ubuntu 4096 Jul 31 16:42 . drwxr-xr-x 4 root root 4096 Jul 31 16:36 .. -rw------- 1 ubuntu ubuntu 81 Jul 31 16:42 .bash_history -rw-r--r-- 1 ubuntu ubuntu 220 Jan 6 2022 .bash_logout -rw-r--r-- 1 ubuntu ubuntu 3771 Jan 6 2022 .bashrc drwx------ 2 ubuntu ubuntu 4096 Jul 31 16:40 .cache -rw-r--r-- 1 ubuntu ubuntu 807 Jan 6 2022 .profile drwx------ 2 ubuntu ubuntu 4096 Jul 31 16:36 .ssh -rw-r--r-- 1 ubuntu ubuntu 0 Jul 31 16:41 .sudo_as_admin_successful
-a 를 넣었더니 "."(쩜) 으로 시작하는 파일도 나오네요. 리눅스에서 파일 이름이 쩜으로 시작하는 파일은 숨김 파일입니다. -a 옵션을 넣어야만 확인할 수 있습니다.
pwd: 현재 경로가 어디에요? (print working directory)
근데 지금 선택되어 있는 폴더가 어디인가요?
pwd 명령어를 쓰면 됩니다.
실행 예시
ubuntu@my-firefish-instance:~$ pwd /home/ubuntu ubuntu@my-firefish-instance:~$
현재 경로는 /home/ubuntu 였군요!
cd: 현재 경로를 바꾸자 (change directory)
근데 /home 이나 다른 경로로는 어떻게 가나요?
cd 대상_경로
아까 특수한 폴더명을 잠깐 지나가면서 두 가지 얘기했죠?
- .. (쩜 두 개): 상위 경로를 의미합니다.
- . (쩜 한 개): 현재 경로를 의미합니다.
- ~ (틸다): 현재 사용자의 홈 경로를 의미합니다. (/home/ubuntu)
현재 경로가 /home/ubuntu 이니까, /home 으로 이동하려면 어떻게 해야할까요?
실행 예시
ubuntu@my-firefish-instance:/home$ pwd /home ubuntu@my-firefish-instance:/home$ cd ubuntu ubuntu@my-firefish-instance:~$ pwd /home/ubuntu ubuntu@my-firefish-instance:~$
맞습니다. "cd .." 을 입력하면 됩니다.
제일 위에는? "/" 가 있습니다
그럼... Windows처럼 C:\나 F:\ 같은 게 있나요?
아뇨, 리눅스에는 / 가 최상위입니다.
실행 예시
ubuntu@my-firefish-instance:~$ cd ../../../ ubuntu@my-firefish-instance:/$ pwd / ubuntu@my-firefish-instance:/$ cd ~ ubuntu@my-firefish-instance:~$ pwd /home/ubuntu ubuntu@my-firefish-instance:~$
참고: 보통 외장하드 같은 걸 연결하면 /mnt/mydrive 같은 폴더를 만들어서 거기에 외장하드를 연결합니다.
--help 옵션: 명령어의 도움말 보기
아까 ls -al 을 썼잖아요. -a 와 -l 옵션 두 개를 줄여서 -al 옵션을 넣은 건데요.
- -a 와 같은 (대시를 1개만 쓴) 옵션은 축약 버전이에요.
- --all 과 같은 (대시를 2개 쓴) 옵션은 풀버전이에요.
이런 옵션들은 기억하기 쉽지 않은데, 어떻게 확인할까요?
--help 옵션을 사용해서 명령어를 실행하면 대체로 도움말이 나옵니다.
실행 예시
ubuntu@my-firefish-instance:~$ 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 nongra(엄청길거든요 생략좀할게요)
또 있어요. 리눅스에는 man (manual) 이라는 도움말을 보여주는 명령어가 있습니다.
실행 예시
ubuntu@my-firefish-instance:~$ man ls # 그만 보려면 q 를 입력하세요 # 그래도 안 되면 :q 를 입력하세요
실행 예시
LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FI(엄청길어요 생략할게요)
man 명령어의 단점은, 이런 창은 "vi"라는 프로그램의 사용법을 따라가요. 이게 좀 복잡하거든요... 일단 q를 눌러 탈출하세요!
이걸로 기본은 일단 OK!