1. Shell 이란?
01. Shell
Shell은 운영 체제와 사용자 사이의 인터페이스로, 사용자가 운영 체제의 기능을 조작하고 제어할 수 있게 해줍니다.
주로 명령어를 입력하여 운영 체제에 명령을 내리는 환경을 제공합니다.
02. Shell 변수
Shell 변수는 데이터를 저장하고 참조하는 데 사용됩니다.
변수를 선언하고 값을 할당하여 나중에 해당 값을 사용할 수 있습니다.
name="John"
echo $name
03. Shell 환경 변수
환경 변수는 모든 쉘 세션에서 사용되는 변수입니다.
주로 시스템의 동작 방식을 제어하거나 사용자의 선호도를 저장하는 데 사용됩니다.
export PATH=$PATH:/usr/local/bin
04. Nesting Command
명령어를 중첩하여 실행할 수 있습니다.
이를 통해 한 명령어의 출력을 다른 명령어의 입력으로 사용할 수 있습니다.
cat $(ls *.txt)
05. Alias
Alias는 명령어나 명령어의 옵션을 간략하게 지정하여 사용할 수 있도록 해줍니다.
alias ll='ls -alF'
06. Prompt
프롬프트는 사용자에게 명령을 입력하도록 하는 텍스트입니다.
사용자에게 명령을 입력할 준비가 되었음을 나타냅니다.
PS1="[\u@\h \W]\$ "
07. Shell의 Redirection
Redirection은 명령어의 입출력 방향을 제어합니다.
파일에서 입력을 읽거나 출력을 파일로 보낼 수 있습니다.
ls > file_list.txt
2. Shell Programming
01. Shell Script란?
Shell Script는 Shell 명령어와 제어 구조를 사용하여 작성된 스크립트 파일입니다. \
운영 체제의 자동화나 작업 자동화에 사용됩니다.
02. 간단한 Script 사용해보기
간단한 스크립트를 사용하여 "Hello, World!"를 출력하는 예제입니다.
#!/bin/bash
echo "Hello, World!"
03. 위치매개변수
스크립트에 전달된 인수를 사용하여 동적인 작업을 수행할 수 있습니다.
#!/bin/bash
echo "Hello, $1!"
04. Wildcard
와일드카드는 파일 이름 패턴에 일치하는 파일을 선택하는 데 사용됩니다.
주로 '*'와 '?'를 사용합니다.
ls *.txt
05. 산술 연산자
산술 연산을 수행하는 데 사용됩니다.
expr은 산술 표현식을 평가하고,
let은 변수에 대한 산술 연산을 수행하며,
bc는 고급 수학 함수를 사용할 수 있는 계산기입니다.
result=$(expr $num1 + $num2)
result=$(($num1 + $num2))
result=$(echo "$num1 + $num2" | bc)
3. 제어문
01. if 문
조건문을 사용하여 실행 흐름을 제어합니다.
조건이 참이면 실행되는 명령어 블록입니다.
if [ $age -ge 18 ]
then
echo "You are an adult."
else
echo "You are a minor."
fi
02. case 문
여러 조건을 비교하고 실행할 코드 블록을 선택하는 데 사용됩니다.
case $day in
"Mon") echo "Monday";;
"Tue") echo "Tuesday";;
*) echo "Other day";;
esac
4. 반복문
01. for 문
주어진 목록의 각 항목에 대해 작업을 반복합니다.
for file in *.txt
do
echo "Processing $file"
done
02. while / until 문
조건이 true일 때 루프를 반복합니다.
while은 조건이 true일 때 루프를 반복하고, until은 조건이 false일 때 루프를 반복합니다.
while [ $count -le 5 ]
do
echo "Count is $count"
((count++))
done
while 루프 내에서 if 문을 사용하여 특정 조건을 확인하고 루프를 중단할 수 있습니다.
while [ $value -ne 10 ]
do
if [ $value -gt 10 ]
then
break
fi
echo "Value is $value"
((value++))
done
5. 자주 사용되는 명령어
01. read
Read는 사용자로부터 입력을 읽는 데 사용됩니다.
스크립트 실행 중에 사용자로부터 데이터를 입력받을 수 있습니다.
echo "Enter your name:"
read name
echo "Hello, $name!"
02. sed
Sed는 텍스트 스트림 편집기로, 텍스트 변환 및 처리에 사용됩니다.
파일에서 특정 패턴을 찾아 다른 패턴으로 대체할 수 있습니다.
sed 's/old_pattern/new_pattern/' file.txt
03. awk
Awk는 텍스트 파일을 처리하고 보고서를 생성하는데 사용되는 강력한 도구입니다.
각 줄을 필드로 나누고, 각 필드를 처리할 수 있습니다.
awk '{print $1, $2}' file.txt
04. grep
Grep은 파일에서 패턴을 검색하는 데 사용됩니다.
특정 패턴과 일치하는 모든 줄을 출력할 수 있습니다.
grep "pattern" file.txt
05. pipeline
파이프라인은 한 명령어의 출력을 다음 명령어의 입력으로 사용하는 것을 의미합니다.
이를 통해 복잡한 작업을 단일 명령줄로 수행할 수 있습니다.
cat file.txt | grep "pattern" | sed 's/old_pattern/new_pattern/' | awk '{print $1, $2}'
6. 예제 프로그래밍
01. 특정 파일에서 패턴을 찾아 치환하기
#!/bin/bash
echo "Enter the pattern to search:"
read pattern
echo "Enter the new pattern to replace:"
read new_pattern
echo "Enter the file name:"
read filename
grep "$pattern" $filename | sed "s/$pattern/$new_pattern/g"
이 스크립트는 사용자로부터 파일 이름, 검색할 패턴, 대체할 패턴을 입력받고,
그에 맞는 처리를 수행하여 결과를 출력합니다.
02. 디렉토리 내 특정 확장자 파일 수 세기
#!/bin/bash
echo "Enter the directory path:"
read directory
echo "Enter the file extension to count:"
read extension
count=0
for file in $directory/*.$extension
do
if [ -f $file ]; then
((count++))
fi
done
echo "Number of .$extension files in $directory: $count"
이 스크립트는 사용자로부터 디렉토리 경로와 파일 확장자를 입력받아
해당 디렉토리 내에 특정 확장자 파일의 수를 세는 예제입니다.
반복문을 사용하여 디렉토리 내의 모든 파일을 확인하고, 조건문을 사용하여 파일인지 확인합니다.
03. 입력된 숫자의 합 구하기
#!/bin/bash
sum=0
echo "Enter numbers to sum (press q to quit):"
while true
do
read num
if [ "$num" == "q" ]; then
break
fi
sum=$((sum + num))
done
echo "Sum of the numbers: $sum"
이 스크립트는 사용자로부터 숫자를 입력받아 합을 구하는 예제입니다.
무한 루프를 통해 숫자를 입력받고, 입력이 'q'일 때 루프를 종료합니다.
입력된 숫자를 누적하여 최종적으로 합을 출력합니다.
'Study > Linux' 카테고리의 다른 글
[Command] 모니터링 명령어 모음 (0) | 2024.08.05 |
---|---|
[Command] alias 등록하고, 명령어 쉽게 사용하기 (0) | 2024.07.11 |
[NginX] repository 등록 (0) | 2024.07.08 |
[NginX] NGINX 소스 컴파일로 설치하기 (0) | 2024.05.27 |
[Script] 리눅스 사용자 추가 쉽게하자! (0) | 2024.04.30 |
댓글