'LS'에 해당되는 글 2건
- 2015.04.09 간단한 bash쉘 스크립트 작성 요령
- 2015.03.27 [03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear
- 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 |
- 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 : 화면을 깨끗하게 해주는 명령어.
'Study > CentOS' 카테고리의 다른 글
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
---|---|
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
[04] cp, mv, mkdir, rmdir, rm (0) | 2015.03.27 |
[02] Linux의 특징 및 Prompt의 구조, Putty 설정 팁 (0) | 2015.03.27 |
[01] CentOS 6.6 설치, 주요 디렉토리 설명, swap (1) | 2015.03.27 |