- 2015.02.04
출처 : http://koreahojin.egloos.com/1249277
#!/bin/bash로 시작하기.
- 스크립트 파일은 첫라인에서 #!/bin/bash 로 시작
- vi 편접기에서 # 기호는 주석을 의미하지만 첫라인에서는 주석 표시가 아님
- 첫라인을 안써 줘도 스크립트 파일이 실행되는 경우가 있는데 현재 사용자의 기본적으로 배쉬 쉘을 사용한다면
가능하다.
- #!/bin/bash 대신에 #!/bin/sh 로 써도 된다. sh는 bash 의 심볼릭 링크 이기 ㅤㄸㅒㅤ문이다.
스크립트 파일의 실행방법.
- sh 명령어 사용 ( # sh 파일 이름 )
- 퍼미션 변경 후 실행 ( 실행 권한을 부여 )
-------------참고--------------
.bash_profile 파일에 PATH를 적어 주면 현재 있는 디렉토리의 위치와 상과없이 파일을 실행 시킬수 있음
----------------------------------------
[echo 기본 출력]
- echo 는 화면에 원하는 문자열을 출력시킨다.
- 출력 하고자 하는 문자열 공백이 있다면 전체를 " " 묶어 주면 된다.
- 예 : echo " bye bye "
변수를 만들고 사용하기
- 형식 : 변수명=변수값
- 사용예 : korea="GOOD"
- 적용예 : echo $korea
- 주의점 : 변수명 다음에 오는 '=' 의 좌우로 공백이 있으면 안된다.
- 변수를 지정할 때는 $를 사용하지 않지만, 변수를 사용할 때는 $ 기호를 변수 앞에 붙여서 사용합니다.
- C언어 에서 전역변수라고 불리는 것을 쉘 스크립트에서는 환경 변수라고 한다. 환경변수는 export 명령을 사용하여 만든다. 사용자가 로그인을 할때 읽어 들이는 파일중에 /etc/profile 파일이 있다. 이곳을 보면 export로 환경 변수를 만드는 것을 찾을 수 있다.
- example
[root@localhost ~]# cat > example
#!/bin/bash
color=red
korea="good"
echo $color
echo "$color is red"
echo $korea
You have new mail in /var/spool/mail/root
[root@localhost ~]# sh example
red
red is red
good
[read의 사용]
- read 문은 사용자의 표준입력을 받아들여 변수로 저장하는 역할을 한다. 먼저 아래의 예제를 실행해보자
[root@localhost ~]# cat > readsh
#!/bin/bash
echo -n "age: "
read x
echo "Your are $x years old"
[root@localhost ~]# sh readsh
age: 22
Your are 22 years old
- 스크립트 파일을 실행할 때. read문을 만나면 화면상에 커서가 깜박이면 대기상태로 있다.
입력한 값을 read 다음에 오는 변수명(x)에 대입한다.
echo -n 에서 옵션 -n은 줄바꿈을 하지 않도록.
[argument (인자값)]
- 스크립트 파일을 실행하기전에 특수한 값을 동시에 입력하여 결과를 얻을수 있게 할수있다.
- C언어에서 main() 함수의 전달값으로 생각하면된다.
- 예를 들어 # /etc/rc.d/init.d/network start 여기서 netwrok는 스크립트 파일이다. 이파일을 실행하면서 뒷부분에 restart라는 argumnet를 주었다.
- 아직도 먼 말인지 모르겠다면 예제를 만들어 실행해 보자.
[root@localhost ~]# cat > argumentsh
#!/bin/bash
echo "argumnet1 : $1"
echo "argument2 : $2"
echo "argument3 : $3"
echo "Total argument number : $#"
echo "File name : $0"
[root@localhost ~]# sh argumentsh 1arg 2arg 3arg
argumnet1 : 1arg
argument2 : 2arg
argument3 : 3arg
Total argument number : 3
File name : argumentsh
[root@localhost ~]#
$1 은 첫번째 argument를 나타내며 $2는 두번째, $3은 세번째 argument를 나타낸다.
argument를 입력하지 않을경우, 오류가 나는 것이 아니라 값이 대입되지 않는다.
$#은 전체 argument의 개수를 나타내며 $0은 스크립트 파일의 이름을 나타낸다.
* 현재 디렉터리의 모든 파일 압축
출처 : https://kldp.org/node/69623
현재 디렉터리의 모든 파일을 지정할떄는 보통 * 와일드카드 문자로 가능하지만 히든파일까지는 선택이 안된다.
tar cf test.tar . 명령어로 가능하지만 ls 와 묶어서 사용하는 방법도 있다.
ls -1A | tar cvjf bak.tbz2 -X exclude -T -
1은 한줄에 파일 하나 출력, A는 a와 같지만 . , .. 를 제외.
-T는 묶을 목록을 파일에서 받기 - 는 표준 입력.
'Linux' 카테고리의 다른 글
운영중인 LVM에 용량 추가하기 (0) | 2015.07.08 |
---|---|
Linux swap 메모리 추가 (0) | 2015.05.11 |
리눅스(CentOS)에서 토렌트 사용하기 (0) | 2015.04.04 |
리눅스(CentOS 6.6)에서 윈도우 공유폴더 마운트하기 (0) | 2015.04.04 |