Chapter3_1, 리눅스 운영체제
리눅스의 디렉토리
정리 : 리눅스에서는 모든 것을 파일로 표현한다. 디렉토리도 파일의 한 종류로서 여러 개의 하위 파일이나 디렉토리의 주소를 담고 있다.
정리2 : 디렉토리, 파일을 효율적으로 관리하기 위해 계층적으로 구성하며, 이를 트리구조라고 한다
*윈도우의 폴더로 생각하면 편할 것 같다.
리눅스 디렉토리의 기능
/ | 루트 | 최상위 디렉토리, 디렉토리들의 절대경로 시작점 |
/bin | 바이너리 | 기본적인 명령어가 저장된 디렉토리 (ex. mv, cp, rm 등) |
/boot | 부트 | 리눅스의 부팅에 필요한 정보를 가진 파일들이 있는 디렉토리 |
/dev | 디바이스 | 시스템 장치파일을 저장하고 있는 디렉토리(ex. dev/sda(하드디스크 장치파일), /dev/cdrom(CD-ROM)장치 파일,키보드 마우스 등) 물리적 장치가 해당된다. |
/etc | 기타? | 설정 파일을 두는 디렉토리 |
/home | 홈 | 사용자(User)들의 홈 디렉토리가 있는곳 사용자(User)를 추가시 사용자 id와 동일한 디렉토리가 자동 생성된다. |
/lib | 라이브러리 | 커널이 필요로 하는 각종 라이브러리 파일, 커널 모듈파일이 존재 |
/media | 미디어 | DVD,CD-ROM,USB 등 외부 장치들의 마운트 포인트로 사용 |
/mnt | 마운트 | media디렉토리와 비슷하지만, media디렉토리는 OS에서 자동으로 마운팅 해주는 포인트로 사용된다면 mnt는 사용자가 직접 마운트하는 경로로 사용된다. |
/opt | 옵트 | 추가 응용프로그램 패키지 설치 장소, 패키지 매니저가 자체적으로 설치 및 삭제를 수행 |
/proc | 프로세스 | 현재 메모리에 존재하는 작업들이 파일 형태로 존재하는 곳, 프로세스 정보, 커널 관련 정보가 저장된다 |
/root | 루트 | 관리자계정 root 사용자의 홈 디렉토리(루트 디렉토리와는 다름, 사용자의 디렉토리 이다) |
/sbin | 시스템 바이너리 |
시스템 이진파일(실행파일)등을 저장하는 장소(ifconfig, ethtool, halt, e2fsck 등) |
/usr | 유저 | 일반 사용자들이 사용하는 디렉토리 |
/ver | 바 | 기타 모든 다용도로 사용될 수 있는 파일들이 저장되며, 로그파일, 데이터베이스 캐싱파일, 웹서버 이미지등이 위치한다 |
/sys | 시스템 | 디바이스를 관리하기 위한 가상 파일 시스템 디렉토리 |
/run | 런 | 부팅한 후 시스템 정보를 관리하는 디렉토리(Run-time variable data를 관리) |
/tmp | 템프 | 임시 파일을 저장하기 위한 디렉토리. 재부팅시 삭제됨 |
/lost+found | 로스트 | 휴지통! |
Q1. /sys 와 /proc의 차이점
/proc :
- 사용자가 /proc이나 그 하위 파일에 접근할 때마다 커널에서 파일 내용을 동적으로 만들어냄
- 각 프로세스는 고유의 식별자를 가지고 있으며, 이 식별자를 가진 디렉토리 하위에 정보를 저장한다
Q2. /root 와 / 그리고 /usr의 차이점
/usr :
- 공유 가능한 프로그램들이 설치되며 네트워크를 이용해서 여러 개의 시스템을 연결할 경우 이 디렉터리를 공유해서 설치된 프로그램들을 활용할 수 있다
- /usr 디렉토리는 읽기 전용으로 마운트 되어야 하며, 가변 자료들은 /var 디렉토리로 심볼릭 링크로 사용하게 된다
리눅스의 기본 명령어(계속)
정리. 리눅스는 윈도우와 달리 조작방식이 CLI(Comman-Line Interface)이기 때문에 기본적인 명령어는 꼭 기억하여야한다.
*윈도우는 GUI(Graphical User Interface)이고 마우스와 키보드로 모든걸 컨트롤 했지만, CLI방식에서는 키보드에서 명령어로 사용하는 듯 하다.
pwd | 현재 폴더경로 확인 (지금 내가 있는 디렉토리 위치를 표시함) |
mkdir | 새로운 폴더 생성 ex)mkdir hansu = hansu라는 폴더 생성 |
ls | 현재 디렉토리의 내용 출력 option)ls -a, ls -al or la = a는 all을 뜻하며 하이픈 뒤에오는 약어들은 순서 상관 없음 |
open . nautilus . |
현재 디렉토리를 GUI로 열기 +추가 : open .은 MACOS 기준 명령어고, 우분투 기준 명령어는 nautilus . 이다. |
cd | 폴더에 진입하기 ex)cd hansu = hansu 라는 폴더에 진입하여라 |
touch | 파일 생성 ex)touch test.txt = test라는 이름의 텍스트 파일을 만들어라 |
nano | 텍스트 입력기 열기 ex)nano test.txt = test.txt를 텍스트 입력기로 열어라, 윈도우의 메모장을 기억하자 |
cat | 파일내용 확인하기(커멘트에 출력하기) ex) cat test.txt = test.txt에있는 내용을 커멘트에 출력함 +추가 : 여러개의 파일이 cat 뒤에 올 수 있으며, 순서대로 출력함 |
rm | 폴더나 파일의 삭제 ex)rm test.txt = test.txt 를 삭제하라 option(r = 폴더 삭제, f = 질문없이 진행) |
mv | 폴더나 파일 이름 변경 or 위치 옮기기 ex) mv test.txt test/ = test.txt파일을 test폴더로 옮겨라 ex) mv test.txt test2.txt = test.txt 파일을 test2.txt 파일로 이름을 변경해라 |
cp | 폴더나 파일을 복사 하기 ex) cp test2.txt test.txt = test2.txt의 텍스트 파일 사본을 test.txt라는 이름으로 만들어라 |
아는 명령어가 생길 때 마다 추가하자!
패키지와 패키지 매니저
정리 : 패키지는 여러파일을 하나로 압축한 압축파일에 비유된다.
정리 2 : 패키지 매니저는 패키지의 설치, 변경 삭제 등 관리 를 편하게 해주는 도구이며, 스마트폰의 앱스토어에 비유된다
- 패키지 파일의 구성
- 프로그램 파일
- 프로그램 설치 파일
- 프로그램 설치 설명서
- 프로그램에 대한 정보를 담은 파일
OS별 패키지 매니저 Cheatsheet
- Ubuntu
apt update | 패키지의 업데이트 여부 확인 |
apt list --upgradable | 업데이트 필요한 파일 조회 |
apt upgrade | 프로그램 업그레이드 |
apt show | 프로그램의 정보 확인 |
apt install | 프로그램 설치 |
apt list --installed | 설치된 프로그램 목록 보기 |
apt remove | 프로그램 삭제 |
apt search | 패키지 검색 |
- Homebrew (macOS)
brew update | 패키지의 업데이트 여부 확인 |
brew outdated | 업데이트 필요한 파일 조회 |
brew upgrade | 프로그램 업그레이드 |
brew info | 프로그램의 정보 확인 |
brew install | 프로그램 설치 |
brew list | 설치된 프로그램 목록 보기 |
brew uninstall | 프로그램 삭제 |