셸 스크립트란? 셸과 셸 프롬프트&bash shell

ℹ️이 콘텐츠에는 광고가 포함되어,판매 발생 시 수익이 발생합니다.(네이버 쇼핑 커넥트, 아마존 어필리에이트, 애드센스 등)

▥ 셸 스크립트란(shell script)?

1. 셸이란?

키보드에 입력한 명령어를 운영체제에 전달해서 전달한 명령어를 실행하게 하는 프로그램이다.

2. 셸 프롬프트

[centos@ip-172-26-2-170 ~]$ 

셸 프롬프트는 셸이 입력 가능한 상태일 때에만 나타난다. 달러 ($)는 일반 유저일 때, 해쉬 표시(#)는 터미널 세션이 슈퍼 유저(superuser)의 권한을 가졌을 때 표시된다. (#)는 루트(root) 사용자 로그인 해서 관리자 권한을 가진 것을 의미한다.

3. 셸 스크립트란?

셸 스크립트는 명령어들이 나열되어 있는 파일이다. 

셸은 파일 안의 명령어를 읽어서 커맨드라인에 명령어를 입력하여 실행하는 것이다.

셸은 강력한 커맨드라인 인터페이스이며, 스크립트 언어 인터프리터라는 것이다. 그리고 커맨드라인에서 할 수 있는 대다수의 작업은 스크립트에서도 가능하며, 스크립트에서 가능한 작업 역시 커맨드라인에서 가능하다.

4. 셸 프로그래밍 : #!/bin/bash

셸 스크립트의 첫 줄은 ‘#!/bin/bash’로 시작한다. 스크립트 파일이 ‘bash shell’로 작성되어 ‘bash shell’을 기준으로 실행하는 것을 의미한다.

보통 vim 편집기에서 ‘#’ 기호는 주석을 의미하지만 이 첫 라인의 셸 지정의 ‘#’은 주석표시가 아니다.
스크립트 실행 시 ‘#!/bin/bash’ 없이 실행하는 경우를 볼 수 있지만 기본적으로 ‘#!/bin/bash’를 입력하여 bash 셸임을 표시하는 것이 좋은 프로그래밍 습관이라고 할 수 있다. ‘#!’ 를 셔뱅이라고 한다.

~]# ll /usr/bin | grep bash
-rwxr-xr-x    1 root root      964536  4월  1  2020 bash
lrwxrwxrwx    1 root root          10 12월 10 23:34 bashbug -> bashbug-64
-rwxr-xr-x    1 root root        6964  4월  1  2020 bashbug-64
lrwxrwxrwx    1 root root           4 12월 10 23:34 sh -> bash
~]#
## sh가 bash의 심볼릭링크라는 것을 확인할 수 있습니다. 
bash shell의 시작에  '#!/bin/bash' 또는 '#!/bin/sh' 를 사용하든 둘 다 같은 의미라는 걸 알 수 있다.
셸 스크립트

다른 사이트의 bash 셸 스크립트에 대해 쓴 내용을 가져왔다.

5. 셸 스크립트 파일 실행

셸 프로그래밍으로 만든 파일을 실행하는 방법은 2가지가 있다.

5.1 sh 명령어

sh 명령어를 이용하여 파일을 실행하는 방법이 첫 번째이다.

sh backup.sh

5.2 ./스크립트.sh

./backup.sh

스크립트 파일을 처음 만들었을 때는 644의 퍼미션을 가지고 있다. 읽을 권한만 있고 실행 권한이 없을 것을 알 수 있다.(소유자는 읽고 쓸 권한)

보통 755 퍼미션을 주기도 하지만 파일의 실행 권한만 700으로 줘서 사용하는 방법을 권장한다. (작성자만 실행 가능하도록 할 경우는 퍼미션 500)

5.3 매개변수와 전달인자

※ 매개변수와 전달인자 FROM 위키백과
종종 매개변수(parameter)와 전달인자(argument)는 적당히 섞어서 쓰이기도 하는데, 이 경우 문맥에 따라 의미를 달리해서 해석되기도 한다. 하지만 엄밀히 말해서 매개변수는 함수의 정의부분에 나열되어 있는 변수들을 의미하며, 전달인자는 함수를 호출할때 전달되는 실제 값을 의미한다. 이같은 의미를 명확히 하기 위해 매개변수는 변수(variable)로, 전달인자(or인자)는 값(value)으로 보는 것이 일반적이다.
노트북과 샐러드

Similar Posts

  • 셔뱅(Shebang) [#! /bin/bash]

    shebang (셔뱅 또는 해시뱅)은 스크립트 파일의 첫 줄에 쓰이는 #!(해시 기호 + 느낌표)로 시작하는 구문입니다. 이 줄은 해당 스크립트를 어떤 인터프리터로 실행 할지를 지정합니다. 인터프리터(interpreter)는 프로그래밍 언어로 작성된 코드를 한 줄씩 읽고 즉시 실행하는 프로그램입니다. 이는 “작성된 명령을 번역해서 곧바로 실행해주는 번역기”라고 볼 수 있습니다. 보통 ASCII 텍스트 파일로 작성된 셸 스크립트에서 해시…

  • 리눅스 셸 환경(Shell Environment) 정의 및 이해와 쉘 환경변수 | Shell 시작 파일 2가지

    셸 세션을 이용해서 서버와 상호 작용을 할 때 해당 동작과 리소스에 대한 연결을 결정하기 위해 컴파일 하는 많은 정보가 있습니다. 이러한 서정 중 일부는 구성 설정에 포함되어 있으며, 다른 설정은 사용자 입력에 의해 결정됩니다. 리눅스 셸 환경은 셸의 구성 설정과 사용자 입력에 의해 결정된 설정을 유지관리 영역을 이용해 관리하는 가장 일반적인 방법을 이용하게…

  • 로그 파일 삭제 쉘 스크립트 만들기(날짜 20xx, 용량)

    httpd.conf 파일에 access_log 및 error_log를 설정 했을 때 logrotate 설정이 아닌 경우 로그 파일 삭제 쉘 스크립트가 필요할 때가 있습니다. 목차▥ 셸 스크립트란(shell script)?1. 셸이란?2. 셸 프롬프트3. 셸 스크립트란?4. 셸 프로그래밍 : #!/bin/bash5. 셸 스크립트 파일 실행✅ 로그 파일 삭제 쉘 스크립트 ✅ crontab 설정하기 크론탭 설정을 진행 해 줍니다. 리눅스 스크립트는 리눅스 운영…

  • 셸 스크립트: 셸 들여쓰기 및 확장 옵션명[long 옵션명]

    명령어를 길게 사용하다 보면 여러 명령어 줄을 넘겨서 입력하는 경우가 발생합니다. 가독성을 높이기 위해 명령어를 문장 연결 하는 백슬래시(\)를 사용하여 셸 들여쓰기를 할 수 있습니다. 목차▥ 셸 스크립트란(shell script)?1. 셸이란?2. 셸 프롬프트3. 셸 스크립트란?4. 셸 프로그래밍 : #!/bin/bash5. 셸 스크립트 파일 실행1. 셸 들여쓰기: 백슬래시(\) 백슬래시-라인피드 문자열이며 LF(Line Feed)는 커서를 한칸 아래로 이동하여…

  • [Linux] 쉘(Shell)과 커널&쉘 스크립트 및 프롬프트

    리눅스에 대해 공부하면서 터미널 창에서 명령어를 입력해서 관리를 하지만 시스템 자체에 대한 공부가 리눅스 서버를 운영하는데 많은 도움이 되기 때문에 기초와 개념에 대해 알아야 할 필요성을 가지게 되었습니다. 리눅스 쉘(Shell)과 쉘 스크립트(Shell Script) 그리고 프롬프트(Prompt)의 기본 개념에 대해 알아 보겠습니다. 목차▥ 셸 스크립트란(shell script)?1. 셸이란?2. 셸 프롬프트3. 셸 스크립트란?4. 셸 프로그래밍 : #!/bin/bash5….

  • 셸 스크립트: 변수(variable)와 상수(constant)

    셸 스크립트에서 변수란 단어가 가진 의미는 변할 수 있는( variable) 값이다. 또 상당수의 애플리케이션에서 변수가 이와 같은 의미로 사용되고 있다. 상수(constant)는 이름이 정의되고 값이 지정된다는 점은 변수와 같다. 하지만 그 값은 변하지 않는다는 점이 다르다. 쉘은 변수와 상수를 따로 구분하지 않는데 용어를 구분하는 이유는 쉘 이용자의 편의를 위해서이다. 목차▥ 셸 스크립트란(shell script)?1. 셸이란?2….

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 8   +   4   =