Pagsabot sa Shell Initialization Files ug User Profile sa Linux


Ang Linux usa ka multi-user, time sharing system, nga nagpasabot nga labaw sa usa ka user ang maka-log in ug makagamit og sistema. Ug ang mga tagdumala sa sistema adunay tahas sa pagdumala sa lainlaing mga aspeto kung giunsa ang lainlaing mga tiggamit makalihok sa usa ka sistema sa mga termino sa pag-install/pag-update/pagtangtang sa software, mga programa nga mahimo nilang madagan, mga file nga mahimo nilang tan-awon/i-edit ug uban pa.

Gitugotan usab sa Linux ang mga palibot sa mga tiggamit nga mahimo o mamentinar sa duha ka dagkong mga paagi: gamit ang tibuuk nga sistema (global) ug piho nga tiggamit (personal) nga mga pag-configure. Kasagaran, ang sukaranan nga pamaagi sa pagtrabaho sa usa ka sistema sa Linux mao ang kabhang, ug ang kabhang nagmugna usa ka palibot depende sa pipila nga mga file nga gibasa niini sa panahon sa pagsugod niini pagkahuman sa usa ka malampuson nga pag-login sa gumagamit.

Niini nga artikulo, among ipasabut ang mga file sa pagsugod sa shell kalabot sa mga profile sa gumagamit alang sa pagdumala sa lokal nga tiggamit sa Linux. Ipahibalo namo kanimo kung asa ibutang ang custom nga mga function sa shell, mga alias, mga variable ingon man mga startup nga mga programa.

Importante: Alang sa katuyoan niini nga artikulo, mag-focus kami sa bash, usa ka sh compatible shell nga mao ang labing popular/gigamit nga shell sa mga sistema sa Linux didto.

Kung naggamit ka ug lain nga kabhang (zsh, abo, isda ug uban pa) nga programa, basaha ang dokumentasyon niini aron mahibal-an ang dugang bahin sa pipila ka mga may kalabutan nga mga file nga atong hisgutan dinhi.

Shell Initialization sa Linux

Sa diha nga ang kabhang gisangpit, adunay pipila ka mga inisyal/pagsugod nga mga file nga mabasa niini nga makatabang sa pag-setup sa usa ka palibot alang sa kabhang mismo ug sa sistema nga tiggamit; nga gitakda nang daan (ug gipahiangay) nga mga gimbuhaton, mga variable, alias ug uban pa.

Adunay duha ka mga kategorya sa mga file sa pagsugod nga gibasa sa kabhang:

  • system-wide startup files – ang mga theses adunay mga global configurations nga magamit sa tanang user sa system, ug kasagaran anaa sa /etc directory. Kini naglakip sa: /etc/profiles ug /etc/bashrc o /etc/bash.bashrc.
  • mga file sa pagsugod nga espesipiko sa user – kini nga mga configuration sa tindahan nga magamit sa usa ka user sa sistema ug kasagaran anaa sa home directory sa mga user isip dot files. Mahimo nilang i-override ang mga configuration sa tibuok sistema. Kini naglakip sa: .profiles, .bash_profile, .bashrc ug .bash_login.

Pag-usab, ang kabhang mahimong gamiton sa tulo ka posible nga mga paagi:

Ang kabhang gisangpit human ang usa ka user malamposong makasulod sa sistema, gamit ang /bin/login, human mabasa ang mga kredensyal nga gitipigan sa /etc/passwd file.

Sa diha nga ang kabhang gisugdan ingon nga usa ka interactive nga kabhang sa pag-login, kini nagbasa sa /etc/profile ug sa iyang espesipikong user nga katumbas ~/.bash_profile.

Ang kabhang gisugdan sa command-line gamit ang shell program pananglitan $/bin/bash o $/bin/zsh. Mahimo usab kini nga sugdan pinaagi sa pagpadagan sa /bin/su nga sugo.

Dugang pa, ang usa ka interactive nga non-login shell mahimo usab nga gamiton sa usa ka terminal nga programa sama sa konsole, xterm gikan sa sulod sa usa ka graphical nga palibot.

Sa diha nga ang kabhang gisugdan niini nga estado, kini nagkopya sa palibot sa ginikanan nga kabhang, ug nagbasa sa user-specific ~/.bashrc file alang sa dugang nga startup configuration instruksyon.

$ su
# ls -la

Ang kabhang gisangpit kung ang usa ka script sa kabhang nagdagan. Niini nga mode, nagproseso kini og script (set sa shell o generic system commands/functions) ug wala magkinahanglan og input sa user tali sa mga commands gawas kung dili. Naglihok kini gamit ang palibot nga napanunod gikan sa parent shell.

Pagsabot sa System-wide Shell Startup Files

Sa kini nga seksyon, hatagan namon ang dugang nga kahayag sa mga file sa pagsugod sa shell nga nagtipig sa mga pagsulud alang sa tanan nga mga tiggamit sa sistema ug kini naglakip sa:

Ang /etc/profile file – kini nagtipig sa tibuok sistema nga mga configuration sa palibot ug mga startup programs para sa login setup. Ang tanan nga mga pag-configure nga gusto nimong ipadapat sa tanan nga mga palibot sa mga tiggamit sa sistema kinahanglan idugang sa kini nga file.

Pananglitan, mahimo nimong itakda ang imong global PATH environment variable dinhi.

# cat /etc/profile

Mubo nga sulat: Sa pipila ka mga sistema sama sa RHEL/CentOS 7, makadawat ka ug mga pasidaan sama sa \Dili girekomenda nga usbon kini nga file gawas kung nahibal-an nimo kung unsa ang imong gibuhat. Mas maayo nga maghimo usa ka naandan nga .sh shell script sa /etc/ profile.d/ sa paghimo og custom nga mga kausaban sa imong palibot, tungod kay kini makapugong sa panginahanglan sa paghiusa sa umaabot nga mga update.

Ang /etc/profile.d/ directory – nagtipig sa mga script sa kabhang nga gigamit sa paghimo og mga pagbag-o sa imong palibot:

# cd /etc/profile.d/
# ls  -l 

Ang /etc/bashrc o /etc/bash.bashrc nga payl – naglangkob sa tibuok sistema nga mga gimbuhaton ug mga alyas lakip na ang ubang mga configuration nga magamit sa tanang tiggamit sa sistema.

Kung ang imong sistema adunay daghang mga klase sa kabhang, maayo nga ideya nga ibutang ang mga pagsiguro nga piho sa bash sa kini nga file.

# cat /etc/bashrc

Pagsabot sa User-specific Shell Startup Files

Sunod, ipatin-aw namo ang dugang mahitungod sa user-specific shell (bash) startup dot files, nga nagtipig sa mga configuration alang sa usa ka partikular nga user sa sistema, kini nahimutang sa home directory sa usa ka user ug naglakip kini:

# ls -la

Ang ~/.bash_profile nga payl - kini nagtipig sa piho nga palibot sa user ug mga configuration sa startup programs. Mahimo nimong itakda ang imong naandan nga PATH environment variable dinhi, sama sa gipakita sa screenshot sa ubos:

# cat ~/.bash_profile

Ang ~/.bashrc file – kini nga payl nagtipig sa piho nga mga alyas ug mga gimbuhaton sa user.

# cat ~/.bashrc

Ang ~/.bash_login file - kini adunay mga piho nga mga pag-configure nga kasagarang gipatuman lamang kung mag log in ka sa sistema. Kung wala ang ~/.bash_profile, kini nga file basahon sa bash.

Ang ~/.profile file – kini nga payl gibasa kung walay ~/.bash_profile ug ~/.bash_login; kini makatipig sa sama nga mga configuration, nga mahimo usab nga ma-access sa ubang mga shells sa sistema. Tungod kay nag-una na kami sa paghisgot bahin sa bash dinhi, timan-i nga ang ubang mga shells tingali dili makasabut sa bash syntax.

Sunod, ipatin-aw usab namo ang duha pa ka importante nga piho nga mga file sa user nga dili kinahanglan nga bash initialization files:

Ang ~/.bash_history file - bash nagmintinar sa kasaysayan sa mga sugo nga gisulod sa usa ka user sa sistema. Kini nga lista sa mga sugo gitipigan sa home directory sa usa ka user sa ~/.bash_history file.

Aron makita kini nga lista, i-type ang:

$ history 
or 
$ history | less

Ang ~/.bash_logout file - wala kini gigamit alang sa pagsugod sa shell, apan nagtipig sa piho nga mga panudlo sa user alang sa pamaagi sa pag-logout. Kini gibasa ug gipatuman kung ang usa ka user mogawas gikan sa usa ka interactive login shell.

Usa ka praktikal nga pananglitan pinaagi sa paghawan sa terminal window sa pag-logout. Importante kini alang sa hilit nga mga koneksyon, nga magbilin og limpyo nga bintana human sa pagsirado niini:

# cat bash_logout 

Alang sa dugang nga mga panabut, tan-awa ang mga sulud sa kini nga mga file sa pagsugod sa shell sa lainlaing mga distro sa Linux ug basaha usab ang panid sa tawo nga bash:

Kana lang sa pagkakaron! Niini nga artikulo, among gipatin-aw ang shell startup/initialization files sa Linux. Gamita ang comment form sa ubos para magsulat balik kanamo.