🌏 OS/Linux

[Linux] 리눅스 Shell 명령어

heywantodo 2023. 3. 13. 17:14
728x90
반응형

리눅스 Shell 명령어

1. 리눅스 Shell

Shell

 

Shell 

  • 명령어 해석기
  • 사용자가 프롬프트에 입력한 명령을 해석해서 운영체제에게 전달

Shell의 종류

Bourne shell (sh) AT&T 벨 연구소의 스티븐 본이 개발한 오리지널 셸
C Shell (csh, tcsh) Bill joy가 C언어의 기술을 넣어 만든 셸 C언어의 문법을 적용
Korn shell (ksh) David Kom이 기존 sh에 csh의 기능을 포함시켜 생성
Bourne-again shell (bash) GNU Project로 만들어 짐 csh, ksh이 가진 기능을 포함하면서 sh와 호환성을 많이 높임

 

사용 가능 한 Shell 리스트 확인하기

cat /etc/shells

현재 로그인 한 Shell 확인하기

echo $SHELL

 

Bash Shell의 변수 

 

Shell의 변수

 

  • 데이터를 넣는 그릇
  • 선언 할 필요없이 사용 가능 
  • 변수명은 문자, 숫자, _(언더바)로 구성됨 반드시 문자나 언더바로 시작 

변수 선언

변수 이름 = 변수 내용
var = 1234

변수 확인

echo var

변수 제거

unset var

 

환경 변수

 

  • 동작 되는 프로그램에 영향을 주는 변수
  • 일반 변수와 저장되는 곳이 다르기 때문에 로그아웃해도 사라지지 않고 남아 있음 

환경 변수 선언

export var = 1234

환경 변수 확인

env

자주 쓰이는 환경 변수

PATH 명령어 탐색 경로
HOME 홈 디렉토리의 경로, cd 명령 실행 시 적용
USER 로그인 사용자 이름
SHELL 로그인 shell의 이름

 

.bashrc

 

  • bash에서 작업할 때마다 수행되는 파일 
  • 별칭(alias)와 bash가 수행될 때 실행되는 함수를 제어하는 시스템 설정과 관련된 파일
  • 별칭과 함수들은 오직 해당 사용자에게만 한정되고, 그 이외의 다른 사용자에게는 영향을 미치지 않음 

 

Alias 

 

Shell의 Alias 

 

  • shell의 명령에 새로운 이름을 부여
  • 명령들을 조합하여 새로운 이름의 명령을 생성
  • 로그아웃하면 사라지지만 .bashrc에 기록하면 로그아웃해도 남아 있음

 

Alias 등록

alias name = 'command'

Alias 확인

alias
alias 이름

Alias 삭제

unalias 이름

.bashrc에 등록

echo "alias name = 'command'" >> ~/.bashrc 
source ~/.bashrc

 

Shell의 프롬프트

 

  • PS1 변수를 이용해 Shell의 기본 프롬프트 모양을 설정
  • Bash Shell에서만 Prompt 모양에 적용 가능한 특수 문자가 존재
\n 호스트 이름 \W 상대경로 (local)
\u 사용자 이름 \d 오늘 날짜
\w 절대경로 (full) \t 현재 시간
\$ $ 또는 # 프롬프트 모양    

 

Shell의 Redirection

 

STDIN 0< 0<< 입력을 키보드가 아닌 파일을 통해 받음
STDOUT 1> 1>> 표준 출력을 터미널이 아닌 파일로 출력
STDERR 2> 2>> 표준 에러 출력을 터미널이 아닌 파일로 출력

 

  • > : 내용이 있으면 덮여쓰여짐 (overwrite)
  • >> : 밑에 추가 (append)

 

Shell의 파이프라인

 

Pipeline

명령의 실행 결과를 다음 명령의 입력으로 전달

command1 | command2 | command3

 

728x90
반응형