A organização dos arquivos de configuração é muito menos uniforme do que suas perguntas parecem implicar. Não há "classe", não há "hierarquia", e não existe um "czar de configuração" global nem um comitê que decida uma sintaxe comum ou outras generalizações limpas como as que você está procurando. Há apenas uma infinidade de aplicativos separados como R
, bash
, screen
e o ambiente de área de trabalho GNOME, todos com suas próprias maneiras de fazer as coisas, portanto, você deve examinar a documentação de cada programa individual para responder qualquer específico perguntas sobre um determinado arquivo. Se parece ad-hoc, é porque é: a maioria dos softwares Unix / Linux foi desenvolvida para diferentes propósitos por pessoas diferentes, todas com configurações ligeiramente diferentes.
Para responder às suas outras perguntas pontuais:
-
*rc
e*profile
não significam muito, então essa pergunta não pode ser respondida. "rc" é meramente uma abreviação ou sufixo comumente usado para arquivos de configuração. Sua etimologia remonta a tempos antigos (em anos de computador) e provavelmente significa executar comandos (de runcom ). Só porque os aplicativos usam a mesma palavra não significa que eles concordam com convenções. "profile" é um sufixo muito menos comum. -
Defina "escopo". A maioria dos aplicativos não compartilha arquivos de configuração com outros aplicativos não relacionados. A única exceção possível é
/etc/profile
e.profile
, que pode ser usada por vários shells diferentes (incluindo pelo menossh
ebash
). Existe algo chamado de ambiente associado a cada processo em execução que pode conter variáveis que podem afetar o comportamento do dito processo. Geralmente, as variáveis de ambiente são configuradas pelos arquivos de configuração de shell apropriados ou, talvez, pelos arquivos de configuração de qualquer ambiente de desktop gráfico que você esteja utilizando. Há também arquivos de configuração para "bibliotecas", como.inputrc
para readline e.gtkrc*
para GTK, que afetará todos os aplicativos que usam a biblioteca. -
Não, não há hierarquia global para arquivos de configuração. Mais uma vez, consulte a documentação do programa específico em questão, por exemplo, o
bash
manual parabash
. Uma convenção geral na qual você geralmente pode confiar é que as configurações do usuário em$HOME
substituem a configuração de todo o sistema em/etc
. Isso geralmente é feito lendo o arquivo do usuário após o sistema um, para que as configurações posteriores substituam as anteriores. No entanto, isso não é uma garantia e, para respostas definitivas, você deve consultar a documentação do programa específico que está usando. -
Não há "classe", pelo menos nenhuma geral o suficiente para abranger todos os arquivos que você listou em sua pergunta, então a questão de uma referência para tal "classe" é discutível. Novamente, consulte a documentação do programa específico que você está usando.