Purjehtiminen Linuxin BASH-komentosarjan maailman läpi - Osa III


Seuraavia Shell Scripting -sarjan artikkeleita arvostettiin suuresti, ja siksi kirjoitan tämän artikkelin jatkaakseni loputonta oppimisprosessia.

  1. Linux Shellin komentosarjakielen perusvihjeet – osa I
  2. 5 Shell-komentosarjaa Linux-aloittelijoille Shell-ohjelmoinnin oppimiseen – Osa II
Bash-avainsanat

Avainsana on sana tai symboli, jolla on erityinen merkitys tietokonekielelle. Seuraavilla symboleilla ja sanoilla on erityismerkitys bashille, kun ne ovat lainaamattomia ja komennon ensimmäinen sana.

! 			esac 			select 		} 
case 			fi 			then 		[[ 
do 			for 			until 		]] 
done 			function 		while 		elif
if 			time 			else 		in 		{

Toisin kuin useimmat tietokonekielet, Bash sallii avainsanoja käyttää muuttujien niminä, vaikka tämä voi vaikeuttaa komentosarjojen lukemista. Jotta skriptit olisivat ymmärrettäviä, avainsanoja ei tule käyttää muuttujien nimissä.

Komento toteutetaan shellissä muodossa $ (komento). Sinun on ehkä sisällytettävä koko komentopolku. esim. $ (/bin/date) oikeaa suoritusta varten.

Saatat tietää tietyn ohjelman polun käyttämällä whereis-komentoa. esim. missä päivämäärä

[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz

Se riittää toistaiseksi. Emme puhu nyt paljon näistä teorioista. Tulossa Scriptsiin.

Siirrä nykyinen työhakemisto

Siirry nykyisestä työhakemistosta mille tahansa tasolle lisäämällä vain numeerinen arvo komentosarjan lopussa suorituksen aikana.

#! /bin/bash 
LEVEL=$1 
for ((i = 1; i <= LEVEL; i++)) 
do 
CDIR=../$CDIR 
done 
cd $CDIR 
echo "You are in: "$PWD 
exec /bin/bash

Tallenna yllä olevat koodit nimellä "up.sh" työpöydällesi. Tee siitä suoritettava (chmod 755 up.sh). Juosta:

./up.sh 2 (siirtää nykyisen työhakemiston kaksi tasoa ylöspäin).
./up.sh 4 (siirtää nykyisen työhakemiston neljälle tasolle).

Käyttö ja käyttöalue

Suuremmissa skripteissä, jotka sisältävät kansion kansion sisällä… joka sisältää kirjastoja, binäärejä, kuvakkeita, suoritettavat tiedostot jne. Sinä kehittäjänä voit toteuttaa tämän skriptin siirtyäksesi haluttuun paikkaan hyvin automatisoidusti.

Huomaa: For on silmukka yllä olevassa skriptissä ja sen suorittamista jatketaan, kunnes silmukan arvot ovat tosi.

Näytelähtö
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /

[root@tecmint /]# ./up.sh 4 
You are in: / 

[root@tecmint /]#

Lataa up.sh

Luo satunnainen tiedosto tai kansio

Luo satunnainen tiedosto (kansio) ilman päällekkäisyyttä.

#! /bin/bash

echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"

Tämä on yksinkertainen käsikirjoitus, mutta sen toiminta ei ole niin yksinkertaista.

  1. 'kaiku' : Tulostaa kaiken lainausmerkkien sisällä kirjoitetun.
  2. '$' : on kuorimuuttuja.
  3. '>>' : Tulos ohjataan date-komennon lähtöön, jota seuraa txt-tunniste.

Tiedämme, että date-komennon tulos on date ja time tunnissa, minuutissa, toinen ja vuosi. Näin ollen voisimme saada tulosteen järjestetyllä tiedostonimellä ilman mahdollisuutta tiedostonimen päällekkäisyyteen. Siitä voi olla paljon hyötyä, kun käyttäjä tarvitsee aikaleimalla luotua tiedostoa myöhempää käyttöä varten.

Näytelähtö
[root@tecmint /]# ./randomfile.sh  
Hello server 
Your File is being saved to /home/server/Desktop

Voit tarkastella työpöydällä luotua tiedostoa tämän päivän päivämäärän ja kellonajan kanssa.

[root@tecmint /]# nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt 
13:51:52 up  3:54,  1 user,  load average: 0.09, 0.12, 0.08

Alla on yksityiskohtaisempi toteutus yllä olevasta komentosarjasta, joka toimii yllä olevan periaatteen mukaisesti ja on erittäin hyödyllinen Linux-palvelimen verkkotietojen keräämisessä.

Lataa randomfile.sh

Komentosarja verkkotietojen keräämiseen

Kerää verkkotiedot Linux-palvelimelle. Skripti on liian suuri, eikä koko koodia ja skriptin tulosta ole mahdollista lähettää tänne. Joten on parempi, että voit ladata skriptin alla olevan latauslinkin kautta ja testata sitä itse.

Huomaa: saatat joutua asentamaan lsb-core-paketin ja muut vaaditut paketit ja riippuvuudet. Apt tai Yum vaaditut paketit. Ilmeisesti sinun on oltava root suorittaaksesi komentosarjan, koska useimmat tässä käytetyt komennot on määritetty suoritettavaksi root-komennoilla.

Näytelähtö
[root@tecmint /]# ./collectnetworkinfo.sh  

The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to your_name@service_provider.com. ktop

Voit muuttaa yllä olevaa sähköpostiosoitetta skriptissäsi, jotta se lähetetään sinulle. Automaattisesti luotua tiedostoa voi tarkastella.

Lataa collectionnetworkinfo.sh

Script to Muuntaa isot kirjaimet pieniksi kirjaimiksi

Komentosarja, joka muuntaa SUORAT kirjaimet pieniksi kirjaimiksi ja ohjaa tulosteen tekstitiedostoon small.txt, jota voidaan muokata tarpeen mukaan.

#!/bin/bash 

echo -n "Enter File Name : " 
read fileName 

if [ ! -f $fileName ]; then 
  echo "Filename $fileName does not exists" 
  exit 1 
fi 

tr '[A-Z]' '[a-z]' < $fileName >> small.txt

Tämä yllä oleva skripti voi muuntaa minkä tahansa pituisen tiedoston kirjainkoon yhdellä napsautuksella isoista pienistä kirjaimista ja päinvastoin, jos tarvitaan vain vähän muutoksia.

Näytelähtö
[root@tecmint /]# ./convertlowercase.sh  
Enter File Name : a.txt 

Initial File: 
A
B
C
D
E
F
G
H
I
J
K
...

Uuden tiedoston (small.txt) tulos:

a
b
c
d
e
f
g
h
i
j
k
...

Lataa convertlowercase.sh

Yksinkertainen Laskin-ohjelma

#! /bin/bash 
clear 
sum=0 
i="y" 

echo " Enter one no." 
read n1 
echo "Enter second no." 
read n2 
while [ $i = "y" ] 
do 
echo "1.Addition" 
echo "2.Subtraction" 
echo "3.Multiplication" 
echo "4.Division" 
echo "Enter your choice" 
read ch 
case $ch in 
    1)sum=`expr $n1 + $n2` 
     echo "Sum ="$sum;; 
        2)sum=`expr $n1 - $n2` 
     echo "Sub = "$sum;; 
    3)sum=`expr $n1 \* $n2` 
     echo "Mul = "$sum;; 
    4)sum=`expr $n1 / $n2` 
     echo "Div = "$sum;; 
    *)echo "Invalid choice";; 
esac 
echo "Do u want to continue (y/n)) ?" 
read i 
if [ $i != "y" ] 
then 
    exit 
fi 
done
Näytelähtö
[root@tecmint /]# ./simplecalc.sh 

Enter one no. 
12 
Enter second no. 
14 
1.Addition 
2.Subtraction 
3.Multiplication 
4.Division 
Enter your choice 
1 
Sum =26 
Do u want to continue (y/n)) ? 
y
1.Addition 
2.Subtraction 
3.Multiplication 
4.Division 
Enter your choice 
3 
mul = 14812
Do u want to continue (y/n)) ? 
n

Lataa simplecalc.sh

Joten näitkö kuinka helppoa oli luoda tehokas ohjelma laskelmina niin yksinkertaisella tavalla. Se ei ole loppu. Tulemme laatimaan vielä ainakin yhden artikkelin tästä sarjasta, joka kattaa laajan näkökulman hallinnon näkökulmasta.

Tässä kaikki tältä erää. Koska olet lukija ja paras kriitikko, älä unohda kertoa meille, kuinka paljon ja mistä pidit tässä artikkelissa ja mitä haluat nähdä tulevassa artikkelissa. Kaikki kysymykset ovat erittäin tervetulleita kommenteissa. Pysy siihen asti terveenä, turvallisena ja viritettynä. Tykkää ja Jaa meistä ja auta meitä leviämään.