리눅스 파일시스템과 프로세스
- 7 mins리눅스 일반 - 파일시스템과 프로세스
권한 및 그룹설정
리눅스의 파일 권한 관리
- 모든 파일(디렉토리)에 접근권한과 소유권을 설정하여 관리
- 권한: 사용자, 그룹이 해당 파일을 어떻게 사용할 수 있는지 설정
// 파일유형+접근권한, 물리적 파일 연결개수 (하드링크), 소유자, 소유 그룹, 크기, 마지막 변경 날짜+시간, 파일명
[LinuxMaster]#ls -al
// 파일(디렉터리)의 사용자(그룹) 소유권 변경
[LinuxMaster]#chown <옵션> [소유자]:[그룹명] [파일명]
#### alias - 명령어의 별칭 만들기
- 명령어에 별칭을 부여하여 자주 사용하는 명령을 편리하게 사용
- alias [별칭 = '명령']
````powershell
[LinuxMaster]#alias showall='ls -al'
[LinuxMaster]#showall
합계 1968
unalias - 명령어의 별칭 삭제하기
- 만들어 놓은 별칭을 삭제
- unalias [별칭]
- unalias -a: 설정해놓은 모든 별칭 삭제
PATH 환경변수 - 명령어(프로그램)가 위치한 경로를 찾는 순서 지정
- PATH 환경 변수에 지정된 디렉터리를 순서대로 탐색하여 명령어(프로그램)을 찾고 실행
- 확인: echo $PATH
- 설정: export PATH = [설정값:설정값: ~~~]
- ~/.bash_profile에 기본값 설정. (예) export PATH=$PATH:/var/myfile
man - 리눅스 명령어의 매뉴얼(manual) 확인
- 리눅스에서 사용할 수 있는 명령어들의 매뉴얼을 확인
- man <섹션><-옵션> [명령어]섹션>
apropos - 명령어 매뉴얼에서 지정한 키워드가 포함된 것을 검색
- whatis 데이터베이스를 참조하여 지정한 문자열을 포함한 것을 검색하여 표시
- apropos [문자열]
manpath - man 명령이 참조하는 매뉴얼의 경로 표시
- man 명령이 페이지를 찾기 위해 탐색하는 경로 정보를 표시
- manpath
info - 리눅스 명령어의 사용법, 옵션 등 표시
- 리눅스 명령어의 사용법, 옵션 등을 표시, man 명령보다 제한적인 기능 제공
- info [명령어]
whatis - 명령어의 기능을 간략히 표시
- whatis 데이터베이스에서 키워드를 검색하여 일치할 경우 명령어의 기능을 표시
- whatis [명령어]
useradd, adduser - 사용자 계정 생성
- 사용자 계정과 관련 정보를 생성
- useradd <-옵션> [계정명]
- 옵션: -s (로그인 셸 지정), -d (홈 디렉터리 지정), -f (패스워드 만료 후 계정 영구 정지까지의 기간), -e (계정의 유효기간, 임시계정 생성) -c (/etc/passwd에 사용자 설명 추가)
- 기본 홈 디렉터리: /home/계정명
- 계정 정보 파일: /etc/passwd, /etc/shadow, /etc/group에 정보 추가
passwd - 사용자 패스워드 변경
- /etc/shadow 파일에 패스워드 변경 및 저장
- passwd <-옵션> [계정명]
- 옵션: -S (상태표시), -d (삭제), -l (잠금), -u (잠금해제)
- 상태표시 정보: PS (정상), NP (패스워드 없음), LK (잠금 혹은 패스워드 없는 상태)
su - 사용자 전환 (switch user)
- 로그아웃 없이 다른 사용자의 계정으로 로그인, 다른 사용자의 권한을 획득
- su <-옵션> [계정명] <셸변수> 셸변수>
- 옵션: - 혹은 -l 혹은 -login (사용자 환경변수 적용), -s (셸 지정), -c (계정 변환없이 지정한 명령어 실행)
[LinuxMaster]#su chris
[LinuxMaster]#pwd
/root
[LinuxMaster]#exit
exit
[LinuxMaster]#su - chris
[chris@118-27-119-212 ~]$pwd
/CHRIS
사용자 설정 관련 환경 구성 파일
- /etc/default/useradd: 사용자를 추가할 때 기본 설정 정보로 활용
- SKEL: 사용자 홈 디렉터리로 복사될 초기 환경 설정 파일이 저장된 디렉터리 지정
- 텍스트 편집기 (vi, nano 등) 혹은 ‘useradd -D 옵션’으로 변경
- /etc/passwd: 사용자 계정 정보 저장
- /etc/shadow: 사용자 패스워드 암호화 파일
- lastchange: 1970년 1월 1일 기준 최근 비밀번호 변경일
- mindays: 비밀번호 변경 후 재설정 가능한 최소 기간
- inactive: 비밀번호 만료 후 계정 사용 불가능 까지의 유예 기간
- expire: 계정 사용 정지 날짜 (1970년 1월 1일 기준으로 이후의 날짜 수)
- /etc/login.defs: 사용자 계정 설정 시 기본값
usermod - 사용자 계정 정보 설정
- 사용자 홈 디렉터리, 그룹, 유효기간, 셸 등 정보를 변경
- usermod <-옵션> [계정명]
- 옵션: -u (새로운 UID), -g (새로운 GID), -G (새로운 보조 그룹), -d (새로운 홈 디렉터리), -s (새로운 셸), -c (새로운 주석), -l (새로운 계정명)
userdel - 사용자 계정 정보 삭제
- /etc/passwd, /etc/shadow, /etc/group 에서 사용자 정보 삭제
- usermod <-옵션> [계정명]
- 옵션: -r (사용자의 메일 파일과 홈 디렉터리 모두 삭제)
chage - 패스워드 만료 정보 변경
- chage <-옵션> [계정명]
그룹 설정 관련 환경 구성 파일
-
/etc/group: 사용자가 소속된 그룹을 설정
-
/etc/gshadow: 그룹의 패스워드를 MD5로 암호화 하여 저장
users: 로그인한 사용자 정보 표시
- users <-옵션>
who: 접속한 사용자 정보 표시
- 계정명, 터미널 정보, 접속 시간, 접속 서버 등 표시
- who <옵션>옵션>
w: 접속한 사용자 정보 표시
- 서버 시간, 부팅 후 작동 시간, 접속자 수, 접속자 별 평균 부하율, 접속자별 계정명, TTY 이름, 로그인 시간 등
- w
- JCPU: TTY 장치명에서 사용되는 모든 프로세스의 CPU 사용 시간
- PCPU: WHAT에 표시된 프로세스의 CPU 사용 시간
id: 접속한 사용자 정보 표시
- uid, gid, group 정보 표시
- id <-옵션> [계정명]
whoami, who am i: 접속해 있는 자신의 정보를 표시
디렉터리 및 파일 관련 명령어
pwd: 현재 작업 디렉터리명 표시
cd: 디렉터리 이동 (change directory)
- cd [경로명]
mkdir: 디렉터리 만들기
- mkdir <옵션> [디렉터리명] 옵션>
- 옵션: -m (권한 설정, 기본 755), -p (상위 디렉터리 생성), -v (생성 디렉터리 메시지 표시)
rmdir: 디렉터리 삭제하기 (비어있는 디렉터리만 가능)
ls: 디렉터리의 파일 목록(정보) 표시
cp: 파일, 디렉터리 복사
- cp <옵션> [소스] [타깃] 옵션>
- 옵션: -b (타깃 파일 존재 시 백업), -f (타깃 파일 존재 시 강제로 삭제 및 복사), -i (타깃 파일 존재 시 덮어쓰기 확인), -r (하위 폴더 및 파일 포함)
rm: 파일, 디렉터리 삭제
- rm<옵션> [파일명|디렉터리명] 옵션>
- 옵션: -f (확인없이 삭제), -i (사용자에게 확인), -r (하위 디렉터리 포함, 모든 파일 제거)
mv: 파일, 디렉터리 이동, 파일명 변경에서 사용
- mv <옵션> [소스] [타깃] 옵션>
- 옵션: -b (타깃 파일 존재 시 백업), -f (타깃 파일이 있어도 강제 적용), -v (진행 과정의 정보 표시)
touch: 비어있는 파일 생성 혹은 파일의 시간(time stamp) 변경
- touch <옵션> [파일명]옵션>
file: 파일의 종류와 속성갑 표시
- file <옵션> [파일명] 옵션>
- 옵션: -b (파일 형식만 표시), -f (지정한 파일만 대상으로 실행), -z (압축 파일 내용 표시), -i (MIME으로 출력)
find: 지정된 조건에 따라 파일을 검색하는 명령어 (지정한 경로 및 하위 경로를 대상으로 검색)
- find <경로> <-옵션> <정규표현식> <파일명>파일명>정규표현식>경로>
cat: 파일 내용을 출력
- cat <-옵션> [파일명]
head: 파일의 앞 부분만 출력
- head <-옵션> [파일명]
tail: 파일의 마지막 부분만 출력
more: 화면 단위로 파일의 내용을 출력
less: 텍스트 파일을 한 화면씩 표시
- 특징: more와 다르게 커서를 이동할 수 있음
wc: 파일의 라인 수, 단어 수, 알파벳 수 표시
- wc <-옵션> [파일명]
grep: 특정한 문자열 패턴, 정규식을 이용하여 단어를 검색
- grep <-옵션> [문자열] [파일명]
sort: 정렬하여 표시하는 명령어
- sort <-옵션> [파일명]
cut: 구분자를 이용하여 특정 필드를 추출하는 명령어
- cut <-옵션> [파일명]
split: 여러개의 파일로 분리하여 저장
- split <-옵션> [파일명]
diff: 파일을 라인 단위로 비교하여 표시
cmp: 파일을 바이트(문자) 단위로 비교하여 표시
comm: 파일을 라인 단위로 비교하여 표시
리다이렉션과 정규 표현식
리다이렉션(redirection)의 개념과 활용
- 표준 입력 (stdin, standard input, 키보드), 표준 출력 (stdout, standard output, 모니터), 표준 에러 (stderr, standard error, 모니터)의 방향을 재지정하는 방법 방법: > (출력 재지정), »> (추가 모드로 출력 재지정), < (입력 재지정)
파이프(pipe)의 개념과 활용
- 두 개 이상의 명령을 상호 연결하여, 한 명령의 출력을 다른 명령의 입력으로 지정하여 실행하는 방법
-
방법: 명령 A 명령 B —
-
정규 표현식의 개념과 예
- 특정한 규칙을 갖는 문자열의 집합을 표현하는 데 사용하는 형식 언어
기타 명령어 - 네트워크 관련 명령어
ping: 상대 호스트와 IP 통신이 가능한지 확인하는 명령어
traceroute: 상대 호스트까지의 경로 표시
nslookup: 도메인 정보를 조회하는 명령어
- nslookup <옵션> [도메인명]옵션>
dig: 도메인정보를 조회하는 명령어 (domain information groper)
host: 도메인/호스트 정보를 조회하는 명령어
hostname: 시스템(호스트) 이름 확인 및 변경
- hostname <옵션> [파일명] ** /etc/sysconfig/network에 HOSTNAME을 설정하면 리부팅 시에도 호스트이름이 유지됨.옵션>