おそらく、shell や bash という名前を聞いたことがある人は多いと思いますが、それが何であるか知っていますか?
コンピューターの基本知識に戻りましょう。すべてのコンピューターはハードウェアとソフトウェアで構成されています。ハードウェアは、キーボード、画面、CPU、メモリ、ハードドライブなど、誰もが触れたり目にしたりできる部分です。ハードウェアがなければ、いわゆるコンピューターは存在しません。システム全体の入力と出力、および計算はハードウェアと切り離せないからです。聞いてもいいですか: キーボードと画面のないコンピューターをどうやって使うのですか?ただし、キーボードを介して行う入力と画面に表示される出力は、実際にはソフトウェアによって可能になります。これらのハードウェアとの通信を直接担当するソフトウェアは、いわゆるカーネルです。カーネルはキーボード入力を引き継ぎ、それを CPU に渡して処理し、最終的に実行結果を画面に出力できなければなりません。もちろん、キーボードと画面を除くすべてのハードウェアは、使用する前にカーネルによってサポートされている必要があります。
それでは、カーネルはキーボードでの入力をどのようにして認識するのでしょうか?それを担うのが今回紹介するシェルです。なぜなら、コンピュータ自体が処理するデータはバイナリのマシンコードであり、人間が使い慣れている言語とは大きく異なるからです。たとえば、pwd コマンドを入力すると、これは print working directory (非常に単純な人間の音声) を意味することがわかりますが、カーネルとしては、pwd が何であるかはわかりません。カーネルは、この時点ではマシン コードを確認するだけです。時間、シェル これは、pwd をカーネルが理解できるコードに変換するのに役立ちます。したがって、コンピュータを使用するときは、カーネルと直接通信するのではなく、ましてやハードウェアを直接制御するのではなく、基本的にシェルを扱います。
Windows上でバッチプログラムbatを使用して開発されたWebサイトとデータベースのスクリプトをバックアップ
@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
Clear/var/log/messageシステムログファイルコマンドスクリプト
# 使用root身份运行这个脚本 # 清除日志版本,版本:v1 cd /var/log cat /dev/null > messages echo "Logs cleaned up."
問題:
1. root実行権限で実行されない いいえ
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 中国語 Web サイトの他の関連記事を参照してください。