很容易加啊 要看你是什么系統(tǒng),比如debian或者redhat就在 /boot/grub/menu.lst里面找到kernel那一行然后添加就行了,如果不是這2個系統(tǒng)也可以到/boot/grub/下面去找,一般是menu.lst或者grub.conf這種的
我們提供的服務(wù)有:網(wǎng)站設(shè)計、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、義馬ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的義馬網(wǎng)站制作公司
編輯修改grub引導(dǎo)配置文件,在加載內(nèi)核命令(對于grub legacy,為kernel,grub2為linux)那一行后面添加需要的參數(shù);或者直接在命令行界面輸入相應(yīng)命令后面添加參數(shù)。
Sysctl命令及l(fā)inux內(nèi)核參數(shù)調(diào)整
一、Sysctl命令用來配置與顯示在/proc/sys目錄中的內(nèi)核參數(shù).如果想使參數(shù)長期保存,可以通過編輯/etc/sysctl.conf文件來實(shí)現(xiàn)。
命令格式:
sysctl [-n] [-e] -w variable=value
sysctl [-n] [-e] -p (default /etc/sysctl.conf)
sysctl [-n] [-e] –a
常用參數(shù)的意義:
-w ?臨時改變某個指定參數(shù)的值,如
# sysctl -w net.ipv4.ip_forward=1
-a ?顯示所有的系統(tǒng)參數(shù)
-p從指定的文件加載系統(tǒng)參數(shù),默認(rèn)從/etc/sysctl.conf 文件中加載,如:
# echo 1 /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=1
以上兩種方法都可能立即開啟路由功能,但如果系統(tǒng)重啟,或執(zhí)行了
# service network restart
命令,所設(shè)置的值即會丟失,如果想永久保留配置,可以修改/etc/sysctl.conf文件,將 net.ipv4.ip_forward=0改為net.ipv4.ip_forward=1
二、linux內(nèi)核參數(shù)調(diào)整:linux 內(nèi)核參數(shù)調(diào)整有兩種方式
方法一:修改/proc下內(nèi)核參數(shù)文件內(nèi)容,不能使用編輯器來修改內(nèi)核參數(shù)文件,理由是由于內(nèi)核隨時可能更改這些文件中的任意一個,另外,這些內(nèi)核參數(shù)文件都是虛擬文件,實(shí)際中不存在,因此不能使用編輯器進(jìn)行編輯,而是使用echo命令,然后從命令行將輸出重定向至 /proc 下所選定的文件中。如:將 timeout_timewait 參數(shù)設(shè)置為30秒:
# echo 30 /proc/sys/net/ipv4/tcp_fin_timeout
參數(shù)修改后立即生效,但是重啟系統(tǒng)后,該參數(shù)又恢復(fù)成默認(rèn)值。因此,想永久更改內(nèi)核參數(shù),需要修改/etc/sysctl.conf文件
方法二.修改/etc/sysctl.conf文件。檢查sysctl.conf文件,如果已經(jīng)包含需要修改的參數(shù),則修改該參數(shù)的值,如果沒有需要修改的參數(shù),在sysctl.conf文件中添加參數(shù)。如:
net.ipv4.tcp_fin_timeout=30
保存退出后,可以重啟機(jī)器使參數(shù)生效,如果想使參數(shù)馬上生效,也可以執(zhí)行如下命令:
# sysctl ?-p
三、sysctl.conf 文件中參數(shù)設(shè)置及說明
proc/sys/net/core/wmem_max
最大socket寫buffer,可參考的優(yōu)化值:873200
/proc/sys/net/core/rmem_max
最大socket讀buffer,可參考的優(yōu)化值:873200
/proc/sys/net/ipv4/tcp_wmem
TCP寫buffer,可參考的優(yōu)化值: 8192 436600 873200
/proc/sys/net/ipv4/tcp_rmem
TCP讀buffer,可參考的優(yōu)化值: 32768 436600 873200
/proc/sys/net/ipv4/tcp_mem
同樣有3個值,意思是:
net.ipv4.tcp_mem[0]:低于此值,TCP沒有內(nèi)存壓力.
net.ipv4.tcp_mem[1]:在此值下,進(jìn)入內(nèi)存壓力階段.
net.ipv4.tcp_mem[2]:高于此值,TCP拒絕分配socket.
上述內(nèi)存單位是頁,而不是字節(jié).可參考的優(yōu)化值是:786432 1048576 1572864
/proc/sys/net/core/netdev_max_backlog
進(jìn)入包的最大設(shè)備隊(duì)列.默認(rèn)是300,對重負(fù)載服務(wù)器而言,該值太低,可調(diào)整到1000
/proc/sys/net/core/somaxconn
listen()的默認(rèn)參數(shù),掛起請求的最大數(shù)量.默認(rèn)是128.對繁忙的服務(wù)器,增加該值有助于網(wǎng)絡(luò)性能.可調(diào)整到256.
/proc/sys/net/core/optmem_max
socket buffer的最大初始化值,默認(rèn)10K
/proc/sys/net/ipv4/tcp_max_syn_backlog
進(jìn)入SYN包的最大請求隊(duì)列.默認(rèn)1024.對重負(fù)載服務(wù)器,可調(diào)整到2048
/proc/sys/net/ipv4/tcp_retries2
TCP失敗重傳次數(shù),默認(rèn)值15,意味著重傳15次才徹底放棄.可減少到5,盡早釋放內(nèi)核資源.
/proc/sys/net/ipv4/tcp_keepalive_time
/proc/sys/net/ipv4/tcp_keepalive_intvl
/proc/sys/net/ipv4/tcp_keepalive_probes
這3個參數(shù)與TCP KeepAlive有關(guān).默認(rèn)值是:
tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes = 9
tcp_keepalive_intvl = 75 seconds
意思是如果某個TCP連接在idle 2個小時后,內(nèi)核才發(fā)起probe.如果probe 9次(每次75秒)不成功,內(nèi)核才徹底放棄,認(rèn)為該連接已失效.對服務(wù)器而言,顯然上述值太大. 可調(diào)整到:
/proc/sys/net/ipv4/tcp_keepalive_time 1800
/proc/sys/net/ipv4/tcp_keepalive_intvl 30
/proc/sys/net/ipv4/tcp_keepalive_probes 3
/proc/sys/net/ipv4/ip_local_port_range
指定端口范圍的一個配置,默認(rèn)是32768 61000,已夠大.
net.ipv4.tcp_syncookies = 1
表示開啟SYN Cookies。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認(rèn)為0,表示關(guān)閉;
net.ipv4.tcp_tw_reuse = 1
表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉;
net.ipv4.tcp_tw_recycle = 1
表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉。
net.ipv4.tcp_fin_timeout = 30
表示如果套接字由本端要求關(guān)閉,這個參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時間。
net.ipv4.tcp_keepalive_time = 1200
表示當(dāng)keepalive起用的時候,TCP發(fā)送keepalive消息的頻度。缺省是2小時,改為20分鐘。
net.ipv4.ip_local_port_range = 1024 65000
表示用于向外連接的端口范圍。缺省情況下很?。?2768到61000,改為1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192
表示SYN隊(duì)列的長度,默認(rèn)為1024,加大隊(duì)列長度為8192,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。
net.ipv4.tcp_max_tw_buckets = 5000
表示系統(tǒng)同時保持TIME_WAIT套接字的最大數(shù)量,如果超過這個數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。默認(rèn)為 180000,改為 5000。對于Apache、Nginx等服務(wù)器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字?jǐn)?shù)量,但是對于Squid,效果卻不大。此項(xiàng)參數(shù)可以控制TIME_WAIT套接字的最大數(shù)量,避免Squid服務(wù)器被大量的TIME_WAIT套接字拖死。
Linux上的NAT與iptables
談起Linux上的NAT,大多數(shù)人會跟你提到iptables。原因是因?yàn)閕ptables是目前在linux上實(shí)現(xiàn)NAT的一個非常好的接口。它通過和內(nèi)核級直接操作網(wǎng)絡(luò)包,效率和穩(wěn)定性都非常高。這里簡單列舉一些NAT相關(guān)的iptables實(shí)例命令,可能對于大多數(shù)實(shí)現(xiàn)有多幫助。
這里說明一下,為了節(jié)省篇幅,這里把準(zhǔn)備工作的命令略去了,僅僅列出核心步驟命令,所以如果你單單執(zhí)行這些沒有實(shí)現(xiàn)功能的話,很可能由于準(zhǔn)備工作沒有做好。如果你對整個命令細(xì)節(jié)感興趣的話,可以直接訪問我的《如何讓你的Linux網(wǎng)關(guān)更強(qiáng)大》系列文章,其中對于各個腳本有詳細(xì)的說明和描述。
# 案例1:實(shí)現(xiàn)網(wǎng)關(guān)的MASQUERADE
# 具體功能:內(nèi)網(wǎng)網(wǎng)卡是eth1,外網(wǎng)eth0,使得內(nèi)網(wǎng)指定本服務(wù)做網(wǎng)關(guān)可以訪問外網(wǎng)
EXTERNAL="eth0"
INTERNAL="eth1"
# 這一步開啟ip轉(zhuǎn)發(fā)支持,這是NAT實(shí)現(xiàn)的前提
echo 1 /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE
# 案例2:實(shí)現(xiàn)網(wǎng)關(guān)的簡單端口映射
# 具體功能:實(shí)現(xiàn)外網(wǎng)通過訪問網(wǎng)關(guān)的外部ip:80,可以直接達(dá)到訪問私有網(wǎng)絡(luò)內(nèi)的一臺主機(jī)192.168.1.10:80效果
LOCAL_EX_IP=11.22.33.44 #設(shè)定網(wǎng)關(guān)的外網(wǎng)卡ip,對于多ip情況,參考《如何讓你的Linux網(wǎng)關(guān)更強(qiáng)大》系列文章
LOCAL_IN_IP=192.168.1.1 ?#設(shè)定網(wǎng)關(guān)的內(nèi)網(wǎng)卡ip
INTERNAL="eth1" #設(shè)定內(nèi)網(wǎng)卡
# 這一步開啟ip轉(zhuǎn)發(fā)支持,這是NAT實(shí)現(xiàn)的前提
echo 1 /proc/sys/net/ipv4/ip_forward
# 加載需要的ip模塊,下面兩個是ftp相關(guān)的模塊,如果有其他特殊需求,也需要加進(jìn)來
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
# 這一步實(shí)現(xiàn)目標(biāo)地址指向網(wǎng)關(guān)外部ip:80的訪問都吧目標(biāo)地址改成192.168.1.10:80
iptables -t nat -A PREROUTING -d $LOCAL_EX_IP -p tcp --dport 80 -j DNAT --to 192.168.1.10
# 這一步實(shí)現(xiàn)把目標(biāo)地址指向192.168.1.10:80的數(shù)據(jù)包的源地址改成網(wǎng)關(guān)自己的本地ip,這里是192.168.1.1
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to $LOCAL_IN_IP
# 在FORWARD鏈上添加到192.168.1.10:80的允許,否則不能實(shí)現(xiàn)轉(zhuǎn)發(fā)
iptables -A FORWARD -o $INTERNAL -d 192.168.1.10 -p tcp --dport 80 -j ACCEPT
# 通過上面重要的三句話之后,實(shí)現(xiàn)的效果是,通過網(wǎng)關(guān)的外網(wǎng)ip:80訪問,全部轉(zhuǎn)發(fā)到內(nèi)網(wǎng)的192.168.1.10:80端口,實(shí)現(xiàn)典型的端口映射
# 特別注意,所有被轉(zhuǎn)發(fā)過的數(shù)據(jù)都是源地址是網(wǎng)關(guān)內(nèi)網(wǎng)ip的數(shù)據(jù)包,所以192.168.1.10上看到的所有訪問都好像是網(wǎng)關(guān)發(fā)過來的一樣,而看不到外部ip
# 一個重要的思想:數(shù)據(jù)包根據(jù)“從哪里來,回哪里去”的策略來走,所以不必?fù)?dān)心回頭數(shù)據(jù)的問題
# 現(xiàn)在還有一個問題,網(wǎng)關(guān)自己訪問自己的外網(wǎng)ip:80,是不會被NAT到192.168.1.10的,這不是一個嚴(yán)重的問題,但讓人很不爽,解決的方法如下:
iptables -t nat -A OUTPUT -d $LOCAL_EX_IP -p tcp --dport 80 -j DNAT --to 192.168.1.10
獲取系統(tǒng)中的NAT信息和診斷錯誤
了解/proc目錄的意義
在Linux系統(tǒng)中,/proc是一個特殊的目錄,proc文件系統(tǒng)是一個偽文件系統(tǒng),它只存在內(nèi)存當(dāng)中,而不占用外存空間。它包含當(dāng)前系統(tǒng)的一些參數(shù)(variables)和狀態(tài)(status)情況。它以文件系統(tǒng)的方式為訪問系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口
通過/proc可以了解到系統(tǒng)當(dāng)前的一些重要信息,包括磁盤使用情況,內(nèi)存使用狀況,硬件信息,網(wǎng)絡(luò)使用情況等等,很多系統(tǒng)監(jiān)控工具(如HotSaNIC)都通過/proc目錄獲取系統(tǒng)數(shù)據(jù)。
另一方面通過直接操作/proc中的參數(shù)可以實(shí)現(xiàn)系統(tǒng)內(nèi)核參數(shù)的調(diào)節(jié),比如是否允許ip轉(zhuǎn)發(fā),syn-cookie是否打開,tcp超時時間等。
獲得參數(shù)的方式:
第一種:cat /proc/xxx/xxx,如 cat /proc/sys/net/ipv4/conf/all/rp_filter
第二種:sysctl ,如 sysctl net.ipv4.conf.all.rp_filter
改變參數(shù)的方式:
第一種:echo value /proc/xxx/xxx,如 echo 1 /proc/sys/net/ipv4/conf/all/rp_filter
第二種:sysctl [-w] variable=value,如 sysctl [-w] net.ipv4.conf.all.rp_filter=1
以上設(shè)定系統(tǒng)參數(shù)的方式只對當(dāng)前系統(tǒng)有效,重起系統(tǒng)就沒了,想要保存下來,需要寫入/etc/sysctl.conf文件中
通過執(zhí)行 man 5 proc可以獲得一些關(guān)于proc目錄的介紹
查看系統(tǒng)中的NAT情況
和NAT相關(guān)的系統(tǒng)變量
/proc/slabinfo:內(nèi)核緩存使用情況統(tǒng)計信息(Kernel slab allocator statistics)
/proc/sys/net/ipv4/ip_conntrack_max:系統(tǒng)支持的最大ipv4連接數(shù),默認(rèn)65536(事實(shí)上這也是理論最大值)
/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established 已建立的tcp連接的超時時間,默認(rèn)432000,也就是5天
和NAT相關(guān)的狀態(tài)值
/proc/net/ip_conntrack:當(dāng)前的前被跟蹤的連接狀況,nat翻譯表就在這里體現(xiàn)(對于一個網(wǎng)關(guān)為主要功能的Linux主機(jī),里面大部分信息是NAT翻譯表)
/proc/sys/net/ipv4/ip_local_port_range:本地開放端口范圍,這個范圍同樣會間接限制NAT表規(guī)模
# 1. 查看當(dāng)前系統(tǒng)支持的最大連接數(shù)
cat /proc/sys/net/ipv4/ip_conntrack_max
# 值:默認(rèn)65536,同時這個值和你的內(nèi)存大小有關(guān),如果內(nèi)存128M,這個值最大8192,1G以上內(nèi)存這個值都是默認(rèn)65536
# 影響:這個值決定了你作為NAT網(wǎng)關(guān)的工作能力上限,所有局域網(wǎng)內(nèi)通過這臺網(wǎng)關(guān)對外的連接都將占用一個連接,如果這個值太低,將會影響吞吐量
# 2. 查看tcp連接超時時間
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
# 值:默認(rèn)432000(秒),也就是5天
# 影響:這個值過大將導(dǎo)致一些可能已經(jīng)不用的連接常駐于內(nèi)存中,占用大量鏈接資源,從而可能導(dǎo)致NAT ip_conntrack: table full的問題
# 建議:對于NAT負(fù)載相對本機(jī)的 NAT表大小很緊張的時候,可能需要考慮縮小這個值,以盡早清除連接,保證有可用的連接資源;如果不緊張,不必修改
# 3. 查看NAT表使用情況(判斷NAT表資源是否緊張)
# 執(zhí)行下面的命令可以查看你的網(wǎng)關(guān)中NAT表情況
cat /proc/net/ip_conntrack
# 4. 查看本地開放端口的范圍
cat /proc/sys/net/ipv4/ip_local_port_range
# 返回兩個值,最小值和最大值
# 下面的命令幫你明確一下NAT表的規(guī)模
wc -l /proc/net/ip_conntrack
#或者
grep ip_conntrack /proc/slabinfo | grep -v expect | awk '{print $1 ',' $2;}'
# 下面的命令幫你明確可用的NAT表項(xiàng),如果這個值比較大,那就說明NAT表資源不緊張
grep ip_conntrack /proc/slabinfo | grep -v expect | awk '{print $1 ',' $3;}'
# 下面的命令幫你統(tǒng)計NAT表中占用端口最多的幾個ip,很有可能這些家伙再做一些bt的事情,嗯bt的事情:-)
cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 10
# 上面這個命令有點(diǎn)瑕疵cut -d' ' -f10會因?yàn)槊钶敵鲇行┬腥表?xiàng)而造成統(tǒng)計偏差,下面給出一個正確的寫法:
cat /proc/net/ip_conntrack | perl -pe s/^\(.*?\)src/src/g | cut -d ' ' -f1 | cut -d '=' -f2 | sort | uniq -c | sort -nr | head -n 10
cp命令
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的copy命令一樣,功能十分強(qiáng)大
語法: cp [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
說明:該命令把指定的源文件復(fù)制到目標(biāo)文件或把多個源文件復(fù)制到目標(biāo)目錄中
-r 若給出的源文件是一目錄文件,此時cp將遞歸復(fù)制該目錄下所有的子目錄和文件
mv命令
用戶可以使用mv命令來為文件或目錄改名或?qū)⑽募梢粋€目錄移入另一個目錄中。該命令如同MSDOS下的ren和move的組合
語法:mv [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
rm命令
該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除
rm命令的一般形式為:
rm [選項(xiàng)] 文件…
如果沒有使用-r選項(xiàng),則rm不會刪除目錄
該命令的各選項(xiàng)含義如下:
-f 忽略不存在的文件,從不給出提示
-r 指示rm將參數(shù)中列出的全部目錄和子目錄均遞歸地刪除
Vi命令
插入模式
按「i」切換進(jìn)入插入模式「insert mode」,按“i”進(jìn)入插入模式后是從光標(biāo)當(dāng)前位置開始輸入文件
按「a」進(jìn)入插入模式后,是從目前光標(biāo)所在位置的下一個位置開始輸入文字
按「o」進(jìn)入插入模式后,是插入新的一行,從行首開始輸入文字
從插入模式切換為命令行模式
按「ESC」鍵
查找字符
「/關(guān)鍵字」:先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會往后尋找到您要的關(guān)鍵字為止
「?關(guān)鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關(guān)鍵字為止
離開vi
「q」:按「q」就是退出,如果無法離開vi,可以在「q」后跟一個「!」強(qiáng)制離開vi
「qw」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件
mkdir命令
功能:創(chuàng)建一個目錄(類似MSDOS下的md命令)
語法:mkdir [選項(xiàng)] dir-name
說明:該命令創(chuàng)建由dir-name命名的目錄。要求創(chuàng)建目錄的用戶在當(dāng)前目錄中(dir-name的父目錄中)具有寫權(quán)限,并且dirname不能是當(dāng)前目錄中已有的目錄或 文件名稱。
命令中各選項(xiàng)的含義為:
-p 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在, 加上此選項(xiàng)后, 系統(tǒng)將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄
cd 命令
功能:改變工作目錄
語法:cd [directory]
說明:該命令將當(dāng)前目錄改變至directory所指定的目錄。若沒有指定directory, 則回到用戶的主目錄。為了改變到指定目錄,用戶必須擁有對指定目錄的執(zhí)行和讀權(quán)限
ls 命令
功能: 列出目錄的內(nèi)容,該命令類似于DOS下的dir命令
語法:ls [選項(xiàng)] [目錄或是文件]
對于每個目錄,該命令將列出其中的所有子目錄與文件。對于每個文件,ls將輸出 其文件名以及所要求的其他信息。默認(rèn)情況下,輸出條目按字母順序排序。當(dāng)未給出目錄名或是文件名時,就顯示當(dāng)前目錄的信息。
命令中各選項(xiàng)的含義如下:
-a 顯示指定目錄下所有子目錄與文件,包括隱藏文件
-c 按文件的修改時間排序
-t 顯示時按修改時間(最近優(yōu)先)而不是按名字排序。若文件修改時間相同,則 按字典順序。修改時間取決于是否使用了c或u選頂。缺省的時間標(biāo)記是最后一次修改時間
tar命令
tar可以為文件和目錄創(chuàng)建檔案。利用tar,用戶可以為某一特定文件創(chuàng)建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創(chuàng)建檔案,現(xiàn)在,用戶可以在任何設(shè)備上創(chuàng)建檔案,如軟盤。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對于備份文件或?qū)讉€文件組合成為一個文件以便于網(wǎng)絡(luò)傳輸是非常有用的。Linux上的tar是GNU版本的。
語法:tar [主選項(xiàng)+輔選項(xiàng)] 文件或者目錄
使用該命令時,主選項(xiàng)是必須要有的,它告訴tar要做什么事情,輔選項(xiàng)是輔助使用的,可以選用。
主選項(xiàng):
-c 創(chuàng)建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項(xiàng)。
-x 從檔案文件中釋放文件。
-f 使用檔案文件或設(shè)備,這個選項(xiàng)通常是必選的。
-v 詳細(xì)報告tar處理的文件信息。如無此選項(xiàng),tar不報告文件信息。
-z 用gzip來壓縮/解壓縮文件,加上該選項(xiàng)后可以將檔案文件進(jìn)行壓縮,但還原時也一定要使用該選項(xiàng)進(jìn)行解壓縮
文件或目錄的訪問權(quán)限
Linux系統(tǒng)中的每個文件和目錄都有訪問許可權(quán)限,用它來確定誰可以通過何種方式對文件和目錄進(jìn)行訪問和操作
文件或目錄的訪問權(quán)限分為只讀,只寫和可執(zhí)行三種。以文件為例,只讀權(quán)限表示只允許讀其內(nèi)容,而禁止對其做任何的更改操作??蓤?zhí)行權(quán)限表示允許將該文件作為一個程序執(zhí)行。文件被創(chuàng)建時,文件所有者自動擁有對該文件的讀、寫和可執(zhí)行權(quán)限,以便于對文件的閱讀和修改。用戶也可根據(jù)需要把訪問權(quán)限設(shè)置為需要的任何組合
有三種不同類型的用戶可對文件或目錄進(jìn)行訪問:文件所有者,同組用戶、其他用戶。所有者一般是文件的創(chuàng)建者。所有者可以允許同組用戶有權(quán)訪問文件,還可以將文件的訪問權(quán)限賦予系統(tǒng)中的其他用戶。在這種情況下,系統(tǒng)中每一位用戶都能訪問該用戶擁有的文件或目錄
每一文件或目錄的訪問權(quán)限都有三組,每組用三位表示,分別為文件屬主的讀、寫和執(zhí)行權(quán)限;與屬主同組的用戶的讀、寫和執(zhí)行權(quán)限;系統(tǒng)中其他用戶的讀、寫和執(zhí)行權(quán)限。當(dāng)用ls -l命令顯示文件或目錄的詳細(xì)信息時,最左邊的一列為文件的訪問權(quán)限。
例如:
$ ls -l sobsrc. tgz
-rw-r–r– 1 root root 483997 Ju1 l5 17:3l sobsrc. tgz
橫線代表空許可。r代表只讀,w代表寫,x代表可執(zhí)行。注意這里共有10個位置。第一個字符指定了文件類型。在通常意義上,一個目錄也是一個文件。如果第一個字符是橫線,表示是一個非目錄的文件。如果是d,表示是一個目錄
例如:
- rw- r– r–
普通文件 文件主 組用戶 其他用戶
是文件sobsrc.tgz 的訪問權(quán)限,表示sobsrc.tgz是一個普通文件;sobsrc.tgz的屬主有讀寫權(quán)限;與sobsrc.tgz屬主同組的用戶只有讀權(quán)限;其他用戶也只有讀權(quán)限。
chmod 命令
chmod命令是非常重要的,用于改變文件或目錄的訪問權(quán)限。用戶用它控制文件或目錄的訪問權(quán)限。
該命令有兩種用法。一種是包含字母和操作符表達(dá)式的文字設(shè)定法;另一種是包含數(shù)字的數(shù)字設(shè)定法。
文字設(shè)定法
chmod [who] [+ | - | =] [mode] 文件名
命令中各選項(xiàng)的含義為:
操作對象who可是下述字母中的任一個或者它們的組合:
u 表示“用戶(user)”,即文件或目錄的所有者。
g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。
o 表示“其他(others)用戶”
a 表示“所有(all)用戶”。它是系統(tǒng)默認(rèn)值。
操作符號可以是:
+ 添加某個權(quán)限。
- 取消某個權(quán)限。
= 賦予給定權(quán)限并取消其他所有權(quán)限(如果有的話)
設(shè)置mode所表示的權(quán)限可用下述字母的任意組合:
r 可讀
w 可寫
x 可執(zhí)行
X 只有目標(biāo)文件對某些用戶是可執(zhí)行的或該目標(biāo)文件是目錄時才追加x 屬性。
s 在文件執(zhí)行時把進(jìn)程的屬主或組ID置為該文件的文件屬主。方式“u+s”設(shè)置文件的用戶ID位,“g+s”設(shè)置組ID位。
t 保存程序的文本到交換設(shè)備上。
u 與文件屬主擁有一樣的權(quán)限。
g 與和文件屬主同組的用戶擁有一樣的權(quán)限。
o 與其他用戶擁有一樣的權(quán)限。
文件名:以空格分開的要改變權(quán)限的文件列表,支持通配符
在一個命令行中可給出多個權(quán)限方式,其間用逗號隔開。
例如:chmod g+r,o+r example
使同組和其他用戶對文件example 有讀權(quán)限
chgrp命令
功能:改變文件或目錄所屬的組。
語法:chgrp [選項(xiàng)] group filename
該命令改變指定指定文件所屬的用戶組。其中g(shù)roup可以是用戶組ID,也可以是/etc/group文件中用戶組的組名。文件名是以空格分開的要改變屬組的文件列表,支持通配符。如果用戶不是該文件的屬主或超級用戶,則不能改變該文件的組。
該命令的各選項(xiàng)含義為:
-R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組
chown 命令
功能:更改某個文件或目錄的屬主和屬組。這個命令也很常用。例如root用戶把自己的一個文件拷貝給用戶xu,為了讓用戶xu能夠存取這個文件,root用戶應(yīng)該把這個文件的屬主設(shè)為xu,否則,用戶xu無法存取這個文件。
語法:chown [選項(xiàng)] 用戶或組 文件
說明:chown將指定文件的擁有者改為指定的用戶或組。用戶可以是用戶名或用戶ID。組可以是組名或組ID。文件是以空格分開的要改變權(quán)限的文件列表,支持通配符。
該命令的各選項(xiàng)含義如下:
-R 遞歸式地改變指定目錄及其下的所有子目錄和文件的擁有者
-v 顯示chown命令所做的工作
passwd命令
出于系統(tǒng)安全考慮,Linux系統(tǒng)中的每一個用戶除了有其用戶名外,還有其對應(yīng)的用戶口令。因此使用useradd命令增加時,還需使用passwd命令為每一位新增加的用戶設(shè)置口令;用戶以后還可以隨時用passwd命令改變自己的口令
該命令的一般格式為: passwd [用戶名] 其中用戶名為需要修改口令的用戶名。只有超級用戶可以使用“passwd 用戶名”修改其他用戶的口令,普通用戶只能用不帶參數(shù)的passwd命令修改自己的口令
該命令的使用方法如下:
輸入passwd Enter;
在new password:提示下輸入新的口令(在屏幕上看不到這個口令):
系統(tǒng)提示再次輸入這個新口令
su命令
它可以讓一個普通用戶擁有超級用戶或其他用戶的權(quán)限,也可以讓超級用戶以普通用戶的身份做一些事情。普通用戶使用這個命令時必須有超級用戶或其他用戶的口令。如要離開當(dāng)前用戶的身份,可以打exit
該命令的一般形式為: su [選項(xiàng)] [使用者帳號]
說明:若沒有指定使用者帳號,則系統(tǒng)預(yù)設(shè)值為超級用戶root。 該命令中各選項(xiàng)的含義分別為:
-c 執(zhí)行一個命令后就結(jié)束
- 加了這個減號的目的是使環(huán)境變量和欲轉(zhuǎn)換的用戶相同
-m 保留環(huán)境變量不變
shutdown命令
shutdown 命令可以安全地關(guān)閉或重啟Linux系統(tǒng),它在系統(tǒng)關(guān)閉之前給系統(tǒng)上的所有登錄用戶提示一條警告信息。該命令還允許用戶指定一個時間參數(shù),可以是一個精確的時間,也可以是從現(xiàn)在開始的一個時間段。精確時間的格式是hh:mm,表示小時和分鐘;時間段由“+”和分鐘數(shù)表示。系統(tǒng)執(zhí)行該命令后,會自動進(jìn)行數(shù)據(jù)同步的工作
該命令的一般格式為: shutdown [選項(xiàng)] [時間] [警告信息] 命令中各選項(xiàng)的含義為:
-k 并不真正關(guān)機(jī),而只是發(fā)出警告信息給所有用戶。
-r 關(guān)機(jī)后立即重新啟動。
-h 關(guān)機(jī)后不重新啟動。
-f 快速關(guān)機(jī),重啟動時跳過fsck。
-n 快速關(guān)機(jī),不經(jīng)過init程序。
-c 取消一個已經(jīng)運(yùn)行的shutdown
需要特別說明的是,該命令只能由超級用戶使用
free命令
free命令的功能是查看當(dāng)前系統(tǒng)內(nèi)存的使用情況,它顯示系統(tǒng)中剩余及已用的物理內(nèi)存和交換內(nèi)存,以及共享內(nèi)存和被核心使用的緩沖區(qū)。
該命令的一般格式為: free [-b | -k | -m] 命令中各選項(xiàng)的含義如下:
-b 以字節(jié)為單位顯示。
-k 以K字節(jié)為單位顯示。
-m 以兆字節(jié)為單位顯示
df命令
功能:檢查文件系統(tǒng)的磁盤空間占用情況??梢岳迷撁顏慝@取硬盤被占用了多少空間,目前還剩下多少空間等信息
語法:df [選項(xiàng)]
說明:df命令可顯示所有文件系統(tǒng)對i節(jié)點(diǎn)和磁盤塊的使用情況。
該命令各個選項(xiàng)的含義如下:
-a 顯示所有文件系統(tǒng)的磁盤使用情況,包括0塊(block)的文件系統(tǒng),如/proc文件系統(tǒng)。
-k 以k字節(jié)為單位顯示。
-i 顯示i節(jié)點(diǎn)信息,而不是磁盤塊。
-t 顯示各指定類型的文件系統(tǒng)的磁盤空間使用情況。
du命令
du的英文原義為“disk usage”,含義為顯示磁盤空間的使用情況。
功能:統(tǒng)計目錄(或文件)所占磁盤空間的大小。
語法:du [選項(xiàng)] [Names…]
說明:該命令逐級進(jìn)入指定目錄的每一個子目錄并顯示該目錄占用文件系統(tǒng)數(shù)據(jù)塊(1024字節(jié))的情況。若沒有給出Names,則對當(dāng)前目錄進(jìn)行統(tǒng)計。
該命令的各個選項(xiàng)含義如下:
-s 對每個Names參數(shù)只給出占用的數(shù)據(jù)塊總數(shù)。
date命令
date命令的功能是顯示和設(shè)置系統(tǒng)日期和時間。
該命令的一般格式為: date [選項(xiàng)] 顯示時間格式(以+開頭,后面接格式)
date 設(shè)置時間格式
命令中各選項(xiàng)的含義分別為:
-s datestr, –set datestr 設(shè)置datestr 描述的日期
注意:只有超級用戶才有權(quán)限使用date命令設(shè)置時間,一般用戶只能使用date命令顯示時間。
ifconfig
作用
ifconfig用于查看和更改網(wǎng)絡(luò)接口的地址和參數(shù),包括IP地址、網(wǎng)絡(luò)掩碼、廣播地址,使用權(quán)限是超級用戶
格式
ifconfig -interface [options] address
主要參數(shù)
-interface:指定的網(wǎng)絡(luò)接口名,如eth0和eth1
up:激活指定的網(wǎng)絡(luò)接口卡
down:關(guān)閉指定的網(wǎng)絡(luò)接口
address:設(shè)置指定接口設(shè)備的IP地址
netmask address:設(shè)置接口的子網(wǎng)掩碼
應(yīng)用說明
ifconfig是用來設(shè)置和配置網(wǎng)卡的命令行工具。為了手工配置網(wǎng)絡(luò),這是一個必須掌握的命令。使用該命令的好處是無須重新啟動機(jī)器。
要賦給eth0接口IP地址207.164.186.2,并且馬上激活它,使用下面命令:
#fconfig eth0 210.34.6.89 netmask 255.255.255.128
該命令的作用是設(shè)置網(wǎng)卡eth0的IP地址、網(wǎng)絡(luò)掩碼和網(wǎng)絡(luò)的本地廣播地址。若運(yùn)行不帶任何參數(shù)的ifconfig命令,這個命令將顯示機(jī)器所有激活接口的信息。帶有“-a”參數(shù)的命令則顯示所有接口的信息,包括沒有激活的接口。注意,用ifconfig命令配置的網(wǎng)絡(luò)設(shè)備參數(shù),機(jī)器重新啟動以后將會丟失
如果要暫停某個網(wǎng)絡(luò)接口的工作,可以使用down參數(shù):
#ifconfig eth0 down
netstat
作用
檢查整個Linux網(wǎng)絡(luò)狀態(tài)
格式
netstat [-acCeFghilMnNoprstuvVwx][-A][–ip]
主要參數(shù)
-a–all:顯示所有連線中的Socket
-l–listening:顯示監(jiān)控中的服務(wù)器的Socket
-n–numeric:直接使用IP地址,而不通過域名服務(wù)器
-p–programs:顯示正在使用Socket的程序識別碼和程序名稱
-t–tcp:顯示TCP傳輸協(xié)議的連線狀況
-u–udp:顯示UDP傳輸協(xié)議的連線狀況
-apn 查看開啟的端口
應(yīng)用實(shí)例
netstat主要用于Linux察看自身的網(wǎng)絡(luò)狀況,如開啟的端口、在為哪些用戶服務(wù),以及服務(wù)的狀態(tài)等。此外,它還顯示系統(tǒng)路由表、網(wǎng)絡(luò)接口狀態(tài)等??梢哉f,它是一個綜合性的網(wǎng)絡(luò)狀態(tài)的察看工具。在默認(rèn)情況下,netstat只顯示已建立連接的端口。如果要顯示處于監(jiān)聽狀態(tài)的所有端口,使用-a參數(shù)即可:
#netstat -a
lsof
作用
顯示系統(tǒng)打開的文件
格式
lsof 〔options〕 filename
主要參數(shù)
lsof -a: 表示兩個參數(shù)都必須滿足時才顯示結(jié)果
lsof -c string: 顯示COMMAND列中包含指定字符的進(jìn)程所有打開的文件
lsof -u username: 顯示所屬user進(jìn)程打開的文件
lsof -g gid: 顯示歸屬gid的進(jìn)程情況
lsof +d /DIR/: 顯示目錄下被進(jìn)程打開的文件
lsof +D /DIR/: 同上,但是會搜索目錄下的所有目錄,時間相對較長
lsof -d FD: 顯示指定文件描述符的進(jìn)程
lsof -n: 不將IP轉(zhuǎn)換為hostname,缺省是不加上-n參數(shù)
lsof -i: 用以顯示符合條件的進(jìn)程情況
lsof -i:port: 查看端口運(yùn)行的程序。
例如:查看22端口所運(yùn)行的程序 #lsof -i:22
telnet
作用
telnet表示開啟終端機(jī)階段作業(yè),并登入遠(yuǎn)端主機(jī)。telnet是一個Linux命令,同時也是一個協(xié)議(遠(yuǎn)程登陸協(xié)議)
格式
telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主機(jī)名稱IP地址通信端口]
ftp
作用
ftp命令進(jìn)行遠(yuǎn)程文件傳輸。FTP是ARPANet的標(biāo)準(zhǔn)文件傳輸協(xié)議,該網(wǎng)絡(luò)就是現(xiàn)今Internet的前身,所以ftp既是協(xié)議又是一個命令。
格式
ftp [-dignv][主機(jī)名稱IP地址]
應(yīng)用說明
ftp命令是標(biāo)準(zhǔn)的文件傳輸協(xié)議的用戶接口,是在TCP/IP網(wǎng)絡(luò)計算機(jī)之間傳輸文件簡單有效的方法,它允許用戶傳輸ASCⅡ文件和二進(jìn)制文件。為了使用ftp 來傳輸文件,用戶必須知道遠(yuǎn)程計算機(jī)上的合法用戶名和口令。這個用戶名/口令的組合用來確認(rèn)ftp會話,并用來確定用戶對要傳輸?shù)奈募M(jìn)行什么樣的訪問。另外,用戶需要知道對其進(jìn)行ftp會話的計算機(jī)名字的IP地址
用戶可以通過使用ftp客戶程序,連接到另一臺計算機(jī)上;可以在目錄中上下移動、列出目錄內(nèi)容;可以把文件從遠(yuǎn)程計算機(jī)機(jī)拷貝到本地機(jī)上;還可以把文件從本地機(jī)傳輸?shù)竭h(yuǎn)程系統(tǒng)中。ftp內(nèi)部命令有72個,下面列出主要幾個內(nèi)部命令:
ls:列出遠(yuǎn)程機(jī)的當(dāng)前目錄
cd:在遠(yuǎn)程機(jī)上改變工作目錄
lcd:在本地機(jī)上改變工作目錄
close:終止當(dāng)前的ftp會話
get(mget):從遠(yuǎn)程機(jī)傳送指定文件到本地機(jī)
put(mput):從本地機(jī)傳送指定文件到遠(yuǎn)程機(jī)
quit:斷開與遠(yuǎn)程機(jī)的連接,并退出ftp
route
作用
route表示手工產(chǎn)生、修改和查看路由表
格式
#route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]
#route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]
主要參數(shù)
-add:增加路由
-delete:刪除路由
-net:路由到達(dá)的是一個網(wǎng)絡(luò),而不是一臺主機(jī)
-host:路由到達(dá)的是一臺主機(jī)
-netmask Nm:指定路由的子網(wǎng)掩碼
gw:指定路由的網(wǎng)關(guān)
[dev]If:強(qiáng)迫路由鏈指定接口。
應(yīng)用實(shí)例
route命令是用來查看和設(shè)置Linux系統(tǒng)的路由信息,以實(shí)現(xiàn)與其它網(wǎng)絡(luò)的通信。要實(shí)現(xiàn)兩個不同的子網(wǎng)之間的通信,需要一臺連接兩個網(wǎng)絡(luò)的路由器,或者同時位于兩個網(wǎng)絡(luò)的網(wǎng)關(guān)來實(shí)現(xiàn)
在Linux系統(tǒng)中,設(shè)置路由通常是為了解決以下問題:該Linux系統(tǒng)在一個局域網(wǎng)中,局域網(wǎng)中有一個網(wǎng)關(guān),能夠讓機(jī)器訪問Internet,那么就需要將這臺機(jī)器的IP地址設(shè)置為Linux機(jī)器的默認(rèn)路由。使用下面命令可以增加一個默認(rèn)路由:
route add 0.0.0.0 192.168.1.1
top
作用
top命令用來顯示執(zhí)行中的程序進(jìn)程,使用權(quán)限是所有用戶。
格式
top [-] [d delay] [q] [c] [S] [s] [i] [n]
主要參數(shù)
d:指定更新的間隔,以秒計算
q:沒有任何延遲的更新。如果使用者有超級用戶,則top命令將會以最高的優(yōu)先序執(zhí)行
c:顯示進(jìn)程完整的路徑與名稱
i:不顯示任何閑置(Idle)或無用(Zombie)的行程
n:顯示更新的次數(shù),完成后將會退出top。
說明
top命令是Linux系統(tǒng)管理的一個主要命令,通過它可以獲得許多信息。這里我們結(jié)合圖1來說明它給出的信息
下面列出了詳細(xì)解釋
PID(Process ID):進(jìn)程標(biāo)示號
USER:進(jìn)程所有者的用戶名
PR:進(jìn)程的優(yōu)先級別
NI:進(jìn)程的優(yōu)先級別數(shù)值
VIRT:進(jìn)程占用的虛擬內(nèi)存值
RES:進(jìn)程占用的物理內(nèi)存值
SHR:進(jìn)程使用的共享內(nèi)存值
S:進(jìn)程的狀態(tài),其中S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值是負(fù)數(shù)
%CPU:該進(jìn)程占用的CPU使用率
%MEM:該進(jìn)程占用的物理內(nèi)存和總內(nèi)存的百分比
TIME+:該進(jìn)程啟動后占用的總的CPU時間
Command:進(jìn)程啟動的啟動命令名稱,如果這一行顯示不下,進(jìn)程會有一個完整的命令行。