OS : 시스템을 제어
Kernel : HW/SW를 OS가 제어할수 있도록 연결해주는 중계 프로그램
shell : 사용자가 kernel과 의사소통할수 있도록 연결해주는 명령어도구(해석기)
기본프로그램 : /bin
응용프로그램 : /usr/bin
# /bin <==== 명령어 저장소
# /etc <==== 설정파일 저장소
===============================================================================
쉘 확인 명령
cat /etc/shells
chsh -l
/bin/sh 복구쉘(커널쉘) 본쉘
/bin/ksh unix 기본쉘
/bin/bash linux 전용 응용쉘 (리차드스톨만) ( ksh+sh )
/usr/bin/sh unix 기본쉘 (별도 설치)
/usr/bin/bash linux 전용 응용쉘 (별도 설치)
/bin/dash 데비안전용쉘
/bin/csh c프로그램 전용쉘
/bin/tcsh csh확장쉘
/sbin/nologin 시스템쉘
/bin/zsh 칼리쉘 , (bash+ksh+tcsh)
======================================================================
쉘정의
shell => 조개껍데기 => 명령어 해석기 (kernel에게 명령 전달)
======================================================
init system-runlevel (시스템 구동 순서)
0 halt 종료
1 sigle
2 tui (NFS 미지원)
3 tui (NFS 지원 ) FULL-TUI ******
4 unuse
5 GUI ( X11 ) ******
6 reboot 재부팅
종료 명령 : poweroff, halt, shutdown -h now , init 0
재부팅 : reboot, shutdown -r now , init 6
booting (/boot/grub2/grub.cfg)
[centos6 부팅순서 ]
init (inittab => sysinit => rc5.d=> rc.local)
[ centos7 ]
/usr/lib/systemd 시스템 데몬 (/lib/systemd)
/lib/systemd/system 데몬(이안에서 해결)
## 쉘의 구동 순서 ### ( ~,$HOME : 로그인한 사용자 홈디렉토리)
시스템 부팅 => /etc/profile (전체쉘) => $HOME/.쉘rc (계정쉘) => /etc/쉘rc (쉘설정)
1./etc/profile 2.$HOME/.쉘rc 3./etc/쉘rc
쉘 O X O
계정 O O X
[csh의 순서]
vi /etc/profile
echo "1./etc/profile"
vi /root/.cshrc
echo "2.$HOME/.cshrc"
vi /etc/csh.cshrc
echo "3./etc/csh.cshrc"
vi /etc/csh.login
echo "4./etc/csh.login"
echo : 출력명령
===================================
[관리자계정]
usermod -s /bin/csh root 후 root 로그인
3번과 4번 출력
csh 입력시
3번만 출력
[일반계정]
vi /home/sevas/.cshrc
echo "$HOME/.cshrc"
sevas계정 로그인
**순서**
/etc/csh.cshrc => /etc/csh.login(로그인시만) => $HOME/.cshrc
전체설정 개인설정
로그인 : /etc/csh.cshrc => /etc/csh.login => $HOME/.cshrc
쉘구동 : /etc/csh.cshrc => $HOME/.cshrc
=======================================================================
root와 sevas를
usermod -s /bin/bash root
usermod -s /bin/bash sevas
[bash의 순서]
vi /etc/profile <<< 모든 기본쉘 적용
echo "1. /etc/profile"
vi /root/.bash_profile <<< 계정로그인시만 배쉬쉘 적용
echo "2. $HOME/.bash_profile"
vi /root/.bashrc <<< 계정배쉬쉘 적용
echo "3. $HOME.bashrc"
vi /etc/bashrc <<< 모든 배쉬쉘 적용
echo "4./etc/bashrc"
순서
/etc/profile => $HOME/.bash_profile => $HOME/.bashrc=>/etc/bashrc
모든기본쉘 로그인시 계정배쉬쉘구동 모든배쉬쉘구동
쉘구동방법
/bin/bash or bash = bash쉘 구동
$ 변수 호출
env ( 시스템 환경 변수 확인 )
대표적인 시스템 변수
$USER = 계정명
$HOME = 홈디렉토리
$SHELL = 쉘
$PWD = 현재 디렉토리
==============================================
문제: /etc/profile과 /etc/bashrc 에 내용을 삽입하여
다음과 같은 결과가 나오도록 하세요.
[root]
안녕하세요 root님 /etc/profile
현재위치는 /root 입니다 /etc/bashrc
[sevas]
안녕하세요 sevas님 /etc/profile
현재위치는 /home/sevas 입니다 /etc/bashrc
========================================================
변수
변수 : 변하는수
상수 :변하지 않는수
변수호출 $
** 변수는 암묵적으로 대문자로 설정 **
' 함수호출(변수x) '%d %f'
" 변수호출(변수O) "$"
지역변수(로컬변수) : 쉘간 변수 공유 불가능
지정 : KOREA="sevas"
출력 : echo $KOREA
확인 : set |grep KOREA
제거 : unset KOREA
_= <==가장마지막에 사용된 명령어
환경변수(전역변수) : 쉘간 변수 공유 가능 (export)
지정: export KOREA="sivas"
출력: echo $KOREA
확인: set |grep KOREA (=)export |grep KOREA
변수확인
env(시스템환경변수) (전역)
**set(지역변수부터) (전역,지역)
export(전역변수부터) (전역)
declare (전역,지역)
history (최근 명령어 확인)
!! 가장 최근 명령어 실행
history +5 (==history 5) 최근 명령어 5개 출력
![번호] 번호열 명령 실행
![명령어] 특정문자가 들어간 가장 최근 명령 실행
history -c history 내용 삭제
**history 내용은 /root/.bash_history 에 들어있음 **
====================================================
1.case
/root/.bash_history 삭제
ln -s /dev/null /root/.bash_history
/dev/null = 없는 공간
/dev/zero = 0으로 채워진 무한대 빈공간
2./etc/profile의 HISTSIZE를 변경
vi /etc/profile ==> HISTSIZE=0 으로 변경
적용은 source /etc/profile << /etc/profile 재시작
HISTSIZE 확인 echo $HISTSIZE
===========================================================
변수치환
echo $PATH
PATH = 명령어를 실행하기 위한 base경로
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
경로 : 경로 (:는 구분자)
단축 경로들이 지정되어있음
[실습]
PATH=""
ls (안됨)
/usr/bin/ls
/usr/bin/ls -l
PATH="/usr/bin"
ls (출력이됨)
whereis ls
*** $PATH 변수는 단축경로가 가능하게 함 ***
PATH=""
/usr/bin/ls
PATH="/usr/bin"
ls
[실습]
mkdir /sevas
cp /bin/ls /sevas/baba
cp /bin/pwd /sevas/nana
재접후
echo $PATH
export PATH=$PATH:/sevas
echo $PATH <=========PATH에 /sevas가 붙음
수업