쉘이란?
사용자의 명령어와 프로그램 커널간의 사용되는 인터페이스로 사용자의 명령어를 받아 해석하고 프로그램으로 전달한다.
sh - UNIX 쉘의 초기 버전이다.
bash - 리눅스의 표준 쉘로서 Ubuntu 및 페도라에서도 사용된다. sh를 기반으로 만들어졌으며, 공개 소프트웨어 GNU 프로젝트를 위해 개발되었다.
zsh - sh에서 확장된 버전의 쉘
- 재귀 경로 확장: "/u/lo/b" == "/usr/local/bin" 으로 확장
- 자동 완성 및 자동 보정: 디렉토리 이름 입력시 실수를 고침
- 플러그인 및 테마 지원: ZSH 다양한 플러그인 프레임 워크 포함
- z 명령을 통한 간단한 디렉토리 이동
.bash_profile - 로그인과 관련된 정보들을 얻을 때 필요한 정보 위치로 로그인 시 사용
.bashrc - bashrc는 새로운 터미널을 열 때마다 정보를 받아오는데 사용
.zshrc - zsh에서 bash의 bash_profile, bashrc와 같이 나누지 않고 터미널 실행시 항상 실행
- zsh 도 login 동작만 하는 zprofile이 존재하긴 함.
env - 전역 환경 변수를 표시하거나 환경 변수 변경 후에 프로그램 실행하는 유틸리티
- Name=Value 쌍으로 환경변수 표시
- env로 프로그램을 실행하여 스크립트 작성 시 다음으로 실행할 프로그램을 찾는 용도로 사용
set - 로컬 환경변수(Name)와 해당 값(Value)을 나열하는 명령어
- 쉘 스크립트 디버깅 시에 이용되는 빌트인 커맨드
unset - bash의 내장 명령으로 지정한 변수를 해제하는 명령어
export - 로컬 환경변수에서 전역 환경변수로 설정해주는 명령어
chmod(change+mode) - 각 파일 및 디렉토리에 대해 읽기(r), 쓰기(w), 실행(x)등 파일 권한을 변경할 수 있게 해주는 명령
chown(chaneg+owner) - 파일의 Owner을 변경하는 명령어
chgrp(chage+group) - 특정 파일의 그룹을 변경하는 명령어
setuid - 특정 파일 디렉토리에만 root 권한을 주지않고 접근이 가능하게 해주는 파일 접근권한 비트
- 사용자에게 root권한을 주지 않아 운영에 효율적
- chmod를 사용하여 setgid 비트를 설정
Sticky bit - 디렉토리 소유자, 슈퍼유저가 아닌 일반 유저는 삭제하고나 이름 변경을 막는 bit
- 생성은 누구나 가능
참고 - https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sunguru&logNo=220970457584