Linux & Terminal

younghyun·2022년 2월 4일
0
post-thumbnail
  • Linux
    프로그램이 배포되고 동작하게 되는 환경
  • Terminal
    Linux 서버에 명령어를 전달하는 수단

FHS(Filesystem Hierarchy Standard)

root(/)

  • 루트 폴더. 최상위 경로. / 기호로 접근할 수 있음.

/home (~)

  • 윈도우 : C드라이브/Users/사용자명 ⇒ 바탕 화면, 다운로드, 내 문서
  • 유저의 공간. 가장 빈번하게 사용하게 되는 경로. Home 디렉토리 이외의 다른 디렉토리 들은 주로 system directory 라고 하는데, 즉 리눅스의 운영과 관리에 관련한 파일들이 존재하는 디렉토리들. ~ 기호로 곧바로 접근할 수 있음.

/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, sbin, shared, lib과같이 각 유저들이 사용할 수 있는 폴더가 생성되어 있음. 각각의 유저별로 다른 파티션으로 존재하기 때문에 다른 사용자들이 사용할 수 있도 록 마운트할 수 있지만 이 경우 수정할 수는 없음.
    • 전부 외우려고 하기 보다는 리눅스 역시 기본적인 파일 시스템 구조가 존재하고, 주로 내가 쓰게 될 기능과 공간이 어디에 있는지를 중점적으로 익히는 게 좋음.

PATH

  • / : root 디렉토리
  • ~ : home 디렉토리
  • 절대 경로 : Absolute path는 이름 그대로 절대적 경로. 경로를 표현하는 방식이 root 디렉토리 부터 시작한다는 점에서 "완전한"의 의미에 더욱 가까움. (ex. /home/eun/bin)
  • 상대 경로 : Relative path. 현재 자신의 위치를 기반으로 움직이는 경로. (ex. cd ..)
    • . : 현재 경로
    • .. : 상위 경로
  • 환경 변수
    • OS도 프로그램이기 때문에 OS가 동작하기 위해 변수가 필요
    • env 명령어로 linux의 환경변수 확인
  • $PATH
    • 터미널에서 사용하는 명령어의 경로가 저장되어 있음
    • 여러 경로를 저장하기 위해 각 경로는 : 으로 구분
      PATH=/Users/apple/miniconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    • 실제 ls 명령어는 /bin 디렉토리 안에 위치해 있음. whereis ls 를 입력해보자. 해당 명령어가 위치해 있는 경로를 별도로 지정해주지 않더라도 어디서든 사용이 가능한 이유 역시 환경 변수 덕분임.

Configs

  • 리눅스에서는 주로 파일을 통하여 설정(config). (ex. .bashrc, .zshrc)
  • shell 설정 파일을 비롯한 많은 설정 파일들이 대부분 유저의 home(~) 디렉토리에 있음.
  • . 으로 시작하는 파일 및 디렉토리는 숨김파일로 간주(dot file)
  • ls에 a 옵션을(all) 주어야지만 볼 수 있음.
  • alias(별칭, "다른 방법으로") : 일종의 사용자 지정 단축 명령어 (.zshrc, .bashrc 등에 등록)
    alias myip="ipconfig getifaddr en0" # macOS
    alias myip="hostname -I" # ubuntu

Terminal 명령어

profile
선명한 기억보다 흐릿한 메모

0개의 댓글