10 Awọn Iyanu ati Awọn ohun ijinlẹ ti (!) Aami tabi Oniṣẹ ninu Awọn aṣẹ Linux


Aami ! tabi oluṣe ni Linux le ṣee lo bi onišẹ Negetifu Logic bakanna lati mu awọn aṣẹ lati itan pẹlu awọn tweaks tabi lati ṣiṣẹ aṣẹ ṣiṣe iṣaaju pẹlu iyipada. Gbogbo awọn ofin ti o wa ni isalẹ ni a ti ṣayẹwo ni kedere ni Ikarahun kekere. Tilẹ Emi ko ṣayẹwo ṣugbọn pataki ninu iwọnyi kii yoo ṣiṣẹ ni ikarahun miiran. Nibi a lọ sinu awọn iyalẹnu ati awọn ohun ijinlẹ ti !! aami tabi oluṣe ninu awọn ofin Linux.

O le ma ṣe akiyesi otitọ pe o le ṣiṣe aṣẹ kan lati aṣẹ itan-akọọlẹ rẹ (tẹlẹ/awọn aṣẹ ti a ti ṣiṣẹ tẹlẹ). Lati bẹrẹ ni akọkọ wa nọmba aṣẹ nipasẹ ṣiṣe ‘itan-akọọlẹ’ pipaṣẹ.

$ history

Bayi ṣiṣe aṣẹ lati itan nikan nipasẹ nọmba eyiti o han, ninu iṣẹjade ti itan. Sọ ṣiṣe aṣẹ kan ti o han ni nọmba 1551 ninu iṣujade ti aṣẹ 'itan-akọọlẹ'.

$ !1551

Ati pe, o n ṣiṣẹ aṣẹ (aṣẹ oke ninu ọran ti o wa loke), ti o ṣe atokọ ni nọmba 1551. Ọna yii lati gba aṣẹ ti o ti ṣẹ tẹlẹ jẹ iranlọwọ pupọ ni pataki ti awọn aṣẹ wọnyẹn ba pẹ. O kan nilo lati pe ni lilo! [Nọmba ti o han ninu iṣẹjade aṣẹ itan].

O le ṣiṣe awọn ofin wọnyẹn eyiti o ti ṣiṣẹ tẹlẹ nipasẹ ọna ṣiṣe wọn jẹ pipaṣẹ ṣiṣe to kẹhin yoo ni aṣoju bi -1, igbẹhin keji bi -2, keje ti o kẹhin bi -7,….

Akọkọ ṣiṣe itan aṣẹ lati gba atokọ ti pipaṣẹ ti o kẹhin. O ṣe pataki lati ṣiṣe pipaṣẹ itan, ki o le rii daju pe ko si aṣẹ bii rm pipaṣẹ> faili ati awọn miiran lati rii daju pe o ko ṣiṣẹ eyikeyi aṣẹ lewu lairotẹlẹ. Ati lẹhinna ṣayẹwo Ẹkẹfa aṣẹ ti o kẹhin, Mẹjọ aṣẹ ti o kẹhin ati Kẹwa aṣẹ kẹhin.

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

Mo nilo lati ṣe atokọ akoonu ti itọsọna '/ ile/$USER/Binary/Firefox' nitorina ni mo ṣe yọ kuro.

$ ls /home/$USER/Binary/firefox

Lẹhinna Mo mọ pe o yẹ ki n ti mu ‘ls -l’ kuro lati wo faili wo ni o le ṣiṣẹ sibẹ? Nitorina o yẹ ki Mo tẹ gbogbo aṣẹ lẹẹkansii! Rara Emi ko nilo. Mo kan nilo lati gbe ariyanjiyan to kẹhin si aṣẹ tuntun yii bi:

$ ls -l !$

Nibi ! $ yoo gbe awọn ariyanjiyan ti o kọja ni aṣẹ to kẹhin si aṣẹ tuntun yii.

Jẹ ki a sọ pe Mo ṣẹda faili ọrọ 1.txt lori Ojú-iṣẹ.

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

ati lẹhinna daakọ si '/ ile/avi/Awọn gbigba lati ayelujara' lilo ọna pipe ni ẹgbẹ mejeeji pẹlu aṣẹ cp.

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

Bayi a ti kọja awọn ariyanjiyan meji pẹlu aṣẹ cp. Akọkọ jẹ '/home/avi/Desktop/1.txt' ati ekeji ni '/ ile/avi/Awọn igbasilẹ', jẹ ki o mu wọn ni iyatọ, kan ṣiṣẹ iwoyi [awọn ariyanjiyan] lati tẹ awọn ariyanjiyan mejeeji yatọ.

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

Ṣe akiyesi ariyanjiyan 1st le ṣe atẹjade bi \"! ^” ati isinmi awọn ariyanjiyan le tẹjade nipasẹ ṣiṣe \"! [Name_of_Command]: [Number_of_argument]” .

Ninu apẹẹrẹ ti o wa loke aṣẹ akọkọ ni 'cp' ati ariyanjiyan keji ni o nilo lati tẹjade. Nitorinaa \"! Cp: 2” , ti aṣẹ eyikeyi ba sọ xyz ti wa ni ṣiṣe pẹlu awọn ariyanjiyan 5 ati pe o nilo lati gba ariyanjiyan kẹrin, o le lo \"! Xyz: 4” , ki o lo bi o ṣe fẹ. Gbogbo awọn ariyanjiyan le wa ni iwọle nipasẹ \"! *” .

A le ṣe aṣẹ pipaṣẹ ti o kẹhin lori ipilẹ awọn ọrọ-ọrọ. A le loye rẹ gẹgẹbi atẹle:

$ 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]

Nibi a ti lo aṣẹ kanna (ls) ṣugbọn pẹlu awọn iyipada oriṣiriṣi ati fun awọn folda oriṣiriṣi. Pẹlupẹlu a ti ranṣẹ si iṣiṣẹ aṣẹ kọọkan si ‘/ dev/null‘ bi a ko ṣe ni ba pẹlu iṣiṣẹ ti aṣẹ naa tun tun jẹ imulẹ naa mọ.

Bayi Ṣiṣẹ aṣẹ ṣiṣe kẹhin lori ipilẹ awọn ọrọ-ọrọ.

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

Ṣayẹwo iṣẹjade ati pe ẹnu yoo yà ọ pe o nṣiṣẹ awọn ofin ti a ti ṣiṣẹ tẹlẹ nipasẹ awọn ọrọ ls .

O le ṣiṣe/paarọ aṣẹ ṣiṣe ṣiṣe rẹ kẹhin nipa lilo (!!) . Yoo pe pipaṣẹ ṣiṣe ti o kẹhin pẹlu paarọ/tweak ninu aṣẹ lọwọlọwọ. Jẹ ki o fi oju iṣẹlẹ naa han ọ

Ni ọjọ ikẹhin Mo ṣiṣe iwe afọwọkọ ikan kan lati gba IP ikọkọ mi nitorina ni MO ṣe ṣiṣe,

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

Lẹhinna lojiji Mo ṣayẹwo pe Mo nilo lati ṣe atunṣe iṣẹjade ti iwe afọwọkọ loke si faili ip.txt kan, nitorinaa kini o yẹ ki n ṣe? Ṣe Mo tun ṣe atunkọ gbogbo aṣẹ lẹẹkansii ki o ṣe atunṣe iṣẹjade si faili kan? O dara ojutu ti o rọrun ni lati lo UP bọtini lilọ kiri ati ṣafikun > ip.txt lati ṣe atunṣe iṣẹjade si faili bi.

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

O ṣeun si igbesi aye Olugbala UP bọtini lilọ kiri nibi. Bayi ṣe akiyesi ipo ti o wa ni isalẹ, nigbamii ti Mo ṣiṣe ni isalẹ iwe afọwọkọ-ikan.

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

Ni kete ti Mo ṣiṣe iwe afọwọkọ, iyara bash da aṣiṣe pada pẹlu ifiranṣẹ naa \"bash: ifconfig: a ko rii aṣẹ” ” yẹ ki o wa ni ṣiṣe bi gbongbo.

Nitorina kini ojutu? O nira lati buwolu wọle lati gbongbo ati lẹhinna tẹ gbogbo aṣẹ lẹẹkansii! Paapaa (Bọtini Lilọ kiri UP) ni apẹẹrẹ ti o kẹhin ko wa lati gbala nibi. Nitorina? A nilo lati pe \"!!” laisi awọn agbasọ, eyi ti yoo pe aṣẹ to kẹhin fun olumulo yẹn.

$ su -c “!!” root

Nibi su ni olumulo ti o yipada eyiti o jẹ gbongbo, -c ni lati ṣiṣe aṣẹ ni pato bi olumulo ati apakan pataki julọ !! yoo rọpo nipasẹ aṣẹ ati aṣẹ ṣiṣe kẹhin yoo paarọ rẹ nibi. Bẹẹni! O nilo lati pese ọrọ igbaniwọle root.

Mo lo ti !! okeene ni awọn oju iṣẹlẹ atẹle,

1. Nigbati Mo ba ṣiṣe aṣẹ-gba aṣẹ bi olumulo deede, Mo maa n ni aṣiṣe kan sọ pe o ko ni igbanilaaye lati ṣiṣẹ.

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

Aṣiṣe Opps… maṣe yọ ara rẹ lẹnu ṣiṣe pipaṣẹ isalẹ lati jẹ ki o ṣaṣeyọri ..

$ su -c !!

Ni ọna kanna ti Mo ṣe fun,

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

Olumulo OOPS ko fun ni aṣẹ lati gbe iru iṣẹ bẹẹ, nitorinaa Mo ṣiṣe ..

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

Awọn ! (Onitumọ KO) le ṣee lo lati ṣiṣe aṣẹ lori gbogbo awọn faili/itẹsiwaju ayafi ti o wa lẹhin ! .

A. Yọ gbogbo awọn faili kuro ninu itọsọna ayafi ọkan ti orukọ eyiti o jẹ 2.txt.

$ rm !(2.txt)

B. Yọọ gbogbo iru faili kuro ninu folda ayafi ọkan ti itẹsiwaju ti eyi ni 'pdf'.

$ $ rm !(*.pdf)

Nibi a yoo lo ! -d lati jẹrisi ti itọsọna naa ba wa tabi ko tẹle nipasẹ Logic AND Operator (&&) lati tẹjade itọsọna yẹn ko si ati Logic OR Operator (||) lati tẹ itọsọna naa wa.

Kannaa jẹ, nigbati iṣẹjade ti [! -d/ile/avi/Tecmint] jẹ 0, yoo ṣe ohun ti o wa ni ikọja Imọye ATI pe yoo lọ si Logic OR (||) ki o si ṣe ohun ti o wa ni ikọja Ikanra TABI.

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

Iru si ipo ti o wa loke, ṣugbọn nibi ti itọsọna ti o fẹ ko ba si tẹlẹ yoo jade kuro ni aṣẹ naa.

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

Imuse gbogbogbo ni Ede Mimọ nibiti itọsọna ti o fẹ ko ba si, yoo ṣẹda ọkan.

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

Iyẹn ni gbogbo fun bayi. Ti o ba mọ tabi wa kọja eyikeyi lilo ti ! eyiti o tọ si lati mọ, o le fẹ lati fun wa ni aba rẹ ninu esi naa. Jeki asopọ!