Управление на историята на командния ред в Linux
Ако прекарвате много време в Linux, има смисъл да се научите как да оптимизирате използването на опциите от командния ред - особено времето, през което прекарвате в командите. Повечето потребители на Linux познават основната история на команден ред на Linux. Най-простият начин да избегнете натискането на команда е да натиснете клавиша със стрелка нагоре, докато не намерите командата си или да използвате простия !!
за последната изпълнена команда. Днес ще ви покажем няколко относително неизвестни и въпреки това ефективни начини, по които можете да използвате историята на Linux, за да ускорите начина, по който работите.
Разширете смирения! да работят за вас
Кажете, че сте изпълнили команда, която изискваше привилегия на root, но сте забравили да направите sudo
. Вместо да го изпишете отново или да се придвижите нагоре и после да тръгнете, ето какво можете да направите
$ touch build_04052014.tgz докосване: не може да се докосне "build_04052014.tgz": Разрешението е отказано $ sudo !! sudo докосване new_binary [sudo] парола за richa:
Ако искате да запазите предишната команда в нов скрипт, ето как можете да направите това, без да се налага да я изписвате
$ touch build_04052014.tgz $ echo !! > script1.sh $ cat script1.sh докосване build_04052014.tgz
Команда за търсене и изпълнение от историята
Достъпът до последната команда за изпълнение има ограничена употреба. Понякога бихте искали да търсите в историята, за да откриете неясна или наистина голяма команда, която сте изписали. Просто търсене в ![keyword]
ви позволява да получите достъп до него. Например, имахте голяма команда, която бихте изпълнявали сутрин, и не помните напълно опциите, които сте дали, но все пак искате да го стартирате отново. Ако това е екранна снимка на историята ви от този момент:
И така, как да стартирате тази команда отново? Просто го направи:
$! make brutus.mk && tar brutus / * brutus.tgz && cp brutus.tgz ../output Строителство ....
Как да пренесете аргумент от предишната команда
Понякога може да не искате да изпълнявате по-ранна команда, а просто да пренесете аргумента. Можете да използвате оператора " !$
", Както е показано по-долу.
Ако има няколко аргумента към предишната ви команда и искате да имате достъп само до първия, можете да използвате " !^
"
$ ls * .png * .txt * .tgz build_04052014.tgz OOO2.png out2.png unix.txt OOO1.png out1.png out3.png windows.txt $ ls -a! ^ ls -a * .png OOO1.png OOO2.png out1.png out2.png out3.png
За да отворите аргумент номер x, просто използвайте " ![prev_command]:[argument_number]
". Примерът по-долу показва по-ясно.
$ ls * .png * .txt * .tgz build_04052014.tgz OOO2.png out2.png unix.txt OOO1.png out1.png out3.png windows.txt $ ls -a! ls: 3 ls -a * .tgz build_04052014 .tgz
Ами ако имате някаква команда, която изобщо не искате да се появи в историята - ако просто искате да премахнете дубликатите и да имате по-чиста история. Можете да зададете променливата на средата HISTCONTROL, за да се справите с нея. Ето как да го направите.
$ export HISTCONTROL = изтрити
Предотвратяване на появата на команда в историята
Понякога може да попречите да не се показват прости команди в историята като " ls
" или " pwd
". В такива случаи можете да им попречите да се показват в историята, като използвате отново командата HISTCONTROL, както направихме в горния пример. Обикновено обаче не е добра идея скритата команда да не се появява в историята.
За да скриете команда, първо трябва да настроите HISTCONTROL да пренебрегва интервалите, т.е. да игнорира всички команди, които започват с интервал. След това, когато въведете командата, не забравяйте да добавите допълнително място, преди да въведете. Това ще попречи на историята да запомни командата.
$ export HISTCONTROL = ignorespace
Само ако има някаква странна причина, може да искате да деактивирате изцяло вашата Linux история. За да направите това, можете да използвате следната команда:
$ export HISTSIZE = 0
Ако търсите историята си сега, тя ще бъде празна. Имайте предвид, че командата HISTSIZE може да се използва и за промяна на размера на вашата история. Ако искате да запазите повече команди в историята, отворете файла .bash_profile в началната си директория и променете HISTSIZE (го направете по-голям или по-малък).
Кредит на изображението: bash командния ред linux черупки терминал, Въведение в командния ред покритие