- 쉘이란 커널과 사용자 사이의 인터페이스 라고 보면 된다.
Shell을 사용하는 경우
- 서버에서 접속해서 사용하는 경우
- crontab 등 Linux의 내장 기능을 활용하는 경우
- 데이터 전처리를 하기 위해 shell command를 사용하는 경우
- Docker를 사용하는 경우
- 수 백대의 서버를 관리할 경우
- Jupyter Notebook의 cell 앞에 !를 붙여서 shell command를 사용하는 경우
- 터미널에서 python3, jupyter notebook을 실행하는 경우
- 배포 파이프라인(Github Action 등)을 실행하는 경우
쉘의 종류
- Bourne Shell
- Bash(Bourne Again Shell)
- C-Shell
- KornShell
Shell의 기본 Command
man | command(1), system call(2), function(3). 다양한 리눅스 명령어의 사용법 확인 가능 |
mkdir | 디렉토리 생성 |
ls | 현재 폴더의 폴더, 파일 확인, ls -l을 가장 많이 사용 |
pwd | 현재 디렉토리 출력 |
cd | Change Directory |
echo | 텍스트 출력 |
bash | 쉘 스크립트 실행 |
sudo | “substitute user do”, 다른 사용자의 권한 얻기 |
cp | copy |
mv | move |
clear | cls |
cat | concatenate 텍스트출력, 여러 파일을 붙혀서 실행 가능 |
history | -i30처럼 특정 번째 실행했던 명령어를 다시 실행 가능 |
find | 파일 및 디렉토리 검색 |
export | 환경변수 설정 |
cut -f -d | d: delimeter -f:field. delimeter를 기준으로 잘라 field번째 값만 출력 |
redirection (>, >>) | 프로그램의 출력(stdout)을 다른 파일이나 스트림으로 전달 |
pipe ( | ) | 다른 프로그램의 출력을 다른 프로그램의 입력으로 사용하고 싶은 경우 |
ps | (process status) -f: full format -e: 모든 프로세스 |
curl | Client URL, 웹서버에 요청을 보낼 수 있음 |
grep | 특정 키워드가 포함된 줄만 출력 |
chmod | change mode, 파일 권한 변경 |
nohup | 터미널 종료후에도 계속 작업이 유지하도록 실행. nohup helloword.py & (백그라운드 실행 필요) |
scp | Secure Copy, ssh로 연결된 호스트간 파일 복사 -r: 재귀적 복사 (하위 디렉토리를 포함해서 복사한다.) -P: ssh 포트 지정 -i: SSH 설정을 활용해 실행 |
df | Disk Free, 현재 사용 중인 디스크 용량 확인 |
Reference
'CS' 카테고리의 다른 글
Sync, Async vs Blocking, Non-Blocking (0) | 2022.06.01 |
---|---|
Big-Endian, Little-Endian (0) | 2019.05.17 |
gdb (0) | 2017.09.21 |