개발분야 학습에 더 주안점을 둬야지싶다.
codelion.net에서 학습하고 있다.
vanilla.xyz라는 도메인을 연습용으로 연 1,200원에 구입했다.
싸게 사는 것은 역시 신난다.
지금 건드려놓은 코딩 학습 사이트는 많은데, 어서 빨리 하나씩 끝내야한다.
벌려놓고 끝내지 않는것이,
참 나의 과거와 똑 닮은 현재라는 생각이 든다.
일단 이번주에는 안드로이드 기초와 디자인 기초를 다 쌓고나면,
다음주쯤에는 완강하는 셈이 될거다.
서버관련 학습 내용
서버 접속을 위한 프로그램?
터미널, 명령어 인터페이스 (Command Line Interface)
그와 대척점에 써있는것이, Graphic User Interface
웹페이지 요청을 위해 사용하는 프로그램?
웹브라우저 - 크롬
서버와 파일을 주고 받기 위해 사용하는 프로그램?
FTP 클라이언트
서버 접속을 위한 프로그램
MAC인 경우 iTerm2 사용하기
주의할점 (출처: codelion.net 강의)
원래는 key pair 파일을 이렇게 막 복사하고, 또 홈 폴더처럼 남들이 여차하면 접근할 수도 있는 곳에 넣어 놓는 것은 좋은 습관은 아니다. 여기에서는 어쩔 수 없이 설명의 편의를 위해서 이렇게 한 것인데, 원래는 key pair를 가급적 여러분만이 접근할 수 있는 곳에만 하나 넣어 놓고 사용, 보관하는 것이 좋은 습관이다.
터미널에서 바로 서버 접속하기
$ ssh -i <key pair 이름>.pem ec2-user@<Public IP>
pwd
(print working directory) 명령어를 통해서 보여지는 이러한 형태의 경로를 절대 경로라고 부른다. 절대 경로가 지정되는 방식에 대한 설명은 뒤에서 다시 이어질 것이다.
경로가 ec2-user
대신 ~
로 표시되는 것은 리눅스의 자체적인 특징인데, 이 때 여러분이 위치한 ec2-user
디렉터리를 특별히 홈 디렉터리(home directory)라고 부른다.
기능 | 명령어 |
하위 디렉터리로 이동하기 | cd <하위 디렉터리명> |
상위 디렉터리로 이동하기 | cd .. 또는 cd ../ |
현재 디렉터리로 이동하기 | cd . 또는 cd ./ |
루트(/) 디렉터리로 이동하기 | cd / |
홈 디렉터리(/home/ec2-user)로 이동하기 | cd ~ |
현재의 절대 경로 확인하기 | pwd |
현재 디렉터리 내 하위 디렉터리 및 파일 표시하기 | ls |
두 단계 하위 디렉터리로 이동하기 | cd <하위 디렉터리명0>/<하위 디렉터리명1> |
두 단계 상위 디렉터리로 이동하기 | cd ../.. |
절대 경로로 이동하기 (예시) | cd /home/ec2-user |
이렇게, 파일 혹은 디렉터리를 다른 위치로 이동시키면서 동시에 이름 변경도 할 수 있다. 위와 같이 mv <이름 변경 및 이동할 파일명(경로)> <이동해 들어갈 디렉터리 내 새로운 파일명(경로)>
의 형태로 입력하면 된다.
경로를 통해 이동해 들어갈 위치를 지정하는 방식이 아직 많이 헷갈릴 것이다. 홈 디렉터리 안에서 파일이나 디렉터리를 새로 만들어서, 이들을 새로운 위치로 이동시키거나 이들의 이름을 변경하는 작업을 여러 번 연습해보도록 하자.
cp <복사할 파일명(경로)> <새로운 복사본 파일명(경로)>
의 형태로 명령어를 입력한다. 아래 그림과 같이,ls
명령어를 입력해보면 lion_growling.html
파일의 복사본인 lion_growling_edit.html
파일이 생성되었음을 확인할 수 있다:
디렉터리의 복사도 파일 복사와 그 방식은 거의 유사하나, cp
다음에 -r
옵션을 추가해줘야 한다는 점에 유의해야 한다. 즉, cp -r <복사할 디렉터리명(경로)> <새로운 복사본 디렉터리명(경로)>
의 형태로 명령어를 입력하면 된다.
기능 | 명령어 |
빈 파일 생성하기 | `touch <생성할 파일명(경로)>` |
새 디렉터리 만들기 | `mkdir <생성할 디렉터리명(경로)>` |
파일 이동하기 | `mv <이동할 파일명(경로)> <해당 파일이 이동해 들어갈 디렉터리명(경로)>` |
파일 이름 변경하기 | `mv <이름을 변경할 파일명(경로)> <새로운 파일명(경로)>` |
디렉터리 이동하기 | `mv <이동할 디렉터리명(경로)> <해당 디렉터리가 이동해 들어갈 디렉터리명(경로)>` |
디렉터리 이름 변경하기 | `mv <이름을 변경할 디렉터리명(경로)> <새로운 디렉터리명(경로)>` |
파일 복사하기 | `cp <복사할 파일명(경로)> <새로운 복사본 파일명(경로)>` |
디렉터리 복사하기 | `cp -r <복사할 디렉터리명(경로)> <새로운 복사본 디렉터리명(경로)>` |
파일 삭제하기 | `rm <삭제할 파일명(경로)>` |
디렉터리 삭제하기 | `rm -r <삭제할 디렉터리명(경로)>` |
$ sudo <리눅스 명령어> |
위와 같이 sudo <리눅스 명령어>
를 입력할 경우, 해당 명령어를 root 권한으로 실행한다. 만일 root 권한에 비밀번호가 걸려있다면, 비밀번호를 입력해야 할 것이다.
실제로 root 권한을 얻어야 하는 상황은 이제부터 이어지는 내용에서 아주 가끔씩 등장할 것이다. 여기에서는 일단 ‘root 권한으로 명령어를 실행하려면 sudo
를 붙이면 된다’는 것 정도만 알고 넘어가도록 하자.
여러분이 여러 명령어를 실행하면서 작업하다보면 현재 실행되고 있는 프로세스의 상태를 확인해야 할 일이 종종 발생한다. 그런 경우 다음의 명령어를 입력하고 엔터를 누른다:
$ ps aux |
만약 전체 프로세스 중에서 특정 프로세스를 검색하여 그 상태를 확인하고 싶다고 하자. 예를 들어, crond
라는 프로세스의 상태를 확인하고 싶다면, 다음의 명령어를 입력하고 엔터를 누르면 된다:
$ ps aux | grep crond |
ps aux | grep <프로세스 이름>
의 형태로 입력하면 된다. 그럼 아래 그림과 같이 crond
프로세스의 상태만이 표시된다:
$ kill -9 1240 |
kill -9 <PID>
의 형태로 입력하면 된다. 아마 실제로 crond
프로세스는 종료되지 않을 것이다. (아쉽지만, 프로세스 강제 종료 방법을 설명하고자 예를 들기 위해 언급한 것일 뿐이다.)
kill -9 <PID>
명령어는 앞으로 Rails를 학습할 때 종종 사용하게 될 것이다. Rails를 통해 WEBrick 서버를 구동시켰는데 이를 강제로 종료해야 할 경우에 주로 사용하게 될 것이다. kill -9 <PID>
명령어는 향후 Rails를 배울 때 다시 등장할 것이니, 여기에서는 일단 이런 명령어가 있다는 정도만 인지하고 넘어가면 충분하다.
기능 | 명령어 |
이름 자동 완성하기 | 파일명 혹은 디렉터리명의 앞쪽 일부를 입력하고 Tab 키를 누름 |
root 권한 얻기 | sudo <리눅스 명령어> |
프로세스 상태 확인 | ps aux |
프로세스 명령어로 검색 | ps aux | grep <프로세스 이름> |
프로세스 강제 종료 | kill -9 <PID> |
명령어 매뉴얼 보기 | man <리눅스 명령어> |
'어머, 이건 배워야해!' 카테고리의 다른 글
읽고싶고, 읽어야할 책들 (0) | 2015.08.27 |
---|---|
코드라이언 1주차. (0) | 2015.08.25 |
(어떤) 정부지원금 대회의 심사기준표 (0) | 2015.08.23 |
팀빌딩 강의 핵심만 쏙쏙 (0) | 2015.08.18 |
UX Design for Mobile Developers 모바일 개발자를 위한 UX 디자인 강의 (1) (0) | 2015.08.17 |