아마도 많은 분들이 shell이나 bash라는 이름을 들어보셨을 텐데요, 혹시 그것이 무엇인지 아시나요?
컴퓨터의 기본 지식으로 돌아가 보겠습니다. 모든 컴퓨터는 하드웨어와 소프트웨어로 구성됩니다. 하드웨어는 키보드, 화면, CPU, 메모리, 하드 드라이브 등 누구나 만지고 볼 수 있는 부분입니다. 하드웨어가 없었다면 소위 컴퓨터라는 것이 존재할 수 없었을 것입니다. 전체 시스템의 입력과 출력은 물론 계산도 하드웨어와 분리될 수 없기 때문입니다. 질문해도 될까요? 키보드와 화면 없이 컴퓨터를 어떻게 사용하나요? 그러나 키보드를 통해 입력하는 것과 화면에 표시되는 출력은 실제로 소프트웨어에 의해 가능해집니다. 이러한 하드웨어와의 통신을 직접 담당하는 소프트웨어를 소위 커널이라고 합니다. 커널은 키보드 입력을 인계받아 처리를 위해 CPU에 넘겨주고 최종적으로 실행 결과를 화면에 출력할 수 있어야 합니다. 물론 키보드와 화면을 제외한 모든 하드웨어는 커널이 지원해야 사용할 수 있다.
그렇다면 우리가 키보드로 입력하는 내용을 커널은 어떻게 알 수 있을까요? 이것이 바로 우리가 여기서 소개하는 쉘이 담당하는 것입니다. 컴퓨터 자체가 처리하는 데이터는 바이너리 기계어이기 때문에 우리 인간이 익숙하게 사용하는 언어와는 매우 다릅니다. 예를 들어, pwd 명령을 입력하면 이것이 작업 디렉토리 인쇄(매우 간단한 사람의 목소리)를 의미한다는 것을 알지만, 커널로서는 pwd가 무엇인지 알지 못합니다. 시간, 셸 pwd를 커널이 이해할 수 있는 코드로 변환하는 데 도움이 됩니다. 그래서 우리는 컴퓨터를 사용할 때 하드웨어를 직접 제어하는 것은 커녕 커널과 직접 통신하기보다는 기본적으로 쉘을 다룬다.
Windows에서 배치 프로그램 bat를 사용하여 개발된 백업 웹 사이트 및 데이터베이스 스크립트
@echo off set date=%date:~0,4%-%date: ~5,2%-%date:~8,2% mysqldump -uroot -ppassword -A -B > D:\back\"%date%".sql rar.exe a -k -r -s -ml D:\bak\"%date%".sql.rar D:\bak\"%date%".sql del D:\bak\*.sql rar.exe a -k -r -s -ml D:\bak\"%date%"htdocs.rar D:\work\PHPnow\htdocs
/var/log/message 시스템 로그 파일 명령 스크립트 지우기
# 使用root身份运行这个脚本 # 清除日志版本,版本:v1 cd /var/log cat /dev/null > messages echo "Logs cleaned up."
문제:
1. 루트 실행 권한으로 실행되지 않음 아니요
2. 파일 존재 여부를 판단하는 프로세스 제어가 없습니다
LOG_DIR=/var/log # $UID为0的时候,用户才具有root用户的权限 ROOT_UID=0 # 使用root用户来运行 if [ "$UID" -ne "$ROOT_UID" ] then echo "Must be root to run this script." exit 1 fi cd $LOG_dir || { echo "Can't change to necesary directory." >&2 exit 1 } cat /dev/null > messages echo "Logs cleaned up." exit 0 # 推出之前返回0表示成功,返回1表示失败
위 내용은 쉘 스크립트란 정확히 무엇입니까? 사용하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!