Xya qhov kev npaj txhij txog Bash hloov pauv

Txuas ntxiv cov ntawv sau txog tsawg dua paub muaj nuj nqi bash, Kuv mam li qhia koj xya qhov sib txawv uas koj yuav tsis paub txog.

1) PROMPT_COMMAND

Tej zaum koj twb paub yuav ua li cas los tswj cov lus qhia kom qhia ntau yam ntaub ntawv muaj txiaj ntsig, tab sis tsis yog txhua tus paub tias koj tuaj yeem khiav lub plhaub lus txib txhua lub sijhawm qhia.

Qhov tseeb, ntau tus neeg ua haujlwm tam sim no siv qhov sib txawv no los ua cov lus txib los sau cov ntaub ntawv uas tau tshwm sim hauv qhov kev sim.

Sim khiav qhov no hauv lub plhaub tshiab thiab saib seb yuav ua li cas rau qhov kev sib kho:

$ PROMPT_COMMAND='echo -n "writing the prompt at " && date'

2) HISTTIMEFORMAT

Yog koj khiav history nyob rau hauv lub console, koj yuav tau txais ib daim ntawv teev cov commands yav tas los ua nyob rau hauv koj tus account.

$ HISTTIMEFORMAT='I ran this at: %d/%m/%y %T '

Thaum qhov kev hloov pauv no tau teeb tsa, cov ntawv nkag tshiab sau lub sijhawm nrog rau cov lus txib, yog li cov zis yuav zoo li no:

1871 Kuv khiav qhov no ntawm: 01/05/19 13:38:07 cat /etc/resolv.conf 1872 Kuv khiav qhov no ntawm: 01/05/19 13:38:19 curl bbc.co.uk 1873 Kuv khiav qhov no ntawm : 01/05/19 13:38:41 sudo vi /etc/resolv.conf 1874 Kuv khiav qhov no ntawm: 01/05/19 13:39:18 curl -vvv bbc.co.uk 1876 Kuv khiav qhov no ntawm: 01 /05/19 13:39:25 sudo su -

Formatting phim cov cim los ntawm man date.

3) CDPATH

Txhawm rau txuag lub sijhawm ntawm kab hais kom ua, koj tuaj yeem siv qhov hloov pauv no los hloov cov npe tau yooj yim thaum koj tshaj tawm cov lus txib.

Zoo li PATH, sib txawv CDPATH yog ib daim ntawv teev cov kab mob sib cais. Thaum koj khiav qhov hais kom ua cd nrog rau txoj kev txheeb ze (piv txwv li tsis muaj kev txiav), los ntawm lub neej ntawd lub plhaub zoo li hauv koj lub zos nplaub tshev rau cov npe sib xws. CDPATH yuav tshawb hauv txoj hauv kev uas koj tau muab rau cov npe koj xav mus.

Yog tias koj nruab CDPATH Txoj kev no:

$ CDPATH=/:/lib

thiab tom qab ntawd nkag mus:

$ cd /home
$ cd tmp

ces koj yeej yuav xaus rau hauv /tmp txawm koj nyob qhov twg.

Txawm li cas los xij, ceev faj, vim tias yog tias koj tsis qhia lub zos hauv daim ntawv teev npe (.) nplaub tshev, ces koj yuav tsis muaj peev xwm tsim lwm yam nplaub tshev tmp thiab mus rau nws li qub:

$ cd /home
$ mkdir tmp
$ cd tmp
$ pwd
/tmp

Oops!

Qhov no zoo ib yam li qhov tsis meej pem uas kuv xav tau thaum kuv pom tau hais tias cov ntawv tais ceev tseg hauv zos tsis suav nrog cov kev paub ntau dua PATH... tab sis koj yuav tsum ua nws hauv koj qhov kev sib txawv ntawm PATH vim tias koj yuav raug ntxias kom khiav cov lus txib cuav los ntawm qee qhov rub tawm code.

Kuv yog teem los ntawm qhov chaw pib:

CDPATH=.:/space:/etc:/var/lib:/usr/share:/opt

4) SHLVL

Koj puas tau xav paub, ntaus ntawv exit nws puas yuav coj koj tawm ntawm koj lub plhaub bash tam sim no mus rau lwm lub plhaub "niam txiv", lossis nws puas tsuas yog kaw lub qhov rais console tag?

Qhov kev sib txawv no ua raws li qhov tob npaum li cas koj nyob hauv lub plhaub bash. Yog tias koj tsim lub davhlau ya nyob twg tshiab, nws yog teem rau 1:

$ echo $SHLVL
1

Tom qab ntawd, yog tias koj pib lwm txheej txheem plhaub, tus lej nce:

$ bash
$ echo $SHLVL
2

Qhov no tuaj yeem muaj txiaj ntsig zoo hauv cov ntawv sau uas koj tsis paub meej tias yuav tawm lossis tsis tawm, lossis taug qab qhov chaw koj nyob ze.

5) LINENO

Qhov sib txawv kuj tseem muaj txiaj ntsig rau kev txheeb xyuas lub xeev tam sim no thiab kev debugging LINENO, uas qhia txog tus naj npawb ntawm cov lus txib tau ua nyob rau hauv qhov kev sib kho kom deb li deb:

$ bash
$ echo $LINENO
1
$ echo $LINENO
2

Qhov no feem ntau yog siv thaum debugging scripts. Ntxig kab zoo li echo DEBUG:$LINENO, koj tuaj yeem txiav txim siab sai sai qhov twg hauv tsab ntawv koj nyob (lossis tsis).

6) REPLY

Yog tias, zoo li kuv, koj feem ntau sau code zoo li no:

$ read input
echo do something with $input

Nws tuaj yeem yog qhov xav tsis thoob uas koj tsis tas yuav txhawj xeeb txog kev tsim qhov sib txawv ntawm txhua qhov:

$ read
echo do something with $REPLY

Qhov no ua tib yam nkaus.

7) TMOUT

Txhawm rau kom tsis txhob nyob twj ywm ntawm cov servers ntau lawm ntev rau kev nyab xeeb vim li cas los yog ua yuam kev ua ib yam dab tsi txaus ntshai hauv lub davhlau ya nyob twg tsis ncaj ncees lawm, teeb tsa qhov hloov pauv no ua kev tiv thaiv.

Yog tias tsis muaj dab tsi nkag mus rau lub sijhawm teem sijhawm, lub plhaub tawm.

Ntawd yog, qhov no yog lwm txoj hauv kev sleep 1 && exit:

$ TMOUT=1

Tau qhov twg los: www.hab.com

Ntxiv ib saib