Jotkut Bash-vaihtoehdot ovat hyvin tunnettuja ja usein käytettyjä. Esimerkiksi monet ihmiset kirjoittavat käsikirjoituksen alkuun
aseta -o xtrace
virheenkorjausta varten,
aseta -o errexit
poistuaksesi vahingossa tai
set -o errunset
poistuaksesi, jos kutsuttua muuttujaa ei ole asetettu.
Mutta on monia muitakin vaihtoehtoja. Joskus ne kuvataan manasissa liian hämmentävästi, joten olen koonnut tähän joitain hyödyllisimpiä selityksineen.
Huomautus: Maceissa voi olla vanhempi bash-versio (3.x 4.x:n sijaan), jossa kaikki nämä vaihtoehdot eivät ole käytettävissä. Tässä tapauksessa katso
set
tai shopt
?
Bash-asetukset voidaan asettaa kahdella tavalla: komentosarjasta tai komentoriviltä. Voit käyttää sisäänrakennettuja komentoja set
и shopt
. Molemmat muuttavat kuoren käyttäytymistä, tekevät paljolti saman asian (eri argumenteilla), mutta eroavat toisistaan set
ovat peritty tai lainattu muiden kuorien parametreista, kun taas parametrit shopt
luotu bashissa.
Jos haluat nähdä nykyiset vaihtoehdot, suorita:
$ set -o
$ shopt
Aktivoidaksesi vaihtoehdon sisään set
Pitkää tai lyhyttä syntaksia käytetään:
$ set -o errunset
$ set -e
Vaikutus on sama.
Voit poistaa vaihtoehdon käytöstä lisäämällä plusmerkin miinuksen sijaan:
$ set +e
Pitkään aikaan en muistanut tätä syntaksia, koska logiikka vaikutti väärältä (miinusmerkki ottaa vaihtoehdon käyttöön ja plusmerkki poistaa sen käytöstä).
В shopt
(loogisempia) lippuja käytetään ottamaan käyttöön ja poistamaan asetukset -s
(sarja) ja -u
(ei asetettu):
$ shopt -s cdspell # <= on
$ shopt -u cdspell # <= off
Hakemistojen vaihtaminen
On olemassa useita vaihtoehtoja, jotka auttavat sinua työskentelemään hakemistojen kanssa.
1.cdspell
Tällä asetuksella bash alkaa ymmärtää kirjoitusvirheet ja vie sinut kansioon, jonka nimen kirjoitit väärin.
$ shopt -s cdspell
$ mkdir abcdefg
$ cd abcdeg
abcdefg
$ cd ..
Olen käyttänyt tätä vaihtoehtoa monta vuotta ja hyvin harvoin (ehkä kerran vuodessa) se tekee hyvin outoa päätöstä. Mutta muina päivinä cdspell
säästää aikaa, kirjaimellisesti joka päivä.
2. autocd
Jos et ole valmis hyväksymään useiden merkintöjen tehottomuutta cd
, voit asettaa tämän vaihtoehdon siirtymään X-kansioon, jos X-komentoa ei ole olemassa.
$ shopt -s autocd
$ abcdefg
$ cd ..
Yhdessä automaattisen täydennyksen kanssa voit siirtyä nopeasti kansioiden välillä:
$ ./abc[TAB][RETURN]
cd -- ./abcdefg
Älä vain nimeä kansiota rm -rf *
(kyllä, tämä on muuten mahdollista).
3.suuntaa laajentaa
Tämä on hieno vaihtoehto, joka laajentaa ympäristömuuttujia painamalla sarkainta:
$ shopt -s direxpand
$ ./[TAB] # заменяется на...
$ /full/path/to/current_working_folder
$ ~/[TAB] # заменяется на...
$ /full/path/to/home/folder
$ $HOME/[TAB] # заменяется на...
$ /full/path/to/home/folder
puhdas lähtö
4. Tarkista työt
Tämä vaihtoehto lopettaa istunnosta uloskirjautumisen, jos taustalla on vielä töitä käynnissä.
Poistumisen sijaan näytetään luettelo keskeneräisistä tehtävistä. Jos haluat silti poistua, syötä uudelleen exit
.
$ shopt -s checkjobs
$ echo $$
68125 # <= ID процесса для оболочки
$ sleep 999 &
$ exit
There are running jobs.
[1]+ Running sleep 999 &
$ echo $$
68125 # <= ID процесса для оболочки тот же
$ exit
There are running jobs.
[1]+ Running sleep 999 &
$ exit
$ echo $$
$ 59316 # <= на этот раз ID процесса изменился
Korvaussupervoimat
5.globstar
Tämä vaihtoehto antaa sinulle korvaavia supervoimia! Jos syötät:
$ shopt -s globstar
$ ls **
sitten komentotulkki näyttää kaikki hakemistot ja alihakemistot rekursiivisesti.
Yhdessä direxpand
Voit nopeasti tarkastella kaikkea hierarkian alempana:
$ shopt -s direxpand
$ ls **[TAB][TAB]
Display all 2033 possibilities? (y or n)
6.extglob
Tämä vaihtoehto ottaa käyttöön ominaisuuksia, jotka liittyvät yleisemmin säännöllisiin lausekkeisiin. Joskus tämä on erittäin hyödyllistä:
$ shopt -s extglob
$ touch afile bfile cfile
$ ls
afile bfile cfile
$ ls ?(a*|b*)
afile bfile
$ ls !(a*|b*)
cfile
Tässä kuviot on sijoitettu sulkeisiin ja erotettu toisistaan pystypalkilla. Tässä ovat käytettävissä olevat operaattorit:
? = vastaa nollaa tai yhtä esiintymää annetuista kuvioista! = näytä kaikki mikä ei vastaa annettuja malleja * = nolla tai useampi esiintyminen + = yksi tai useampi esiintyminen @ = täsmälleen yksi esiintyminen
Onnettomuussuoja
7. histverify
Aluksi voi olla hieman pelottavaa käyttää pikakäynnistyskomentoja lyhenteiden historiasta !!
и !$
.
Vaihtoehto histverify
voit ensin nähdä kuinka Bash tulkitsee komennon ennen kuin se todella suoritetaan:
$ shopt -s histverify
$ echo !$ # <= По нажатию Enter команда не запускается
$ echo histverify # <= Она сначала демонстрируется на экране,
histverify # <= а потом запускается
8. Noclobber
Jälleen suojautuaksesi onnettomuuksilta, nimittäin jo olemassa olevan tiedoston korvaamiselta uudelleenohjausoperaattorilla (>
). Tämä voi olla katastrofi, jos sinulla ei ole varmuuskopiota.
Vaihtoehto set -С
kieltää tällaisen päällekirjoituksen. Tarvittaessa voit ohittaa suojauksen operaattorin avulla >|
:
$ touch afile
$ set -C
$ echo something > afile
-bash: afile: cannot overwrite existing file
$ echo something >| afile
$
Lähde: will.com