-
리눅스 기초
CLI란?
Command Line Interface. 말 그대로 커맨드라인 인터페이스를 가진 실행환경이다. Linux를 포함한 대다수의 Unix-like OS들은 CLI를 기본으로 사용한다.
명령어
주요한 명령어들은 다음과 같다.
man
: 배우는 입장에서는 가장 중요하다. 매뉴얼 보기! (ex:man pwd
-pwd
에 대한 매뉴얼 보기)pwd
ls
cd
mv
cp
mkdir
chmod
rm
cat
head
&tail
more
&less
- 에디터:
vi
,nano
등등...
하지만 가장 중요한 건 명령어를 사용하는 방법...을 알려주는 옵션이다!
모든 명령어 뒤에--help
를 입력해서 사용법을 알아보고 사용하는 습관을 들이도록 하자.
시간이 난다면-r
옵션과-f
옵션도 한번 보자.
Ubuntu.com에서는 비기너를 위한 커맨드라인 튜토리얼을 제공하고 있다.
기본적인 명령어들의 용법 설명은 이곳을 참고하자.
절대경로와 상대경로
절대경로와 상대경로 개념은 우리에게 친숙한 Windows에도 존재하기 때문에 깊게 메모할 필요가 없을 듯 하다.
절대경로는 루트/
를 기준으로 위치를 나타내는 것이고, 상대경로는 현재 위치.
를 기준으로 위치를 나타내는 방식이란 것만 알아두면 되겠다.관리자 권한
이것도 우리에게 친숙한 Windows의 개념과 동일하다.
Linux는 사용자의 권한을 꼼꼼히 검사한다. 필요할 때가 아니면 root 권한을 취득하지 말고, 아예 root로 로그인해서 사용하는 행동 같은 것도 해선 안된다.
필요할 때에만 실행하고자 하는 명령 앞에sudo
를 붙여서 관리자 권한으로 실행할 것임을 알리도록 하자.
끝으로sudo
와rm
을 함부로 다루다가는 OS를 재설치해야 한다는 점도 늘 염두하자.패키지 매니저 (Ubuntu/apt)
프로그램의 관리 단위를 패키지라고 한다.
각 패키지는 의존관계가 있을 수 있으며, 보통의 경우에는 프로그램 간 충돌을 일으키지 않도록 '패키지 매니저'란 시스템을 통해 일괄적으로 관리한다.
Ubuntu에서 사용되는 패키지매니저의 이름은 apt이다.apt-get
또는apt
라는 명령어를 통해 사용할 수 있다. 패키지 설치/삭제 등의 단순한 동작을 하는데에 있어서 둘의 차이는 없다.사용 권한
사용 권한 개요
파일/디렉토리에 대한 사용 권한을 관리한다. 사용 권한에 대한 내용은 범위와 종류로 나뉜다. 범위는 흔히 '소유권'이라 표현하고, 종류는 흔히 '권한'이라 표현한다.
먼저 소유권에 대해 알아보면 '작성자', '그룹', '그 외', 이렇게 세 가지가 있다.- 작성자는 해당 파일을 생성한 당사자(예: 아들)를 말하는 것이다.
- 그룹은 해당 사용자(예: 아들)와 같은 사용자그룹(예: 가족)의 사용자들을 말하는 것이다.
- 그 외, 말 그대로 그 밖의 사용자들을 말한다. 로그인 하지 않은 익명 사용자들도 여기에 해당된다.
권한의 종류는 읽기, 쓰기, 실행, 이렇게 세 가지 종류다. 하나의 파일이 존재하는 목적은, 그 파일을 '읽거나' '쓰거나' '실행'하려는 것이다. 그래서 특정 유저에 대해 그 파일을 읽게해줄건지, 쓰게해줄건지, 실행하게 해줄건지를 결정하는 것이다. - 예를 들어, 읽기 권한이 없는 파일은
ls
명령어를 입력해도 찾아볼 수 없다. - 예를 들어, 쓰기 권한이 없는 파일은 에디터에서 수정하고 저장할 수가 없다.
- 예를 들어, 실행 권한이 없는 디렉토리 안으로는
cd
로 들어갈 수 없다.
사용 권한 변경
범위와 종류, 각각을 수정하는 명령어가 다르다.- 소유자 수정: chown (수정할 소유권자) (수정할 파일/디렉토리)
- 권한 수정: chmod (부여할 권한) (수정할 파일/디렉토리)
- '부여할 권한'을 기재하는 두 가지 방식이 있다. 8진수로 된 입력방식과 'r(read), w(write), x(execute)'를 입력하는 심볼릭 방식이다. 8진수 입력방식만 설명하기로 한다.
- 한 파일에 권한을 부여할 때 고려해야할 점은 다음의 아홉 가지다.
- 작성자에게 읽기 권한을 허용할 것인지 확인하는 값 하나.
- 작성자에게 쓰기 권한을 허용할 것인지 확인하는 값 하나.
- 작성자에게 실행 권한을 허용할 것인지 확인하는 값 하나.
- 그룹에게 읽기 권한을 허용할 것인지 확인하는 값 하나.
- 그룹에게 쓰기 권한을 허용할 것인지 확인하는 값 하나.
- 그룹에게 실행 권한을 허용할 것인지 확인하는 값 하나.
- 그 외에게 읽기 권한을 허용할 것인지 확인하는 값 하나.
- 그 외에게 쓰기 권한을 허용할 것인지 확인하는 값 하나.
- 그 외에게 실행 권한을 허용할 것인지 확인하는 값 하나.
- 소유권 구분 별로 총 3개의 값, read/write/execute를 하나의 8진수로 나타내면?
- 예1: 작성자에게 7의 권한을 준다. -> 7은 '4 + 2 + 1'이므로 각 자리가 모두 값이 존재 -> 읽기/쓰기/실행 권한을 부여
- 예2: 그룹에게 6의 권한을 준다. -> 6은 '4 + 2 + 0'이므로 첫 자리(읽기), 두번째 자리(쓰기) 값이 존재 -> 읽기/쓰기 권한을 부여
- 예3: 그 외 사용자에게 5의 권한을 준다. -> 5는 '4 + 0 + 1'이므로 첫 자리(읽기), 세번째 자리(실행) 값이 존재 -> 읽기/실행 권한을 부여
- 숫자 하나로 세개의 권한을 간편히 줄 수 있으니, 숫자 세개로 소유권별 권한을 쉽게 나타낼 수 있다.
- 예: chmod 740 hello.html -> hello.html의 작성자는 읽기/쓰기/실행 권한, 그룹은 읽기 권한을 주고 그 외 사용자는 아무 권한도 주지 않는다.
사용권한에 대한 내용을 정리하면, 권한 범위마다 각각 어떤 종류의 권한을 부여할 것인지 설정할 수가 있는 것이다.
- 참고하면 좋은 사이트
Unix-like 시스템의 파일 권한 관리
환경변수
어떤 시스템을 막론하고 환경변수는 존재한다. 이 글은 Ubuntu Linux를 기준으로 설명한다.
지역변수는 현재 사용자가 사용할 수 있는 변수, 전역변수는 모든 사용자가 접근할 수 있는 변수를 말한다. 이름 그대로, 적용되는 스코프가 다르다.
* 현재 터미널에서 지역 변수 정의: 프롬프트에변수명="값"
입력 (예:VAR="VALUE"
)
* 현재 터미널에서 전역 변수 정의: 프롬프트에export 변수명="값"
입력 (예:export VAR="VALUE"
)
* 영구적으로 사용할 지역 변수 정의:~/.bashrc
에export 변수명="값"
입력
* 영구적으로 사용할 전역 변수 정의:/etc/profile
에export 변수명="값"
입력
* 현재 export로 선언된 변수들 목록 보기: 프롬프트에export
입력'각종 학습 요약' 카테고리의 다른 글
화면 설계하기 : 와이어프레임과 목업 (0) 2022.04.28