linux 쉘이란?
📝 쉘이란?
- 터미널에 입력한 명령을 해석하고 관리하는 프로그램을 쉘(shell) 이라고 합니다.
- 쉘은 사용자 커널 사이에 연결시켜주는 역학을 하며 사용자가 입력한 명령을 해석하여 운영체제가 해당명령을 알아들을 수 있게 해줍니다.
- 쉘은 여러가지 종류가 있으며 가장 많이 사용되는 쉘은 Bash(Born Again Shell)쉘 입니다.
쉘 메타 문자 사용
-
경로 이름 메타문자
~
: 현재 로그인 한 사용자의 홈 디렉토리 ( 사용자 정보를 저장하고 있는 /etc/passwd 파일의 6번째에 설정된 디렉토리)-
: 이전 작업 디렉토리 (CentOS의 Bash 쉘 기준 바로 이 전의 디렉토리만 기억)
-
파일 이름 메타문자
-
*
: 하나 이상의 문자를 대체하는 문자, 일반적으로 전체를 의미 (특정 디렉토리 내의 모든 파일을 지정할 때 또는 특정 이름으로 시작할 때 등 여러 가지로 활용)- ex
rm -rf ./*
rm -rf test*
- ex
-
?
: 하나의 문자만 대체
-
-
인용부호 메타문자
- `
` :
안에 있는 문자를 명령어로 인식하여 실행되게 합니다. ''
: 작은 따옴표 안에 있는 메타문자를 일반문자로 취급합니다.""
: 큰 따옴표 안에 있는 $, `, ₩ 문자를 제외한 나머지 문자만 일반문자로 취급합니다.
- `
-
방향 재지정 메타문자
- 파일 디스크럽터
명령어의 입력장치가 무엇인지 출력이나 에러를 어떤 장치로 할 것인지를 결정합니다.
파일 디스크럽터 번호 파일 디스크럽터 약어 설명 0 stdin 표준 입력 1 stout 표준 출력 2 stderr 표준 에러 -
<
: 표준 입력 재지정 -
>
: 표준 출력 및 표준 에러를 재지정, 일반적으로 명령어의 출력을 파일로 저장 또는 네트워크로 전송-
파일에 저장할 때 :
echo "test" > ./file
- file이 없다면 만들어집니다. 만약에 있었다면 내용이 덮어쓰기가 됩니다. 덮어 쓰고 싶지 않다면
>>
로 입력하면 마지막 내용에 이어쓰기가 됩니다.
- file이 없다면 만들어집니다. 만약에 있었다면 내용이 덮어쓰기가 됩니다. 덮어 쓰고 싶지 않다면
- 정상적인 결과만 출력할 때 :
find / -perm -4000 2> /dev/null
- 에러 결과만 출력할 때 :
find / -perm -4000 1> /dev/null
- 정상적인 결과는 파일에 저장, 에러는 출력 X :
find / -perm -4000 1> ./setuid_file 2> /dev/null
-
-
|
: 파이프 문자, [명령어1][명령어2] 처럼 사용합니다. 명령어1의 결과를 명령어2의 입력으로 사용합니다. ls /etc | grep rc ls
명령어의 결과에서 특정 문자를 포함한 라인만 뽑아 볼 때ls /etc
결과 중에서 yum이 포함된 내용만 출력할 때ls /etc| grep yum
ls /etc
결과가 너무 길어서 화면에 다 안나와 한 페이지씩 끊어서 보고싶을 떄ls /etc | more
사용자 초기화 파일
- 사용자 초기화 파일의 종류
- 주로 환경 변수, 쉘 프롬프트 모양( 명령어 앞에 붙는 내용), 별명 기능 (alias), 쉘 옵션 정의 등 설정 가능
/etc/profile
: 시스템 전역에 걸쳐 환경을 설정하는 파일, 모든 사용자가 적용되는 파일~/.profile
: 개별 사용자의 홈 디렉토리에 있는 파일, 해당 사용자의 설정을 변경할 때 사용~/.bashrc
: 개별 사용자의 홈 디렉토리에 있는 파일, 해당 사용자의 쉘 관련 설정을 변경할 때 사용
- 주로 환경 변수, 쉘 프롬프트 모양( 명령어 앞에 붙는 내용), 별명 기능 (alias), 쉘 옵션 정의 등 설정 가능
- 환경 변수
- 환경 변수란? 시스템 환경에 대한 설정을 저장하고 있는 변수입니다.
HOME
: 사용자의 홈디렉토리PATH
: 실행파일을 찾는 경로LANG
: 프로그램 사용시 기본 지원되는 언어SHELL
: 로그인해서 사용하는 쉘EDITOR
: 기본 편집기의 이름PS1
: 명령프롬프트변수
- 환경 변수란? 시스템 환경에 대한 설정을 저장하고 있는 변수입니다.
댓글남기기