10 Abubuwan Al'ajabi da Abubuwan ban mamaki na (!) Alama ko Mai aiki a cikin Dokokin Linux


Ana iya amfani da alamar ! ko mai aiki a cikin Linux azaman ma'aikacin Logical Negation kamar yadda kuma don ɗebo umarni daga tarihi tare da tweaks ko don gudanar da umarni a baya tare da gyarawa. An duba duk umarnin da ke ƙasa a sarari a cikin bash Shell. Ko da yake ban duba ba amma yawancin waɗannan ba za su gudu a cikin wani harsashi ba. Anan mun shiga cikin abubuwan ban mamaki da ban mamaki na alamar ! ko mai aiki a cikin umarnin Linux.

Wataƙila ba za ku san gaskiyar cewa kuna iya gudanar da umarni daga umarnin tarihin ku (tun da aka aiwatar da umarnin da aka riga aka aiwatar). Don farawa fara nemo lambar umarni ta hanyar gudanar da umarnin 'tarihi'.

$ history

Yanzu gudanar da umarni daga tarihi kawai ta lambar da ta bayyana, a cikin fitar tarihi. Ka ce gudanar da umarni wanda ya bayyana a lamba 1551 a cikin fitowar umarnin 'tarihi'.

$ !1551

Kuma, tana gudanar da umarni (top order a cikin akwati na sama), wanda aka jera a lamba 1551. Wannan hanyar dawo da umarnin da aka riga aka aiwatar yana da matukar taimako musamman idan waɗannan umarni masu tsayi. Kawai kuna buƙatar kiran ta ta amfani da ![Lambar da ta bayyana a cikin fitarwa na umarnin tarihi].

Kuna iya gudanar da waɗannan umarni waɗanda kuka gudanar a baya ta tsarin tafiyarsu kasancewar umarnin gudu na ƙarshe za a wakilta shi azaman -1, na biyu na ƙarshe kamar -2, na bakwai na ƙarshe kamar -7,….

Fara gudanar da umarnin tarihi don samun jerin umarnin da aka aiwatar na ƙarshe. Wajibi ne a gudanar da umarnin tarihi, don tabbatar da cewa babu umarni kamar rm Command> file da sauransu kawai don tabbatar da cewa ba ku aiwatar da kowane umarni mai haɗari ba da gangan ba. Sannan duba umarni na shida na ƙarshe, umarni takwas na ƙarshe da umarni na goma na ƙarshe.

$ history
$ !-6
$ !-8
$ !-10

Ina buƙatar lissafin abubuwan da ke cikin directory '/ gida/$USER/Binary/Firefox' don haka na kori.

$ ls /home/$USER/Binary/firefox

Sai na gane cewa yakamata in kori 'ls -l' don ganin wane fayil ne ake aiwatarwa a can? Don haka ya kamata in sake buga duk umarnin! A'a bana bukata. Ina buƙatar ɗaukar hujja ta ƙarshe zuwa wannan sabon umarni kamar:

$ ls -l !$

Anan !$ za ta ɗauki gardama da aka wuce cikin umarni na ƙarshe zuwa wannan sabon umarni.

Bari mu ce na ƙirƙiri fayil ɗin rubutu 1.txt akan Desktop.

$ touch /home/avi/Desktop/1.txt

sa'an nan kuma kwafa shi zuwa '/ gida/avi/Zazzagewa' ta amfani da cikakkiyar hanya a kowane gefe tare da umarnin cp.

$ cp /home/avi/Desktop/1.txt /home/avi/downloads

Yanzu mun wuce muhawara biyu tare da umarnin cp. Na farko shine '/home/avi/Desktop/1.txt'kuma na biyu shine'/home/avi/Downloads', bari mu sarrafa su daban, kawai aiwatar da echo [arguments] don buga muhawara guda biyu daban.

$ echo “1st Argument is : !^”
$ echo “2nd Argument is : !cp:2”

Za a iya buga hujja ta 1 a matsayin \!^ kuma ana iya buga sauran muhawarar ta aiwatar da \![Name_of_Command]:[Lambar_of_argument].

A cikin misalin da ke sama umarni na farko shine 'cp' kuma ana buƙatar hujja na 2 don bugawa. Don haka \!cp:2, idan kowane umarni ya ce xyz ana gudanar da shi tare da mahawara guda 5 kuma kuna buƙatar samun hujja ta 4, kuna iya amfani da \!xyz:4, kuma ku yi amfani da shi yadda kuke so. Ana iya isa ga duk gardamar ta \!*.

Za mu iya aiwatar da umarni na ƙarshe da aka aiwatar bisa tushen mahimman kalmomi. Za mu iya fahimtarsa kamar haka:

$ ls /home > /dev/null						[Command 1]
$ ls -l /home/avi/Desktop > /dev/null		                [Command 2]	
$ ls -la /home/avi/Downloads > /dev/null	                [Command 3]
$ ls -lA /usr/bin > /dev/null				        [Command 4]

Anan mun yi amfani da umarni iri ɗaya (ls) amma tare da maɓalli daban-daban kuma don manyan fayiloli daban-daban. Haka kuma mun aika zuwa fitarwa na kowane umarni zuwa '/ dev/null' saboda ba za mu yi ma'amala da fitar da umarnin ba kuma na'ura wasan bidiyo ya kasance mai tsabta.

Yanzu aiwatar da umarnin gudu na ƙarshe akan mahimmin kalmomi.

$ ! ls					[Command 1]
$ ! ls -l				[Command 2]	
$ ! ls -la				[Command 3]
$ ! ls -lA				[Command 4]

Duba fitarwa kuma za ku yi mamakin cewa kuna aiwatar da umarnin da aka riga aka aiwatar ta hanyar ls keywords.

Kuna iya kunna/canza umarnin gudu na ƙarshe ta amfani da (!!) . Zai kira umarnin gudu na ƙarshe tare da canji/tweak a cikin umarnin na yanzu. Bari mu nuna muku yanayin

Ranar ƙarshe na gudanar da rubutun layi ɗaya don samun IP na sirri don haka na gudu,

$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/

Sai ba zato ba tsammani na gano cewa ina buƙatar tura fitar da rubutun da ke sama zuwa fayil ip.txt, to me zan yi? Shin zan sake buga duk umarnin kuma in tura fitarwa zuwa fayil? To mafita mai sauƙi shine amfani da maɓallin kewayawa UP kuma ƙara > ip.txt don tura fitarwa zuwa fayil azaman.

$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/ > ip.txt

Godiya ga Mai Ceton rai UP maɓallin kewayawa a nan. Yanzu la'akari da yanayin da ke ƙasa, lokaci na gaba na gudu a ƙasa da rubutun layi ɗaya.

$ ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:

Da zaran na gudanar da rubutun, bash ɗin ya dawo da kuskure tare da saƙon \bash: ifconfig: umarni ba a samo ba , Bai yi mini wahala ba in yi tunanin ina gudanar da wannan umarni a matsayin mai amfani a inda yake. ya kamata a gudanar a matsayin tushen.

To menene mafita? Yana da wahala a shiga tushen sannan a sake rubuta duk umarnin! Hakanan (Maɓallin kewayawa na UP) a misali na ƙarshe bai zo don ceto nan ba. Don haka? Muna buƙatar kiran \!! ba tare da ƙididdiga ba, wanda zai kira umarni na ƙarshe na mai amfani.

$ su -c “!!” root

Anan su shine mai amfani wanda shine tushen, -c shine gudanar da takamaiman umarni azaman mai amfani kuma mafi mahimmancin ɓangaren !! za'a maye gurbinsu da umarni da umarni na ƙarshe. za a musanya a nan. Ee! Kuna buƙatar samar da tushen kalmar sirri.

Ina amfani da !! galibi a cikin abubuwan da suka faru,

1. Lokacin da na gudanar da umarni apt-get a matsayin mai amfani na yau da kullun, yawanci ina samun kuskure yana cewa ba ku da izinin aiwatarwa.

$ apt-get upgrade && apt-get dist-upgrade

Kuskuren Opps… kar ku damu aiwatar da umarnin da ke ƙasa don samun nasara.

$ su -c !!

Haka nake yi don,

$ service apache2 start
or
$ /etc/init.d/apache2 start
or
$ systemctl start apache2

An ba mai amfani OOPS izinin ɗaukar irin wannan aikin, don haka ina gudu.

$ su -c 'service apache2 start'
or
$ su -c '/etc/init.d/apache2 start'
or
$ su -c 'systemctl start apache2'

Ana iya amfani da ! (Logical NOT) don gudanar da umarni akan duk fayiloli/extension sai dai wanda ke bayan !.

A. Cire duk fayiloli daga directory sai wanda sunan sa shine 2.txt.

$ rm !(2.txt)

B. Cire duk nau'in fayil ɗin daga babban fayil ɗin sai dai wanda kari wanda shine 'pdf'.

$ $ rm !(*.pdf)

Anan za mu yi amfani da ! -d don ingantawa idan littafin ya wanzu ko kuma ba a bi shi ta hanyar Logical AND Operator (&&) don buga waccan directory ɗin ba kuma Ma'ana KO Mai aiki (||) don buga littafin yana nan.

Hankali shine, lokacin da aka fitar da [ ! -d /home/avi/Tecmint ] shine 0, zai aiwatar da abin da ya wuce Hankali DA kuma zai je Logical KO (||) kuma ya aiwatar da abin da ya wuce Hankali KO.

$ [ ! -d /home/avi/Tecmint ] && printf '\nno such /home/avi/Tecmint directory exist\n' || printf '\n/home/avi/Tecmint directory exist\n'

Kama da yanayin da ke sama, amma a nan idan littafin da ake so bai wanzu ba zai fita daga umarnin.

$ [ ! -d /home/avi/Tecmint ] && exit

Gabaɗaya aiwatarwa a cikin Harshen Rubutu inda idan littafin da ake so ba ya wanzu, zai ƙirƙiri ɗaya.

[ ! -d /home/avi/Tecmint ] && mkdir /home/avi/Tecmint

Shi ke nan a yanzu. Idan kun san ko kun ci karo da kowane amfani na ! wanda ya cancanci sani, kuna iya ba mu shawarar ku a cikin ra'ayoyin. Ci gaba da haɗi!