Work

리눅스 쉘 프로그래밍 교육 중 미정리 노트

runicode 2018. 5. 19. 16:26


ubuntu160402-st.vmdk

vbox5.2.4.zip 

사용



# runlevel 5 : gui 


# 일반 파일 : regular 파일 이라는 표현을 쓴다


# 설치, 네트워크 설정, 삼바 연결 확인


# 콘솔에서 bash 를 쓰면 bash가 늘어남. 부모 쉘 - 자식 쉘


# -bash : 로그인 쉘


# shebang : 밑의 스크립트가 돌아갈 환경 기술


#!/bin/sh   <- 첫 줄. sh을 지정할 수 있다고. 이 경우는 dash

#date

who

ls

pwd

sleep 

# env : shell 환경변수들 

# set : shell 변수들


# bash 의 subshell 이 필요한 이유 중 하나

- 공유하는 환경변수 등의 초기화, 공유 등 변수설정에 따른 환경차이도 이유 중 하나...

- 기존 환경변수를 해치지 않고 sh의 내용만 수행하고 싶을때도 괜찮을듯.

- 독립된 환경설정 하 구동 같은 느낌

# 로그용 shell 스크립트


#!bin/bash


today=$(date +%y%m%d)

ls -al /usr/bin > usrbinlist.$today


이런 식으로 크론에 배치한다거나.

# 리눅스에서 실행시키는 방법 세가지 (우분투 기준)

source abc.sh

. abc.sh

./abc.sh   <- 이 경우만 서브 셸에서 수행

www.naver.com

allshare2016 / kosta2018 내게 쓴 메일함 - e북 



# /dev/null -> 휴지통

echo "test" > /dev/null 이런 식으로



# IFS 를 이용한 행으로 이루어진 데이터 나누기 inter field seperator

교재 129페이지

이걸 이용하면

행공센 내에서 조사결과 압축 해제 후

mst.txt 파일을 분석하는 데 활용이 가능할 것 같다.


usage : 테스트.sh <mst file name>


로 arg[1] 받고 

read 로 hshldmby, examin_id 등을 입력받고

IFS 를 | 로 변형시켜서

한 행씩 결과를 출력하게끔 처리, 한 행 출력하면 pause.



# 콘솔에서 function add { echo $[$1 + $2]; } 

한 뒤 add 50 60 

쉘 펑션


function sub {

echo $[$1 - $2]

}


# .bashrc (dos의 autoexec.bat 와 유사한 파일로 보임)

개인 쉘 펑션을 입력하여 배치 가능

이걸 cd 해서 home 간뒤 .bashrc 편집해서... 뒤에 넣으면 켜질때마다 반영


# declare -f 

현재 등록된 쉘 펑션들의 목록을 죄다 받아올 수 있다


# delemeter 기준 특정 문자 가져오기

variable=user:123;321:/home/dir


echo ${variable#*:}

echo ${variable##*:}

echo ${variable%:*}

echo ${variable%%:*}