글이 정상적으로 보이지 않는다면 아래 주소로 접속해 주세요. https://egg-programmer.tistory.com/257
Shell Script
Shell Script 명령어 정리
기본 명령어
명령어 | 설명 |
---|---|
pwd | 현재 경로 출력 |
ls | 현재 디렉토리에서의 파일 리스트 출력 |
ls -l | 접근권한, 생성시간을 포함한 파일 상세 리스트 출력 |
mkdir [directory name] | 새로운 디렉토리 생성 |
cd cd ./ cd ../ cd [path] | home 디렉토리로 이동 현재 디렉토리로 이동 바로 이전 디렉토리로 이동 설정한 경로 디렉토리로 이동 |
cat test.txt | test.txt의 내용 출력 |
history [n] | 지금까지 입력한 명령어 목록 출력 숫자를 정해 최근 n개의 명령어만 출력하게 할 수도 있다. |
cp filename1 directory | 파일 복사 |
mv | 파일 이동 |
rm | 파일 삭제 디렉토리 삭제 시, -r 옵션 부여 |
find [directory name] -name "file.txt" | 디렉토리를 설정하지 않으면 현재 디렉토리에서 모든 하위 폴더의 이름을 찾아 출력 |
touch foo.txt | 0바이트 파일 생성 |
tree
- 폴더의 하위 구조를 계층적으로 표시해 주는 유틸리티
- 전체 구조를 대략적으로 파악할 때 유용함
- tree 설치하기
$ sudo apt install tree
- tree 버전 확인하기
$ tree --version
-
tree 기본 명령어
$ tree // 출력 . ├── backup ├── Desktop ├── Documents │ └── foo.txt ├── Downloads ├── examples.desktop ├── Music ├── Pictures ├── Public ├── Templates └── Videos 9 directories, 2 files
변수
환경 변수 (전역 변수)
- bash를 사용하는 시스템 전체에 영향을 미치는 변수
- 값이 프로세스에 상속됨
- 미리 정의된 환경변수와 사용자 지정 환경 변수가 있음
- 미리 정의된 환경변수 리스트
- 설정된 환경변수 확인
$ env
- 환경변수 출력
$echo $PATH
-
환경변수 변경
# 1. export 사용 : 재부팅 시 초기화 $ export PATH=$PATH:/[path] # 2. file 수정 $ vi ~/.bashrc # 파일 편집기에 들어감 $ export PATH="$PATH:/usr/프로그램 경로/bin" # 을 아래쪽에 추가 $ source .bashrc # 명령어 실행
- 환경변수 해체
unset TEST
쉘 변수 (지역 변수)
- 환경 변수의 일반적인 유형, 사용자 또는 사용자의 쉘이 이용하기 위한 정보를 모아두는 곳
- 값이 프로세스에 상속되지 않음
- 소문자로 작성
- 쉘 변수 설정
$ set test="testing"
- 쉘 변수 삭제
unset test
Bash 쉘 스크립트
#!bin/bash를 쓰는 이유
- 사용하려는 명령어 해석기가 bash 쉘 임을 미리 알려주는 것
- 스크립트의 첫 라인의
#
은 주석 기호가 아님 #!
: 매직 코드, 실행 가능한 쉘 스크립트라는 것을 나타내는 특별한 표시자bin/bash
: 경로명, 스크립트에 들어있는 명령어들을 해석할 프로그램의 위치를 나타냄bash
: 리눅스, 맥 등 운영체제의 기본 쉘
실행하기
- 실행 모드로 변경하기
chmod +x test.sh
- 실행하기
./test.sh