Shell編程時常用的系統(tǒng)文件

2018-06-08 17:09 更新

防偽碼:出淤泥而不染,濯清漣而不妖。

10.1 Linux  系統(tǒng)目錄結(jié)構(gòu)

/  根目錄,所有文件的第一級目錄

/home  普通用戶家目錄

/root  超級用戶家目錄

/usr  用戶命令、應(yīng)用程序等目錄

/var  應(yīng)用數(shù)據(jù)、日志等目錄

/lib  庫文件和內(nèi)核模塊目錄

/etc  系統(tǒng)和軟件配置文件

/bin  可執(zhí)行程序目錄

/boot  內(nèi)核加載所需的文件,grub 引導(dǎo)

/dev  設(shè)備文件目錄,比如磁盤驅(qū)動

/tmp  臨時文件目錄

/opt  第三方軟件安裝目錄

10.2  環(huán)境變量文件

8.1.1  系統(tǒng)級

系統(tǒng)級變量文件對所有用戶生效。

/etc/profile # 系統(tǒng)范圍內(nèi)的環(huán)境變量和啟動文件。不建議把要做的事情寫在這里面,最好創(chuàng)建

一個自定義的,放在/etc/profile.d 下

/etc/bashrc # 系統(tǒng)范圍內(nèi)的函數(shù)和別名

8.1.2  用戶級

用戶級變量文件對自己生效,都在自己家目錄下。

~/.bashrc # 用戶指定別名和函數(shù)

~/.bash_logout # 用戶退出執(zhí)行

~/.bash_profile # 用戶指定變量和啟動程序

~/.bash_history # 用戶執(zhí)行命令歷史文件

開啟啟動腳本順序:/etc/profile -> /etc/profile.d/*.sh -> ~/.bash_profile -> ~/.bashrc ->

/etc/bashrc

10.3  系統(tǒng)配置文件

/etc/issue  系統(tǒng)版本

/etc/hosts  主機名與 IP 對應(yīng)關(guān)系

/etc/reslov.conf  DNS 服務(wù)器地址

/etc/hostname  主機名

/etc/sysctl.conf  系統(tǒng)參數(shù)配置文件

/etc/sudoers  sudo 權(quán)限配置

/etc/init.d  服務(wù)啟動腳本

/etc/sysconfig/network-

scripts

網(wǎng)卡信息配置目錄

/etc/rc.d/rc.local

系統(tǒng) init 初始化完后執(zhí)行,不建議將啟動服務(wù)寫在這里面,應(yīng)創(chuàng)建

自己的 systemd 或 udev

/etc/fatab  硬盤自動掛載配置

/etc/inittab  系統(tǒng)啟動運行級別

/etc/crontab 系統(tǒng)級任務(wù)計劃

/var/spool/cron  用戶級任務(wù)計劃,此目錄下以用戶名命名對應(yīng)每個用戶的任務(wù)計劃

/etc/cron.d  描述計算機任務(wù)計劃

/etc/hosts.allow  TCP 包訪問列表

/etc/hosts.deny  TCP 包拒絕列表

/etc/skel  新賬戶默認環(huán)境文件

/usr/share/doc  各軟件的文檔

/etc/sshd_config  SSH 服務(wù)配置文件

/var/log  系統(tǒng)和應(yīng)用程序日志目錄

/var/spool/mail  郵件目錄

任務(wù)計劃說明:

# Example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR

sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

10.4 4 v /dev  目錄

/dev 目錄下存放的是一些設(shè)備文件。

/dev/hd[a-t]  IDE 設(shè)備

/dev/sd[a-z]  SCSI 設(shè)備

/dev/dm-[-9]  LVM 邏輯磁盤

/dev/null  黑洞

/dev/zeror  無限 0 數(shù)據(jù)流

/dev/random 和/dev/urandom  隨機數(shù)設(shè)備

10.5 5 c /proc  目錄

/proc 是一個虛擬目錄,數(shù)據(jù)存儲在內(nèi)存中,存放內(nèi)核運行時的參數(shù)、網(wǎng)絡(luò)信息、進程狀態(tài)等。

10.5 5 .1 /proc

/proc/[0-9]+  此目錄下數(shù)字命名的目錄是運行進程信息,目錄名為 PID

/proc/meminfo  物理內(nèi)存、交換空間等信息,free

/proc/loadavg  系統(tǒng)負載

/proc/uptime

系統(tǒng)運行時間

計算系統(tǒng)啟動時間:

date -d "$(awk -F. '{print $1}' /proc/uptime) second ago"

+"%Y-%m-%d %H:%M:%S"

或 who -b

/proc/cpuinfo  CPU 信息

/proc/modules  系統(tǒng)已加載的模塊或驅(qū)動,lsmod

/proc/mounts  文件系統(tǒng)掛載信息,mount

/proc/swaps  swap 分區(qū)信息

/proc/partitions  系統(tǒng)分區(qū)信息

/proc/version  內(nèi)核版本

/proc/stat  CPU 利用率,磁盤,內(nèi)存頁

/proc/devices  可用的設(shè)備列表

10.5 5 .2 /proc/net

/proc/net 目錄存放的是一些網(wǎng)絡(luò)協(xié)議信息。

/proc/net/tcp  TCP 狀態(tài)連接信息,netstat

/proc/net/udp  UDP 狀態(tài)連接信息

/proc/net/arp  arp 信息表

/proc/net/dev  網(wǎng)卡流量

/proc/net/snmp  網(wǎng)絡(luò)傳輸協(xié)議的收發(fā)包信息

/proc/net/sockstat  socket 使用情況,比如已使用,正在使用

/proc/net/netstat  網(wǎng)絡(luò)統(tǒng)計數(shù)據(jù),netstat -s

/proc/net/route  路由表

/proc/net/nf_conntrack 當前連接追蹤表

10. .5 5 .3 /proc/sys

這個目錄下的文件可被讀寫,存了大多數(shù)內(nèi)核參數(shù),可以修改改變內(nèi)核行為。所以修改這些文件要特

別小心,修改錯誤可能導(dǎo)致內(nèi)核不穩(wěn)定。

有四個主要的目錄:

fs # 文件系統(tǒng)各方面信息,包括配額、文件句柄、inode 和目錄項。

kernel # 內(nèi)核行為的信息

net # 網(wǎng)絡(luò)配置信息,包括以太網(wǎng)、ipx、ipv4 和 ipv6。

vm # Linux 內(nèi)核的虛擬內(nèi)存子系統(tǒng),通常稱為交換空間。

/proc/sys/fs/dentry-state

目錄緩存狀態(tài),第一個值目錄緩存總條目數(shù)量,

第二個值未使用的條目數(shù)量,第三個值已經(jīng)釋

放數(shù)量,第四個當前頁所要求的系統(tǒng),最后兩

個數(shù)字不常用,只顯示 0

/proc/sys/fs/file-max

內(nèi)核分配所有進程最大打開文件句柄數(shù)量,可

適當增加此值

/proc/sys/fs/file-nr

只讀,第一個值已分配的文件句柄數(shù)量,第二

個值分配沒有使用文件句柄數(shù)量,第三個值文

件句柄最大數(shù)量。lsof

/proc/sys/kernel/acct

第一個值日志恢復(fù)所需空間百分比,第二個值

百分比閾值,第三個值時間間隔

/proc/sys/kernel/ctrl-alt-del

組合鍵重啟計算機,只為 0 同步緩沖區(qū)到磁盤,

1 為不同步

/proc/sys/kernel/domainname  配置系統(tǒng)域名

/proc/sys/kernel/exec-shield

配置內(nèi)核執(zhí)行保護功能,防止某類型緩沖區(qū)溢

出攻擊。0 為禁用,1 開啟

/proc/sys/kernel/hostname  配置系統(tǒng)主機名

/proc/sys/kernel/osrelease  內(nèi)核版本號

/proc/sys/kernel/ostype  操作系統(tǒng)類型

/proc/sys/kernel/shmall  設(shè)置共享內(nèi)存的總量,以字節(jié)為單位

/proc/sys/kernel/shmmax  設(shè)置最大共享內(nèi)存段

/proc/sys/kernel/shmmni  設(shè)置共享內(nèi)存段最大數(shù)量

/proc/sys/kernel/threads-max  設(shè)置最大允許線程數(shù)量

/proc/sys/kernel/pid_max  設(shè)置最大允許創(chuàng)建的 pid 數(shù)量

/proc/sys/kernel/version  顯示最后一次編譯內(nèi)核時間

/proc/sys/kernel/random/uuid  生成 uuid

/proc/sys/kernel/core_pattern

coredump 控制 core 文件位置和保存格式

echo  "/corefile/core-%e-%p-%t"  >

/proc/sys/kernel/core_pattern

/proc/sys/net/core/netdev_max_backlog  設(shè)置數(shù)據(jù)包隊列允許最大數(shù)量

/proc/sys/net/core/optmem_max  設(shè)置 socket 允許最大緩沖區(qū)大小

/proc/sys/net/core/somaxconn  每個端口最大監(jiān)聽隊列長度

/proc/sys/net/core/rmem_default  設(shè)置 socket 接收默認緩沖區(qū)大小,單位字節(jié)

/proc/sys/net/core/rmem_max  設(shè)置 socket 接收最大緩沖區(qū)大小

/proc/sys/net/core/wmem_default  設(shè)置 socket 發(fā)送默認緩沖區(qū)大小

/proc/sys/net/core/wmem_max  設(shè)置 socket 發(fā)送最大緩沖區(qū)大小

/proc/sys/net/nf_conntrack_max  設(shè)置連接追蹤的最大值

/proc/sys/net/ipv4/icmp_echo_ignore_all

和 icmp_echo_ignore_broadcasts

設(shè)置是否忽略 icmp 響應(yīng)包和廣播包,0 為不忽

略,1 為忽略

/proc/sys/net/ipv4/ip_default_ttl  設(shè)置默認生存時間

/proc/sys/net/ipv4/ip_forward

允許系統(tǒng)接口轉(zhuǎn)發(fā)數(shù)據(jù)包,默認 0 為關(guān)閉,1 為

開啟

/proc/sys/net/ipv4/ip_local_port_range

指定使用本地 TCP 或 UDP 端口范圍,第一個值

最低,第二個值最高

/proc/sys/net/ipv4/tcp_syn_retries  限制重新發(fā)送 syn 嘗試建立連接次數(shù)

/proc/sys/net/ipv4/tcp_synack_retries  syn ack 確認包嘗試次數(shù)

/proc/sys/net/ipv4/tcp_syncookies

是否啟用 syn cookie,0 為關(guān)閉,默認 1 為開

/proc/sys/net/ipv4/tcp_max_tw_buckets  系統(tǒng)保持 TIME_WAIT 最大數(shù)量

/proc/sys/net/ipv4/tcp_tw_recycle

是否啟用 TIME_WAIT 快速收回,默認 0 為關(guān)閉,

1 為開啟

/proc/sys/net/ipv4/tcp_tw_reuse  是否啟用 TIME_WAIT 復(fù)用,默認 0 為關(guān)閉,1

為開啟

/proc/sys/net/ipv4/tcp_keepalive_time

TCP 連接保持時間(默認 2 小時),當連接活動,

定時器會重新復(fù)位。

/proc/sys/net/ipv4/tcp_keepalive_intvl  TCP 探測間隔時間(默認 75 秒)

/proc/sys/net/ipv4/tcp_keepalive_probes

發(fā)送 TCP 探測包(特殊的消息包,很小,專門

檢查存活)的總數(shù)量,總共 9 次,每次間隔時

間是 75 秒,大約 11 分鐘如果對方不應(yīng)答內(nèi)核

就丟棄

/proc/sys/net/ipv4/tcp_mem

TCP 使用內(nèi)存,單位頁。第一個值內(nèi)存使用下

限,低于此值內(nèi)核不做處理,第二個值超過,

內(nèi)核會進入壓力模式,第三個值超過,就會拒

絕分配 socket。

/proc/sys/vm/swappiness

內(nèi)核按此值百分比來使用 swap,值越小越不考

慮使用物理內(nèi)存,0 為盡可能不使用 swap

/proc/sys/vm/overcommit_memory

控制內(nèi)存分配,默認 0 為內(nèi)核先評估可用內(nèi)存,

如果足夠允許申請,否則拒絕,1 為允許分配

所有物理內(nèi)存,2 為允許分配超過物理內(nèi)存和

交換空間總和的內(nèi)存

/proc/sys/vm/overcommit_ratio

指定物理內(nèi)存比率,當 overcommit_memory=2

時,用戶空間進程可使用的內(nèi)存不超過物理內(nèi)

存*overcommit_ratio+swap

10. .6 6 系統(tǒng) 其他 常用文件

/sys/class/net

shell 作為 TCP 客戶端:

/dev/tcp/host/port

/dev/udp/host/port

如果 host 和 port 是一個有效,Bash 打開一個 TCP 或 UDP 連接到對應(yīng)的 socket。


本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號