본문 바로가기

어머, 이건 배워야해!

길게 가야하지만, 멈추지 않아야하는 것은 명확하다. 코드라이언 0주차.



개발분야 학습에 더 주안점을 둬야지싶다.

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 <리눅스 명령어>