본문 바로가기

리눅스 끄적끄적

2023/02/01 쉘

쉘이란?

- 터미널에 입력한 명령을 해석하고 관리하는 프로그램을 쉘(shell) 이라고한다.
- 쉘은 사용자 커널 사이에 연결시켜주는 역할을 하며 사용자가 입력한 명령을 해석하여 윤영체제가 해당명령을 알아들을 수 있게 해준다.
-쉘은 여러가지 종류가 있으며 가장 많이 사용하는 쉘은 Bash(Born Again SHell) 쉘이다.

 

지금까지 쉘



쉘 메타문자 사용

경로 이름 메타문자

~ : 현재 로그인 한 사용자의 홈디렉토리 (사용자 정보를 저장하고 있는/etc/passwd 파일의 6번째에 설정된 디렉토리)

- : 이전 작업 디렉토리 (CentOS의 Bash 쉘 기준 바로 이 전의 디렉토리만 기억)


파일 이름 메타문자

* : 하나 이상의 문자를 대체하는 문자, 일반적으로 전체를 의미 (특정 디렉토리 내의 모든 파일을 지정할 때 또는 특정 이름으로 시작할 때 등 여러 가지로 활용)     ex) rm -rf ,.*     rm -rf test*

? : 하나의 문자만 대체


인용부호 메타문자

`` : ``안에 있는 문자를 명령어로 인식하여 실행되게 한다.

'' : 작은 따옴표 안에 있는 메타문자를 일반문자로 취급한다.

"" : 큰 따옴표 안에 있는 $, `, ₩ 문자를 제외한 나머지 문자만 일반문자로 취급   *tip : $는 리눅스 쉘에서 변수를 사용할 때 사용하는 문자


방향 재지정 메타문자

 

방향 재지정 메타문자



< : 표준 입력 재지정

> : 표준 출력 및 표준 에러를 재지정, 일반적으로 명령어의 출력을 파일로 저장 또는 네트워크로 전송

파일에 저장할 떄 : echo "test" > ./file

정상적인 결과만 출력할 때 : find / -perm -4000 2>/dev/null

에러 결과만 출력할 때 : find / -perm -4000 1> /dev/null

정상적인 결과는 파일에 저장, 에러는 출력 X : find / 0perm -4000 1> ./setuid_file 2> /dev/null

*tip : >을 한 번만 사용하면 파일의 내용을 덮어씀, >>을 사용하면 기존의 파일 내용에 이어서 씀

l : 파이프 문자, [명령어1] ㅣ [명령어2] 처럼 사용하며, 명령어1의 결과를 명령어2의 입력으로 사용

ex) ls /etc ㅣ grep rc ls 명령어의 결과에서 특정 문자를 포함한 라인만 뽑아 볼 때

ls /etc 결과 중에서 yum이 포함된 내용만 출력할 때 ls /etc ㅣ grep yum

ls /etc 결과가 너무 길어서 화면에 다 안나 끌어서 보고싶을 때 ls /etc ㅣmore




사용자 초기화 파일

/etc/profile : 시스템 전역에 걸쳐 환경을 설정하는 파일, 모든 사용자가 적용되는 파일

~/.profile : 개별 사용자의 홈 디렉토리에 있는 파일, 해당 사용자의 설정을 변경할 때 사용

~/.bashrc : 개별 사용자의 홈 디렉토리에 있는 파일, 해당 사용자의 쉘 관련 설정을 변경할 때 사용

환경 변수, 쉘 프롬프트 모양(명령어 앞에 붙는 내용), 별명 기능 (alias), 쉘 옵션 정의 등 설정 가능


환경변수

환경변수란?
시스템 환경에 대한 설정을 저장하고 있는 변수

HOME : 사용자의 홈 디렉토리

PATH : 실행파일을 찾는 경로

LANG : 프로그램 사용시 기본 지원되는 언어

SHELL : 로그인해서 사용하는 쉘

EDITOR : 기본 편집기의 이름

PS1 : 명령프롬프트변수

 

쉘 명령어 실습 꼭 다시 볼 것

https://www.youtube.com/watch?v=wXXsxH1lgog&list=PL0d8NnikouEVcV3eb4hKvH5BccI2AaVGJ&index=30 

 

'리눅스 끄적끄적' 카테고리의 다른 글

2023/02/03 압축 및 아카이브  (0) 2023.02.03
2023/02/02 프로세스  (0) 2023.02.02
2023/01/31 권한 특수권한  (0) 2023.01.31
2023/01/30 grep fgrep 링크  (0) 2023.01.30
2023/01/27 문서편집기  (0) 2023.01.27