Shell은 사용자가 입력 한 명령을 수신하고, 명령을 처리하고, 처리 후 사용자에게 결과를 피드백 할 수 있습니다 (예 : 디스플레이 출력, 파일 쓰기 등). 이것이 대부분의 독자가 Shell에 대해 알고있는 것입니다. 셸을 사용하고 있는데 커널을 어떻게 사용할 수 있습니까? 쉘이 나를 커널에 연결하는 것을 보지 못했습니까? !
실제로 파일 작업, 입력 및 출력, 프로세스 관리 등과 같은 Shell 프로그램 자체의 기능은 모두 커널에 의존합니다. 우리는 명령을 실행하고 대부분의 경우 Shell은 커널에 의해 노출 된 인터페이스를 호출합니다. 이것은 커널입니다.이 프로세스는 Shell에 의해 숨겨져있을뿐입니다.이 프로세스는이면에서 조용히 진행되며 볼 수 없습니다.
인터페이스는 실제로 함수이며 커널을 사용하여 이러한 함수를 호출하는 것입니다. 이것이 커널 사용에 관한 것입니까? 음, 그래! 함수를 제외하고는 커널을 사용할 다른 방법이 없습니다.
예를 들어 셸에 cat log.txt명령 을 입력 하여 log.txt 파일의 내용을 볼 수 있다는 것을 우리 모두 알고 있지만 log.txt는 디스크에서 어디에 있습니까? 여러 데이터 블록으로 나뉘어 있습니까? 어디서 시작하나요? 어디에서 종료합니까? 그것을 읽기 위해 프로브를 작동하는 방법? Shell은 이러한 하위 수준의 세부 정보를 알지 못합니다. 커널에서 제공하는 open () 및 read () 함수 만 호출하여 log.txt 파일을 읽고 싶다고 커널에 알리고 도와주세요. 그러면 커널이 Shell의 지침을 순종적으로 따릅니다. 파일을 읽고 읽은 파일의 내용을 셸에 제공하면 마지막으로 셸이 사용자에게 파일을 제공합니다 (실제로 디스플레이에 표시하는 것은 커널에 따라 다름). 전체 프로세스에서 Shell은 "중간자"이며 사용자와 커널 간의 데이터를 "두피"하지만 사용자는이를 알지 못합니다.
★ Shell은 다른 프로그램에도 연결할 수 있습니다.
셸에 입력 된 일부 명령 은 셸 자체에 내장 된 명령 이고 일부는 외부 명령이라고하는 다른 응용 프로그램 (프로그램은 명령 임)입니다.
셸 자체는 많은 명령을 지원하지 않고 기능이 제한되어 있지만 셸은 다른 프로그램을 호출 할 수 있고 각 프로그램은 하나의 명령이므로 셸 명령의 수를 무한대로 확장 할 수있어 셸이 매우 강력하고 완벽합니다. 텍스트 또는 문자열 검색, 파일 검색 또는 생성, 대규모 소프트웨어 자동 배포, 시스템 설정 변경, 서버 성능 모니터링, 알람 이메일 전송, 웹 콘텐츠 크롤링, 파일 압축 등과 같은 Linux 일일 관리 작업
더욱 놀라운 점은 Shell이 여러 외부 프로그램을 연결하고 데이터를 편리하게 전송할 수 있다는 것입니다. 즉, 한 프로그램의 출력을 다른 프로그램에 입력으로 전달할 수 있습니다.
모두가 말한 것은 셸 자체가 기능이 풍부하기 때문이 아니라 다른 프로그램을 사용하고 구성하는 데 능숙하기 때문에 셸이 강력하다는 것입니다. Shell은 리더이며 Shell의 매력입니다.
전체 Linux 시스템에서 Shell의 위치는 아래 그림과 같이 설명 할 수 있습니다. "사용자"와 "기타 응용 프로그램"은 Linux를 시작한 후 사용자가 직접 셸을 향하고 다른 응용 프로그램이 셸을 통해 실행될 수 있기 때문에 점선으로 연결됩니다.
'Linux' 카테고리의 다른 글
Shell에 들어가는 두 가지 방법 (0) | 2020.10.06 |
---|---|
Shell, Python 및 Perl (0) | 2020.10.06 |
Shell은 운영 및 유지 관리 담당자가 습득해야하는 기술입니다. (0) | 2020.10.06 |
Shell은 프로그래밍도 지원합니다. (0) | 2020.10.06 |
Shell이란 무엇입니까? 1 분만에 Shell의 개념을 이해하세요! (0) | 2020.10.06 |