[SEB_BE / Day 3] Linux 기초
컴퓨터 제어 방식
- 명령줄 인터페이스(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가지 방식
- 더하기(+) 빼기(-) 할당(=)과 엑세서(accessor) 유형을 표기해서 변경 → Symbolic method
- 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 을 입력하여 변경 내용을 적용