CodeStatesBootCamp/Review
Section 1 - Unit 2 : [Linux] 기초 Review
JKROH
2023. 2. 15. 12:57
반응형
Review 에서는 학습한 내용을 다시금 기록합니다.
Unit Review는 학습한 내용 중 기존에 알고 있었지만 정확하게 이해하지 못하던 정보와 새롭게 알게된 정보를 기록합니다. 추가적인 설명을 요하는 부분은 댓글로 남겨주세요.
Section Review는 전반적인 Section을 되돌아보고 학습했던 시간과 과정, 내용을 총괄하여 기록합니다.
<<Linux 기초>>
* 개요
- CLI는 서버 컴퓨터와 소통하는 과정에서 필요로 한다.
- 대부분의 서버 컴퓨터는 무료로 이용 가능한 Linux 운영체제로 구동된다.
- 따라서 Linux 환경에서 CLI를 사용하는 것은 필수적으로 익숙해져야 한다.
CLI 기본 명령어
* CLI 기본 명령어
- pwd(print working directory)
- 현재 위치를 확인한다.
- mkdir(make directory)
- 새로운 디렉토리를 생성한다.
- ls(list)
- 특정 디렉토리에 포함된 파일이나 디렉토리를 확인한다.
- ls -al 을 통해 디렉토리 내의 숨겨진 항목을 포함한 모든 항목과 각 항목들의 포맷을 모두 표시할 수 있다. 이 때 첫 단어가 d 이면 directory 를 - 이면 file을 나타낸다.
- cd(change directory)
- 디렉토리를 변경한다.
- cd '디렉토리명 ' 으로 사용할 수 있다.
- touch
- 파일을 생성한다.
- touch '파일명' 으로 사용할 수 있다.
- cat
- 파일의 내용을 터미널에 출력한다.
- rm(remove)
- 디렉토리 / 파일을 삭제한다.
- 파일을 삭제하는 경우에는 rm '파일명.확장자'로 사용할 수 있다.
- 디렉토리를 삭제하는 경우에는 rm -rf '디렉토리명' 으로 사용할 수 있다.
- mv(move)
- 디렉토리 / 파일의 이름을 바꾸거나 위치를 옮길 때 사용한다.
- mv '디렉토리 / 파일 명' '도착할 디렉토리의 이름 + /' 로 디렉토리 / 파일을 옮길 수 있다.
- mv '디렉토리 /파일 명' '바꿀 디렉토리 / 파일 명' 으로 디렉토리 / 파일의 이름을 바꿀 수 있다.
- cp(copy)
- 디렉토리나 파일을 복사할 수 있다
- cp '파일명' '복사할 파일의 이름' 으로 파일을 복사할 수 있다.
- cp -rf '디렉토리명' '복사할 디렉토리 이름' 으로 디렉토리를 복사할 수 있다.
* 관리자 권한과 경로
- 사용자와 관리자
- 초기의 윈도우에는 관리자 권한이 따로 존재하지 않고, 컴퓨터를 다루는 모든 활동이 관리자 권한으로 진행되었다.
- PC가 항상 관리자 권한으로 실행되면 악성코드에 취약하여 해킹을 당하기 쉽다.
- 또한 시스템의 설정을 변경하는 프로그램 간의 충돌로 인해(현재는 관리자 권한으로 실행해야지만 시스템 설정의 변경이 가능) 블루 스크린이 자주 등장하였다.
- 따라서 MS 에서는 Window Vista 버전부터 사용자 계정 컨트롤(UAC, User Account Control)을 탑재해 시스템을 관리하는 관리자와 PC를 사용하는 사용자를 구분하기 시작했다.
- 관리자는 프로그램의 설치/변경/삭제의 권한을 가지고 있고, 사용자는 프로그램의 실행만 가능한 권한을 가지고 있다.
- UAC는 접근 권한을 통해 시스템 설정의 변경을 차단하고 사용자를 보호한다.
- Ubuntu는 기본적으로는 사용자가 절대 관리자 권한에 접근할 수 없다. 그러나 프로그램의 설치, 변경, 삭제 시 관리자 권한이 필요하기 때문에 특정 명령어를 통해 잠시 관리자 권한을 빌려온다.
- 절대경로와 상대경로
- 절대경로
- 명령어 pwd로 확인이 가능하다.
- 기준점(루트디렉토리 : /) 으로부터의 절대적인 위치이다.
- 특정 디렉토리나 특정 파일이 루트로부터 어떤 디렉토리를 통해 진입해야 접근 가능한지를 나타낸다.
- /home/userName/directory 에서 루트 디렉토리는 home으로 home에 진입하면 userName을 확인 가능하다.
- 상대경로
- 현재 위치로부터의 상대적인 위치를 나타낸다.
- 현재 위치한 폴더는 '.' , 상위 폴더는 '..' 으로 나타낸다.
- 관리자(root) 권한
- 절대 경로의 기준점인 루트 디렉토리(/)는 Linux의 관리자의 영역이다. 일반 사용자의 권한으로는 어떠한 디렉토리나 파일도 생성/변경/삭제할 수 없다.
- Linux 관리자의 가장 큰 특징은 어떠한 경우에도 일반 사용자에게 관리자 권한을 완전히 넘기지 않는다는 것이다. 프로그램의 설치/변경/삭제의 경우에만 해당 관리자 권한을 전달한다.
- whoami : 현재 로그인 된 사용자를 확인하는 명령어
- sudo : 관리자 권한을 획득하는 명령어. 잠시나마 관리자 권한을 가지기 때문에 항상 비밀번호와 함께 사용된다.
- 텍스트 에디터 nano
- 원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 하는 경우가 있기 때문에 터미널에서 에디터를 사용할 수 있어야 한다.
- nano test.java 와 같은 명령어로 파일을 실행할 수 있다.
패키지와 패키지 매니저
- Linux의 패키지는 여러 파일이 담겨있는 하나의 상자로 윈도우의 압축파일과 같다.
- 패키지의 구성은 기본적으로 다음과 같다.
- 프로그램 파일
- 프로그램 설치 파일
- 프로그램 설치 설명서
- 프로그램에 대한 정보를 담은 파일
- 패키지 매니저를 사용하지 않고 여러 프로그램을 개별로 설치하기 위해서는 각 프로그램이 저장된 위치를 모두 알아야 한다. 또한 프로그램의 업데이트 여부를 확인하기 위해 주기적으로 저장소를 방문해야 한다.
- 이는 프로그램이 많아지면 사실상 불가능해진다. 이러한 점들을 보완하고 패키지의 관리를 도와주는 도구가 패키지 매니저이다.
- 패키지 매니저는 모든 패키지의 저장소 위치를 저장하고 있어, 특정 프로그램의 설치가 필요할 때 해당 프로그램이 포함된 패키지를 다운로드해 설치 프로그램을 실행한다. 이외에 설치된 모든 프로그램의 업데이트를 확인하거나 프로그램의 제거에도 활용할 수 있다.
* Ubuntu의 패키지 매니저 - 매니저 apt
- Ubutu에는 기본적으로 apt라는 패키지 매니저가 내장되어 있다.
- apt 패키지 매니저의 주요 명령어
- apt update
- 관리자 권한을 필요로 한다.
- 패키지의 목록(패키지를 다운로드 할 수 있는 저장소의 최신 정보)을 업데이트 한다.
- 새로운 저장소를 추가하거나, 패키지를 설치하기 전에 최신 정보를 갱신한다.
- 설치된 프로그램이 새로운 버전으로 갱신되지는 않는다.
- apt list --upgradable
- 업그레이드 가능한 패키지 목록을 출력한다.
- apt upgrade
- 관리자 권한을 필요로 한다.
- 전체 패키지를 업그레이드 한다.
- apt --only-upgrade install '패키지 명'
- 관리자 권한을 필요로 한다.
- 특정 패키지만 업그레이드 한다.
- apt install '패키지 명'
- 관리자 권한을 필요로 한다.
- 패키지를 설치한다.
- apt list --installed
- 설치된 패키지를 확인한다.
- apt search '검색어'
- 패키지를 검색한다.
- apt show '패키지 명'
- 패키지의 정보를 확인한다.
- atp remove '패키지 명'
- 관리자 권한을 필요로 한다.
- 패키지를 삭제한다.
사용권한
* Read, Write, Execute 권한
- Type
- 해당 항목이 파일인지 디렉토리인지를 나타낸다.
- 파일은 - 로 나타낸다.
- 디렉토리는 d로 나타낸다.
- User
- 해당 항목의 소유자의 권한을 나타낸다.
- Group
- 해당 항목의 다른 사용자 그룹의 권한을 나타낸다.
- Other
- 파일에 대한 액세스 권한이 있는 다른 사용자들을 나타낸다.
* user, group, and other
- User
- user는 파일의 소유자로, 기본적으로 파일을 만든 사람이 소유자가 된다. 따라서 user를 소유자라고 부르기도 한다.
- Group
- group은 여러 user가 포함된 단위이다.
- 한 group에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다.
- 여러 user가 접근해야 하는 프로젝트의 경우, 모든 user를 group에 추가하고 파일에 group권한을 할당하면 효율적으로 권한을 부여할 수 있다.
- Other
- other는 파일에 대한 액세스 권한이 있는 다른 모든 user들이다.
- 따라서 other권한은 global권한 설정이라고 볼 수 있다.
* chmod : 권한을 변경하는 명령어
- chmod를 사용하여 디렉토리 / 파일의 읽기/쓰기/실행 권한을 변경할 수 있다.
- OS에 로그인한 사용자와 항목의 소유자가 같을 경우에는 chmod만으로 권한을 변경할 수 있으며 다를 경우에는 sudo를 통해 관리자 권한을 획득해야 한다.
- 권한을 변경하는 방식은 Symbolic Method와 Absolute Form이 있다.
- Symbolic Method
- Symbolic Method의 사용 예시는 다음과 같다.
- chmod g-r '파일 명' : group의 읽기 권한을 제거한다.
- chmod u+w '파일 명' : user에게 쓰기 권한을 부여한다.
- chmod a=rw '파일 명' : user, group, other 모두 읽기, 쓰기 권한만을 가진다.
- chmod o= '파일 명' : other는 어떠한 권한도 가지지 않는다.
- chmod o+rx '파일 명' other에게 읽기, 실행 권한을 부여한다.
- chmod a+rwx '파일 명' user, group, other 모두에게 읽기, 쓰기, 실행 권한을 부여한다.
-Absolute Form
- Absolute Form의 사용 예시는 다음과 같다.
- chmod 744 '파일 명' : 첫 번째 자리는 7 = 4+2+1이므로 user에게 읽기, 쓰기, 실행의 권한을 부여한다. 두 번째 자리는 4이므로 group에게 읽기의 권한을 부여한다. 세 번째 자리는 4이므로 other 에게 읽기의 권한을 부여한다.
- chmod 635 '파일 명' : user에게 읽기, 쓰기의 권한을 부여한다. group에게 쓰기, 실행의 권한을 부여한다. other에게 읽기, 실행의 권한을 부여한다.
- chmod 760 '파일 명': user에게 읽기, 쓰기, 실행의 권한을 부여한다. group에게 읽기, 쓰기의 권한을 부여한다. other는 어떠한 권한도 부여받지 않는다.
- 숫자의 조합을 표로 정리하면 다음과 같다.
환경변수
- Linux 기반의 운영체제는 시스템 자체에 전역 변수를 설정할 수 있다.
- 시스템에 설정한 전역 변수를 환경변수라고 부른다.
* 환경변수란?
- 환경변수는 환경에 따라 프로그램의 동작에 영향을 미치는 값들을 의미한다.
- A프로그램을 실행하기 위해 B 디렉토리의 특정 파일이 필요하다고 할 때 B 디렉토리의 위치는 A프로그램의 동작에 영향을 미칠 수 있다. 즉 'B 디렉토리의 위치'를 A의 환경변수라고 할 수 있다.
- OS는 환경 변수에 따른 문제를 해결하고자 환경변수를 설정하고 프로그램이 환경변수를 찾아서 사용할 수 있도록 도와준다. 즉, 환경 설정 기능을 제공한다.
* Linux & Mac OS에서 환경변수 설정하기
- OS와 관계없이 환경변수는 지역 환경변수와 전역 환경변수로 구분된다.
- 지역 환경변수는 환경변수를 생성한 특정 사용자만 사용할 수 있는 환경변수이다.
- 전역 환경변수는 모든 사용자가 사용할 수 있는 환경변수이다.
- 리눅스와 맥은 환경변수를 임시 적용하거나 영구 적용할 수 있다.
- 지역 환경변수
- '변수이름'='값'으로 지역 환경변수를 임시 적용할 수 있다.
- 이 때, 등호 앞뒤에는 공백이 없어야 한다.
- 예를 들어, hello=codestates 를 입력함으로써 hello라는 새로운 임시 지역 환경변수를 설정할 수 있다.
- 전역 환경변수
- 명령어 export 를 이용하면 새로운 전역 환경변수를 추가할 수 있다.
- 저장하고자 하는 변수가 공백을 포함하면 값 전체를 따옴표로 감싸주어야 한다.
- 예를 들어, export hello="is greeting" 를 입력함으로써 hello라는 새로운 임시 전역 환경변수를 설정할 수 있다.
- 이 때 export hello=is greeting 과 같이 입력하면 hello 에는 is greeting이 아니라 is 까지만 저장된다.
- 전역 및 지역 환경변수의 개별 값 확인하기
- 설정한 환경변수의 값은 echo로 확인할 수 있다.
- 환경변수 hello의 값을 확인하고 싶다면 echo $hello 처럼 환경변수의 이름 앞에 $를 붙이고 echo를 이용해 호출하면 된다.
* 환경변수 영구 적용하기
- 환경변수를 영구 적용하면 터미널을 닫거나 PC를 재부팅해도 환경변수가 저장되어 사라지지 않는다.
- 지역 환경변수 영구 적용하기
- 지역 환경변수의 적용 과정은 다음과 같다.
- cd !를 통해 홈 디렉토리로 이동한다.
- ls -al 을 통해 홈내의 모든 항목을 조회한다.
- 이 때 조회 결과에 따라 목록에 .zshrc가 있으면 nano .zhrc를, .bashrc가 있으면 nano .bashrc를 입력하여 편집창을 연다.
- 파일의 맨 아래에 설정하고자 하는 환경변수를 작성하고 저장한다.
- 전역 환경변수 영구 적용하기
- 전역 환경변수의 적용 과정은 다음과 같다.
- 먼저 변경하고자 하는 파일의 권한을 수정해야 한다.
- 환경변수를 저장하고자 하는 파일은 루트 디렉토리의 etc 디렉토리 내의 profile 파일이다
- 해당 파일의 권한을 sudo chmod 777 /etc/profile을 통해 변경해야 한다.
- nano /etc/profile을 입력하여 편집창을 연다.
- 파일의 맨 아래에 설정하고자 하는 환경변수를 작성하고 저장한다.
- 먼저 변경하고자 하는 파일의 권한을 수정해야 한다.
- export
- export 는 생성된 환경변수의 이름과 값을 확인할 수 있는 명령어이다.
* Windows에서 환경변수 설정하기
- 다음의 링크를 통해 확인할 수 있다.
반응형