Linux의 Shell 사용법
* Shell : 사용자와 컴퓨터 하드웨어 또는 운영체제 간 인터페이스, bash라는 이름의 Bourne-Again Shell이 리눅스에서 기본적으로 사용된다.(사용하는 Shell의 종류에 따라 문법이 조금씩 달라질 수 있다.)
*쉘에서 파일 실행 시 ./를 앞에 반드시 붙여야 하는데, 이는 현재 디렉토리가 일반적으로 기본 path에 설정되어 있지 않기 때문이다.
* 쉘 스크립트
서버작업 자동화 및 운영(DevOps)를 위해 기본적인 쉘 문법을 익힐 필요가 있다.
파일의 가장 위의 첫 라인은 #!/bin/bash 로 시작하며, 일반적으로 [파일이름.sh]로 저장한다.
1) 주석 : #
2) 변수선언 :
변수명=데이터 (띄어쓰기를 쓰지 말아야 한다.)
3) 출력
echo $변수이름
4) 리스트 변수
daemons=("httpd" "mysqld" "vsftpd")
echo ${daemons[1]} → 배열의 두번째 인덱스 출력
echo $daemons[@]} → 배열의 모든 데이터 출력
echo ${daemons[*]} → 배열의 모든 데이터 출력
echo ${#daemons[@]} → 배열의 크기 출력
filelist = ( $(ls) ) → 배열의 ls 실행 결과를 배열로 받음
echo ${filelist[*]} → 배열의 모든 데이터 출력
5) 사전에 정의된 지역변수
$$ : 쉘의 프로세스 번호
$0 : 쉘스크립트 이름
$1 ~ $9 : 명령줄 인수(명령줄로 전달받는 인자)
$* : 모든 명령줄 인수리스트
$# : 인수의 개수
$? : 최근 실행한 명령어의 종료값
- 0(성공), 나머지 에러
6) 연산자
expr : 숫자 계산
expr을 사용하는 경우 모두 띄어쓰기를 해야 하며 따옴표는 `를 사용해야 한다.
연산자 *와 괄호() 앞에는 역슬래시()와 같이 사용
ex) num='expr \( 3 \* 5 \) / 4 + 7`
7) 조건문
*if문
if [ 조건 ]
then
명령문
else
명령문
fi
*for 문
for 변수 in 변수값1 변수값2 ...
do
명령문
done
*while 문
while [ 조건문 ]
do
명령문
done
*조건
-z 문자 : 문자가 null이면 참
-n 문자 : 문자가 null이 아니면 참
값1 -eq 값2 : 값이 같음
값1 -ne 값2 : 값이 같지 않음
값1 -lt 값2 : 1이 2보다 작음
값1 -le 값2 : 1이 2보다 작거나 같음
값1 -gt 값2
값1 -ge 값2
*파일 검사
-e 파일명 : 파일이 존재하면 참
-d 파일명 : 파일이 디렉토리면 참
이것 등등 참고하기
* 논리연산
똑같음 &&, ||, !, true, false
* 기타
*tar : 일반 shell 명령어, 묶고 압축
option :
1) x - 묶음 해제
2) c 파일 묶음
z : gunzip을 사용
f : 파일 이름을 지정
tar -cvzf 압축파일이름 압축파일명
tar -xvzf 압축 해제할 압축 아카이브 이름
*find : 검색
ex) find . -type -f -name '파일명검색어 -exec bash -c "명령어1; 명령어2;" \;
ex) find . -type f -name '*log.?' -mtime +GZIPDAY -exec bash -c "gzip {}" \;
파일명 검색한 다음 명령어를 실행해라.
'데이터 사이언스 > 패스트캠퍼스' 카테고리의 다른 글
패스트캠퍼스_컴퓨터공학_리눅스 (3)프로세스와 쓰레드 (0) | 2020.05.05 |
---|---|
패스트캠퍼스_컴퓨터공학_리눅스 (1)Linux란 (0) | 2020.04.21 |
컴퓨터 공학_운영체제_파일 시스템 (0) | 2020.04.15 |
패스트캠퍼스 - 컴퓨터공학 - 가상메모리 & 페이징 시스템 (0) | 2020.04.12 |
패스트캠퍼스 - 컴퓨터공학 - Scheduler & Thread (0) | 2020.04.10 |