Научете Linux

Команда за история в Linux с примери

Команда за история в Linux с примери

Командата за история в Linux не е сложен жаргон. Точно това е, което мислите, че е и зад него няма скрит смисъл. По същия начин, по който разглеждате историята на браузъра си след дълъг ден в интернет, вие възприемате командата за история. Всичко е свързано с проследяване на предишните ви движения и действия, но в този случай това е на терминал или команден ред на Linux.

Следователно можем удобно да дефинираме командата history под домейна на Linux като начин за преглед на предварително изпълнени команди. В този случай можем да гледаме на терминала като на браузър, където изпълнявате различни команди в непрекъснат времеви интервал. Тези изпълнени команди се интерпретират индивидуално като събития. След това на всяко събитие се присвоява номер на събитие. Следователно имаме команди с идентификатори като номера на събития, съхранявани във файл с история след тяхното изпълнение на терминала.

Значението на идентификаторите на събитията е очевидно, когато по-късно може да се наложи да извикате конкретна команда, която сте изпълнили. Също така, може да искате да промените по-рано изпълнена команда. Следователно можем да заключим уводното разбиране на историята на командата, за да покажем всички предварително изпълнени команди или само конкретна команда на терминала. Също така не трябва да забравяме жизнеспособната опция за модифициране на изброената команда.

Оставяне на историята да се повтаря

Можем да започнем тази историческа статия по забавен начин и като цитираме Джордж Сантаяна. Този известен индивид свързва неспособността да си спомни миналото с проклятието да го повтаря. Когато обаче навлезем във вселената на Linux, този цитат се квалифицира само като мит. Това е така, защото философията на Linux е реално противоположна на цитирания цитат на Джордж Сантаяна. Когато сте в терминала на Linux, ако не можете да си спомните минало действие, няма нужда да се притеснявате за това, защото шансовете са против това да се разнищи.

Освен ако, разбира се, не станете майстор на командата за история на Linux, тогава можете да пътувате във времето в миналото и да коригирате предишните си грехове на терминала, ако това е вашето желание. Използването на командата за история на Linux по никакъв начин не е съдружник на мързела. Спестява време чрез ефективност. Докато напредвате в овладяването на операционната система Linux, ще откриете, че работите с по-дълги и сложни команди. Дори ако сравните вашия IQ с този на Алберт Айнщайн, няма да имате време да запомните всички команди, които изпълнявате и скоро да започнете да правите ужасни грешки. Работата върху терминала на Linux ще изложи човек на два вида грешки:

Можете да мислите за командата за история като за нинджа воин, който премахва тези два вида грешки, за да повиши вашата производителност. Една дума на мисъл, преди да започнем урока, в командата за история на Linux има нещо повече от използването на клавиша със стрелка нагоре на клавиатурата. Нашият подход ще ви накара да изглеждате по-професионално.

Въведете командата за история на Linux

Инициирането на командата history е толкова лесно, колкото въвеждането на думата history на вашия Linux терминал. Затова запалете терминала си и преминете този прост тест за правопис.

история

команда за история

Ако натиснете Enter, ще получите списък с всички команди, които сте изпълнили на терминала, с присвоените им идентификатори или номера на събития. Системата за номериране, използвана от терминалния интерфейс на Linux, изобразява най-старата команда в горната част на списъка и нововъведената команда в долната част на списъка. Както можете да видите, на командата за история, която току-що въведох, беше зададен идентификационният номер 24.

списък с команди за история

Помислете за сценария на много активен Linux терминал. Ако трябваше да напишем командата за история на този терминал, изходът ще бъде, да речем, списък с 500 команди, записани във файла с история. Така че командата history е полезна за филтриране на определен групиран сегмент от команди. Да кажем, че искаме да видим последните 10 команди, изпълнени на терминала. Ще филтрираме пътя си през терминала, като напишем следното.

история 10

последните десет команди във файла с история

Както можете да видите, командата 'history 10' филтрира последните десет команди, използвани на този терминал, и ги изброява на нашия терминал с включване в командата 'history 10'.

Това е един от начините за постигане на тази цел. Друг измамен начин да го направите е като изкарате команда за история с друга команда, наречена tail command. Въведете следната команда, както е предадено на екранната снимка по-долу.

история | опашка -n 10

използване на командата tail за показване на последните десет команди във файла с история

Командата също така изброява последните 10 изпълнени команди на терминала на Linux, включително тази, която току-що изпълнихме.

Всъщност повтаряща се история

Време е за забавната част от използването на командата history. Какво ще кажете да започнем, като всъщност оставим историята да се повтори. Тъй като сте запознати с командите за история и свързаните с тях идентификатори на събития, нека се върнем към терминала. За да повторите конкретно изброената команда, вземете под внимание нейния идентификатор на събитието и се подиграйте със следната команда, както е показано на екранната снимка. Не използвайте интервали, когато пишете командата.

!17

използване на идентификатор на събитие за изпълнение на предишна команда

В моя случай исках да прегледам файла Linux / etc / host и бях подканен за парола за удостоверяване. Веднага след като моите пълномощия бяха одобрени, командата се изпълни сама.

изпълнена команда върху историческия файл

Има и случай, в който искате да повторите предишната команда, която сте изпълнили. Постигането на тази цел е толкова лесно, колкото да въведете два удивителни знака на вашия терминал. Не използвайте интервали.

!!

повторно изпълнение на предишната команда

повторно изпълнена команда за история

Както можете да видите, командата ни върна към файла Linux / etc / host, който бях отворил преди това. Командата за двойно възклицание отне повторна употреба на предишната ми команда, която беше изпълнена сама. Може би сте били свикнали с клавиша със стрелка нагоре, който изисква да извършите две действия, превъртете нагоре веднъж и след това натиснете бутона за въвеждане. Командата за двоен възклицание обаче изглежда по-бърза и професионална, тъй като трябва да извършите само едно действие.

Тъй като командата, която използвах, изисква привилегии на Sudo, мога да добавя двойните си удивителни знаци със команда Sudo, за да дам същия очакван резултат.

Судо !!

справяне с командата за история на Судо

Единичен номер на удивителен сигнал, комбиниран с идентификатор на събитие, ще изпълни показаната команда, свързана с този идентификатор. Двойният удивителен знак ви кара да изпълните най-скоро използваната от вас команда с опцията за добавяне на префикса на командата към Sudo, ако изисква изпълнение на потребител на sudoer.

Може да искате да изведете своята нервност на следващото ниво и да искате начин да повторите своите 3rd или 6ти предишна команда. В този случай ще трябва да вземете под внимание идентификатора на събитието, свързан с командата. След това ще комбинирате идентификатора на събитието с тире и единичен удивителен знак, както следва.

!-21

изпълнение на която и да е предишна команда в историческия файл

От своя страна исках да попитам за моите 21ул предишна команда и се оказа заявка за пинг за моя IP адрес на localhost. Използването на тази последователност от команди е полезно, когато искате да проверите противопоставена предварително изпълнена команда и да определите дали параметрите, с които сте я изпълнили, все още са валидни или не са предубедени.

Командни низове

Да приемем, че сте изпълнили някаква команда на вашия терминал, но не сте запомнили напълно командата. Вие обаче сте сигурни в ефективността на командата и как тя ви е помогнала. Познаването на част от низа, съставляваща тази команда, е много полезно. В моя случай съм много сигурен, че веднъж съм изпълнил команда за актуализиране на системата ми. Да кажем, че тепърва ще запомня тази команда за актуализация на системата, но знам, че част от командата съдържа низа „apt“ като начална формулировка на командата. За да използвам тази команда отново, ще напиша следната команда на моя терминал. Тъй като обаче повечето команди за актуализация на системата изискват разрешение на потребител на sudoer, ще добавя пред командния низ, който искам да използвам със Sudo.

Судо !подходящ

команда за история с низове

Както можете да видите, аз успешно актуализирах своята Linux система от командния ред, без да използвам пълната команда „sudo apt update“. Този хак от ръководството за команди на историята на Linux е полезен при работа с по-дълги команди, които може да са досадни за въвеждане или да доведат до заядлива печатна грешка. Може да редактирате файл, чийто относителен път създава продължителна команда или просто копирате файлове. Така или иначе, имате нужда от подход без стрес за рециклиране на вашите повтарящи се команди.

Тъй като засегнахме аспекта на оторизацията на потребителите на sudoer, може да се окажем удрящи се в стена, ако не внимаваме. Повечето команди от привилегировани потребители на sudoer ще изискват префикса Sudo за изпълнение. Следователно въвеждане на низ команда като '!sudo 'за командите, които започват със Sudo, може да не е достатъчно, тъй като може да доведе до изпълнение на нежелана последователност от команди. Въпреки това можем да осигурим предпазна мрежа чрез използването на параметъра: p, който е модификатор на печат. Следователно комбинирането на командата ни с нея трябва да даде резултати като следните.

!sudo: стр

команда за история с модификатора за печат

Командата отпечата наличните команди Sudo, които току-що използвах. За да използвам повторно тази команда, ще използвам клавиша със стрелка нагоре на клавиатурата и натискам enter, за да я изпълня. Ако списъкът показваше повече от една команда Sudo, пак щях да използвам клавиша със стрелка нагоре, за да отида до конкретната команда Sudo, която исках да използвам повторно.

Това не са всички опции, които имаме за работа със струни. Има и случай, когато знаете само за определен низ, дефиниран в командата, която искате да използвате. Това е случай, когато не сте сигурни в първите низове, които определят командата, която сте използвали преди. Тук ще използвате както удивителен знак, така и въпросителен, за да намерите вашата команда.

!?пинг

изпълнение на конкретна команда от историческия файл чрез низове

Използвах!?ping 'командна последователност, която незабавно изпълни предишната ми заявка за ping. Можете да използвате тази последователност за изпълнение на предишни команди на вашия терминал, които са уникални за другите.

Интерактивно търсене

Да предположим, че имате няколко предишни команди, които сте изпълнили, и те имат подобни или съвпадащи последователности от низове. От всички тези съвпадащи реплики може да искате да изпълните само определена последователност от команди в това сгъване. Интерактивното търсене ви позволява да стигнете до тази една команда, която искате да изпълните. За да започнете интерактивно търсене, комбинирайте клавишите Ctrl + r. Дисплеят на вашия терминал на Linux трябва да изглежда подобно на този по-долу.

команда за история и интерактивно търсене

Просто въведете указанието за търсене на командата, която трябва да изпълните. В моя случай написах „apt“ и както виждате, той се появи между апострофа и обратния удар. Можете да въведете като повече низове улики за заявената команда и интерактивното търсене непрекъснато ще актуализира свързаните резултати. Натискането на enter веднага ще изпълни намерената команда.

sudo apt актуализация

с помощта на интерактивно търсене

Освен това може да искате да редактирате намерената команда, преди да я изпълните. За целта използвайте лявата и дясната стрелка на клавиатурата. Намерената команда ще се покаже на терминала, където можете да направите необходимите промени.

sudo apt update && cd FOSSLinux

редактиране на интерактивно търсене

Изтриване на команди за история

Досега вече можете да извличате, заявявате, актуализирате и изпълнявате команди от историческия файл. Възможно е обаче да търсите начин да изпразните списъка с история на някои или всички негови команди. Може би вие сте този тип потребител, който не иска никой да проследява как е използвал своята Linux система. Параметърът -d ви помага да се отървете от някои нежелани команди във файла с история. В моя случай моят исторически файл съдържа грешно написана команда с идентификационен номер на събитие 44.

команда за намиране на история за изтриване

За да се отърва от тази грешно написана команда, ще направя следното на моя терминал.

история -d 44

използване на идентификатор на събитие за изтриване на команда за история

Повторното стартиране на командата 'history' показва, че грешно написаната команда е изтрита.

потвърждаващ изтриването на командата history

Опцията за изтриване не се отнася само за една команда, тъй като обхваща и набор от команди. Например, помислете за следната команда.

история -d 10 20

Тази команда ще изтрие записите във файла с история от идентификатор на събитие 10 до идентификатор на събитие 20. Друга команда за история, която трябва да се разгледа, е следната.

история -d -6

Тази команда ще се отърве от последните шест команди, които сте въвели на терминала, съхранени във файла с история.

Ако искате да изчистите всичко от списъка с файлове с история, можете да се подиграете със следната команда.

история -в

изчистване на всички команди за история

Заключение

Сега имате цялата необходима информация, за да решите дали историята на терминала ви трябва да се повтаря или не. За напреднали потребители има случаи, в които можете да стартирате приложение през терминала и може да бъдете подканени да оставите следа от чувствителна информация зад себе си. Файлът за история също съхранява такива чувствителни данни. Следователно е добра практика винаги да изчиствате файла си с история, преди да излезете от командния ред, особено в случаите, които водят до съхранение на чувствителни данни. Командата за история ви дава силата да преживеете добрите времена в терминала и също така да коригирате вашите минали грешки в командния ред.

Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...
0 А.д. Урок
От многото стратегически игри, 0 A.д. успява да се открои като изчерпателно заглавие и много дълбока, тактическа игра, въпреки че е с отворен код. Раз...
Урок за Unity3D
Въведение в Unity 3D Unity 3D е мощен двигател за разработка на игри. Това е кръстосана платформа, която ви позволява да създавате игри за мобилни уст...