본문 바로가기
Etc/Computer Science

Linux - 패키지, 사용 권한, 환경변수

by 달의 조각 2022. 6. 30.

 

CLI 기본 명령어
패키지와 패키지 매니저
사용 권한
환경변수

 


 

패키지와 패키지 매니저

 

 

🎁 리눅스의 패키지(압축 파일)

1. 프로그램 파일
2. 프로그램 설치 파일
3. 프로그램 설치 설명서
4. 프로그램에 대한 정보를 담은 파일 - A를 설치하려면 B가 필요하다 등

 

🪄 패키지 매니저

패키지의 설치, 변경, 삭제 등의 관리를 편하게 해 주는 도구
스마트폰으로 비유하면 앱 스토어의 역할 → 모든 패키지의 저장소 위치를 저장한다

1. 패키지의 저장 위치에서 패키지를 다운로드하여 설치 프로그램을 설치
2. 설치된 모든 프로그램의 업데이트 확인
3. 필요 없는 프로그램 제거

 


 

Ubuntu 패키지 매니저 - apt

 

🕹️ apt 명령어 이용하기

우분투는 기본적으로 apt라는 패키지 매니저가 내장되어 있다

 

주요 명령어

apt update                              # 패키지 목록 갱신(관리자 권한 필요)
: 패키지를 다운로드할 수 있는 여러 저장소의 최신 정보 업데이트
  새로운 저장소를 추가하거나, 패키지 설치 전, 최신 정보 갱신
: 설치된 프로그램이 새로운 버전으로 변경되지 않는다

apt list --upgradable                   # 업데이트 가능한 패키지 목록 출력
apt upgrade                             # 전체 패키지 업그레이드(버전 업) (관리자 권한 필요)
apt --only-upgrade install 패키지 이름  # 특정 패키지만 업그레이드(버전 업) (관리자 권한 필요)
apt install 패키지 이름                 # 패키지 설치 (관리자 권한 필요)
apt list --installed                    # 설치된 패키지 보기
apt search 검색어                       # 패키지 검색
apt show 패키지 이름                    # 패키지 정보 확인
apt remove 패키지 이름                  # 패키지 삭제 (관리자 권한 필요

 

🧩 관리자 권한 사용하기

are you root?라는 에러를 마주할 경우 sudo 명령어를 붙여야 한다

 

🕸️ 무언가 잘못되고 있다고 느낄 때

시간이 너무 오래 걸리거나, 예상치 못하게 멈춘 경우
Unix 기반 운영체제에서의 Ctrl + C : 작업 취소, 터미널의 사용자 입력을 다시 되찾는다

오류 메시지를 주의 깊게 보는 것이 중요!

 

🔮 Action Items

1. wget 설치: URL을 통해 파일을 다운로드하는 프로그램

2. 밑의 코드 복사 붙여넣기 하기
    복사(Ubuntu): Ctrl + Shift + C
    붙여넣기(Ubuntu): Ctrl + Shift + V

해당 디렉토리에 goodjob.txt라는 파일이 만들어졌다. 파일을 확인해 보자!

wget -O goodjob.txt https://bit.ly/37sJqCo

 

3. neofetch 설치 후 실행

🚨

1.
apt install neofetch  # Error: are you root?

2.
sudo apt install neofetch  # Error: E: Unable to locate package neofetch

3.
sudo apt update
sudo apt install neofetch  # Do you want to continue? [Y/N] : Y

 

🎡 학습 도구 설치

sudo apt install ./zoom_amd64.deb

 


 

사용 권한 - Read, Write, Execute

 

🤔 폴더일까? 파일일까?

1. 폴더 하나와 파일 하나 생성

작성 후 Ctrl + X, Y, Enter로 저장

2. ls -l

가장 왼쪽의 표현을 보면 hello.java 파일의 경우 -로 시작, linuxs는 d로 시작된다
폴더면 d, 파일이면 -로 나타낸다(not directory, directory)

r, w, e: read permission, write permission, execute permission로, 사용자와 그룹, 나머지에 대한 권한을 표시

파일 hello.java의 권한 rw-r--r--: 소유자는 읽기와 쓰기가 가능하고, 다른 사용자 그룹은 읽기만 가능하다
폴더 linux의 권한 rwxr-xr-x: 소유자는 읽기와 쓰기, 실행이 가능하고, 다른 사용자 그룹은 읽기와 실행만 가능하다

 

🍎 user, group, and other

user: u

파일의 소유자, 기본적으로 파일을 만든 사람

group: g

여러 user가 포함될 수 있으며, 동일한 group 액세스 권한을 갖는다.

많은 사람이 파일에 액세스해야 하는 프로젝트가 있다면?
모든 user를 group에 추가하고, 파일에 group 권한을 할당

other: o

파일에 대한 액세스 권한이 있는, 파일을 만들지 않은 모든 user
other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수도 있다

 

 

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

OS에 로그인한 사용자 = 폴더나 파일의 소유자: chmod로 폴더나 파일 권한 변경
OS에 로그인한 사용자 != 폴더나 파일의 소유자: sudo 이용

 

첫 번째 방법: Symbolic method

더하기(+), 빼기(-), 할당(-)과 액세서(accessor) 유형을 표기

chmod g-r filename  # removes read permission from group
chmod o+w filename  # adds wirte permission to other

chmod a=rw hello.java  # -rw-rw-rw-
chmod u= hello.java # ----rw-rw-
chmod go-wx hello.java  # -r-xrwxrwx
chmod a= hello.java  # ----------

 

두 번째 방법: Absolute form

rwx를 3bit로 해석하여, 숫자 3자리로 권한 표기

# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 hello.java  # -rwxr--r--

 


 

환경변수

 

 

🎨 환경변수란?

프로그램의 동작에 영향을 미치는 값들
→ 프로그램 A이 B 폴더 안의 어떤 값을 필요로 할 때, A는 B의 위치를 파악할 수 있어야 한다

지역 환경변수: 환경변수를 생성한 특정 사용자면 사용 가능
전역 환경변수: 모든 사용자가 사용 가능

 

🌍 Linux & Mac OS에서 환경변수 설정하기

1. 임시 적용: 터미널을 닫으면 사라진다

hello=codestates  # 지역
export urclass="is good"  # 전역, 공백이 있을 때 따옴표로 묶기

 

2. 개별 값 확인

echo $hello

 

 

3. 영구 적용

1) 지역 환경 변수

  1. cd ~로 홈 디렉토리로 이동 → ls -al로 모든 파일 조회
  2. 조회 결과에 따라 편집창 열기
    1. 목록에 .zshrc가 있으면 nano .zshrc를 입력
    2. 목록에 .bashrc가 있으면 nano .bashrc를 입력
  3. vim을 사용하는 경우에는 Shift + G를, nano를 사용하는 경우에는 alt + /를 눌러 맨 아래로 이동한 다음,
    설정하고자 하는 환경변수를 작성하고 저장
  4. source .zshrc를 입력하여 변경 내용을 적용하고, 내용을 출력

2) 전역 환경 변수

  1. 변경하고자 하는 파일 권한 수정 예) sudo chmod 777 /etc/profile
  2. nano chmod 777 /etc/profile
  3. 지역 변수와 동일

 

4. export 키워드로 환경변수 이름과 값을 목록으로 확인하기

 

 

🌏 Windows에서 환경변수 설정하기

시스템 환경 변수 설정

 


 

CLI 명령어 더 알아보기

 

 

🖥️ 명령어 옵션 -r 과 -f

r(recursive): 특정 행동을 순환적으로 반복
f(force): 어떤 행위를 강제

rm: 파일을 저장하고 있는 폴더를 삭제할 수 없는데, -r을 사용하면 가능하다

 

🖥️ cat 명령어 대신 쓰는 명령어

🚨 내용이 너무 길 경우 잘려서 나오는 경우 있음!
💡 파일 내용의 일부만 열람할 수 있는 head, tail, more, less 명령어 사용

 

🖥️ 헬프 옵션

도움말: -h, -help

댓글