본문 바로가기
728x90

프로그래밍 언어/Shell script(BASH)8

[Shellscript] 입력 및 출력 리다이렉트, 그리고 파이프라인 0. 리눅스 시스템에서의 입력 및 출력 1) 리눅스 시스템에서는 모든 개체들을 파일로 다루며, 입력과 출력 과정 역시 파일로 다룬다. - 리눅스는 파일 디스크립터를 사용하여 각 파일 개체들을 식별함 - 파일 디스크립터: 세션에서 열려있는 파일들을 식별하는 음이 아닌 정수 2) BASH 쉘의 특수한 3개의 파일 디스크립터 (0,1,2) - 아래의 파일 디스크립터들은 파일의 입출력 및 오류를 처리함 파일 디스크립터 약어 설명 0 STDIN 표준 입력 1 STDOUT 표준 출력 2 STDERR 표준 에러 1) STDIN (표준 입력) - STDIN 파일 디스크립터: 쉘의 표준 입력을 의미 - 터미널 인터페이스에서 표준 입력은 키보드 - 쉘은 키보드 입력을 STDIN 파일 디스크립터로부터 받으면 입력하는 각 문.. 2021. 6. 27.
[Shell Script] 함수 만들기 BASH 쉘에서는 함수를 일종의 미니 스크립트처럼 다룬다. 따라서 BASH 쉘의 함수는 쉘 스크립트와 구조와 작동하는 방식이 비슷하다. 이러한 BASH 쉘에서 함수를 만들 수 있는 방식은 크게 두 가지 형태로 나뉜다. 1. 첫번째 형식: 키워드 함수 1) 코드 블록에 함수 이름을 지정하는 키워드 함수 2) syntax function name { commands } - name: 함수에 지정할 고유 이름을 지정 - commands: 함수를 구성하는 하나 이상의 BASH 쉘 명령어 2. 두번째 형식 name() { commands } - 다른 프로그래밍 언어에서 함수를 정의하는 방식과 유사함 - name 뒤의 빈 괄호는 함수를 정의하는 것 3. Shell script에서 함수를 사용할 때 주의할 점 1) .. 2021. 6. 8.
[Shell script] 여러 개의 사용자 계정 만들기 1. 사용할 텍스트 파일의 형식 • 형식: , - 두 값은 쉼표로 구분이 된다. - 위 텍스트 파일은 .csv 파일 형식으로 처리한다. • 파일의 예시 # 사용할 텍스트 파일 $vim users.csv rich, Richard Blum christine, Christine Bresnahan barbara, Barbara Blum tim, Timothy Bresnahan 2. 작성할 쉘 스크립트 • 구분자(IFS)를 ","로 설정 • csv파일의 개별 줄들을 읽기 위해서, read 명령을 사용 • useradd 명령어는 루트 권한이 필요 #! /bin/bash input="users.csv" while IFS=',' read -r userid name do echo "adding $userid" usera.. 2021. 6. 3.
[Shell scripts] 기본적인 스크립트 제어 (if, for, where, case) 1. if 문 1) if 문의 구조 if [condition 1]; then elif [condition 2]; then elif [condition 3]; then else fi 2) 일반적인 프로그래밍 언어과 if 문의 차이점 • 일반적인 프로그래밍 언어: if 문의 조건문은 True/False 값을 평가하는 표현식 • BASH 쉘에서의 if문 - 각 조건문에서 명령의 종료상태가 0이면 (명령이 성공적으로 완료됨을 의미), then 이하를 실행 - if 문의 condition은 세 가지 종류의 조건을 평가할 수 있다: 숫자비교, 문자열 비교, 파일 비교 - Condition에서 앞 뒤 대괄호와 조건문 사이에는 빈칸이 반드시 한 칸이 떨어져 있어야 한다: "[ condition ]" 3) if 문의 복.. 2021. 5. 17.
[Shellscript] 정수 및 실수 연산 기본적으로 Shell script에서 정수 및 실수 연산을 처리하는 방법은 아래와 같다. 1) 정수 연산: 대괄호 사용, expr, bc, awk 2) 실수 연산: expr, bc, awk 1. expr ▪ syntax: expr ▪ 예시 $ result=$( expr 1+2 ) $ echo $result 3 2. 대괄호 사용 ▪ Bash에서는 변수에 계산 결과를 할당할 때, 달러 기호와 대괄호 기호를 사용하여 수식을 묶을 수 있다. ▪ 장점: expr보다 더 쉽게 수식을 사용할 수 있음 ▪ 단점: 정수 연산만 가능 ▪ ex) 1 + 5를 계산한 결과를 val1에 할당 후, val1에 2를 곱한 값을 val2에 할당 $ var1=$[1 + 5] $ echo $var1 6 $ var2=$[$var1*2] .. 2021. 4. 20.
[Shellscript] 쉘, 쉘 스크립트 및 쉘 변수 (BASH) 1. 쉘(Shell)이란? 사용자의 명령을 해석해서 커널에게 전달하고 커널의 실행결과를 사용자에게 나타내주어 컴퓨터의 OS와 사용자를 중재해주는 역할을 하는 프로그램 • "명령어 해석기" 또는 "사용자 인터페이스"라고 부르기도 함 • 쉘 (Shell) 자체는 운영체제가 아니다. • 리눅스의 기본 쉘은 BASH (Bourne Again SHell)이며, 본 쉘을 개발한 Steven Bourne의 이름을 기리며 붙여졌다. • 리눅스 시스템에서 지원하는 쉘의 목록 확인: /etc/shells 1) 쉘의 역사 • 1971년: 켄 톰프슨이 최초 버전의 유닉스에 도입된 유닉스 쉘 (Thompson Shell)을 개발 • 1977년: AT&T 벨 연구소의 스티븐 본이 본 쉘 (Bourne Shell, sh)를 개발함.. 2021. 4. 20.
[Bash/Shell script] 디렉토리 리스트 출력 1. ls 명령어를 이용하여 현재 작업 디렉토리의 리스트를 출력하고자 하는 경우 • command: ls -d */ - 반드시 "/"를 적어주어야 한다. 적어주지 않을 경우, 현재 디렉토리를 의미하는 "."만 출력된다. 2. ls 명령어를 이용하여 현재 작업 디렉토리의 하위 디렉토리 리스트를 출력하고자 하는 경우 • command: ls -d */*/ - 하위 디렉토리가 없는 경우, 출력되지 않는다. 2021. 2. 5.
[Bash/Shell script] Sort 함수 정리 Sort 함수 sort는 텍스트로 된 파일의 행 단위 정렬을 할 때 사용하는 명령어이다. 이 명령어를 이용하면, 프로그램, 쉘 프로그램 등의 입력 값으로 사용되는 데이터를 직접 정렬 또는 편집할 때 편리사게 사용할 수 있다. 1. Syntax of sort sort ※ NOTE 1: 기본값으로써, sort 함수는 주어진 텍스트 파일을 오름 차순으로 정렬한다. ※ NOTE 2: sort 명령어는 숫자를 문자로 인식하고 표준 문자 정렬을 한다. - 따라서, 숫자로 정렬하기 위해선 -n 옵션을 사용해야 한다. ※ 옵션 옵션 설명 -r 내림 차순 정렬 -k 텍스트 파일을 번째 필드를 기준으로 정렬 -u 중복된 내용을 하나로 취급하여 유일 정렬 -t 필드 구분자로 를 사용한다 -n --numeric-sort 숫자.. 2021. 2. 5.
728x90