리누스 토발즈(Linus Benedict Torvalds)가 개발한 Unix 기반 운영체제
컴퓨터 OS 커널의 일종인 리눅스 커널, 또는 리눅스 커널을 사용하는 운영체제를 가리키는 말이기도 하다. 소스 코드가 공개되어 있는 대표적인 오픈 소스 소프트웨어다. 컴퓨터 역사상 가장 많은 참여자가 관여하고 있는 오픈 소스 프로젝트다. 모바일 운영체제로 유명한 안드로이드 역시 리눅스 커널을 가져다 쓰고 있다.
처음 무엇을 배울때 그게 무엇에 사용되며 왜 필요한지를 배우는게 중요하다고 생각한다.
높은 보안성, 안정된 구조, 유지보수의 용이성, 어떤 하드웨어에서도 동작하는 이식성, 무료,
오픈소스, 쉬운 조작법, 커스터마이징, 교육, 지원등 많은 이유가 있지만
개발을 처음 입문하는 분들에게 많이들 추천하는 것중 하나가 명령어 인터페이스(CLI, Command Line Interface)에 익숙해지라는 것이다. 그 이유는 대부분의 시스템과 서버는 리눅스 기반으로 운영되기 때문이다.
그럼으로 리눅스 서버에 접속해서 작업을 할때 텍스트 터미널을 통해 작업을 하는 경우가 대부분이다. 예를 들어, 백앤드 시스템에 오류가 났을때 서버에 접속해 로그를 보면서 오류를 해결해야 하는 경우 모든 작업이 다 터미널 상에서 이루어지기 때문에 만일 명령어 인터페이스와 터미널 환경에 익숙하지 않다면 많은 어려움을 겪게 될것이다. 그래서 개발할때는 UI나 여러 편리한 툴(tool)에 의존하는것을 최소화 하고 최대한 터미널을 통해서 개발하는것을 습관화 하는것을 권장한다고한다.
FHS에서는 비록 그것이 다른 물리적 장치에 저장되어 있다 하더라도 모든 디렉토리가 루트 디렉토리 "/"의 하위 디렉토리다.
각 디렉토리 별로 용도를 정하고 용도에 맞춰 사용한다. 중요한 표준 디렉터리는 다음과 같다.
디렉터리 | 설명 |
---|---|
/ | 파일 시스템 최상위 디렉터리 |
/bin | 사용자 명령인 ls, cat, cp 등의 실행 파일 |
/sbin | 부팅 과정에서 필요한 명령이나 관리자용 명령어인 fsck, shutdown 등의 실행 파일 |
/boot | 리눅스가 부팅될때 필요한 파일 부트 로더 설정 파일, 커널 이미지 등 |
/dev | 디바이스 드라이버들과 관련된 파일들을 저장하는 디바이스 디렉터리 모든 하드웨어는 이 디렉터리에 있는 파일을 통해 접근 가능 |
/etc | 리눅스 시스템에서 가장 중요한 디렉터리 시스템 중요 환경 설정 파일, 서버 프로그램 설정 파일, 시스템 초기화 스크립트 등 |
/home | 사용자 계정 홈 디렉터리 |
/lib | /bin, /sbin에 있는 프로그램들이 의존하는 라이브러리 파일들 |
/media | USB 메모리나 CD/DVD-ROM같은 탈부착이 가능한 저장 장치가 자동으로 마운트될 때 마운트 지점을 제공 |
/proc | 커널이 사용하는 가상의 파일 시스템 메모리, CPU같은 시스템 자원 관련 정보, 실행 중인 프로세스 관련 정보, 커널 관련 정보 등 |
/root | 루트 계정 디렉터리 |
/usr | 리눅스 핵심 명령 외 대부분의 사용자 명령, 게임, X 윈도우 시스템, 온라인 매뉴얼 등 (ex : /usr/bin : 압축, 네트워크 관련 실행 파일 등) |
/var | 시스템 운영 중에 필요한 가변 자료들 주로 시스템 운영 로그, 스풀 디렉터리, 임시 파일 등 |
전부 외우려기보단 기본적인 파일 시스템 구조가 존재하고, 주로 내가 쓰게 될 기능과 공간이 어디에 있는지를 익혀두면 좋다고 한다.
명령어를 알기전에 상대경로와 절대경로를 알아보자
절대경로란 최상위 디렉토리 (/)부터 시작해서 목표 디렉토리까지 가는 경로를 전부 기술하는 방식이다.
절대경로로 경로를 기술할 때에는 항상 맨 앞에 최상위 디렉토리 (/)가 붙는다는 것을 명심하자.
상대경로는 '현재 자신이 있는 위치를 기준으로' 이동을 하는 것이다.
그리고 '현재 자신이 있는 위치'는 . 으로 표기한다.
예시를 들어보자
현재 위치가 home 폴더라면 home → dasima → 바탕화면 순서로 가려고 한다.
절대경로를 사용해보자
참고로 cd는 이동하는 명령어이다.
절대경로 : cd /home/dasima/바탕화면
그다음 상대경로를 사용해보면
상대경로 : cd ./dasima/바탕화면
이렇게 이동이 가능하다 이경우에는 상대경로를 사용해서 이동하는게 더 간편하니 이방법으로 움직이는게 좋겠다.
명령어 | 뜻 | 설명 | 활용 |
---|---|---|---|
cd | change directory | 폴더 이동 | cd (경로) → . .. /usr |
ls | list segments | 현재 경로 내 파일 목록 출력 | ls -al |
pwd | print working directory | 현재 경로 출력 | |
mkdir / rmdir | make directory | 디렉토리 생성 / 제거 | |
rm | remove | 파일 / 디렉토리 제거 | rm -rf |
cp | copy | 파일 / 디렉토리 복사 | |
mv | move | 파일 / 디렉토리 이동 | |
cat | concatenate | 터미널에 파일 내용 출력 | |
touch | 파일 생성 및 날짜정보 변경 | touch readme.md | |
chmod | change mode | 파일 / 디렉토리 권한 설정 | chmod u+x readme.md |