피어나는 열정 2022. 7. 25. 18:31

쉘을 다루기 전에 쉘 을 적을 에디터를 사용하던 도중 gedit이 깔리지 않아서 오류를 찾아보았다.

(gedit이 vi보다 더 사용하기 쉽고 보기도 편해서 골랐습니다.)

이유를 알아보니 스탠다드 배포에는 없어서 그랬다고 한다.

https://superuser.com/questions/1622273/unable-to-install-use-gedit-in-kali-linux

apt-get update 를 해줘야하는 이유

1.셀스크립트프로그래밍실습

쉘 시작하기

소스 설명

1. 주석(#!) 형태로 bash를 사용하겠다는 의미

리눅스에서는 Bourne shell(/bin/sh), bash shell(/bin/bash)을 사용하는데 bash를 더 많이 사용합니다. 참고로 bash쉘은 Bourne shell의 기능을 향상시킨 버전으로 bash는 Brourne Again Shell)의 줄임말입니다. /bin/sh와 /bin/bash는 거의 비슷하지만 bash에 기능이 몇가지 더 추가된 형태입니다. 맥북에서는 zsh을 많이 사용합니다

 

2. $USERNAME, $HOSTNAME :과 같은 환경 변수들을 출력하겠다는 의미

3. exit 은 종료 코드 

 

ls -l *.sh 쉘 파일 존재여부 확인

sh 로 쉘 실행.

2 디렉토리 사용법

디렉토리 사용법

항목 설명
cd 디렉토리 경로 이동하려는 디렉토리로 이동
cd . 현재 디렉토리
cd .. 한 단계 상위 디렉토리로 이동
cd / 최상위 디렉토리로 이동
cd $변수명 변수에 저장된 경로로 이동
cd ~
cd $HOME
cd
사용자 홈 디렉토리로 이동
cd ~계정명 입력한 사용자의 홈디렉토리로 이동
cd - 이전 경로로 이동
/root root 디렉토리로 이동

3. 변수 입력과 출력

변수 입력과 출력

변수입력으로 만들고 출력시 $을 사용해서 출력한다.

예시

testval = Hello

echo $testval

 

파라미터 변수

$* ,$번호로 파라미터 변수를 능동적으로 입력이 가능하며 sh파일이랑 같이 실행 하면 적용이된다.

예시 

sh paravar.sh  값1 값2 값3

 

함수 

1.함수 정의

함수 이름 (파라미터) {

}

2.함수 호출

함수 이름 파라미터1, 파라미터2

 

eval

문자열을 명령문으로 인식하고 실행한다.

예시

str ='ls -l anaconda.cfg'

eval $str

 

export

외부 변수로 선언한다. 선언한 변수를 다른 프로그램에서도 사용 할 수 있게 한다.

지역 변수는 현재 프로그램 내부에서만 사용되어서 다른 프로그램에서 호출해도 호출이 안된다.

 

set

명령어를 실행하고 나서 결과를 파라미터로 사용하고자 할때 set을 쓴다. 그리고 명령어를 사용하려면 $(명령어)를

해야한다.

예시

$(date)

set $(date) >> date명령어를 실행했을때 파라미터들이 $1~$n에 저장된다.