溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么理解Linux配置文件

發(fā)布時間:2021-11-06 15:40:32 來源:億速云 閱讀:173 作者:柒染 欄目:建站服務(wù)器

這篇文章將為大家詳細(xì)講解有關(guān)怎么理解Linux配置文件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

Linux 配置文件

介紹

每個 Linux 程序都是一個可執(zhí)行文件,它含有操作碼列表,CPU 將執(zhí)行這些操作碼來完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,該文件含有機(jī)器指令的列表,在屏幕上顯示當(dāng)前目錄中文件的列表時需要使用這些機(jī)器指令。 幾乎每個程序的行為都可以通過修改其配置文件來按照您的偏好或需要去定制。

Linux 中有沒有一個標(biāo)準(zhǔn)的配置文件格式?

一句話,沒有。不熟悉 Linux 的用戶(一定)會感到沮喪,因?yàn)槊總€配置文件看起來都象是一個要迎接的新挑戰(zhàn)。在 Linux 中,每個程序員都可以自由選擇他或她喜歡的配置文件格式??梢赃x擇的格式很多,從 /etc/shells 文件(它包含被一個換行符分開的 shell 的列表),到 Apache 的復(fù)雜的 /etc/httpd.conf 文件。

什么是系統(tǒng)配置文件?

內(nèi)核本身也可以看成是一個“程序”。為什么內(nèi)核需要配置文件?內(nèi)核需要了解系統(tǒng)中用戶和組的列表,進(jìn)而管理文件權(quán)限(即根據(jù)權(quán)限判定特定用戶(UNIX_USERS)是否可以打開某個文件)。注意,這些文件不是明確地由程序讀取的,而是由系統(tǒng)庫所提供的一個函數(shù)讀取,并被內(nèi)核使用。例如,程序需要某個用戶的(加密過的)密碼時不應(yīng)該打開 /etc/passwd 文件。相反,程序應(yīng)該調(diào)用系統(tǒng)庫的 getpw() 函數(shù)。這種函數(shù)也被稱為系統(tǒng)調(diào)用。打開 /etc/passwd 文件和之后查找那個被請求的用戶的密碼都是由內(nèi)核(通過系統(tǒng)庫)決定的。

除非另行指定,Red Hat Linux 系統(tǒng)中大多數(shù)配置文件都在 /etc 目錄中。配置文件可以大致分為下面幾類:

訪問文件

引導(dǎo)和登錄/注銷

文件系統(tǒng)

內(nèi)核提供了一個接口,用來顯示一些它的數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)對于決定諸如使用的中斷、初始化的設(shè)備和內(nèi)存統(tǒng)計信息之類的系統(tǒng)參數(shù)可能很有用。這個接口是作為一個獨(dú)立但虛擬的文件系統(tǒng)提供的,稱為 /proc 文件系統(tǒng)。很多系統(tǒng)實(shí)用程序都使用這個文件系統(tǒng)中存在的值來顯示系統(tǒng)統(tǒng)計信息。例如,/proc/modules 文件列舉系統(tǒng)中當(dāng)前加載的模塊。lsmod 命令讀取此信息,然后將其以人們可以看懂的格式顯示出來。 下面表格中指定的 mtab 文件以同樣的方式讀取包含當(dāng)前安裝的文件系統(tǒng)的 /proc/mount 文件。

系統(tǒng)管理

聯(lián)網(wǎng)

系統(tǒng)命令

系統(tǒng)命令要獨(dú)占地控制系統(tǒng),并讓一切正常工作。所有如 login(完成控制臺用戶身份驗(yàn)證階段)或 bash(提供用戶和計算機(jī)之間交互)之類的程序都是系統(tǒng)命令。因此,和它們有關(guān)的文件也特別重要。這一類別中有下列令用戶和管理員感興趣的文件。

守護(hù)進(jìn)程

守護(hù)進(jìn)程是一種運(yùn)行在非交互模式下的程序。一般來說,守護(hù)進(jìn)程任務(wù)是和聯(lián)網(wǎng)區(qū)域有關(guān)的:它們等待連接,以便通過連接提供服務(wù)。Linux 可以使用從 Web 服務(wù)器到 ftp 服務(wù)器的很多守護(hù)進(jìn)程。

用戶程序

在 Linux(和一般的 UNIX)中,有無數(shù)的“用戶”程序。最常見的一種用戶程序配置文件是 /etc/lynx.cfg。這是著名的文本瀏覽器 lynx 的配置文件。通過這個文件,您可以定義代理服務(wù)器、要使用的字符集等等。 下面的代碼樣本展示了 lynx.cfg 文件的一部分,修改這部分代碼可以改變 Linux 系統(tǒng)的代理服務(wù)器設(shè)置。缺省情況下,這些設(shè)置適用于在各自的 shell 中運(yùn)行 lynx 的所有用戶,除非某個用戶通過指定 --cfg = "mylynx.cfg" 重設(shè)了缺省的配置文件。

/etc/lynx.cfg 中的代理服務(wù)器設(shè)置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

.h2 proxy

.h3 HTTP_PROXY

.h3 HTTPS_PROXY

.h3 FTP_PROXY

.h3 GOPHER_PROXY

.h3 NEWS_PROXY

.h3 NNTP_PROXY

# Lynx version 2.2 and beyond supports the use of proxy servers that can act as

# firewall gateways and caching servers. They are preferable to the older

# gateway servers. Each protocol used by Lynx can be mapped separately using

# PROTOCOL_proxy environment variables (see Lynx Users Guide). If you have

# not set them externally, you can set them at run time via this configuration file.

# They will not override external settings. The no_proxy variable can be used

# to inhibit proxying to selected regions of the Web (see below). Note that on

# VMS these proxy variables are set as process logicals rather than symbols, to

# preserve lowercasing, and will outlive the Lynx image.

#

.ex 15

http_proxy:http://proxy3.in.ibm.com:80/

ftp_proxy:http://proxy3.in.ibm.com:80/

#http_proxy:http://penguin.in.ibm.com:8080

#ftp_proxy:http://penguin.in.ibm.com:8080/

.h3 NO_PROXY

# The no_proxy variable can be a comma-separated list of strings defining

# no-proxy zones in the DNS domain name space.  If a tail substring of the

# domain-path for a host matches one of these strings, transactions with that

# node will not be proxied.

.ex

no_proxy:demiurge.in.ibm.com, demiurge

更改配置文件

在更改配置文件時,如果程序不是由系統(tǒng)管理員或內(nèi)核控制的,就要確保重新啟動過使用該配置的程序。普通用戶通常沒有啟動或停止系統(tǒng)程序和/或守護(hù)進(jìn)程的權(quán)限。

內(nèi)核

更改內(nèi)核中的配置文件會立即影響到系統(tǒng)。例如,更改 passwd 文件以增加用戶將立即使該用戶變?yōu)榭捎?。而且任?Linux 系統(tǒng)的 /proc/sys 目錄中都有一些內(nèi)核可調(diào)參數(shù)。只有超級用戶可以得到對所有這些文件的寫訪問權(quán)力;其它用戶只有只讀訪問權(quán)力。此目錄中文件的分類的方式和 Linux 內(nèi)核源代碼的分類方式一樣。此目錄中的每個文件都代表一個內(nèi)核數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)可以被動態(tài)地修改,從而改變系統(tǒng)性能。

注意:在更改其中任何文件的任何值之前,您應(yīng)該確保自己全面了解該文件,以避免對系統(tǒng)造成不可修復(fù)的損害。 
/proc/sys/kernel/ 目錄中的文件

守護(hù)進(jìn)程和系統(tǒng)程序

守護(hù)進(jìn)程是永遠(yuǎn)運(yùn)行在后臺的程序,它默默地執(zhí)行自己的任務(wù)。常見的守護(hù)進(jìn)程有 in.ftpd(ftp 服務(wù)器守護(hù)進(jìn)程)、in.telnetd(telnet 服務(wù)器守護(hù)進(jìn)程)和 syslogd(系統(tǒng)日志記錄守護(hù)進(jìn)程)。 有些守護(hù)進(jìn)程在運(yùn)行時會嚴(yán)密監(jiān)視配置文件,在配置文件改變時就會自動重新加載它。但是大多數(shù)守護(hù)進(jìn)程并不會自動重新加載配置文件。我們需要以某種方式“告訴”這些守護(hù)進(jìn)程配置文件已經(jīng)被發(fā)生了改變并應(yīng)該重新加載??梢酝ㄟ^使用服務(wù)命令重新啟動服務(wù)來達(dá)到這個目的(在 Red Hat Linux 系統(tǒng)上)。

例如,如果我們更改了網(wǎng)絡(luò)配置,就需要發(fā)出: 
service network restart 。

注意:這些服務(wù)最常見的是 /etc/rc.d/init.d/* 目錄中存在的腳本,在系統(tǒng)被引導(dǎo)時由 init 啟動。所以,您也可以執(zhí)行如下操作來重新啟動服務(wù): 
/etc/rc.d/init.d/<script-for-the-service> start | stop | status
start、stop 和 status 是這些腳本接受的輸入值,用來執(zhí)行操作。

用戶程序

用戶或系統(tǒng)程序在每次啟動時都會讀取其配置文件。盡管如此,請記住,有些系統(tǒng)程序在計算機(jī)打開時情況不一樣,它們的行為依賴于在 /etc/ 中的配置文件中讀到的內(nèi)容。所以,用戶程序第一次啟動時將從 /etc/ 目錄中存在的文件讀取缺省配置。然后,用戶可以通過使用 rc 和 .(點(diǎn))文件來定制程序,正如下面一節(jié)所示。

用戶配置文件:.(點(diǎn))文件和 rc 文件

我們已經(jīng)看到怎樣容易地配置程序。但是如果有的人不喜歡在 /etc/ 中配置程序的方式該怎么辦呢?“普通”用戶不能簡單地進(jìn)入 /etc 然后更改配置文件;從文件系統(tǒng)的角度來看,配置文件的所有者是 root 用戶!這就是大多數(shù)用戶程序都定義兩個配置文件的原因:第一個是“系統(tǒng)”級別的,位于 /etc/;另一個屬于用戶“專用”,可以在他或她的主目錄中找到。

例如,我在我的系統(tǒng)中安裝了非常有用的 wget 實(shí)用程序。/etc/ 中有一個 /etc/wgetrc 文件。在我的主目錄中,有一個名為 .wgetrc 的文件,它描述了我定制的配置(只有在我,也就是用戶運(yùn)行 wget 命令時,才會加載這個配置文件)。其它用戶在他們自己的主目錄(/home/other)中也可以有 .wgetrc 文件;當(dāng)然,只有這些用戶運(yùn)行 wget 命令時,才會讀取這個文件。換句話說,/etc/wgetrc 文件為 wget 提供了“缺省”值,而 /home/xxx/.wgetrc 文件列舉了某個用戶的“定制項(xiàng)”。重要的是這只是“一般規(guī)則”,并非所有情況都如此。例如,一個象 pine 一樣的程序,在 /etc/ 中并沒有任何文件,它只在用戶主目錄中有一個定制配置文件,名為 .pinerc。其它程序可能只有 /etc/ 中的缺省配置文件,而且可能不允許用戶“定制”這些配置文件(/etc 目錄中只有少數(shù) config. 文件是這種情況)。

通常使用的 rc 和 .(點(diǎn))文件

關(guān)于怎么理解Linux配置文件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI