'LS'에 해당되는 글 2건

  1. 2015.04.09 간단한 bash쉘 스크립트 작성 요령
  2. 2015.03.27 [03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear

간단한 bash쉘 스크립트 작성 요령

|


- 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는 묶을 목록을 파일에서 받기 - 는 표준 입력.




And


[03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear

|


- 2014.11.10 수업 내용



1. Linux 명령어 구조

 

명령어 -option--sub_option Path

 

* 옵션끼리는 -을 반복하여 적지 않아도 된다. ex) ls -alh





2. pwd


pwd (print working directory) : 현재 작업 중인 디렉토리의 절대 경로를 보여준다.


ex)

# pwd

/etc/sysconfig/network-scripts


 

* 현재의 위치가 어디인지 알기 위해 수시로 명령어를 실행하는 습관을 들여야 한다.



① 절대경로 : 최상위 디렉토리인 / 부터 시작하는 위치. 절대적인 위치.

② 상대경로 : 현재 작업하고 있는 디렉토리에서의 상대적인 위치.

               ex) 현재 위치 : ./

 




3. cd


cd (change directory) : 디렉토리 변경. 원하는 디렉토리로 이동한다.


ex)

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# pwd

/etc/sysconfig/network-scripts


① ./ : 현재 디렉토리

② ../ : 상위 디렉토리

③ ~ : 로그인 된 사용자의 홈 디렉토리로 이동

ex)

[root@localhost ~]# cd ~

[root@localhost ~]# pwd

/root


④ ~계정명 : 지정된 계정의 홈 디렉토리로 이동

ex)

[root@localhost ~]# cd ~samadal

[root@localhost samadal]# pwd

/home/samadal





4. ls


ls (list segment) : 디렉토리의 목록 보기


ls 는 자주 쓰는 명령어이기 때문에 주요 옵션에 대해 자세히 알아두는 것이 좋다.


ex) /home/samadal 에서의 ls

[root@localhost samadal]# ls

a  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos


 

① -a (all) : .(숨김파일)을 포함한 경로 안의 모든 파일과 디렉토리 표시

ex) /home/samadal 에서의 ls -a

[root@localhost samadal]# ls -a

.              .bash_logout   .dbus      .gconf   .gstreamer-0.10  .kshrc     Pictures       Templates

..             .bash_profile  Desktop    .gconfd  .gtk-bookmarks   .local     Public         Videos

a              .bashrc        Documents  .gnome2  .gvfs            .mozilla   .pulse         .xsession-errors

.abrt          .cache         Downloads  .gnote   .ICEauthority    Music      .pulse-cookie

.bash_history  .config        .esd_auth  .gnupg   .imsettings.log  .nautilus  .ssh


② -l (list) : 지정한 디렉토리의 내용을 자세히 출력

ex) /home/samadal/ 에서의 ls -l

# ls -l

total 18

drwxr-xr-x. 3 root    root    1024 Nov 10 14:02 a

drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Desktop

drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Documents

drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Downloads

drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Music

drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Pictures

drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Public

drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Templates

drwxr-xr-x. 2 samadal samadal 1024 Nov 10 17:54 Videos


   -a 옵션과 함께 쓰면 좋다.


ex) /home/samadal/ 에서의 ls -al

[root@localhost samadal]# ls -al

total 78

drwx------. 27 samadal samadal 1024 Nov 10 17:55 .

                              ...

drwxr-xr-x.  2 samadal samadal 1024 Nov 10 17:54 Templates  

drwxr-xr-x.  2 samadal samadal 1024 Nov 10 17:54 Videos  

-rw-------.  1 samadal samadal 2368 Nov 10 17:55 .xsession-errors


* 맨 앞에 d 라고 되어 있는 것은 디렉토리, - 로 되어 있는 것은 파일이다.


③ -d : 지정된 디렉토리의 정보 출력

ex) /home/samadal/ 에서의 -ld 옵션

[root@localhost samadal]# ls -ld /home/samadal/  

drwx------. 27 samadal samadal 1024 Nov 10 17:55 /home/samadal/


상위 폴더에 파일 및 디렉토리의 개수가 적다면 상위 폴더에서 ls -l 로 해당 디렉토리의 정보를 볼 수도 있지만

특정 디렉토리의 정보만 필요할 때 사용하면 좋을 것 같다.


④ -F : 파일 형식을 알리는 문자를 각 파일 뒤에 추가한다.

/ : 디렉토리

-> and @ : symbolic link(바로가기). -> 는 -l 옵션과 함께 썼을때 나오며 '사본 -> 원본'의 형식이다.

* : 실행파일


⑤ -R : 하위 경로와 그 안에 있는 모든 파일들도 같이 나열

ex) /home/samadal/ 에서의 ls -R

[root@localhost samadal]# ls -RF 

.: 

a/  Desktop/  Documents/  Downloads/  Music/  Pictures/  Public/  Templates/  Videos/

 

./a: 

b/

 

./a/b:

 

./Desktop: 

      ... 

./Templates:

./Videos:


⑥ -h : 사용자가 보기 편한 단위로 용량 표시. -l 명령어에서 맨 위 total이 용량에 관한 숫자인데 뒤에 단위를 붙여준다.

        (보여지는 용량의 합이 total의 값과 다르지만 이유에 대해선 추 후 공부 예정)


이 외에도 UID(user id), GID(group id)를 보여주는 -n 옵션이 있다.


* -l 옵션 시 첫 열에 나와있는 문자들의 모음이 '허가권'에 관련된 내용이지만 추 후 필요할 때 다시 공부 예정





5. clear


clear : 화면을 깨끗하게 해주는 명령어.




And


prev | 1 | next