Linix 핵심 개념
✅ 리눅스
리눅스는 무료로 이용 가능하고, 오픈소스 운영체제라는 특징이 있다. 오픈소스라는 큰 장점으로 많은 사람들이 자유롭게 소스 코드를 확인, 수정, 배포할 수 있고 에러가 발생 했을때 개선하기도 쉽다. 대표적으로 Ubuntu, CentOS, RedHAt, Android 등이 있다
리눅스는 운영체제 중 하나이며, 운영체제 또한 프로그램이기 때문에, 코드를 작성할 떄 변수에 값을 담듯이 리눅스도 shell의 설정값을 담는 변수를 사용해야 한다(환경변수 라고 함). 서버는 리눅스 체제로 되어 있기 때문에, 리눅스 계열 환경에서 작업하면 운영체제의 차이에서 오는 오류를 최소화할 수 있다. 핵심개념은 아래와 같다.
✅ 리눅스의 그래픽 환경
✅ CLI(Command Line Interface)
- CLI은 쉽게 말하면 윈도우의
cmd
와 리눅스의 터미널
환경을 생각하면 된다. 명령어로 소통하기 떄문에 GUI 환경보다 메모리를 적게 차지해 속도가 빠르다.
✅ GUI(Graphic User Interface)
- 그래픽으로 사용자와 소통하기 때문에 직관적으로 작업이 가능하다. 보통 windows가 GUI 환경을 많이 사용한다.
✅ FHS(Filesystem Hierarchy Standard)
- 파일 시스템 계층구조(FHS)란 리눅스에서 사용되는 규칙으로, 용도별로 디렉토리 구조를 정의한다.
✅ root(/)
- 루트 폴더. 최상위 경로
/
기호로 접근할 수 있다.
✅ /home(~)
- 윈도우: C드라이브/User/사용자명 => 바탕화면, 다운로드, 내 문서
- 유저의 공간, 가장 빈번하게 사용하게 되는 경오, Home 디렉토리 이외의 다른 디렉토리 들은 주로 system dirextory 라고 하는데, 즉 리눅스의 운영과 관리에 관련한 파일들이 존재하는 디렉토리들.
~
기호로 곧바로 접근할 수 있다.
✅ /bin & /sbin
- 윈도우: C드라이브/windows/system32 폴더
- Binary의 약자, OS의 최소한의 구동을 위해 필요한 프로그램이 들어있는 폴더. (cat, chmod, chown, cp, date, echo, kill, ln, ls, mkdir, etx) 와 같은 기초적인 프로그램들이 포함
- sbin 폴더는 bin과 유사하지만 오직 루트유저 전용 프로그램 포함
✅ /usr
- 윈도우: C드라이브/Users/사용자1
- user의 약자, 각 유저 이름에 해당하는 폴더이름이 존재, 각 폴더마자 bin, shared, lib과 같이 각 유저들이 사용할 수 있는 폴더가 생성되어 있음. 각각의 유저별로 다른 파이션으로 존재하기 때문에 다른 사용자들이 사용할 수 있도록 마운트할 수 있지만 이경우 수정할 수 없음.
✅ PATH
/
: root 디렉토리
~
: home 디렉토리
- 절대경로: Absolute path는 이름 그대로 절대적 경로, 경로를 표현하는 방식이 room 디렉토리 부터 시작한다는 점에서 "완전한" 의미에 더욱 가까움 (ex.
/home/eun/bin
)
- 상대경로: Relative path, 현재 자신의 위치를 기반으로 움직이는 경로 (ex
cd..
)
-.
: 현재 경로
-..
: 상위 경로
- 환경변수
- OS도 프로그램이기 때문에 OS가 동작하기 위해 변수가 필요
✅ Configs
- 리눅스에서 주로 파일을 통하여 성정(config).(ex
.bashrc
, .zshrc
)
- shell 설정 파일을 비롯한 많은 설정 파일들이 대부분 유저의 home(~) 디렉토리에 있음
.
으로 시작하는 파일 및 디렉토리는 숨김파일로 간주(dot file)
ls
에 a
옵션을 (all) 주어야지만 볼 수 있음.
- alias(별칭, "다른 방법으로"): 일종의 사용자 지정 단출 명령러(
.bashrc
, .zshrc
등에 등록)
✅ Terminal 명령어