리눅스 동작시키는 방법을 알아보자. 리눅스는 GUI가 아니라 CLI 즉, 명령어를 통해 제어한다
명령은 현재 디렉토리를 대상으로 내려진다. 그래서 현재 디렉토리가 어디인지 알고 명령을 내려야 한다.
명령어 | 의미 |
---|---|
ls | 현재 디렉토리의 파일 목록을 출력하는 명령어. 'ls -l'은 자세히 보기 |
pwd | 현재 위치하고 있는 디렉토리를 알려주는 명령어 |
mkdir | mkdir [새로 생성할 디렉토리명] |
cd | cd 이동할 디렉토리의 경로명 |
rm | rm 파일명 |
rm -r 디렉토리명 | |
-help | 명령어 뒤에 --help를 붙이면 명령의 사용설명서가 출력됩니다. |
ls --help | |
rm --help | |
mkdir --help | |
pwd --help |
상대경로는 현재 디렉토리의 위치를 기준으로 다른 디렉토리의 위치를 표현하는 것
..은 부모 디렉토리를 의미.
cd ..
은 현재 디렉토리의 부모 디렉토리로 이동
참고로 현재 디렉토리는 '.'
절대경로는 최상위 디렉토리를 기준으로 경로를 표현하는 것을 의미
최상위 디렉토리는 루트(root) 디렉토리라고 하고 '/'.
cd /
는 최상위 디렉토리로 이동한다는 뜻.
cd /home/egoing
은 현재 디렉토리가 무엇이건 언제나 '/home/egoing'을 의미
명령어 시스템에서는 디렉터리가 매우 중요하다. 디렉토리는 어떤 데이터(또는 실행할 수 있는 프로그램)을 정리정돈하는 수단이다. 그리고 유닉스 계열에서는 각 디렉토리마다 용도와 의미
를 갖는다. 데이터와 실행할 프로그램의 성격
에 따라서 사용할 디렉토리의 이름이 정해져 있다.
'linux directory structure'로 검색하면 아래 결과가 나온다
기본적으로 리눅스 또 유닉스 계열은 이런 구조를 가지고 있다
'/'는 최상의 디렉토리. 컴퓨터 저장장치 (데이터를 저장하는 공간)의 최상의 디렉토리. 그리고 이 디렉토리를 루트(root)라고 한다.
'/bin' : 'User Binaries'
이 디렉토리에는 bash(쉘 프로그램), nano(파일 편집할 때 사용), 'chmod', 'pwd', 'ps', 'rm' 등이 있다.
'bin'이라는 디렉토리는 바이너리를 줄인 말이고 바이너리는 이진수라는 뜻. 컴퓨터는 0과 1로 구성되어 있다. 즉 실행가능한 프로그램을 컴퓨터에서는 바이너리라(bin)고도 부른다.
그래서 여기있는 이 'bin'이라는 디렉토리에는 사용자들이 사용하는 명령들이 위치하고 있다.
'sbin' :'System Binaries'입니다
바이러리 실행 프로그램인데, 시스템 프로그램이다.
'reboot'라고 하는 명령어(또는 프로그램), 'shutdown' 프로그램, 'halt' 프로그램 등
여기있는 프로그램들은 컴퓨터를 끄거나 재부팅
하거나 이런 역할을 하는 그런 명령(또는 프로그램)들
시스템관리자('system administrator') 쉽게 얘기해서 root user들이 사용하는 프로그램들이 있다.
즉 일반 사용자들이 쓸일은 별로 없고, 일반 사용자들이 쓰는것
들은 'bin' 디렉토리에 있고 그리고 관리자 root 사용자가 쓰는 프로그램
들은 sbin에 있다
'etc' : 'Configuration Files'
설정이라는 것은 어떤 프로그램이 있을때, 프로그램이 동작하는 방법을 우리가 바꾸고 싶을 때 사용. 이 리눅스에서 유닉스 계열에서 동작하는 대부분의 프로그램의 설정은 UI가 있는 것이 아니고 파일을 바꾸는 것 입니다. 그러면 그 프로그램은 그 파일을 참고해서 자신이 어떻게 동작할 것인가를 참고하는 것
여기있는 각각의 파일들은 이미 설치되어 있는 어떤 프로그램에 대한 설정, 또는 운영체제 자체에 대한 설정, 설치한 어떤 프로그램에 대한 설정일 수도 있다. 그래서 어떤 프로그램을 설치하면 그 프로그램이 동작하는 방법에 설정을 바꾸고 싶을 때는 'etc'에 있을 것이다! 라고 여러분이 추정할 수 있다
'/var' : 'Variable Files'
Variable Files 은 바뀔수 있다. 대체로 내용이, 아니면 용량이 바뀔수 있다 또는 증가할 수 있다. 이런 뜻.
'/bin', '/sbin','/etc'는 바뀌지 않는다.
특히 '/bin', '/sbin' 디렉토리는 프로그램이다. 업데이트하기 전까지는 프로그램은 바뀌지 않는다. 그리고 '/etc'는 설정을 바꾸기 전까지는 바뀌지 않는다
그런데 '/var'이라는 디렉토리 밑에 있는 파일(예를들어 'log')라는 파일들은 어떤 프로그램이 동작하는 과정에서 에러가 발생하면 여기있는 어떤 특정한 파일의 이름에 저장된다. 아니면 사용자들이 웹서버에 접속을 했다, 그러면 역시 여기에 내용이 쌓이기 때문에 이 파일들은 내용이 고정된 것이 아니라 바뀌고 증가되고 어떻게 바뀔수 알 수 없는 그런 특성을 가지고 있다.
임시파일들을 저장되는 곳. 컴퓨터를 껏다 키면, 여기있는 파일들은 자동으로 삭제가 된다.
사용자들의 디렉터리
현재 사용자의 홈 디렉터리로 한방에 워프를 할 수 있는 기능이 바로 이 물결(~)
cd ~
/bin과 /sbin에 위치하고 있는 여러 프로그램들이 공통으로 사용하는 라이브러리가 보관되는 곳, 시스템적인 거니까 넘어가도 됨
usr 디렉터리에는 bin, sbin, lib, local 디렉터리가 들어가 있다.
/bin이라는 디렉터리와 /usr/bin 디렉터리는 과거의 역사적인 이유로 인해 구분되어 있고 그 부분이 꼭 합리적이라고 볼 수 없는 측면이 있다.
설치하는 프로그램들은 /usr밑에 설치가 되고
번들 형식으로 사용자에게 제공되는 프로그램들은 bin, sbin 디렉터리에 저장된다.
참고로, 역사적인 이유로는 옛날에는 컴퓨터가 플로피 디스크안에 운영체제를 담아서 부팅을 해야 했는데 그러다 보니 디스크를 꽂았다가 다시 1번 디스크, 2번 디스크, 3번 디스크, 이렇게 넣다 보니까 부팅을 할 때 필요한 프로그램은 bin,sbin에 저장을 하고 그리고 컴퓨터를 켤 때는 필요하지 않은 프로그램들은 usr/bin,usr/sbin과 같은 디렉터리에 저장을 했었다. 지금은 뭐 하드 디스크나 에스에스디(ssd)가 용량이 워낙 크기 때문에 이런 구분이 더 이상 필요 없어지면서 이것도 통합하거나 또 뭐 이렇게 하는 그런 추세에 있다
usr이라는 디렉터리 안에 또 사용자들의 여러 가지 파일들이 생겨나는 과정에서 자연스럽게 사용자의 파일을 저장하기 위한 디렉터리인 홈(/home)이라는 디렉터리가 뛰쳐나오면서 /usr 디렉터리에서는 이제 사용자의 데이터는 더 이상 존재하지 않는 상태가 되었다. 처음부터 디렉터리가 분화되어 있었던 것은 아니고 역사적인 이유에서 차근차근 분리되어온 것.