1. 파일 접근 통제
- 리눅스 파일 시스템 FHS
'bin'은 모든 사용자가 사용하는 필수 명령어가 들어있다.
'boot'는 부팅에 필요한 모든 파일이 들어있다.
'etc'는 시스템 구성에 필요한 구성 파일이 들어있다. 시스템 관리자들은 해당 폴더를 1순위로 백업해야한다.
'home'은 사용자, 프로젝트 데이터를 보관한다.
'media'와 'mnt'에 mount를 자주한다.
'root'는 root 사용자 데이터를 보관한다. 물론 root로 로그인할 때만 접근 가능하다.
'sbin'은 시스템 관리 및 설정 명령어가 들어있다. 해당 디렉토리도 root 권한이 필요하다.
'usr'은 Unix System Resources의 약자로, 공유가능하고 읽기전용 파일을 저장한다.
* 체크 포인트
1. '/'와 '/root'는 완전히 다르다. |
2. Binary 디렉토리들의 차이점 'bin' : 모든 사용자가 사용하는 필수 명령어(cat, ls, cp 등)가 저장되어 있는 디렉토리. 'sbin' : 필수 시스템 바이너리(init, ip, route 등), 주로 시스템 관리자용 명령어가 저장되어 있는 디렉토리. 'usr/bin' : 모든 사용자의 중요하지 않은(단일 사용자 모드에서 필요하지 않은) 명령어 바이너리(sudo, vi 등) |
- 소유자, 그룹 멤버 및 모든 사용자
/etc/passwd : 사용자 정보
/etc/group : 그룹 정보
/etc/shadow : 비밀번호 정보
- 표준 Linux / Unix 파일 사용 권한 (File Permissions)
User(rwx) / Group(rwx) / Others(rwx)
permission | On a file | On a directory |
r(read) | read file contents (cat) | read directory contents (ls) |
w(write) | change file contents (vi) | create files in (touch) |
x(execute) | execute the file | enter the directory (cd) |
* 리눅스 파일 권한 코드는 권한(2진수)을 10진수로 변환하여 읽으면 된다.
예를 들어 permission이 '---'일 때는 000(2)이기 때문에 0이라고 읽으면 된다. permission이 '-w-'일 때는 010(2)이기 때문에 2라고 읽으면 된다. 그래서 만약에 'drwxrwxr-x'라면 775라고 읽으면 된다.
- 실행순서
1순위. Alias |
2순위. Built - in |
3순위. Function |
4순위. File (path 순서 앞부터) |
* 'ls -l'과 'll'은 어떻게 다른가?
'll'이라는 명령어는 기본적으로 존재하지 않는다. 사용자 편의를 위해 'ls -l'을 Alias 기능을 이용하여 등록해둔 명령어이다. 만약 파일을 삭제할 때 실수를 많이한다면, 'rm -i'를 'rm'으로 Alias해둔다면 실수를 줄일 수 있다.
alias rm = "rm -i" #alias 기능 추가
which rm #명령어의 경로 확인. 방금 alias 추가한 것도 추가되었을 것이다.
rm test #test 파일을 제거, rm -i로 실행된다.
unalias rm #alias 기능 해제
- 파일 사용 권한 변경
'chmod (1)234 파일명'으로 변경 가능하다.
- 리눅스 파일 사용 권한 기본 설정
파일이나 디렉토리가 생성될 때에 기본으로 주어지는 사용 권한을 제어하기 위해서는 'umask'를 사용한다.
'umask 0022'와 같은 명령어로 파일 사용 권한 기본 설정이 가능하다.
- 파일 소유자 변경
sudo chown owner[:group] file
'sudo chown linux: file1'와 같은 명령어로 파일 소유자 변경이 가능하다.
2. 프로세스 제어
1 Core라면 Running도 1개이다.
4 Core라면 Running은 최대 4개이다.
* 체크 포인트
program | 파일 시스템에 존재하는 실행 파일이다. |
process | 프로그램을 실행시키는 실행 주체, 인스턴스이다. 프로그램은 하나이지만, 그 프로그램을 실행하는 인스턴스는 여러 개가 생성될 수 있다. |
프로세스 상태를 보기 위해서는
'ps -ef'를 사용한다.
- 프로세스에 신호(signal) 보내기
kill [-signal] pid
signal을 받는 것을 거부할 수 있는데, 9번(SIGKILL)은 어떤 프로세스도 거부할 수 없다.
-> 잘 만들어진 프로그램이라면 15번(SIGTERM)을 보낼 것이다.
3. 문자열 검색
grep 명령어를 통해 문자열 검색할 수 있다.
정규식 표현(Regular Expression)을 함께 사용한다면 보다 정밀한 문자열 검색이 가능하다.
Meta character | 의미 |
^ | 라인의 맨 처음 |
$ | 라인의 맨 끝 |
* | 요소를 0번 또는 수차례 매칭시킴 |
+ | 요소를 1번 또는 수차례 매칭시킴 |
? | 선행하는 요소를 0번 또는 1번 매칭시킴 |
[a-z] | 문자 또는 숫자 그룹 중의 하나를 정의, 꺽은 괄호 안에 대문자, 소문자, 숫자를 배치 또는 범위 지정 |
() | 문자나 문자열 그룹을 구성. 그룹에 *, +, ?를 포함할 수 있음 |
{} | 요소가 특정 횟수를 반복하는 경우 매칭 |
\ | 탈출 문자 |
. | 정확하게 한 글자. 실제로 dot(.)을 표시하고자 하는 경우에는 '\.'으로 표시 |
- 확장(extended) 정규식 표현 문자열 검색(egrep)
(Alternation(교대) : '|', '+', '?'), (Quantifiers(한정기호) : '{}') 등을 이용한 정밀한 검색이 가능하다.
egrep '^(bz|gz|zip)' binlist.txt
4. 파일 검색
find 명령어를 통해 시스템 내에 존재하는 파일(일반파일, 디렉터리, 특수파일)들 중에서 사용자가 원하는 파일을 찾을 때 사용 가능하다.
xargs 사용하면 파일 검색 결과에 대해 사용자가 정의한 action 실행 효율을 높일 수 있다.
find ~ -type f -name 'file*' -print | xargs ls -l
'IT > Linux | AIX' 카테고리의 다른 글
Linux 라우팅 테이블 (0) | 2021.01.12 |
---|---|
amCLI 명령어_레이드_Fujitsu (0) | 2020.09.20 |
NFS export & mount (0) | 2020.09.16 |
nologin 계정 (0) | 2020.09.15 |
rsync 복제 (3) | 2020.09.15 |