Linux 프로세스(실행중인 프로그램)는 프로그램 자체와는 다른 고유한 환경을 가진다.
쉘 환경이라고 부르는 Linux 환경은 수많은 변수의 값으로 이루어져 있다.

이런 변수와 값을 사용하여, 쉘과 같은 실행 프로그램이 Linux 환경의 모습을 판별할 수 있다.
환경이라고 하는 것은,
사용자가 사용하는 쉘, 홈 디렉토리, 사용 중인 터미널의 유형 같은 것들을 의미한다.
이런 변수들 중 대부분은 로그인 프로세스 중에 정의되며 변경할 수 없거나 변경해서는 안된다.
변수가 읽기전용이 아니라면 사용자가 추가하거나 변경할 수 있다.

변수는 VARIABLE=value 형식으로 설정된다. 
VARIABLE 자리에는 사용자가 원하는 어떤것으로도 설정할 수 있다.
표준 Linux프로그램에 사전 정의된 변수들은 그대로 사용한다.





 공통 환경변수

공통적인 Borne Shell 의 환경변수들 
 변수   설명 
 HOME=/home/login  사용자가 시작하는 위치인 홈 디렉토리를 설정
 왼쪽 login 부분을 login ID로 대체 하면, /HOME/login ID
 LOGNAME=login  자동으로 login ID와 동일하게 설정됨
 PATH=path  쉘이 명령을 실행하기 위해서
 명령에 대해 찾는 디렉토리 목록을 나타냄
 PATH=/usr:/bin:/usr/local/bin 과 같이 설정 가능 
 PS1=prompt  PS1은 프롬프트의 모습을 정의하는 1차 쉘 프롬프트
 설정하지 않으면 프롬프트는 달러기호($)
 원하는 경우 독창적으로 설정 가능
 PS1-"linux #"으로 하면
 명령어 프롬프트로 linux #을 표시 
 PWD=directory  PWD는 자동으로 설정됨
 사용자의 현재위치를 나타내 주는 역할
 PWD를 사용했을 때, /home 이 표시되면,
 사용자는 /home 디렉토리 밑에 있는 것 
 SHELL=shell  사용자 쉘로서 기능하는 프로그램의 위치를 식별
 .profile .login 파일에서
 SHELL 을 SHELL=/bin/csh로 설정하여
 로그인 쉘을 csh 등으로 설정 가능 
 TERM=termtype  터미널 데이터 베이스에 의해 지정되는 대로
 터미널 유형의 이름을 설정
 .profile .login 파일에서 TERM-vt100 과 같이 설정 가능 
 

PATH 변수는 콜론(:)으로 구분하여
사용자가 사용하는 프로그램을 포함하는 모든 디렉토리를 지정하는 문자열이 들어있다.

디렉토리가 나열되는 순서대로(왼쪽에서 오른쪽) 명령어를 탐색한다.
목록 순서는 동일한 명령의 여러가지 다른 양식을 지원하는 시스템에서 중요하다.

사용자가 자신의 명령어가 있는 디렉토리의 경로를 추가하려고 하는 경우,
PATH 변수를 수정하면 된다.

PATH=$PATH:newPath

더보기





 특수 환경변수 

특수 환경변수의 예
 변수  설명
 HOME  홈 디렉토리의 완전 경로명
 SHELL  현재 쉘의 이름
 MAIL  우편함의 전체 경로명
 LOGNAME  로그인 이름
 PATH  쉘이 명령을 탐색하는 디렉토리
 TZ  date 명령에 대한 시간대
 SECONDS  쉘을 호출한 이후의 시간(초)
 PS1  시스템 프롬프트
 TERM  사용중인 터미널의 유형

HOME 변수는 항상 홈 디렉토리를 지정한다. 로그인 하면 기본적으로 홈 디렉토리에 위치한다.

PATH 변수는 쉘이 명령을 탐색하는 디렉토리를 나열한다. 쉘은 디렉토리가 나열된 순서대로 명령어를 탐색한다.

MAIL 변수는 사용자의 전주 우편을 보유하고 있는 파일의 이름이 들어있다.
메일이 도착하면 메일은 MAIL 변수에 의해 지정되는 파일에 배치된다.

PS1 변수는 1차 프롬프트로서 표시되는 문자열을 보유한다.
프롬프트는 쉘이 명령을 수신할 준비가 될 때마다 표시하는 문자열이다.

TERM 변수는 터미널의 유형을 식별하는 데 사용된다.
vi 편집기와 같이 전체 화면을 사용하는 프로그램에서는 이 정보가 필요하다.

TZ 변수는 시간대를 식별하는 문자열을 보유한다. date 프로그램과 일부 다른 프로그램에서 이 정보가 필요하다.

LOGNAME 변수는 시스템이 사용자와 연관시키는 이름이나 문자열인 로그인 이름을 보유한다.




 alias 명령 

alias 명령은 명령어가 길거나 옵션을 일일이 지정하기 싫은 경우에
해당 명령어에 대해 사용자가 별명을 설정하여 사용 할 수 있도록 해준다.

alias
: alias 별명=' 명령어 [옵션]'
: 일반적으로 내리는 명령 대신하여 사용자 정의 명령을 만든다고 생각하면 된다.

만약 ls -al 옵션을 자주 사용하는 사용자라면 홈 디렉토리의 .bashrc 파일에 아래의 문장을 추가하여 사용할 수 있다.

alias ll=' ls -al'

이렇게 추가해 놓고, 쉘을 재동작 하고 나면 적용된다.
이후로는  ll 을 사용했을 때, ls -al 을 사용하는 것과 같다.




 Shell 의 히스토리 기능 

history
: 이전에 입력한 명령들을 보여준다.

!
: 뒤에 공백, 개행문자, =, ( 가 나오는 경우를 제외하고 히스토리 치환을 시작하도록 한다.

!!
: 이전 명령을 가리킨다. !-1 과 같다.

!n
: n번째 행의 명령을 가리킨다. !13 은 13행에 실행된 명령을 가리킨다.

!-n
: 현재 명령행에서 n을 뺀 행의 명령을 가리킨다.

!문자열
: 문자열로 시작하는 가장 최근 명령을 가리킨다.

!?문자열[?]
: 문자열을 포함하는 가장 최근 명령을 가리킨다.

^문자열1^문자열2
: 빠른 치환
: 지난 번 명령에 대해 문자열1을 문자열2로 바꾸어 실행한다.
:    !!:s/문자열1/문자열2 와 같다

!#
: 지금까지 입력한 전체 명령행

Posted by 으랏차
,

시스템 관리자는 파일 시스템의 완전성을 유지보수하는 책임을 가져야한다.
손상되거나 훼손된 파일이 있는지 파일 시스템을 주기적으로 점검해야 하는 것이다.

/etc/fstab 파일의 pass number 필드에 0보다 큰 값이 있는 경우 linux는 부트시에 자동으로 파일 시스템을 점검한다. 




 파일시스템을 유지보수하는 명령 : fsck(File System Check)

fsck [-옵션]

옵션들
 -A
 /etc/fstab 파일로 가서 한번에 모든 파일을 점검하려고 시도

 -V
 수행중인 사항에 대한 추가정보를 인쇄

 -t fs-type
 점검할 파일 시스템의 유형을 지정(옵셔널이지만, 지정하는 것을 권장)

 -a
 질문(사용자 확인) 없이 파일 시스템에서 발견되는 모든 문제를 자동으로 수리, 사용시 주의 필요

 -r
 파일 시스템을 수리하기 전에 확인을 요청

 -s
 파일 시스템을 점검하기 전에 슈퍼블럭을 나열 




 파일시스템 생성 및 표준화 명령어 : mkfs(Make File System)

mkfs [-옵션] filesys [blocks]

컴퓨터에 새 하드 디스크를 추가하거나 이전 하드 디스크의 파티션 정보를 변경하려 할 때,
소스 디스크로부터 파일 시스템을 작성하는 단계를 따른다.
시스템에 새 하드 디스크를 추가했다면,
linux가 디스크를 사용할 수 있기 전에 디스크 파티션 정보를 설정한 후 디스크에 실제 파일 시스템을 작성하여야 한다.

디스크 파티션 정보 변경을 위해 fdisk 명령을 사용할 수 있다.
하드 디스크를 파티션 한 후, mkfs 명령을 사용하여 파일 시스템을 작성한다.

fdisk로 파일 시스템 파티션을 작성한 후(파티션 후 재부팅 필요),
데이터 저장에 사용하기 전에 파티션에 파일 시스템을 구축하여야 한다.

옵션들
 -V
 mkfs가 실행되는 모든 파일 시스템 특정 명령을 포함하여 verbose 출력을 생성
 이 옵션을 두번 이상 지정하면 모든 파일시스템 특정 멸영의 실행이 금지

 -t fs-type
 구축할 파일 시스템의 유형을 지정
 파일 시스템 유형이 지정되지 않으면, mkfs는 /etc/fstab 에서 filesys를 검색하고 대응하는 항목을 사용,
 유형이 없다면 Minix 파일 시스템이 작성된다.

 fs-options
 실제 파일 시스템 구축기 프로그램에 전달될 파일 시스템 특정 옵션을 지정
 아래의 옵션이 대부분 파일 시스템 구축기에 의해 지원됨
 -c : 파일 시스템 구축전 불량 블록이 있는지 디바이스를 점검
 -l file-name : file-name에서 디스크상의 불량 블록 목록을 읽음
 -v : 실제 파일 시스템 구축기 프로그램에 verbose 출력을 생성하도록 지시

 filesys
 파일 시스템이 상주하는 디바이스를 지정. 필수항목

 -c
 파일 시스템을 만들기 전 불량 블럭 검사를 수행

 blocks
 파일 시스템에 사용될 block 수를 지정 
 

파일 시스템 작성시 유형을 판단할 수 없으면,
디폴트(기본값)로 Minix 파일 시스템을 작성한다.
일반 Linux 파일 시스템의 경우, ext2, ext3 파티션을 디폴트로 작성한다.




 디스크 사용량 정보 : 파일 시스템의 사용량 보기 : df(Disk Free)


df [-옵션]...[파일]
df [-옵션]...[파일]...[--옵션]


옵션
 -a, --all
 모든 파일 시스템을 보여줌. 파일 시스템 크기가 0인것도 포함. 초기값은 제외

 -i, --inodes
 블록 사용정보 대신에 inode 사용정보를 보여줌
 inode는 특별한 종류의 디스크 블록으로 파일이름, 소유주, 권한, 시간, 디스크에서의 위치 등에 대한 정보를 포함

 -k, --kilobytes
 보여주는 숫자들의 단위를 1KB단위로 함

 -P, --portabikity
 POSIX의 출력형태를 따름

 -h --human
 사용자들이 알아보기 쉽도록 디스크의 크기를 KB, MB, GB 단위로 보여줌

 -T, --print-type
 각 파일 시스템의 형태를 보여줌.
 특정 파일 시스템의 정보만을 원할 경우에는 -type= 또는 -exclude-type= 옵션을 사용

 -t, --type=fstype
 fstype 값을 가진 파일 시스템만 보여준다.

 --exclude-type=fstype
 fstype 값을 가진 파일 시스템만 제외하고, 나머지 모든 파일 시스템의 정보를 보여준다.

 -v
 System V용 df와의 호환용 옵션이다.

 --help
 도움말을 보여주고 마친다.

 --version
 버전 정보를 보여주고 마친다.  





 디스크 사용량 정보 : 디렉토리와 파일의 용량 파악하기 : du(Disk Usage)

현재 디렉토리를 포함하여 하위에 있는 디렉토리 파일까지 한번에 보여주는 명령

du [-옵션]...[파일]
du [-옵션]...[파일]...[--옵션]


옵션
 -a, --all
 기본으로 디렉토리만을 보여주지만, 이 옵션을 사용하면 디렉토리 내의 파일까지 보여줌

 -b, --byte
 출력되는 단위가 KB(Kilo byte)에서 Byte가 됨

 -c, --total
 마지막에 모든 파일 디스크의 사용량의 합계를 보여준다.

 -k, --kilobytes
 출력되는 단위가 KB(Kilo byte)가 됨

 -l, --count-links
 하드 링크되어 있는 파일들까지 계산

 -s, --summaarize
 디스크 사용량의 합계를 보여준다.

 -x, --one-file-system
 이 명령이 사용되는 경로 안에 다른 파일 시스템이 있으면 그 파일 시스템은 생략

 -D, --dereference-args
 계산되는 파일이나 경로가 심볼릭 링크 파일이면 그 원본값을 보여줌
 /usr/src/linux 같은 심볼릭 경로들을 조사하는 데 유용하게 쓰임

 -L, --dereference
 위의 -D 옵션과 같음

 -S, --separate-dirs
 하위 경로를 합쳐서 계산하지 않고 각각 나눠 경로별로 계산한다.

 --help
 도움말을 보여주고 마친다.

 --version
 버전 정보를 보여주고 마친다.
 



 Quota

사용자나 그룹이 가질 수 있는 inode의 수,
사용자나 그룹에게 할당된 디스크 블럭의 수를 제한함으로써,
디스크 저장장치의 사용을 제한할 수 있게 해 준다.

Quota는 사용자나 그룹의 디스크 사용량을 제한할 수 있는 방법을 제공

관리자가 Quota 설정을 통해 제한 할 수 있다.
파일 시스템 별, 사용자 별로 적용 된다.

한 사용자가 파일을 만들 수 있는 파일 시스템을 하나 이상 가지고 있다면,
각각의 파일 시스템에 개별적으로 Quota를 설정해야 한다. 

quotacheck (quota check)
: 파일 시스템의 디스크 사용 상태를 검색하거나 quota 기록 파일인 quota.user 파일을 최근의 상태로 갱신하기 위해 사용

repquota (report quota)
: 파일 시스템의 quota를 정리해서 보여줌 
 
quotaon / quotaoff
: quotaon은 quota를 가동시킬 때 사용
: quotaoff는 quota를 중단시킬 때 사용
: 시스템이 부팅되거나 중단될 때 수행됨 


Posted by 으랏차
,

계정 조회
 users
 : 현재 시스템에 로그인한 사용자 계정을 조회하는 파일



암호설정
 passwd
 : 사용자 계정 정보를 확인할 수 있는 파일 

 /etc/passwd
 파일

 root : x : 0 : 0 : root : root : /bin/bash
  ①   ②  ③  ④   ⑤     ⑥         ⑦

 ① : 사용자명
 ② : 패스워드(/etc/shadow파일에 암호화되어 있음)
 ③ : 사용자 계정 uid
 ④ : 사용자 계정 gid
 ⑤ : 사용자 계정 이름(정보)
 ⑥ : 사용자 계정 홈디렉토리
 ⑦ : 사용자 계정 로그인 쉘



패스워드의 암호화
 shadows
 : 보안 문제로 패스워드를 암호화 하는 프로그램

 /etc/shadow 파일 

 root : $1$0L2L0oTwd : 12751 : 0 : 99999 : 7 :    :      :
  ①             ②              ③    ④     ⑤     ⑥  ⑦   ⑧   ⑨

 ① : 사용자명
 ② : 패스워드
 ③ : 패스워드 파일 최종 수정일
 ④ : 패스워드 변경 최소일
 ⑤ : 패스워드 변경 최대일
 ⑥ : 패스워드 만료 경고기간
 ⑦ : 패스워드 파기 기간(패스워드 파기 후 계정 비활성 기간)
 ⑧ : 계정 만료 기간
 ⑨ : 예약 필드 



계정 생성 기본 설정 파일
 useradd
 : 계정 생성 기본 설정 파일
 : /etc/default/useradd 파일
 : 기본설정 사항 확인하기 -> useradd -D

 login.defs
 : 쉐드우 패스워드 사용시
 : shadow 유틸리티의 로그인 설정 파일 



계정 생성 및 암호 설정
 사용 :  useradd 생성할계정명
           passwd 생성한계정명

 useradd 명령을 통해 계정을 생성한 후 passwd 명령으로 패스워드를 지정한다.

 useradd [옵션] 로그인계정  
 : 계정 생성

 옵션
 -c : comment : 사용자 이름 또는 정보
 -d : home_dir : 사용자 계정 홈 디렉토리
 -e : expire_date : 사용자 계정 유효기간
 -f : inactivie_time : 비활성 기간
 -g : initial_group : 기본그룹
 -G : group[,...] : 다중그룹
 -s : shell : 로그인 기본 쉘
 -u : uid : 사용자 계정 uid 

 passwd 로그인계정
 : 암호 지정
Posted by 으랏차
,