Linux는 1991년 Linus Torvals
가 개발한 운영체제 이다. 참고로 Linus Torvals는 아직도 살아있고 여전히 Linux 개발을 이끌고 있다. 그리고 Linux는 오픈소스
이며 누구나 코드를 볼 수 있다.
Linux는 시스템을 운영하는데 가장 널리 사용되는 운영체제
이다. Windows 시스템이나 application이 아닌 이상 일반적으로 시스템 서버는 linux 기반으로 운영되고 있다. 그럼으로 개발자는 linux에 대 잘알아야 한다. Linux에 시스템을 실행하고 유지하고 관리하기 때문이다.
Linux는 윈도우스 처럼 일반일을 위한 운영체제가 아니기 때문에 익숙치 않으면 linux 사용이 많이 어려울 수 있다. Linux를 처음 사용하는 사용자는 아마 다음 부분들을 가장 크게 어려워 할 것이다.
위의 단어들을 처음 들어봤다면 어렵게 느껴질 수 도 있다. 그러나 어렵게 생각하지 않아도 된다. Linux도 외계인이 만든게 아니라 사람이 만든 것이며, 다른 사람들이 사용하라고 만든것이다. 그럼으로 기본적으로 누구나 사용할 수 있게 만들었다. 다만 익숙치 않을 뿐이다. 익숙해지면 어렵지 않다. 오히려 저자는 오랬동안 윈도우스를 사용하지 않았더니 윈도우스가 어렵다. 누가 나에게 윈도우스 고쳐달라고 하면 민망할 정도다.
먼저 linux의 파일 구조가 어떻게 되어 있는지 알아보자. Linux의 파일 구조
는 다음과 같은 tree
형태로 되어 있다.
FHS
의 가장 위에는 /
디렉토리가 있다. Root 디렉토리 (directory) 라고 한다. Root은 뿌리 라는 뜻이다. 즉 Tree 형태의 FHS의 뿌리가 된다는 뜻이다. 참고로 디렉토리 (directory)는 윈도우스의 폴더(folder)와 동일한 개념이다.
시작점인 root 디렉토리 안에 여러 하위 디렉토리들이 있고 각 하위 디렉토리들안에 또 하위 디렉토리 들이 있는 식이다. 그리고 각 디렉토리들은 slash (/
) 로 구분한다. 참고로 윈도우스는 back slash (\
) 로 구분한다. 예를 들어, root 디렉토리 안에 home
이라는 하위 디렉토리가 있고 그 안에 eun
이라는 하위 디렉토리가 있고 그 안에 bin
이라는 디렉토리가 있다면 해당 bin
디렉토리까지의 경로는 다음과 같이 표현한다.
/home/eun/bin
실제로 터미널에서 linx 파일 구조를 보도록 하자.
먼저 터미널에서 다음 명령어를 입력하여 root 디렉토리로 가보자.
cd /
cd
명령어는 "change directory"의 약자로 특정 디렉토리로 이동할때 사용된다.cd
명령어 다음에 가고자 하는 디렉토리 경로를 입력하면 된다. 여기서는 root 디렉토리로 가기 때문에/
하나만 입력했다. 만일 root 디렉토리의 하위 디렉토리인 home 디렉토리 의 하위 디렉토리인 eun 디렉토리의 하위 디렉토리인 bin 디렉토리로 가고자 한다면/home/eun/bin
을 입력해야 한다.
Root 디렉토리로 변경했으면 ls 명령어를 실행하자. ls 명령어는 list의 약자이며 해당 디렉토리의 내용물들을 나열해주는 역활을 한다. 다음과 비슷한 결과물을 볼 수 있을 것이다.
Root 디렉토리로 변경했으면 ls
명령어를 실행하자. ls
명령어는 list의 약자이며 해당 디렉토리의 내용물들을 나열해주는 역활을 한다. 다음과 비슷한 결과물을 볼 수 있을 것이다.
Root 디렉토리 안에 많은 하위 디렉토리들이 있는 것을 볼 수 있다. 그 중 home
디렉토리가 있는것을 볼 수 있다. home
디렉토리 안으로 가보면 자신의 유저 아이디와 동일한 디렉토리가 있을것이다. 예를 들어, 저자의 경우 eun
이라는 디렉토리가 있다. 이 디렉토리가 바로 유저의 home
디렉토리 이다.
Mac 에서는 다를 수 있다. Mac에서는
/home
디렉토리가 아니라/Users
디렉토리에 유저의 home 디렉토리가 있다.
Linux file system에는 여러 디렉토리가 있지만 그 중 가장 중요하고 기본이 되는 디렉토리는 바로 home 디렉토리 이다. 왜냐하면 home 디렉토리가 유저의 공간이기 때문이다. 주로 home 디렉토리에서 많은 것을 하게 된다.
Home 디렉토리 이외의 다른 디렉토리 들은 주로 system directory 라고 하는데, 즉 리눅스의 운영과 관리에 관련한 파일들이 존재하는 디렉토리 들이다. 이러한 system directory들에 대한 이해도 중요하지만 고급 내용이기 때문에 가장 기초 되는 home 디렉토리에 부터 익숙해져야 한다.
얼마나 중요하면 앞서 본 cd
명령어를 실행할때 디렉토리 경로를 생략하고 cd
만 입력하면 자동으로 home 디렉토리로 이동한다.
그 뿐만이 아니다. Home 디렉토리 경로를 나타낼때 ~
(tilda) 를 사용해서 나타낼수 있기 까지 하다. 예를 들어, cd ~
명령어를 사용하면 home 디렉토리로 간다. 또한 cd ~/bin
명령어를 사용하면 home 디렉토리의 하위 디렉토리 bin
디렉토리로 이동한다. 즉 ~
== /home/eun
이다 (여기서 eun
은 저자의 경우 이다. 다른 유저는 해당 유저의 home 디렉토리일것이다).
Shell 명령어들을 잘 알고 익숙해져야 linux
를 잘 쓸수 있다. 다음은 기본적인 shell 명령어
들이다. 찾아보고 직접 실행해 봐서 익숙해지도록 하자.
https://stackoverflow.com/c/wecode/questions/301/302#302
https://velog.io/@jcinsh/%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B8%B0%EC%B4%88