Linux 기초
Read, Write, Execute 권한
    
        class Hello {
            public static void main(String[] args){
                System.out.printf("hello World!");
            }
        }
    
(nano)코드를 작성한 다음 Ctrl + X, Y, Enter 를 입력하면, 새로운 파일을 저장할 수 있습니다.
  
위 명령어로 폴더, 파일을 생성한뒤 명령어 ls -l 을 프롬프트에 입력하고 Enter를 누릅니다.

터미널에 출력된 결과 중에서, 가장 왼쪽의 표현을 보면
-rw-r--r-- 이라고 출력 되었고, 폴더 linux는 drwxr-xr-x 라고 줄력되었습니다.
이 표현의 첫 시작인 - 와 d 는 각각 not directory와 directory를 나타냅니다.
즉, 폴더이면 d로, 파일이면 - 로 나타납니다.
r, w, x는 각각 read permission, write permission, execute permission으로 읽기 권한, 쓰기 권한, 실행 권한을 나타냅니다.
3번에 걸쳐 나타나는 이유는 사용자와 그룹, 나머지에 대한 권한을 표시하기 때문입니다.
따라서 파일 hello.java의 권한 rw-r–r–은 소유자는 읽기와 쓰기가 가능하고,
른 사용자 그룹은 읽기만 가능하다는 의미가 됩니다.</p>
폴더 linux의 권한은 rwxr-xr-x 으로, 소유자는 읽기와 쓰기, 실행이 가능하고, 다른 사용자 그룹은 읽기와 실행만 가능합니다.

user, group, and other
-user는 파일의 소유자입니다. 기본적으로 파일을 만든 사람이 소유자가 됩니다. 따라서 user를 소유자라고 하기도 합니다.
-group에는 여러 user가 포함될 수 있습니다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖습니다.
많은 사람이 파일에 액세스해야 하는 프로젝트가 있다고 가정합니다.
각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가하고, 파일에 group 권한을 할당할 수 있습니다
other: 파일에 대한 액세스 권한이 있는 다른 user입니다.
파일을 만들지 않은 다른 모든 user를 의미합니다.
따라서 other 권한을 설정하면, 해당 권한을 global 권한 설정이라고 볼 수도 있습니다.
chmod: 권한을 변경하는 명령어
명령어 chmod를 사용하여 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있습니다.
OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 명령어 chmod 로 폴더나 파일의 권한을 변경할 수 있습니다.
만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는
관리자 권한을 획득하는 명령어 sudo 를 이용해 폴더나 파일의 권한을 변경할 수 있습니다.
명령어 chmod 로 권한을 변경하는 방식은 두 가지가 있습니다.
첫 번째는 더하기(+), 빼기(-), 할당(=)과 액세서(accessor) 유형을 표기해서 변경하는 Symbolic method입니다.
두 번째는 rwx를 3 bit로 해석하여, 숫자 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) | 
명령어 chmod 뒤에 변경할 권한을 입력합니다. 
액세스 클래스의 u, g, o, a를 변경할 조건에 따라 조합하여 입력하고,
연산자와 액세스 타입을 순서대로 입력합니다.
다음은 명령어 chmod 를 입력한 예시와 결과입니다.
    
        chmod g-r filename # removes read permission from group
        chmod g+r filename # adds read permission to group
        chmod g-w filename # removes write permission from group
        chmod g+w filename # adds write permission to group
        chmod g-x filename # removes execute permission from group
        chmod g+x filename # adds execute permission to group
        chmod o-r filename # removes read permission from other
        chmod o+r filename # adds read permission to other
        chmod o-w filename # removes write permission from other
        chmod o+w filename # adds write permission to other
        chmod o-x filename # removes execute permission from other
        chmod o+x filename # adds execute permission to other
        chmod u+x filename # adds execute permission to user
    
    
        chmod a=rw hello.java # -rw-rw-rw-
        chmod u= hello.java # ----rw-rw-
        chmod a+rx hello.java # -r-xrwxrwx
        chmod go-wx hello.java # -r-xr--r--
        chmod a= hello.java # ----------
        chmod u+rwx hello.java # -rwx------
    
- pwd: 현재 위치를 확인하는 명령어
 - mkdir: 새로운 폴더를 생성하는 명령어
 - ls: 폴더나 파일의 목록을 출력하는 명령어
 - open (macOS): 현재 폴더를 파일 탐색기로 여는 명령어
 - cd: 폴더에 진입하는 명령어
 - touch: 새로운 파일을 생성하는 명령어
 - cat: 파일의 내용을 터미널에 출력하는 명령어
 - rm: 폴더나 파일을 삭제하는 명령어
 - mv: 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어
 - cp: 폴더나 파일을 복사하는 명령어
 - sudo: 관리자 권한 부여
 - 절대 경로의 시작은 루트 디렉토리(/)
 - 상대 경로의 시작은 현재 디렉토리(.)
 
패키지와 패키지 매니저
MacOS (Homebrew)
- brew update: 패키지의 업데이트 여부 확인
 - brew outdated: 업데이트 필요한 파일 조회
 - brew upgrade: 프로그램 업그레이드
 - brew info: 프로그램의 정보 확인
 - brew install: 프로그램 설치
 - brew list: 설치된 프로그램 목록 보기
 - brew uninstall: 프로그램 삭제
 
Linux Ubuntu
- apt update: 패키지의 업데이트 여부 확인
 - apt list –upgradable: 업데이트 필요한 파일 조회
 - apt upgrade: 프로그램 업그레이드
 - apt show: 프로그램의 정보 확인
 - apt install: 프로그램 설치
 - apt list –installed: 설치된 프로그램 목록 보기
 - apt remove: 프로그램 삭제
 - apt search : 패키지 검색
 
댓글남기기