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. 폴더 하나와 파일 하나 생성
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) 지역 환경 변수
- cd ~로 홈 디렉토리로 이동 → ls -al로 모든 파일 조회
- 조회 결과에 따라 편집창 열기
- 목록에 .zshrc가 있으면 nano .zshrc를 입력
- 목록에 .bashrc가 있으면 nano .bashrc를 입력
- vim을 사용하는 경우에는 Shift + G를, nano를 사용하는 경우에는 alt + /를 눌러 맨 아래로 이동한 다음,
설정하고자 하는 환경변수를 작성하고 저장 - source .zshrc를 입력하여 변경 내용을 적용하고, 내용을 출력
2) 전역 환경 변수
- 변경하고자 하는 파일 권한 수정 예) sudo chmod 777 /etc/profile
- nano chmod 777 /etc/profile
- 지역 변수와 동일
4. export 키워드로 환경변수 이름과 값을 목록으로 확인하기
🌏 Windows에서 환경변수 설정하기
시스템 환경 변수 설정
CLI 명령어 더 알아보기
🖥️ 명령어 옵션 -r 과 -f
r(recursive): 특정 행동을 순환적으로 반복
f(force): 어떤 행위를 강제
rm: 파일을 저장하고 있는 폴더를 삭제할 수 없는데, -r을 사용하면 가능하다
🖥️ cat 명령어 대신 쓰는 명령어
🚨 내용이 너무 길 경우 잘려서 나오는 경우 있음!
💡 파일 내용의 일부만 열람할 수 있는 head, tail, more, less 명령어 사용
🖥️ 헬프 옵션
도움말: -h, -help
'Etc > CS' 카테고리의 다른 글
[네트워크] 웹 애플리케이션 작동 원리 - 네트워크를 만드는 기술 (0) | 2022.08.02 |
---|---|
Git (0) | 2022.07.01 |
Linux - CLI 기본 명령어 (0) | 2022.06.30 |
Windows 개발 환경 세팅 (0) | 2022.06.24 |
웹 클라이언트와 웹 서버 (0) | 2022.06.24 |
댓글