DEVOPS_HANSU 2023. 3. 9. 13:32

리눅스의 디렉토리

정리 : 리눅스에서는 모든 것을 파일로 표현한다. 디렉토리도 파일의 한 종류로서 여러 개의 하위 파일이나 디렉토리의 주소를 담고 있다.

정리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 디렉토리로 심볼릭 링크로 사용하게 된다

 

https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0#root_%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC_%EA%B5%AC%EC%A1%B0


리눅스의 기본 명령어(계속)

정리. 리눅스는 윈도우와 달리 조작방식이 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 프로그램 삭제