Linux初心者がシェルプログラミングを学ぶための5つのシェルスクリプト–パートII
失敗することを恐れずに、何かを学ぶためにあなたはそれをする必要があります。私は実用性を信じているので、スクリプト言語の実用的な世界にあなたを連れて行きます。
この記事は、最初の記事「Linuxシェルと基本的なシェルスクリプトを理解する-パートI」の延長であり、この記事であなたを失望させないように続けて、スクリプトの味を紹介しました。
スクリプト1:特別なパターンを描く
#!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " read MAX_NO if ! [ $MAX_NO -ge 5 -a $MAX_NO -le 9 ] ; then echo "WTF... I ask to enter number between 5 and 9, Try Again" exit 1 fi clear for (( i=1; i<=MAX_NO; i++ )) do for (( s=MAX_NO; s>=i; s-- )) do echo -n " " done for (( j=1; j<=i; j++ )) do echo -n " ." done echo "" done ###### Second stage ###################### for (( i=MAX_NO; i>=1; i-- )) do for (( s=i; s<=MAX_NO; s++ )) do echo -n " " done for (( j=1; j<=i; j++ )) do echo -n " ." done echo "" done echo -e "\n\n\t\t\t Whenever you need help, Tecmint.com is always there"
上記の「キーワード」のほとんど ‘はあなたに知られているでしょう、そしてそれらのほとんどは自明です。例: MAX 変数の最大値を設定します。forはループであり、ループ内のすべてのものは、指定された入力値に対してループが有効になるまで何度も実行されます。
サンプル出力
[[email protected] ~]# chmod 755 Special_Pattern.sh [[email protected] ~]# ./Special_Pattern.sh Enter Number between (5 to 9) : 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Whenever you need help, Tecmint.com is always there
プログラミング言語を少し知っている場合は、上記のスクリプトを学ぶことは難しくありません。計算、プログラミング、およびLinuxに慣れていない場合でも、それほど難しくはありません。
Special_Pattern.shをダウンロード
スクリプト2:カラフルなスクリプトの作成
Linuxは無色です 退屈な場合は、以下のコードを任意の[ドットに保存してください ] sh 、実行可能にして実行します。それがどのようなものであったかを忘れずに教えてください。何を達成できるかを考え、どこかに実装してください。
#!/bin/bash clear echo -e "33[1m Hello World" # bold effect echo -e "33[5m Blink" # blink effect echo -e "33[0m Hello World" # back to normal echo -e "33[31m Hello World" # Red color echo -e "33[32m Hello World" # Green color echo -e "33[33m Hello World" # See remaining on screen echo -e "33[34m Hello World" echo -e "33[35m Hello World" echo -e "33[36m Hello World" echo -e -n "33[0m" # back to normal echo -e "33[41m Hello World" echo -e "33[42m Hello World" echo -e "33[43m Hello World" echo -e "33[44m Hello World" echo -e "33[45m Hello World" echo -e "33[46m Hello World" echo -e "33[0m Hello World"
注 :今はカラーコードを気にしないでください。あなたにとって重要なものは、徐々にあなたの舌になります。
サンプル出力
[[email protected] ~]# chmod 755 Colorfull.sh [[email protected] ~]# ./Colorfull.sh Hello World Blink Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World
Colorfull.shをダウンロード
スクリプト3:ファイル/ディレクトリを暗号化する
このスクリプトはファイルを暗号化します (覚えていますか?ディレクトリ /ドライバー /…。 Linux では、すべてがファイルとして扱われます )。上記のスクリプトの現在の制限は、 TABを使用した名前のオートコンプリートをサポートしていないことです。 。さらに、暗号化するスクリプトとファイルを同じフォルダーに配置する必要があります。 「pinentry-gui」をインストールする必要がある場合があります 」、 yumを使用 またはapt 必要に応じてパッケージ。
[[email protected] ~]# yum install pinentry-gui [[email protected] ~]# apt-get install pinentry-gui
「Encrypt.sh」というファイルを作成します 」と入力し、次のスクリプトを配置して実行可能にし、図のように実行します。
#!/bin/bash echo "Welcome, I am ready to encrypt a file/folder for you" echo "currently I have a limitation, Place me to thh same folder, where a file to be encrypted is present" echo "Enter the Exact File Name with extension" read file; gpg -c $file echo "I have encrypted the file successfully..." echo "Now I will be removing the original file" rm -rf $file
サンプル出力
[[email protected] ~]# chmod 755 Encrypt.sh [[email protected] ~]# ./Encrypt.sh Welcome, I am ready to encrypt a file/folder for you currently I have a limitation, Place me to the same folder, where a file to be encrypted is present Enter the Exact File Name with extension package.xml ┌─────────────────────────────────────────────────────┐ │ Enter passphrase │ │ │ │ │ │ Passphrase *******_________________________________ │ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────────┘ Please re-enter this passphrase ┌─────────────────────────────────────────────────────┐ │ Please re-enter this passphrase │ │ │ │ Passphrase ********________________________________ │ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────────┘ I have encrypted the file successfully... Now I will be removing the original file </pre>
gpg -c :これにより、パスキー(パスワード)を使用してファイルが暗号化されます 。この学習プロセスでは、実際の学習プロセスがこれほど簡単になるとは思わなかったでしょう。では、ファイルを暗号化した後、必要なものは何ですか?明らかに!ファイルを復号化します。そして、私はあなたに望んでいます–学習者、読者が自分で復号化スクリプトを書くこと、私があなたを途中で残していないことを心配しないでください、私はあなたにこの記事から何かを得て欲しいだけです。
注 : gpg -d filename.gpg >ファイル名 復号化スクリプトに実装する必要があるものです。成功した場合はコメントでスクリプトを投稿できますが、そうでない場合は私にスクリプトを書くように依頼することができます。
Encrypt.shをダウンロード
スクリプト4:サーバー使用率の確認
サーバーの使用率を確認することは、管理者の重要なタスクの1つであり、優れた管理者とは、日常のタスクを自動化する方法を知っている管理者です。以下は、サーバーに関する多くのそのような情報を提供するスクリプトです。自分で確認してください。
#!/bin/bash date; echo "uptime:" uptime echo "Currently connected:" w echo "--------------------" echo "Last logins:" last -a |head -3 echo "--------------------" echo "Disk and memory usage:" df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}' free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}' echo "--------------------" start_log=`head -1 /var/log/messages |cut -c 1-12` oom=`grep -ci kill /var/log/messages` echo -n "OOM errors since $start_log :" $oom echo "" echo "--------------------" echo "Utilization and most expensive processes:" top -b |head -3 echo top -b |head -10 |tail -4 echo "--------------------" echo "Open TCP ports:" nmap -p- -T4 127.0.0.1 echo "--------------------" echo "Current connections:" ss -s echo "--------------------" echo "processes:" ps auxf --width=200 echo "--------------------" echo "vmstat:" vmstat 1 5
サンプル出力
[[email protected] ~]# chmod 755 Server-Health.sh [[email protected] ~]# ./Server-Health.sh Tue Jul 16 22:01:06 IST 2013 uptime: 22:01:06 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 Currently connected: 22:01:06 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT tecmint pts/0 116.72.134.162 21:48 0.00s 0.03s 0.03s sshd: tecmint [priv] -------------------- Last logins: tecmint pts/0 Tue Jul 16 21:48 still logged in 116.72.134.162 tecmint pts/0 Tue Jul 16 21:24 - 21:43 (00:19) 116.72.134.162 -------------------- Disk and memory usage: Free/total disk: 292G / 457G Free/total memory: 3510 / 3838 MB -------------------- OOM errors since Jul 14 03:37 : 0 -------------------- Utilization and most expensive processes: top - 22:01:07 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 Tasks: 149 total, 1 running, 148 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.3%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 3788 1128 932 S 0.0 0.0 0:32.94 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:14.07 migration/0
注 :ターミナル自体に出力を与えるスクリプトを提供しました。将来の参照用にファイルに出力を取得するのはどうですか。リダイレクト演算子を使用して実装します。
- ‘> ‘:リダイレクト演算子によりファイルが作成され、存在する場合は内容が上書きされます。
- ‘>> ‘:>>を使用すると、情報を置き換えるのではなく、追加することになります。
- ‘>> ‘は‘ > と比較して安全です ‘
サーバーのダウンロード-Health.sh
スクリプト5:ディスク容量を確認してメールアラートを送信する
パーティションPARTでディスクを使用するときにメールを受け取るのはどうですか 最大許容値よりも大きいため、ほとんど変更を加えずにWeb管理者向けのライフセーバースクリプトです。
MAX=95 [email protected] PART=sda1 USE=`df -h |grep $PART | awk '{ print $5 }' | cut -d'%' -f1` if [ $USE -gt $MAX ]; then echo "Percent used: $USE" | mail -s "Running out of disk space" $EMAIL fi
注 :「ユーザー」を削除します 」とユーザー名。 「メール」を使用してメールを確認できます ‘コマンド。
Check-Disk-Space.shをダウンロード
スクリプトの作成とプログラミングは境界を超えており、必要に応じて何でもすべてを実装できます。今のところこれですべてです。次の記事では、さまざまな種類のスクリプトを紹介します。それまでは、涼しく、調整して、楽しんでください。
-
Linuxで効果的なBashスクリプトを作成するための10の便利なヒント
シェルスクリプトは、Linuxで学習/実行できるプログラミングの最も簡単な形式です。さらに言えば、タスクを自動化し、ほんの数例を挙げると、新しいシンプルなユーティリティ/ツールを開発するためのシステム管理に必要なスキルです。 この記事では、効果的で信頼性の高いbashスクリプトを作成するための10の便利で実用的なヒントを紹介します。これらには、次のものが含まれます。 1。スクリプトでは常にコメントを使用する これは、シェルスクリプトだけでなく、他のすべての種類のプログラミングにも適用される推奨される方法です。スクリプトにコメントを書くと、あなたや他の誰かがスクリプトを読んで、スクリプトのさ
-
ShellCheck –シェルスクリプトの警告と提案を表示するツール
ShellCheck は、bash/shシェルスクリプトの不正なコードに関する警告と提案を表示する静的分析ツールです。いくつかの方法で使用できます。https://www.shellcheck.net(常に最新のgitに同期されている)のオンラインエディター(Ace – JavaScriptで記述されたスタンドアロンコードエディター)にシェルスクリプトを貼り付けることにより、Webからコミットします。これは、ShellCheckをすぐにフィードバックするための最も簡単な方法です。 または、マシンにインストールしてターミナルから実行し、テキストエディタやビルドスイートまたはテストスイートと統