클라우드 엔지니어 꿈나무
Redhat RH-134 : 인용 특수 문자 + BASH 스크립트 + for문 본문
인용 특수 문자
특별한 의미가 아닌 리터럴 값으로 사용해야 하려면 스크립트에서 해당 문자를 이스케이프 해야함
이케이프를 위하여 (\),(''),("") 사용
# echo # not a comment
# echo \# not a comment
# echo \# not a comment \#
# echo '# not a comment #'
변수에는 중괄호 쓰는 것이 권장사항
$ var=$(hostname -s); echo $var => 단축된 호스트명을 var라는 변수에 할당하여 불러옴
$ id
$ echo $PATH => 명령어 path 확인
하기 경로에 명령어 추가하면 실행 가능
BASH 스크립트
path 에 명령어 넣어 실행하기 1
$ vim data
#!/usr/bin/bash
echo "Hate Monday"
$ mkdir /home/student/bin
$ mv monday /home/student/bin
$ cd /home/student/bin
$ ls -al monday
$ chmod u+x monday
$ monday
$ which 명령어가 어디에 있는지 확인
$ which monday
<<참고>> =>
# which httpd => $PATH 내에서 명령어의 실행 가능한 파일 경로 c-검색
# whereis httpd => 명령어 실행 파일, 매뉴얼 페이지, 소스 코드 위치를 모두 표시
vim 편집기
p 붙여넣기
3 dd => 3줄 잘라내기
y 복사하기
#!/bin/bash => bash shell로 만들었다는 뜻
# echo
# \#test user
$ uname -r => Unixname kernel version 확인
$ df -h => 디스크 사용량 보기 쉽게 표기
$ free => 메모리 확인
path 에 명령어 넣어 실행하기 2
$ vim firstscript.sh
#!/usr/bin/bash
#
echo "This is my first bash script" > ~/output.txt
echo "" >> ~/output.txt
echo "#####################################################" >> ~/output.txt
echo "LIST BLOCK DEVICES" >> ~/output.txt
echo "" >> ~/output.txt
lsblk >> ~/output.txt
echo "" >> ~/output.txt
echo "#####################################################" >> ~/output.txt
echo "FILESYSTEM FREE SPACE STATUS" >> ~/output.txt
echo "" >> ~/output.txt
df -h >> ~/output.txt
echo "#####################################################" >> ~/output.txt
$ chmod a+x firstscript.sh
$ ./firstcript.sh => output.txt 생성 됨
$ cat output.txt
반복문 (for문)
for VARIABLE in LIST; do
COMMAND VARIABLE
done
$ for test in {1..5}; do; echo $test; echo ""; done
$ for i in {1..100}
> do
> touch oradata$i
>done
Bash 스크립트 종료(상태) 코드
exit 명령은 종료 코드를 나타내는 0과 255 사이의 선택적 정수 인수와 함께 사용
0 => 스크립트 오류 없이 완료되었음
그 외 숫자 => 오료 종료 코드
# echo $? => 이전 명령어에 대한 상태 코드
$ test 1 -gt 0 ; echo $? => gt(greater) 1이 0보다 큰가?
$ test 0 -gt 1 ; echo $?
0 => 위의 조건문이 참이기 때문에 0으로 표시
$ systemctl is-active sshd
active
$ echo $?
0 => 정상적으로 작동중이면 0을 반환
연습 가이드
$ ssh student@servera hostname
$ ssh student@serverb hostname
위의 구문을 <for 문 + 상태 코드 출력>으로 명령어 생성
#!/usr/bin/bash
#Execute for loop to print server hostname
for HOST in servera serverb
do
ssh student@${HOST} hostname
done
exit 0
$ chmod u+x ~/bin/printhostname.sh
$ printhostname.sh
$ echo $?
'Linux' 카테고리의 다른 글
Redhat RH-134 : tuned 데몬 + SELinux 보안 관리 (0) | 2023.10.17 |
---|---|
Redhat RH-134 : 시간 변경 + tar 아카이브 + RSYNC (1) | 2023.10.17 |
Target Database Hack : SQL 데이터 베이스 회원 정보 확인 - Ubuntu (0) | 2023.10.12 |
보안 설정 Ubuntu 및 Kali (2) | 2023.10.10 |
Ubuntu 및 Kali 설치 및 세팅 - Ubuntu (0) | 2023.10.10 |