Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

Quando um shell de login sai, bater lê e executa comandos do arquivo ~ / .bash_logout, se existir. Este procedimento é explicado em detalhes no entrar e bater páginas do manual.

7.2.3. Um conjunto típico de arquivos de configuração


7.2.3.1. / etc / exemplo de perfil


Vejamos alguns desses arquivos de configuração. Primeiro / etc / profile é lido, em que variáveis ​​importantes, como

PATH, USER e HOSTNAME estão definidos:


debby: ~> cat / etc / profile

# / etc / profile


# Ambiente amplo do sistema e programas de inicialização, para configuração de login

# Funções e aliases vão para / etc / bashrc


# Manipulação de caminho

if [`id -u` = 0] &&! echo $ PATH | / bin / grep -q "/ sbin"; então PATH = / sbin: $ PATH

fi


if [`id -u` = 0] &&! echo $ PATH | / bin / grep -q "/ usr / sbin"; então PATH = / usr / sbin: $ PATH

fi


if [`id -u` = 0] &&! echo $ PATH | / bin / grep -q "/ usr / local / sbin" então

PATH = / usr / local / sbin: $ PATH

fi


E se ! echo $ PATH | / bin / grep -q "/ usr / X11R6 / bin"; então PATH = "$ PATH: / usr / X11R6 / bin"

fi

debby: ~> cat / etc / profile

# / etc / profile


# Ambiente amplo do sistema e programas de inicialização, para configuração de login

# Funções e aliases vão para / etc / bashrc


# Manipulação de caminho

if [`id -u` = 0] &&! echo $ PATH | / bin / grep -q "/ sbin"; então PATH = / sbin: $ PATH

fi


if [`id -u` = 0] &&! echo $ PATH | / bin / grep -q "/ usr / sbin"; então PATH = / usr / sbin: $ PATH

fi


if [`id -u` = 0] &&! echo $ PATH | / bin / grep -q "/ usr / local / sbin" então

PATH = / usr / local / sbin: $ PATH

fi


E se ! echo $ PATH | / bin / grep -q "/ usr / X11R6 / bin"; então PATH = "$ PATH: / usr / X11R6 / bin"

fi

Estas linhas verificam o caminho a ser definido: se raiz abre um shell (usuário ID 0), é verificado que / sbin, / usr / sbin e

/ usr / local / sbin estão no caminho. Caso contrário, eles são adicionados. É verificado para todos que

/ usr / X11R6 / bin está no caminho.


# Nenhum arquivo principal por padrão ulimit -S -c 0> / dev / null 2> & 1

# Nenhum arquivo principal por padrão ulimit -S -c 0> / dev / null 2> & 1

Todo o lixo vai para / dev / null se o usuário não alterar esta configuração.


USER = `id -un` LOGNAME = $ USER

MAIL = "/ var / spool / mail / $ USUÁRIO"


HOSTNAME = `/ bin / hostname` HISTSIZE = 1000

USER = `id -un` LOGNAME = $ USER

MAIL = "/ var / spool / mail / $ USUÁRIO"


HOSTNAME = `/ bin / hostname` HISTSIZE = 1000

Aqui, as variáveis ​​gerais recebem seus valores apropriados.


if [-z "$ INPUTRC" -a! -f "$ HOME / .inputrc"]; então INPUTRC = / etc / inputrc

fi

if [-z "$ INPUTRC" -a! -f "$ HOME / .inputrc"]; então INPUTRC = / etc / inputrc

fi

Se a variável ENTRADA não está definido, e não há .inputrc no diretório inicial do usuário, o arquivo de controle de entrada padrão é carregado.


imagem


exportar PATH USUÁRIO NOME DO LOG MAIL NOME DE ANFITRIÃO HISTORIAR ENTRADA

Todas as variáveis ​​são exportadas, de forma que ficam disponíveis para outros programas que solicitam informações sobre o seu ambiente.


imagem

7.2.3.2. O diretório profile.d


para i em /etc/profile.d/*.sh; faça se [-r $ i]; então

. $ i

fi feito desconfigurado eu

para i em /etc/profile.d/*.sh; faça se [-r $ i]; então

. $ i

fi feito desconfigurado eu

Todos os scripts de shell legíveis do /etc/profile.d diretório são lidos e executados. Isso faz coisas como habilitar cor-ls, alias vi para vitalidade, definindo localidades etc. A variável temporária i não está definido para evitar que perturbe o comportamento do shell mais tarde.


imagem

7.2.3.3. Exemplo de .bash_profile


Então bater procura por um .bash_profile no diretório inicial do usuário:


imagem

debby: ~> cat.bash_profile

########################################################## ###############

# #

# arquivo .bash_profile #

# #

# Executado a partir do shell bash quando você faz login. #

# #

########################################################## ###############


fonte ~ / .bashrc fonte ~ / .bash_login

Este arquivo muito direto instrui seu shell para primeiro ler ~ / .bashrc e depois ~ / .bash_login. Você encontrará o fonte comando de shell embutido regularmente ao trabalhar em um ambiente de shell: é usado para aplicar alterações de configuração ao ambiente atual.


imagem

7.2.3.4. Exemplo de .bash_login


O ~ / .bash_login arquivo define a proteção de arquivo padrão, definindo o umask valor, consulte a Seção 3.4.2.2. o ~ / .bashrc arquivo é usado para definir um monte de apelidos e funções específicas do usuário e variáveis ​​de ambiente pessoais. Primeiro lê / Etc / bashrc, que descreve o prompt padrão (PS1) e o valor umask padrão. Depois disso, você pode adicionar suas próprias configurações. Se não ~ / .bashrc existe, / Etc / bashrc é lido por padrão.


imagem

7.2.3.5. / etc / bashrc example


Sua / Etc / bashrc arquivo pode ter a seguinte aparência:


debby: ~> cat / etc / bashrc

# / etc / bashrc


# Funções e apelidos em todo o sistema

# O material de ambiente vai para / etc / profile


# por padrão, queremos que isso seja definido.

debby: ~> cat / etc / bashrc

# / etc / bashrc


# Funções e apelidos em todo o sistema

# O material de ambiente vai para / etc / profile


# por padrão, queremos que isso seja definido.


# Mesmo para shells não interativos e não de login.

if [`id -gn` =` id -un` -a `id -u` -gt 99]; então umask 002

outro

umask 022

fi

# Mesmo para shells não interativos e não de login.

if [`id -gn` =` id -un` -a `id -u` -gt 99]; então umask 002

outro

umask 022

fi

Essas linhas definem o umask valor. Então, dependendo do tipo de shell, o prompt é definido:


# somos um shell interativo? if ["$ PS1"]; então

if [-x / usr / bin / tput]; então

if ["x`tput kbs`"! = "x"]; então

# Não podemos fazer isso com o terminal "burro" stty erase `tput kbs`

elif [-x / usr / bin / wc]; então

if ["` tput kbs | wc -c `" -gt 0]; então

# Não podemos fazer isso com o terminal "burro" stty erase `tput kbs`

fi fi

fi

caso $ TERM em

xterm *)

if [-e / etc / sysconfig / bash-prompt-xterm]; então PROMPT_COMMAND = / etc / sysconfig / bash-prompt-xterm

outro

PROMPT_COMMAND = 'echo -ne "\ 033] 0; $ {USER} @ $ {HOSTNAME %%. *}: \

$ {PWD / $ HOME / ~} \ 007 "'

fi

;;

*)

[-e / etc / sysconfig / bash-prompt-default] && PROMPT_COMMAND = \

/ etc / sysconfig / bash-prompt-default

;;

esac

["$ PS1" = "\\ s - \\ v \\\ $"] && PS1 = "[\ u @ \ h \ W] \\ $"


if ["x $ SHLVL"! = "x1"]; then # Não somos um shell de login para i em /etc/profile.d/*.sh; Faz

se [-x $ i]; então

. $ i

fi

feito

fi

fi

# somos um shell interativo? if ["$ PS1"]; então

if [-x / usr / bin / tput]; então

if ["x`tput kbs`"! = "x"]; então

# Não podemos fazer isso com o terminal "burro" stty erase `tput kbs`

elif [-x / usr / bin / wc]; então

if ["` tput kbs | wc -c `" -gt 0]; então

# Não podemos fazer isso com o terminal "burro" stty erase `tput kbs`

fi fi

fi

caso $ TERM em

xterm *)

if [-e / etc / sysconfig / bash-prompt-xterm]; então PROMPT_COMMAND = / etc / sysconfig / bash-prompt-xterm

outro

PROMPT_COMMAND = 'echo -ne "\ 033] 0; $ {USER} @ $ {HOSTNAME %%. *}: \

$ {PWD / $ HOME / ~} \ 007 "'

fi

;;

*)

[-e / etc / sysconfig / bash-prompt-default] && PROMPT_COMMAND = \

/ etc / sysconfig / bash-prompt-default

;;

esac

["$ PS1" = "\\ s - \\ v \\\ $"] && PS1 = "[\ u @ \ h \ W] \\ $"


if ["x $ SHLVL"! = "x1"]; then # Não somos um shell de login para i em /etc/profile.d/*.sh; Faz

se [-x $ i]; então

. $ i

fi

feito

fi

fi


imagem


7.2.3.6. Exemplo de .bash_logout


Após o logout, os comandos em ~ / .bash_logout são executados, o que pode, por exemplo, limpar o terminal, para que você tenha uma janela limpa ao sair de uma sessão remota ou ao sair do console do sistema:


debby: ~> gato .bash_logout

# ~ / .bash_logout


remover filtragem

debby: ~> gato .bash_logout

# ~ / .bash_logout


remover filtragem

Vamos examinar mais de perto como esses scripts funcionam na próxima seção. Guarda info bater bem perto.


imagem


Top OS Cloud Computing na OnWorks: