9. 도서관/__라. LINUX

쉘스크립트&소프트웨어 업그래이드

행복 금융 2008. 7. 3.

>> 소프트웨어 업그래이드


yum을 하다가 중지시키고 다시 할려고 하면 전에 깔던것이 있기때문에 안될수 있다 그럴때는

killall -9 yum 해서 모든 yum을 다 종료해야 된다.(dhclient 도 마찬가지다)



1. yum을 이용한 패키지 업데이트

* yum(Yellowdog Updater, modified)란?
rpm패키지 설치시 자동적으로 의존성 문제를 처리하여 rpm 패키지를 안전하게 설치, 제거, 업그레이드 등의 작업을 스스로 알아서 해주는 지능형 도구.


* yum 패키지 설치 확인
rpm -q yum


* yum 설정
cat /etc/yum.conf (수정 시에는 cat 대신 vi를 사용한다.)


* 패키지 설치
yum install 패키지명


* 패키지 업데이트
yum update
 -> 시스넴 내에 설치되어 있는 업데이트 가능한 모든 패키지를 업데이트 할 수 있다.


* 패키지 제거
yum remove <패키지명>
~]# yum remove thunderbird


* 패키지 검색
yum search <검색어>
~]# yum search thunderbird


* 패키지 정보 알아보기
yum info <패키지명>
~]# yum info thunderbird


* 하드디스크에 있는 패키지 설치
yum localinstall <패키지명>

<실습> /usr/src/fedhat/RPMS/i386 디렉토리의 xcdroast 팩키지를 설치해 보자.



2. apt를 이용한 패키지 업데이트

* apt(Advanced package Tool)은 데비안 리눅스용 패키지 업데이트 관리도구다.
  rpm 기반의 다른 리눅스 배폰판에서 사용할 수 있도록 포팅 되었다. rpm의 의존성 문제 해결.


* apt 설치
yum을 이용하여 apt패키지를 설치한다.
yum install apt
 ->공개키 문제로 apt가 설치 되지 않을 경우 /etc/yum.conf파일의 gpgcheck=0으로 임시 수정


* apt-get 사용법
apt-get [옵션] 명령
apt-get [옵션] installremove 패키지명
apt-get [옵션] source 패키지명


* 패키지 목록 업데이트
# apt-get update


* 패키지 설치
# apt-get install <패키지명>
# apt-get reinstall <패키지명>    <-- 패키지 재설치


* 패키지 제거
# apt-get remove <패키지명>
# apt-get --purge remove 패키지명    <--패키지의 설정파일 까지 모두 제거 된다.


* 패키지 업그레이드
# apt-get upgrade


* 패키지 정리하기
# apt-get clean    <-- /var/cache/apt/archives의 모든 임시 설치파일을 제거 해 준다.


* 패키지 검색
# apt-cache search <키워드>


* 패키지 의존성 정보 알아보기
# apt-cache depends <패키지명>


* Synaptic 그래픽 APT 도구
 -> http://nongnu.org/synaptic/index.html


* synaptic 설치
# apt-get install synaptic

3. PUP(Package Updater)를 이용한 페도라 업그레이드( 페도라6 이상에서 지원)

* pup 설치
# rpm -q priut    <-- priut 설치 여부 확인
# apt-get install priut



★ 백그라운드에서 실행하기  mc &      (백그라운드에서 열린다)               

                                        fg %1 (1은 jobs해서 앞에 나온숫자- fo그라운드로 넘어간다)

                                        컨트롤+z

                                        bg %1

                                        ps acx | grep mc   (실행되는 mc 검색)

                                        kill -9 프로세스번호(위의것-mc에 관한것)

                                        jobs        (보이게하기)



>>MC(midnight commander)

- Pc Nc (Norton Commander)
mm 기능키
F4 : 편집(mkdir)
F5 : 파일복사(copy)
F6 : 파일이름 변경
F7 : 디렉토리 삽입(mkdir)
F8 : 파일삭제
F9 : 풀다운 메뉴(당위메뉴)

F10 : 종료


>> 쉘(shell) - 명령 해석기

1) shell의 종류
- 본쉘 : bash
- C쉘 : tcsh
- 콘쉘 : kornshell
# gedit /etc/passwd


2) 현제 사용중인 쉘 확인
# echo $SHELL


3) 프롬프트 꾸미기
- 배쉬 프롬프트 상태 제어변수는 PS1
# SAVE =$PS1
# PS1 = "\u@\h\w>"
>PS1=$SAVE

\d : 날짜 “요일 달 날짜”
\h : hostname
\u : 사용자 이름
\w : 현재 작업 디렉토리
\t : 24시간으로 현재 시간
\T : 12시간으로 현재 시간
\ : 현제 명령어의 history 번호

# PS1="[\u@\h \w][\d]$ "
$ PS1="[\T][\u@\h \w]# "
# PS1="\u@\h \w]# "
# PS1=$SAVE

4) 환경변수
SHELL명령어를 실현하기 위해 저장해 놓은 변수
- 환경 변수 보기
#echo $환경변수
#echo $PS1
#echo $SHELL

SHELL환경 변수 : 기능
BASH   -> bash경로
BASH_VERSION -> bash버전
ENV  -> 환경지정 파일 위치
HOME  -> 기본작업 영역

LOGNAME -> 로그인 이름
PATH  -> 패스경로
SHELL  -> 쉘 경로
LS_COLORS -> 색깔


5) 환경변수 값을 변경시키는 파일
/etc/profile (~/.bash_profile이 아님.)
export위에 작성
ex) gedit /etc/profile
PS1="\W >\$"
LS_COLORS=di=32
PATH=$PATH:$HOME/bin; /home/root



//////////////////////////////////////////////////


cat /etc/passwd | grep ftpuser

usermod -s /bin/tcsh ftpuser


echo $SHELL   - root가 베쉬를 쓰고 있다

echo $PS1

SAVE=$PS1  (환경변수를 따로 만들어주는것)

echo $SAVE


PS1="\u@\h \W][\d]"

PS1="[\T][\u@\n \W]"


PS1=$SAVE  - 원래로 돌리겠다.







vi /etc/profile파일에서


HISTSIZE=1000

PS="\w> "     -> 부팅할때마다 항상 이렇게 쓰겠다고 정의하는것

if [

빨간부분 적용

스샷





6) 쉘스크립트 작성
batch 파일과 유사 <--> online real time
#!/bin/sh 또는 #!/bin/bash 나 #!/bin/tch <-- 쉘 스크립트의 시작 선언
쉘스크립트의 내용
...


1초에 한번씩 날짜찍기(스크립트이용한 예)






(가) 쉘스크립트 작성 연습
# cat > test
echo 이 스크크립트는
echo 시관과 목록을 보여준다
echo
date
pwd
ls -l /var/log




vi test.sh 해서...




저장하고 ls -l 해보면 만든게 녹색으로 나오나 무늬만 실행파일이다(퍼미션 (권한)에 x가 없어서)



실행화면




(나) 조건
if [ 조건식 ]
then
 (조건이 참일 경우 처리할 명령)
else
 (조건이 거짓일 경우 처리할 명령)
fi



(실습)   vi test01.sh로 만들고...
#!/bin/sh

A=1
string0='이것은 if예제‘
string1='값이 0이하‘
string2='값이 0이상‘
echo $string0
if [ $A -gt 0 ]
then
 echo $string2
else
 echo $string1
fi


실습 스샷



저장하고 퍼미션에 대한 권한(실행될수있게)을 바꿔주고 실행시킨다.



>>조건식


표현방식
[ $A -eq $B ] equal, 같다면~
[ $A -ne $B ] not=, 같지 않다면~
[ $A -gt $B ] great then, 크다면~ (b보다 a가 크다)
[ $A -lt $B ] less then, 작다면~
[ $A -ge $B ] greate or equal 크거나 같다면~
[ $A -le $B ] less or equal 작거나 같다면~
[ $string1 = $string2 ]  -> 시스템마다 이렇게도 쓸수 있다
[ -z "$string" ] 문자열의 길이가 0인경우
[ -n "$string" ] 문자열의 길이가 0이 아닌 경우



(라) 반복실행
* for문
for 변수 in list1 list2 list3 (개수만큼 반복)
do
                 [실행할 명령]
done


(실습)  vi test02.sh
#!/bin/sh
list='date date date date date'
for Name in $list
do
 echo $Name
done




실행




echo 를 빼고 다시 해본다


date가 아닌 날짜가 찍히는것을 볼수 있다.



* while문
while [조건문]
do
 [실행할 명령어]
done


(실습)
#!/bin/sh
echo "무한루프 예제입니다.“
echo “숫자 9를 입력 해”

read key        -> 키보드에서 불러와라
echo 지금 입력한 숫자는 $key입니다.
while [ $key -eq 9 ]
do
  echo "무한 루프“
  echo "끝내려면 Ctrl + c를 누르시오:
  sleep 1    --> 1초에 한바퀴돌아라는 뜻이다
done


실습스샷




실행화면



1씩 증가하는 스크립트 (while문)


실행시켰을때.... 1씩 증가한다.



'9. 도서관 > __라. LINUX' 카테고리의 다른 글

우분투 wireshark 설치  (0) 2008.09.18
Linux Setting perl  (0) 2008.09.10
etc/login.defs파일 설명  (0) 2008.08.22
Introducing BootPROM  (0) 2008.07.30
IP 마스커레이딩(Masquerading)  (0) 2008.07.23

댓글

💲 추천 글