防偽碼:出淤泥而不染,濯清漣而不妖。
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)載!
更多建議: