GNU/Linux >> Znalost Linux >  >> Linux

Přizpůsobení prostředí Bash

Shell Bash je prostředí pro zpracování příkazů, které mnoho systémových administrátorů a vývojářů používá každý den. Poprvé byl vyvinut v roce 1989 a od doby, kdy byl Linux vytvořen, byl výchozím shellem pro mnoho distribucí. Ve většině případů je Bash nebo 'Bourne-again shell' rámcem, ve kterém pracujete pokaždé, když otevřete příkazový řádek. Má také svůj vlastní skriptovací jazyk a může se pochlubit velkým množstvím nástrojů pro ty, kteří mají mentální disciplínu, aby se je naučili.

Proč byste přizpůsobili svůj shell?

Skořápka Bash nabízí spoustu užitečných funkcí, ale není to dokonalý systém. V průběhu let nacházeli nadšenci příkazového řádku nedostatky a vylepšovali různé shelly a Bash není výjimkou. Existuje spousta doplňků, které můžete do Bash přidat. Vše od smysluplných změn funkčnosti až po zkratky a estetické změny provedené podle vašeho osobního vkusu. To znamená, že každý má svůj vlastní preferovaný vkus estetiky, takže se zaměřím na změny funkčnosti.

Začněte v malém

Nejjednodušší způsob, jak začít s přizpůsobením prostředí, je zjistit, kde trávíte většinu času příkazového řádku. Zjistili jste, že používáte grep? a netstat často? Pohybujete se po souborovém systému nesčetněkrát za hodinu? Pokud ano, jak můžete tyto úkoly zefektivnit? V prvním článku, který jsem kdy napsal pro tento web, jsem mluvil o automatizačním skriptu zvaném AutoHotkey. Bohužel běží pouze na Windows. Byl jsem vyzván čtenářem, abych našel něco, co by mohl použít pro Linux ke splnění stejných úkolů. I když pro tuto výzvu neexistuje úhledně zabalené řešení, můžete si vytvořit alias pro modifikované příkazy uvnitř vašeho shellu se stejným efektem. I když to může být trochu časově náročné, pokud si uděláte čas naučit se aliasing a vytvořit si vlastní, budete pro něj chytřejší a efektivnější sysadmin.

Rick Greene, člen komunity Enable Sysadmin, sdílel jeden ze svých oblíbených aliasů, kde pomocí sudo povýšil na kořenový shell. .

alias root="sudo su - root"

Ve skutečnosti pracuje jako root uživatele při sledování jeho akcí v systému pomocí vlastního hesla uživatelského účtu. I když zde preferovanou metodou by bylo použití sudo Před jakoukoli akcí je krása tohoto příkladu v tom, že Bash umožňuje každému uživateli vytvořit řešení, které mu vyhovuje! Můžete alias prakticky každý příkaz ve vašem shellu. Doporučuji, abyste si teď zkusili vytvořit několik vlastních aliasů.

[ Informace o vytváření aliasů v Linuxu naleznete v mém předchozím článku. ]

X> f(x)

Pokud jste matematicky nakloněni, už víte, o čem zde mluvíme. Funkce se dostaly z vašich nočních můr ve třídě do vašeho pracovního života! Dobrou zprávou je, že jsou docela jednoduché a mohou být velmi užitečné. Umožňují nám most mezi aliasingem a plnohodnotným skriptováním. Velkým přínosem je, že můžete spojit více příkazů dohromady. Podívejme se na syntaxi pro vytvoření těchto funkcí a praktický příklad použití. Chcete-li vytvořit funkci, použijte následující syntaxi:

function_name () {command1; command2;}
#You MUST use a semicolon after each command, including the last. 

Jak bychom to použili? Jedním z nejlepších příkladů, které jsem viděl plout po webu, je funkce umožňující vytvořit nový adresář a poté se do něj okamžitě přesunout. Tato funkce by vypadala nějak takto:

mkd () {mkdir -p $1; cd $1;}

Nyní, když vytvoříme adresář s názvem func_test pomocí mkd vidíme, že nás automaticky umístí do nového adresáře.

# mkd func_test
# pwd
# Home/user/func_test

Historie se opakuje? Pouze pokud chcete...

Před napsáním tohoto článku jsem požádal naši komunitu přispěvatelů o zpětnou vazbu na jejich oblíbená vylepšení Bash. Ve všech odezvách, které jsem obdržel, bylo společné téma. Lidé chtějí změnit způsob, jakým Bash history provozuje. Jednou z nejužitečnějších změn, které jsem viděl, byla možnost odstranit duplicitní záznamy z history .

Seth Kenlon z Opensource.com poslal následující ze svého .bashrc soubor. Umožňuje history ignorovat duplicitní položky a příkazy začínající mezerou.

"export HISTCONTROL=$HISTCONTROL:ignorespace:ignoredups"

Red Hatter Steve Newsted mě upozornil na skvělé vlákno na StackExchange, kde uživatel chtěl změnit history Bash pamatovat si vše z každého terminálu na svém počítači a přitom mít tuto history být přístupné z každého terminálu na uvedeném stroji. Podívejte se na kreativitu odpovědi od suntzuisafterU. Stačí přidat následující do vašeho ~/.bashrc soubor.

#Avoid duplicates
HISTCONTROL=ignoredups:erasedups  
# When the shell exits, append to the history file instead of overwriting it
shopt -s histappend

# After each command, append to the history file and reread it
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"

Další kroky

Nyní můžete vidět nepřeberné množství změn, optimalizací a přizpůsobení, které jsou k dispozici v Bash. Tento článek pouze poškrábe povrch toho, co můžete v rámci shellu dělat. Vydejte se a prozkoumejte to sami! Pokud máte oblíbený doplněk Bash, neváhejte ho poslat týmu na adresu [email protected]. Rád bych viděl některá kreativní řešení, která naši čtenáři používají!

[ Potřebujete další pomoc se zahájením správy systému Linux? Absolvujte kurz správy systému Red Hat. ]


Linux
  1. Účel .bashrc a jak to funguje?

  2. The Bash ‘?

  3. Funkce v proměnných Shell?

  1. Moc (Shell) lidem

  2. Jak BASH Shell načítá své konfigurační soubory v Linuxu

  3. Jaký je rozdíl mezi &> a >&v bash?

  1. Rychlá navigace v adresáři v prostředí Bash?

  2. Příkaz „eval“ v Bash?

  3. Jaké jsou speciální parametry/proměnné (bash) Shell?