etc./Code_SEB_BE

[SEB_BE / Day 3] Linux 기초

Smile :DK 2023. 4. 14. 00:48

컴퓨터 제어 방식

  • 명령줄 인터페이스(CLI, Command-Line Interface)

  • 그래픽 사용자 인터페이스(Graphic User Interface)

 

WSL2(Windows Subsystem for Linux 2)

Windows에서 리눅스 터미널을 실행할 수 있게 해주는 프로그램

 

프롬프트(Prompt)

키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간

 

CLI 기본 명령어

  • pwd: 현재 폴더가 위치한 경로 확인
  • mkdir: 디렉토리 생성
  • ls: 특정 폴더에 포함된 파일이나 폴더 확인
    • option: -l, -a, -al
    • 옵션의 순서는 기능에 영향을 미치지 않음
  • cd: 폴더에 진입
  • touch: 파일 생성
  • cat: 파일의 내용 터미널에 출력
  • rm: 폴더나 파일 삭제
    • option: -r(폴더 지울 때), -f (강제)
  • mv: 폴더나 파일 이름을 변경 또는 파일 위치 옮기기
    • 이름 변경 mv <현재 파일 이름><바꿀 이름>
    • 위치 옮기기 mv <파일이나 폴더> <도착할 디렉토리>
  • cp: 폴더나 파일 복사
    • cp [원본 파일][복사할 파일]
  • whoami: 사용자 확인
  • sudo: 사용자가 관리자 권한을 일시적으로 획득하는 명령
  • ctrl + c: 명령어 실행 취소
  • export: 생성된 환경변수의 이름과 값을 목록으로 출

 

절대경로와 상대경로

  • 절대경로: /home/[username]/helloWorld/hello/
  • 상대경로
    • 특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 나타내며 현재 위치한 폴더는 (.)점으로 표현하고 상위 폴더는 (..)두 개의 점으로 표현

 

패키지 매니저

Ubuntu에는 기본적으로 apt 라는 패키지 매니저가 내장되어 있다.

  • apt update: 패키지 목록 갱신(관리자 권한 필요)
    • 패키지를 다운로드 할 수 있는 여러 저장소의 최신 정보를 업데이트
    • 새로운 저장소를 추가하거나 패키지를 설치하기 전 최신 정보를 갱신
    • 설치된 프로그램이 새로운 버전으로 변경되지 않음
  • apt list —upgradable: 업그레이드 가능한 패키지 목록 출력
  • apt upgrade: 전체 패키지 업그레이드(버전업)(관리자 권한 필요)
  • apt —only-upgrade install 패키지 이름: 특정 패키지만 업그레이드(버전업)(관리자 권한 필요)
  • apt install 패키지 이름: 패키지 설치(관리자 권한 필요)
  • apt list —installed: 설치된 패키지 보기
  • apt search 검색어: 패키지 검색
  • apt show 패키지 이름: 패키지 정보 확인
  • apt remove 패키지 이름: 패키지 삭제(관리자 권한 필요)

 

Read, Write, Execute 권한

 

폴더인지 파일인지 확인하기

User, Group and Other

  • User: 파일 소유자. 기본적으로 파일을 만든 사람이 소유자가 된다.
  • Group: 여러 user가 포함될 수 있고 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다.
  • Other: 파일에 대한 엑세스 권한이 있는 다른 user이며 다른 모든 user를 의미한다. 따라서 other 권한을 설정하면 해당 권한을 global 권한 설정이라고 할 수 있다.

 

chmod: 권한을 변경하는 명령어

OS에 로그인한 사용자와 폴더나 파일의 소유자가 같을 경우 chmod 명령어로 폴더나 파일의 권한을 변경할 수 있다.

만약 OS에 로그인한 사용자와 폴더나 파일의 소유자가 다를 경우 관리자 권한을 획득하는 명령어 sudo 를 이용하여 권한을 변경할 수 있다.

 

chmod로 권한을 변경하는 2가지 방식

  1. 더하기(+) 빼기(-) 할당(=)과 엑세서(accessor) 유형을 표기해서 변경 → Symbolic method
  2. rwx를 3bit로 해석하여 숫자 3자리로 권한을 표기하여 변경 → Absolute form

Symbolic method는 액세스 클래스, 연산자, 액세스 타입으로 구분

Access class Operator Access Type
u(user) +(add access) r(read)
g(group) -(remove access) w(write)
o(other) =(set exact access) x(execute)
a(all:u, g, o)    

 

 

Absolute form은 숫자 7까지 나타내는 3 bits의 합으로 표기

user, group, other 각 영역의 boolean 값으로 표기

Permission number
Read(r) 4
Write(w) 2
Execute(x) 1

 

ex) user는 rwx를 group과 other은 r--로 권한을 변경하고자 한다면, 위 표에 나와있는 숫자의 합을 user, group, other 순으로 입력

# Sum rwx Permission
7 4(r) + 2(w) + 1(x) rwx read, write, execute
6 4(r) + 2(w) + 0(-) rw- read, write
5 4(r) + 0(-) + 1(x) r-x read and execute
4 4(r) + 0(-) + 0(-) r— read only
3 0(-) + 2(w) + 1(x) -wx write, execute
2 0(-) + 2(w) + 0(-) -w- write only
1 0(-) + 0(-) + 1(x) —x execute only
0 0(-) + 0(-) + 0(-) —- none

 

 

환경 변수란?

환경에 따라 프로그램의 동작에 영향을 줄 수 있는 값들

 

환경 변수 임시 적용

지역환경변수
hello=world

전역환경변수
export welcome="spring"

전역 및 지역 환경변수 개별 값 확인
echo $hello # world 출력
echo $welcome	# spring 출력

 

환경변수 영구 적용

지역 환경변수 영구 적용

1. vim ~/.zshre or vim ~/.bashrc

2. zshrc 파일의 최하단에 환경 변수를 작성하고 저장

3. source ~/.zshrc를 입력하여 내용을 적용

 

전역 환경변수 영구 적용

1. root 디렉토리(/)의 etc디렉토리 내에 있는 profile 파일 권한 수정 → sudo chmod 777 /etc/profile

2. vim /etc/profile

3. profile 파일의 최하단에 환경변수를 작성하고 저장

4. source /etc/profile 을 입력하여 변경 내용을 적용