- /etc/sysconfig/clock : 時間格式的設定
- /etc/sysconfig/keyboard : 盤種類的設定
- /etc/sysconfig/mouse : mouse的設定
- /etc/sysconfig/network : 網路的設定
- 是否啟動網路設定
- NETWORKING = yes|no
- 主機名稱,在這邊會與/etc/hosts當中設定相同
- HOSTNAME=canred
- 是否啟動 IP forwarding 的yes 相當於將 /proc/sys/net/ipv4/ip_forwarding設為1
- FORWARD_IPV4=yes|no
- 設定gateway的IP address
- GATEWAY = geteway ip
- 設定gateway的裝置名稱,如eth0
- GATEWAYDEV = gateway device
- NISDOMAIN = nis domain name
- /etc/sysconfig/static-routes:如果沒有特別指定,這個檔案是空的
- /etc/sysconfig/network-scripts/ifup
- /etc/sysconfig/network-scripts/ifdown
- 上上的ifup,ifdown分別連結到/sbin/ifup , /sbin/ifdown 。這個指令後面必須要加參數(裝置的名稱eth0,ppp0)
- /etc/sysconfig/network-scripts/network-functions
- 這是一個shell script檔,這是一個來源,系統透過它啟動網路上的服務
- /etc/sysconfig/network-scripts/ifcfg-interfacename
- /etc/sysconfig/network-scripts/ifcfg-interfacename-clonename
- 以上的2個檔案 , 第1個是定義介面,如:eth0 ;第2個是介面的別名,這種狀況會發生在一張介面卡上有2個ip address,如eth0:0
- 一般的內容如下:
- DEVICE=硬體的名稱,ex : eth0 , eth1 ,ppp etc.
- IPADDR=IP address
- NETMASK=子網路遮罩
- NETWORK=網路,也就是網路中IP address區段的第一個
- BROADCAST=廣播位址,也就是網路中IP Address區段的最後一個
- GATEWAY=閘道的位址
- ONBOOT=yes|no 開機後啟動
- BOOTPROTO = none | bootp | dhcp (啟動時的網路設定)
- etc/sysconfig/network-scripts/ifup-post
- 除了SLIP之外的網路裝置啟動時,都會被呼叫,它會呼叫ifup-routes來啟動所有靜態的路由,以及它的附屬檔案
2013年2月28日 星期四
/etc/sysconfig/*目錄的介紹
聯線用戶相關指令
- 查看聯線用戶命令 who , finger , w , last
- who
- 查看常前系統中的用戶(一般查詢時使用)
- who指令的選項
- H:此選項會顯示標題欄位
- i:顯示閒置的時間
- T:顯示使用者是否原意接收其他使用者的訊息
- +:表示可接收write指令所傳送的訊息
- -:則表示不願接收訊息
- 使用者可以透會mesg指令來設定自已是否要接收write來的訊息
- mesg y :表接收
- mesg n :表不接收
- finger
- 查看登錄系統用戶及相關信息
- w(功能比較強大)
- 查看正在使用系統的用戶並列出用戶占用系統資源的情況
- w指令資料輸出格式
- 第一列的欄位
- 系統目前的時間
- 系統啟動後已經過的時間
- 目前登入此系統的使用者總數
- 系統平均負載指示:如:"load average:0.12,0.09,0.08";分別表示系統1,5,10分鐘的平均負載率
- 第二列的欄位
- user:顯示登入的使用者帳號
- tty:該使用者登入的終端機代號
- from:顯示使用者從何處登入系統;":0"表示該使用者從x window下,開啟文字模式登入。
- login@:表示該使用者是登入時間
- idle:使用者閒置的時間
- jcpu:以終端機之代號來區分,該終端機所有相關的程序執行時,所使用cpu時間,此值會不斷的累加。
- pcpu:cpu執行程式所用的時間,該時間就是執行what欄內的程式所用的時間。
- what:使用者正在做什麼事。
- last指令;查看曾登入此系統的使用者的資訊
- last指令其實是讀取/var/log目錄下的wtmp檔案內容
- 斷開聯線用戶命令 fuser
- 在一些特殊情況下,需要對系統進行緊急維擭,這時應該將已經聯線到系統的用戶強制斷開,不且不允許除root以外的用戶登錄;我們可以使用fuser的指令斷開使用者。
- fuser -k /dev/pts/3
- 另外還有一個方法可以禁止所有用戶登錄,就是在/etc中新建一個名為nologin的空文件(算是大絕吧)。
- 2013/4/23
- 新增
- w指令欄位說明
- who指令的選項
- last指令
write指令;向針定的人員發出訊息,mesg指令;talk指令
- wall指令
- 將向系統的所有用戶發送關資訊
- write指令
- 向root用戶發送一個訊息
- write root
Hello !
My name is canred.
按下ctrl+c退出
- write test 1 "Hello"
- mesg指令
- 用來拒絕收到訊息(非root),root用戶發出來的不可以拒絕
- talk指令;要先啟動talkd 服
- vim etc/xinetd.d/ntalk
- 要修改disable = no
- service xinetd restart
- talk test1@localhost tty2
date,clock,hwclock指令,系統中的硬件時鍾
在Linux的系統中有2個時鐘:1是由硬件設備控制的硬件時鐘,另一個是由操作系統控制的係統時鐘,如果需要修改系統時間,就應該同時修改硬件時鐘和系統時鐘。
- date
- 修改系統的日期
- date -s 06/25/08
- date -s 15:30:23
- date "%y-%m-%d %T"
- date -s "2010-10-10 12:12:12"
- date 還可顯示某檔案的修改時間
- date -r sample.txt
- 將當前系統的時鐘寫入硬件時鐘
- clock -w
- hwclock設定硬件的時鍾
- 用來同步硬件時鍾與系統時鍾
- hwclock --systohc
- hwclock --set --date="9/22/12 18:18:18"
wc指令用來統計文本文件的字符數、行字符數
- 許多時侯需要對一個文檔或命令的輸入做一個統計,例如要統計命令的輸出一共有多少行,或者命令輸出、文檔的字數統計等,這時可以使用wc命令來完成這些工作
- 選項
- c:字節數
- m:統計並顯示字符數
- l:統計全顯示文件的行數
- L:顯示文件中最長行的長度
- w:統計并輸出文件的字數
- 範例
- wc a.txt
- 輸出:123 456 789 a.txt
- 第1組數字:行數
- 第2組數字:詞數
- 第3組數字:字節數
- wc -w a.txt
- 使用w選項只顯示詞數
- wc -l a.txt
- 使用l選項只顯示行數
- ps aux | grep apache | wc -l
- 說明:在進程中找有關apache的進程有幾個
2013年2月27日 星期三
命令別名功能
- 系統定定的別名
- 你可以使用alias指令列出所有的別名
alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
canred@canred:~$
- 如果你要保存你的別名功能,可以建立一個新的sh檔案並保存在/etc/profile.d目錄下
- 內容如下
alias la='ls -A'
alias ll='ls -alF'
..........
- 用戶自定義別名
- alias type='cat'
- type test.txt
- 取消定義的別名
- unalias type
chsh指令;更換登入者的shell
- 設定指定使用者的shell
- chsh canred
- 這是一個以詢問是的方式來設定shell
- chsh -s /sbin/nologin test100
- 以指令的方式直接修改使用者的shell
- usermod -s /bin/ksh canred
- 使用usermod指令也可以修改
2013年2月26日 星期二
passwd指令;批量修改密碼;/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow 檔案介紹
- 用來顯示密碼概要資訊…
- passwd -S test100
- 用來問答方式設定新的密碼
- passwd canred
- 使用 echo 來設密碼
- echo 123456 | passwd --stdin test100
- /etc/passwd 檔案介紹
- 這一個檔案是一個文字檔,包含了帳號的資訊。每一行表示一個帳號資訊,其格式如下
- 名稱:密碼:UID:GID:註解:目錄:shell
- 欄位說明:
- 名稱:不要使用特殊符號即可…這應該不用多說了吧
- 密碼:加密過的密碼欄位以*顯示,並存於shadwo中;若沒有使用shadow而且密碼欄為*時,刪無法登入系統。
- UID :使用者的唯一識別碼,但0是給root帳號用的
- 備註:UID在0-499為系統保留給系統用戶(通常是軟體的專有用戶)使用的,因此管理員在新增用戶id時通常大於500
- GID :主群組的號碼,與名稱的對應定在 /etc/group 的檔案中
- 註解:就是註解…
- 目錄:使用者根目錄的所在的位置,你也可以使用usrmod -s的指令來修改
- shell :登入時所使用的程式shell,常見的有sh csh ksh bash ,如果此欄位不存在則使用預設的sh,若為/sbin/nologin,則無法登入
- 備註
- 若是不想讓該使用者登入系統
- 在shadow模式下;把使用的的密碼變成非*即可
- 使用passwd -l account ;參數 l 為lock
- 在passwd的檔案修改shell部份的/sbin/nologin
- chpasswd指令(資料來源為:鳥哥的 Linux 私房菜)
- 說明:此指令可以『讀入未加密前的密碼,並且經過加密後, 將加密後的密碼寫入 /etc/shadow 當中。』這個指令很常被使用在大量建置帳號的情況中喔! 他可以由 Standard input 讀入資料,每筆資料的格式是『 username:password 』。 舉例來說,我的系統當中有個使用者帳號為 dmtsai ,我想要更新他的密碼 (update) , 假如他的密碼是 abcdefg 的話,那麼我可以這樣做:
echo "dmtsai:abcdefg" | chpasswd -m
- /etc/shadow 檔案介紹
- 這是一個加密的密碼檔,其中包含了使用者的重要資訊,格式如下
- (A)使用者名稱:(B)加密的密碼:(C)密碼變動日:(D)密碼可能改變前的日期:(E)密碼必須在多少日後變更:(F)密碼失效前多少日提出警告:(G)密碼失效後多少日停用該帳號:(H)從1970/1/1,該帳後被停用的日數:(I)保留欄位
- 密碼在(D)之前是不得變更的,而必須在(E)之前變更
- 若(E)大於(D),應使用不能再變更密碼
- (B)加密的密碼是一個md5加密(不可逆的加密方式),通常是以$1$開頭的。
- (c)表示最後一次密碼修改的天數(從1970/1/1日算起)
- (d)表示2次修改密碼之間的問隔天數,在此期間用戶不能修改密碼(0表示可以隨時修改密碼)
- (e)表示密碼最長存留的天數
- (f)用於標識密碼過期之前的警告天數(-1表示沒有警告)
- (g)用於表示密碼過期之後禁止戶登錄的天數(1表示不會被禁用)若為空也表示不會被禁止登錄。
- (h)表示過期後被禁用的天數(-1或空表示不會被禁用)
- 在shadow文件中出現2個『!!』號,表示是空的密碼
- 在shadow文件中二個用戶相同的密碼的情況下,密文若然是不同的
- 用於保存用戶組的文件為/etc/group,其密碼文件在/etc/gshadow中,概念於用戶管理是相同的
- /etc/group
- 它定義群組的名稱,gid,以及使用者的對應,格式如下:
- group_name:passwd:GID:user_list
- group_name:是群組名稱
- passwd:加過密的密碼,也就是使用shadow時則欄就以*/x表示,而加過密的密碼置於/etc/gshadow
- GID:群組id
- user_list:使用者列表,這邊可列出群組的所有人員,以逗號分隔。
- /etc/gshadow
- 用於保存用戶組密碼、用戶組管理員等設置。
- group_name:用戶組密碼:用戶組管理員:組的成員
- group_name:組名稱
- 用戶組的密碼
- 用戶組管理員;若為多個時以『,』分隔
- 用戶組成員;若為多個時以『,』分隔
- 系統用戶組文件和用戶shadow都是由系統自動生成的,不建議使用手動修改。
2013年2月25日 星期一
使用者與群組相關的基本指令
- 新增使用者(useradd/adduser)
- 說明:我要建立一個名稱canred的使用者,其根目錄為 /home/canred ,主要的群組為 user(100) ,次要的群組為 oper(1001);可以透過下行指令完成。另外useradd或adduser其實都是指向/etc/sbin/useradd。
- 常用的選項
- g:指定新用戶所屬的用戶組
- s:指定新用戶使用的shell
- 有關使用者的家目錄可能還會存在一些別的初始化文件,例如編輯器vim的初始化文件.viminfo等。在建立新用戶時的家目錄模板被放置於/etc/skel中。
- 在新增使用者前,你可以使用指令 figger 帳號 來查看這個帳號是不已存在。
- useradd -u 501 -g 100 -G 1001 -d /home/canred -m canred
- 在指令會做的事
- step 1.在/etc/passwd中新增一行關於canred帳號、uid、gid、根目錄等資訊
- step 2.新增一目錄,並將權限賦予給canred
- step 3.由於加上了 -m ,所以系統會將 /etc 下的 profile 複制到 /home/caned 之下的 .bash*.
- 此外,還有 mail spool 的相關檔案,另外其中 -u 後面的501是指到uid用的,接在我們使用 passwd canred 設定密碼後…canred 使用者即可登入系統了。
- useradd -s /bin/ksh user2
- 在新增使用者的時侯直接指定shell
- useradd -s /sbin/nologin mysql
- 新增一個軟件專用的帳號,並設定為不可以用來登錄系統
- 由於軟件專有用戶不能登錄系統,因此通常不需要為其設置密碼,雖然系統會禁止空密碼用戶登錄,但仍然建議修改軟體專有用戶的shell,以逸存在可能的安全隱患。
- useradd -g groupname user_name1
- 批次大量的建立帳號(pdadduser)
- 快速方便建立大量帳號 -- PDAddUser -- 使用說明
- 首先你要先安裝這一個指令功能,如上連結
- 編輯帳號清冊,暫命為 name_list 檔案,內容如下
- canred1 min chen
- canred2 max chen
- ...
- pdadduser -n /root/name_list -o pdout -p %8r -g users -f '%0.0%0.1$2' -F '$1$2$3' -h '/home/$u' -r 600 700 -c 'useradd -u $i -d $d -c "$f" -g $g $u' '(printf "$p"; pause 1 ;printf "$p") | passwd $u'
- 刪除使用者
- 使用 userdel -r 的指令即可
- ex : userdel -r canred
- -r順更刪除home中對映的目錄/郵件檔案
- 修改使用者(canred)的shell,以及修改群組
- 用戶管理的基本內容是禁用、啟用用戶帳號(即鎖定(L)、解除鎖定(U)),以及修改用戶的屬性。
- 常用的選項
- L:鎖定用戶(Lock)
- 在使用L選項後,你可以在shadow文件中看見密碼的密文前面多了一個『!』
- U:解除鎖定(UnLock)
- e:指家用戶過期的日期
- usermod -e 2013-03-03 testAccount
- f:指定用戶過期之後的緩沖時間,即過期之後還能夠登錄的天數。
- usermod -f 5 testAccount
- d:為用戶指定新的家目錄(directory)
- m:為用戶指定新的家目錄時,移動原來家目錄中的所有文件(move)
- usermod -d /file/user/home/canred/ -m canred
- 使用選項d修改家目錄的同時,用選項m移動家目錄中的文件
- s:修改用戶的shell(shell)
- usermod -s /bin/true -G group1,group2 canred
- 提示:也可以修改文件/etc/login.defs的方式,修改用戶的密碼策略。
- 將canred使用者從group2這個群組中刪除
- gpasswd -d user1 group2
- 將canred使用者加入group3的群組中
- gpasswd -a canred group3
- 範例:
- 一般新增使用者時,你可能下達的指令
- useradd newAccount
- passwd newAccount
- useradd -s /bin/csh -d /home/newAccount canred
- 修改使用者的shell
實作一備software RAID 0 的file system
Step 1.新做出二個partition 先…
fdisk /dev/hdb
...
mke2fs -j /dev/hdb1
mke2fs -j /dev/hdb2
Step 2.修改 /etc/raidtab 參考如下
raddev /dev/md2
raid-level 0
nr-raid-disk 2
chunk-size 64K
persistent-superblock 1
nr-spare-disks 0
device /dev/hdb1
raid-disk 0
device /dev/hdb2
raid-disk 1
Step 3. 使用 mkraid 指令,將2個partition串起來(raid 0)
mkraid /dev/md2
mke2fs -j /dev/md2
Step 4. 將 /dev/md2 掛接在 /new 之上即可
mount -t ext3 /dev/md2 /new
fdisk /dev/hdb
...
mke2fs -j /dev/hdb1
mke2fs -j /dev/hdb2
Step 2.修改 /etc/raidtab 參考如下
raddev /dev/md2
raid-level 0
nr-raid-disk 2
chunk-size 64K
persistent-superblock 1
nr-spare-disks 0
device /dev/hdb1
raid-disk 0
device /dev/hdb2
raid-disk 1
Step 3. 使用 mkraid 指令,將2個partition串起來(raid 0)
mkraid /dev/md2
mke2fs -j /dev/md2
Step 4. 將 /dev/md2 掛接在 /new 之上即可
mount -t ext3 /dev/md2 /new
在linux系統中新增一個硬碟的步驟、ext2轉ext3、減低系統對於file system的保留比率
step 1.用dmesg看看系統對新增硬碟的認定為何
可能用到的指定 dmesg | grep hd | more
step 2.使用fdisk建立新的分割並儲存
可能用到的指令 fdisk
step 3.將新的分割上建立file system
可能用到的指令 mke2fs 、 mount -t ext2 ...
step 4.將新建立的file system掛接上(mount it)
step 5.修改etc/fstab使得開機時能自動掛上
情況1:如果要把ext2的file system改為ext3時,你可以使用tune2fs的指令來完成。
ex : tune2fs -j /dev/hdb1
還有修改一下fstab的檔案…然後重新開機就可以了。
在轉的過程前還是建議備份一下你的資料。
情況2:減低系統對於file system的保留比率
通用系統會保留5%的file system空間,以防止硬碟遭到使用者完全寫滿時,造成系統管
理人員無法修復。但是現在的硬碟都越來越大…5%的空間可能太大了!所以本例會將
例降為2%,但是在執行這一個動作的時侯,最好是single user mode之下操作。
tune2fs -m 2 /dev/hdb1
可能用到的指定 dmesg | grep hd | more
step 2.使用fdisk建立新的分割並儲存
可能用到的指令 fdisk
step 3.將新的分割上建立file system
可能用到的指令 mke2fs 、 mount -t ext2 ...
step 4.將新建立的file system掛接上(mount it)
step 5.修改etc/fstab使得開機時能自動掛上
情況1:如果要把ext2的file system改為ext3時,你可以使用tune2fs的指令來完成。
ex : tune2fs -j /dev/hdb1
還有修改一下fstab的檔案…然後重新開機就可以了。
在轉的過程前還是建議備份一下你的資料。
情況2:減低系統對於file system的保留比率
通用系統會保留5%的file system空間,以防止硬碟遭到使用者完全寫滿時,造成系統管
理人員無法修復。但是現在的硬碟都越來越大…5%的空間可能太大了!所以本例會將
例降為2%,但是在執行這一個動作的時侯,最好是single user mode之下操作。
tune2fs -m 2 /dev/hdb1
2013年2月24日 星期日
Ram file System特殊的檔案系統
Ram file System就是把記憶體當成硬碟用,這是的用法恰恰與swap相反,swap是擔心記憶體不夠,而劃出一部份的硬碟空間做為虛擬記憶體,而所由的ram file system 則是將一部份的記憶體當作file system給mount起來。注意在機器關機或是將這個ram file system卸載,則裡頭的資料將會完全消失。
step 1.先建立一個資料夾起來
mkdir /RamFileSystem
step 2.把它mount起來
mount -t ramfs TEST /RamFileSystem
你在用df -a 就可以看見一個名為TEST的分區,而這個分區會因為你在/RamFileSystem中放入檔
案後,記憶體就是隨之減少。
step 1.先建立一個資料夾起來
mkdir /RamFileSystem
step 2.把它mount起來
mount -t ramfs TEST /RamFileSystem
你在用df -a 就可以看見一個名為TEST的分區,而這個分區會因為你在/RamFileSystem中放入檔
案後,記憶體就是隨之減少。
rpm,yum,chkconfig ,ntsysv ,apt-get,aptitude ,apt-key,apt-sortpkgs,dpkg ,dpkg-deb,dpkg-divert,dbkg-preconfigure,dbkg-query,dbkg-reconfig指令
- rpm 指令,在red hat 的default 的軟件管理程式。
- step 1. 我要將安裝一個名稱 zsh 的軟件
- rpm -ivh zsh.XXXXX.rpm
- step 2. 找詢剛才安裝的軟件
- rpm -q zsh
- step 3. 找詢 zsh 軟件的所有安裝文件
- rpm -ql zsh
- step 4. 另外我們也可以以文件檔案到推算出,它是那一個軟件包
- rpm -qf /sbin/fdisk
- step 5. 如何卸載一個軟件包
- rpm -e zsh
- step 6. 在安裝之前查看要安裝軟件的詳細資訊
- rpm -qpi zsh.XXXXX.rpm
- step 7. 在安裝之也可以查看這一件軟件包會復制出那一些新的文件
- rpm -qpl zsh.XXXXX.rpm
- rpm顯示所安裝的套件【使用q選項】
- rpm -qa sendmail
- rpm查詢包括<檔案>的套件【使用f選項】
- rpm -Vf /bin/vi
- 上是的-V選項是驗證模式
- rpm查詢的p選項為以套件的檔案全名來查詢套件
- rpm -qp rhviewer.xxx.xxxxxxx.rpm
- rpm顯示安裝的詳細資訊【使用i選項】
- rpm -qi sendmail
- rpm顯示所安裝的位置以及檔案【使用選項l】
- rpm -ql sendmail
- rpm使用s選項顯示即綿中所有的檔案狀態
- rpm使用d選項顯示在套件中被標示為文件的檔案列表,包括了man pages,info pages,readme etc.
- rpm使用c選項顯示在套件中標示為設定檔的檔案列表。
- rpm安裝程式
- rpm -ivh vnc*
- rpm更新軟件
- rpm -Uvh vnc*
- U:表Upgrade
- rpm -Fvh vnc
- F:表freshen
- 更新軟件還可以更新成較舊的版本,你可以使用--oldpackage的選項來完成。
- rpm -Uvh --oldpackage rhviewer-2.51=02.i386.rpm
- rpm移除軟件
- rpm -e ftd.x.x
- rpm單純解開
- rpm2cpio [rpm的檔案名稱] | cpio -idv
- rpm還能透過ftp來進行遠程的套件安裝或查詢
- rpm -ivh ftp://ftp.cycu.edu.tw/xxx.rpm
- 使用遠程安裝時,務必使用-h選項,否則你可能不知道安裝程序是否還在進行中,此外還可以使用--percent選項來得知安裝進度的百分比
- rpm指令是不可以重覆安裝相一個程式的,若你需要重新install則需要使用到--replacepkgs參數
- rpm -ivh --replacepkgs xxxx.rpm
- 套件中某個檔案已被其他套件安裝你可以看見以下訊息
- xxx conflicts with file from xxx-xxx-xxx
- 若你確定要取代舊有的檔案可以使用--replacefiles選項來安裝
- rpm -ivh --replacefiles xxx.rpm
- 套件移除
- 指令格式:rpm -e 套件名稱
- 你還可以使用--nodeps選項來進行強行移除套件
- 套件驗證
- 要驗證套件中的元件是否與原始套件相符,可使用驗證模式。-V參數可以來驗證套件的正確性。驗證模式會比較原始套件資訊及安裝於系統中的套件檔案資訊,包括每個檔案的大小、MD5(一種加密方式)checksum、權限、型別、擁有者及所屬的檔案群組。一般常用的驗證方式如下:
- rpm -V reviewer
- 驗證rhviewer套件的正確性
- rpm -Vf /bin/vi
- 驗證包含/bin/vi檔案的套件
- rpm -Va
- 驗證所有的套件
- rpm -Vprhviewer-xxx-xxx-xxx.rpm
- 使用.rpm檔案來驗證套件正確性
- 在驗證後,正常狀態是不會有任何的輸出的,如有不一致的地方會可參考以下的列表。
- 5:MD5 checksum不合
- S:檔案大小不合
- L:符號連結錯誤
- T:檔案修改時間不合
- D:設備屬性不合
- U:做用者不合
- G:檔案群組不合
- M:模式不合,包含權限和檔案型態
- rpm的應用
- 查詢套件所安裝的檔案:rpm -ql package-name
- 查詢是否刪除套件檔案:當您誤刪了某些檔案,可是並不知道到底刪掉些什麼,此時只要執行rpm -Va 指令即可對小統估完整的套件驗證,而得襠是否刪除了某些套件檔案
- 查詢檔案屬於那個套件:遇到一些不認得的檔案,想要找出這個檔案是否屬於那一個套件,可執行rpm -qf file-name指令
- 驗證套件的正確性:上2個例子可以結合使用。rpm -Vf /bin/vi
- 其他rpm選項
- --noorder:允許相依套件不按次序安裝
- --noscripts:不執行安裝套件前後用來輔助安裝程序的script指令
- --replacekgs:以相同的套件置換已安裝於系統中的套件,可用來修複已損毀的套件
- --replacefiles:可置換存在於別的套件之的相同檔案
- --excludedocs:不安裝套件中的w的文件檔案
- --justdb:只將套件原始檔中的資訊更新至組態資料庫中,而不實際安裝
- --test:測式套件
- --ignorearch:不檢查套件所用的平台(i386)
- --ignoreos:不檢查套件所用的作業系統
yum 指令,可以把它看成 rpm 的智能化工具,他的底層就是調用rpm,yum的指令可以將依賴
的軟件包一並安裝;yum可以透過網站安裝。
step 1. yum install zsh
step 2. yum update php
step 3. yum update
檢查系統輸出系統內的可更新軟件包
step 4. yum remove zsh
用來卸載軟件包
- 指令範例:
- yum search mysql
---------------------------------------------------------------------------------------------------------
chkconfig 指令 ,它是一個系統服務管理工具,它可以檢查、設置以及更新服務。
step 1. chkconfig --list
查看系統服務的狀態
step 2. chkconfig --list xinetd
查看單一個服務
step 3. chkconfig --level 3,4 xinetd off
在系統運行等級是3,4時;關閉xinetd服務
- 指令範例:
- chkconfig iptables off
- 設置防火牆服務的自動啟動狀態為關閉
- chkconfig:列出或是修改在開機時自動啟動的服務
- 假設我們要在單人模式、圖形介面的時侯停止ssh的服務
- chkconfig --level 35 sshd off
- 列出所有全部資訊
- chkconfig --list
- 補充:chkconfig輸出的最後幾個服務是一些老式的服務集,今天已經很少有人使用這些服務。這些老式服務集的運行狀態,依賴于一個名為xinetd的服務。通常將這些依賴于xinetd的服務稱為非獨立服務。非獨立服務受xinet服務管理,因此如果要啟動這些服務,應該道先啟動xinetd。
- Red Hat還有一個指令ntsysv也可以設置服務的啟動狀態
- chkconfig指令還可以添加/刪除系統服務
- chkconfig -add
- 手動添加mysql的服務
- cp mysql.server /etc/init.d/mysqld
- chmod +x /etc/init.d/mysqld
- chkconfig --add mysqld
- chkconfig --list
- chkconfig -del
- 手動刪除mysql的服務
- chkconfig --del mysql
- 補充:並不是所有發行版都支持chkconfig命令。
---------------------------------------------------------------------------------------------------------
ntsysv 指令,由 chkconfig 的功能是相同
step 1. ntsysv
or
step 2. ntsysv --level 1
---------------------------------------------------------------------------------------------------------
apt-get 指令,也是軟件包管理用的工具
step 1. apt-get install rcconf
安裝一軟件包
step 2. apt-get remove rcconf
刪除一個軟件包
step 3. apt-get update rcconf
更新一個軟件包
---------------------------------------------------------------------------------------------------------
aptitude 指令,也是軟件包管理工具
以是是 aptitude 常用的指偷
step 1. aptitude show rcconf
step 2. aptitude install rcconf
step 3. aptitude search rcconf
---------------------------------------------------------------------------------------------------------
apt-key 指令,列出軟體包密鑰訊息
---------------------------------------------------------------------------------------------------------
apt-sortpkgs 指令,用於排序軟件包的索引文件
---------------------------------------------------------------------------------------------------------
dpkg 指令,用於也是軟件包管理工具
step 1. dpkg -c rcconf_1.21_all.deb
step 2. dpkg -i rcconf_1.21_all.deb
-i : install
step 3. dpkg -r rcconf
-r : remove
---------------------------------------------------------------------------------------------------------
dpkg-deb 指令,他可以把軟件包作打包、解包
step 1. dbkg-deb -I rcconf_1.21_all.deb
---------------------------------------------------------------------------------------------------------
dpkg-divert 指令,用來允許將引起沖突的文件安裝到轉移目錄,而非default軟件目錄,通常只
有在文件有沖突的時侯才會用到這一個指定
step 1. dpkg-divert --add /root/Packages
---------------------------------------------------------------------------------------------------------
dbkg-preconfigure 指令,用於在安裝前之詢問的方式來完成軟件的安裝、以及配置文件的設定
step 1. dpkg-preconfigure rcconf_1.21_all.deb
---------------------------------------------------------------------------------------------------------
dbkg-query 指令,用於查詢軟體包的資訊
step 1. dpkg-query -l rcconf
step 2. dpkg-query -L rcconf
查詢軟件包的相關文件列表
---------------------------------------------------------------------------------------------------------
dbkg-reconfig 指令,用於已安裝的軟件包作重新配置
---------------------------------------------------------------------------------------------------------
----編輯紀錄
- 2013/04/21
- 補允:chkconfig指令相關資訊
2013年2月23日 星期六
startx,xauth ,xhost ,xinit ,xlsatoms ,xlsclients ,xlsfonts指令
- startx 指令,用於在純文件編輯當中,啟動 xwindow 窗口介面
- 如果原本已經執行X Window,卻想啟動第2個X Window,則可在文字模式下執行start 時加上 -- :1 參數。依此類推,若想啟動第3個 x window,則加上 -- :2
- 若系統預設是文字模式,若要改成x window時,你可以修改/etc/inittab的檔案,在檔案中尋找 id:3:initdefault: 的字串,並將之更改 id:5:initdefault: 即可
---------------------------------------------------------------------------------------------------------
xauth 指令,用於顯示和編輯連結的x服務器的認證訊息step 1. xauth info
step 2. xauth list
---------------------------------------------------------------------------------------------------------
xhost 指令,用於顯示/控制 那一些x服務端,使用xwind的服務介面
step 1. xhost
step 2. xhost + 192.168.11.101
---------------------------------------------------------------------------------------------------------
xinit 指令,這是x系統的初始化程序
---------------------------------------------------------------------------------------------------------
xlsatoms 指令,用於顯示x server定義的原子成份
step 1 . xls
顯示全部的
step 2 . xlsatoms - name CURSOR
---------------------------------------------------------------------------------------------------------
xlsclients 指令,用於x server上有多到x client的用應程序在運行。
---------------------------------------------------------------------------------------------------------
xlsfonts 指令,用於顯示 s server 上可以在於xwindox的字體列表
---------------------------------------------------------------------------------------------------------
xset 指令,用於設置xwindow的用啟偏好,也就是說可以用來按使用者的偏好設定xwindow
step 1. xset q
step 2. xset b on c on
step 3. xset b off c off
---------------------------------------------------------------------------------------------------------
sysctl,lsmod,insmode,modprobe ,rmmod ,modinfo ,depmod ,uname ,dmesg ,get_module ,kexec ,kernelversion ,slabtop 指令
sysctl 設置和顯示 /proc/sys 目錄中的內核參數,能用 sysctl 來設置或重新設置網路功能,如 ip 轉發、ip 碎片去除及 rotue 檢查;始用 sysctl 指令來設定內核參數的效果,會在重新開機後遺失,若要永久生效的話,請編輯 /etc/sysctl.conf 文件。
step 1. sysctl -a
step 1.canred@canred:/etc$ uname -a
step 1. sysctl -a
vm.min_free_kbytes = 44900
vm.mmap_min_addr = 65536
vm.nr_hugepages = 0
vm.nr_overcommit_hugepages = 0
...
step 2. 使用 sysctl 來設置內核參數
sysctl net.ipv4.ip_forward=0
----------------------------------------------------------------------------------------------------------
lsmod指令,用來顯示當前內核,已加載的模塊列表
----------------------------------------------------------------------------------------------------------
insmode指令,用來動態向內核當中加載新的模塊
step 1. insmod /lib/modules/`uname -r` /kernel/drivers/ata/ata_piix.ko
由於在加載模塊的時侯,我們一定要在相同版本的內核上操作所以使用`uname -r`來
取得。
step 2.查詢 lsmod | grep ata_piix
-----------------------------------------------------------------------------------------------------------
modprobe 指令,用來智能加載模塊,這是一個比較好的加載方式,因為使用比較方便外,另
外它會自動加載其他依賴的模塊。
step 1.modprobe -v ata_piix
-----------------------------------------------------------------------------------------------------------
rmmod 指令,用於從內核當中移除一個內核模塊。如果那一個內核模塊正在使用的話,我們
是無法移除的。
step 1. rmmod ata_piix
-----------------------------------------------------------------------------------------------------------
modinfo 指令,用於顯示內核模塊的詳細資訊
step 1. modinfo ext3
-----------------------------------------------------------------------------------------------------------
depmod 指令,用於產生內核模塊依賴關系的映射文件
step 1. depmod
step 2. ls -l /lib/modules/`uname -r`
列表內核模塊依賴關系的映射文件
-----------------------------------------------------------------------------------------------------------
uname 指令,用於打印內核版本號、硬件架構、主機名稱和操作系統的訊息step 1.canred@canred:/etc$ uname -a
Linux canred 3.5.0-21-generic #32-Ubuntu SMP Tue Dec 11 18:52:46 UTC 2012 i686 i686 i686 GNU/Linux
-----------------------------------------------------------------------------------------------------------
dmesg 指令,經常用來顯示內核啟動時的輸出訊息
-----------------------------------------------------------------------------------------------------------
get_module 指令,功能和 modinfo 指差不多,用於顯示內核模塊的詳細資訊
-----------------------------------------------------------------------------------------------------------
kexec 指令,用於直接啟動另一個Linux的內核,由當前的內核切換到另一個內核
step 1. ls /boot
列出所有的內核
step 2. uname -r
查表當前版本
step 3. kexec -l /boot/vmlinuz-2.6.18-1.e15 --append=root=LABEL=/
step 4. kexec -e
-----------------------------------------------------------------------------------------------------------
kernelversion 指令,功能於 uname 指令差不多,使用 uname 的詳細比較完整,就不要用這一個
指定啦
-----------------------------------------------------------------------------------------------------------
slabtop 指令,用於顯示內核的slab緩衝區的訊息
step 1. slabtop -d 10
-----------------------------------------------------------------------------------------------------------
uptime,free,iostat ,mpstat,sar,vmstata,time ,tload,lsof ,fuser,cupspeed指令
uptime 指令,用於查看系統的時間以及平均負載率。
canred@canred:~$ uptime
23:53:24 up 2 days, 15:57, 3 users, load average: 0.05, 0.03, 0.05
canred@canred:~$ uptime
23:53:24 up 2 days, 15:57, 3 users, load average: 0.05, 0.03, 0.05
在load average的三個數值是表示 前1分鐘,前5分鐘,前15分鐘的系統平均負載情況
--------------------------------------------------------------------------------------------------
free 指令,用於顯示記憶體使用狀況
step 1. free -m
--------------------------------------------------------------------------------------------------
iostat 指令,用於報表當前系統cup、設備、以及分區的io狀況
step 1. iostat -t 2
root@canred:~# iostat -t 2
Linux 3.5.0-21-generic (canred) 2013年02月24日 _i686_ (4 CPU)
2013年02月24日 01時13分05秒
avg-cpu: %user %nice %system %iowait %steal %idle
0.09 0.00 0.05 0.10 0.00 99.77
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.74 4.42 12.87 1040027 3025164
sar指令,用於將指定的操作系統狀況、計數器顯示到標準輸出
time 指令 ,用於顯示某一個執行的執行時間(s)
tload 指令,以圖形化的方式顯示系統的平均負載情況並傳送到指定的終端上
lsof 指令,用於顯示當系統,所打開的文件列表資訊
lsof | less
fuser指令,用於顯示指定進程所使用的文件或網路
cupspeed指令,用於調整cup的速率、電壓
通常linux會自動執行這一個指令,因為有一個服務在(/etc/init.d/cupspeed)
service cupspeed restart
service cupspeed stop
--------------------------------------------------------------------------------------------------
free 指令,用於顯示記憶體使用狀況
step 1. free -m
--------------------------------------------------------------------------------------------------
iostat 指令,用於報表當前系統cup、設備、以及分區的io狀況
step 1. iostat -t 2
root@canred:~# iostat -t 2
Linux 3.5.0-21-generic (canred) 2013年02月24日 _i686_ (4 CPU)
2013年02月24日 01時13分05秒
avg-cpu: %user %nice %system %iowait %steal %idle
0.09 0.00 0.05 0.10 0.00 99.77
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.74 4.42 12.87 1040027 3025164
---------------------------------------------------------------------------------------------------
mpstat指令,用於顯示每一個cup的使用狀態,通常用於多cup的環境下
step 1. mpstat -P ALL
root@canred:~# mpstat -P ALL
Linux 3.5.0-21-generic (canred) 2013年02月24日 _i686_ (4 CPU)
01時15分43秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
01時15分43秒 all 0.09 0.00 0.05 0.10 0.00 0.00 0.00 0.00 99.77
01時15分43秒 0 0.08 0.00 0.05 0.38 0.00 0.00 0.00 0.00 99.48
01時15分43秒 1 0.09 0.00 0.05 0.01 0.00 0.00 0.00 0.00 99.86
01時15分43秒 2 0.09 0.00 0.04 0.00 0.00 0.00 0.00 0.00 99.86
01時15分43秒 3 0.08 0.00 0.04 0.00 0.00 0.00 0.00 0.00 99.87
or
指定一個cup
root@canred:~# mpstat -P 1
Linux 3.5.0-21-generic (canred) 2013年02月24日 _i686_ (4 CPU)
01時16分39秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
01時16分39秒 1 0.09 0.00 0.05 0.01 0.00 0.00 0.00 0.00 99.86
---------------------------------------------------------------------------------------------------
參數的2、3分別是做2次測試;每隔3秒…也就是6秒後報表
root@canred:~# sar -u 2 3
Linux 3.5.0-21-generic (canred) 2013年02月24日 _i686_ (4 CPU)
01時19分02秒 CPU %user %nice %system %iowait %steal %idle
01時19分04秒 all 0.00 0.00 0.12 0.00 0.00 99.88
01時19分06秒 all 0.00 0.00 0.00 0.00 0.00 100.00
01時19分08秒 all 0.00 0.00 0.00 0.25 0.00 99.75
平均時間: all 0.00 0.00 0.04 0.08 0.00 99.87
---------------------------------------------------------------------------------------------------
vmstata指令,用於報告系統的運行狀態;其中包括實體記憶體以及CPU的使用狀況
root@canred:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 1890752 248740 1110392 0 0 1 3 17 25 0 0 100 0
or
-s 參數,用於顯示系統的各種事件統計以及內存的狀態
root@canred:~# vmstat -s
3803272 K total memory
1912768 K used memory
966400 K active memory
788772 K inactive memory
1890504 K free memory
248748 K buffer memory
1110420 K swap cache
---------------------------------------------------------------------------------------------------
root@canred:~# time find / -name shadow
/etc/shadow
real 0m1.740s
user 0m0.300s
sys 0m0.364s
---------------------------------------------------------------------------------------------------
tload /dev/pts1 -d 3
---------------------------------------------------------------------------------------------------
lsof | less
---------------------------------------------------------------------------------------------------
以下指令用來查找所有使用80 port 的進程資訊
fuser -n tcp -u 80
fuser -n tcp -u 80
---------------------------------------------------------------------------------------------------
通常linux會自動執行這一個指令,因為有一個服務在(/etc/init.d/cupspeed)
service cupspeed restart
service cupspeed stop
---------------------------------------------------------------------------------------------------
2013年2月22日 星期五
top,free,ipcs,ipcrm指令
top指令,以時時動態的方式查詢系統的整體運行的情況,像是window的工作管理員。
default 3 秒刷新訊息
以下補充資訊來於http://os.51cto.com/art/201108/285581.htm
快捷鍵小弟在紅字標記哦。
Linux中的系統負載平均值,是一個很獨特的概念,LINUX使用數字標識系統的負載,數字越大表明系統負載越高。在單處理器上,如果負載均衡值等於1,表示系統處於滿負荷狀態;大於1表示系統處於超負荷狀態。在多處理器或者多核處理器中,滿負荷運行狀態的負載均衡值應該與CPU數量或處理器核數相等。
default 3 秒刷新訊息
以下補充資訊來於http://os.51cto.com/art/201108/285581.htm
快捷鍵小弟在紅字標記哦。
Linux top命令简介
top 命令是最流行的性能监视工具之一,我们必需了解。它是一个优秀的交互式工具,用于监视性能。它提供系统整体性能,但报告进程信息才是 top 命令的长处。top 命令交互界面如下图所视:
top 界面分为两个部份,光标上面部份显示关于系统整体性能,光标下面部份显示各进程信息。光标所在处是用来输入操作命令的。
Linux top命令界面
第一行显示的内容和uptime命令一样,【l】可以显示和隐藏这个区域:
top: 这个没有什么意思,只是个名称而以
01:47:56 : 系统当前时间
up 1:26 : 系统开机到现在经过了多少时间
2 users : 当前2用户在线
load average:0.00,0.00,0.00: 系统1分钟、5分钟、15分钟的CPU负载信息
第二行:
Tasks:英文意思是工作;任务;差事。
38 total:很好理解,就是当前有38个任务,也就是38个进程。
1 running:1个进程正在运行
37 sleeping:37个进程睡眠
0 stopped:停止的进程数
0 zombie:僵死的进程数
Cpu(s):表示这一行显示CPU总体信息
0.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。
0.7%sy:内核占用CPU时间百分比
0.0%ni:renice值为负的任务的用户态进程的CPU时间百分比。nice是优先级的意思
99.3%id:空闲CPU时间百分比
0.0%wa:等待I/O的CPU时间百分比
0.0%hi:CPU硬中断时间百分比
0.0%si:CPU软中断时间百分比
0.0%st:我不知道
第三行:
Men:内存的意思
256412k total:物理内存总量
30156k used:使用的物理内存量
226256 free:空闲的物理内存量
8176k buffers:用作内核缓存的物理内存量
Swap:交换空间
337356k total:交换区总量
0k used:使用的交换区量
337356k free:空闲的交换区量
12160k cached:缓冲交换区总量
第四行:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
Linux top命令操作指令會紅的 Linux 筆記
下面我列出一些常用的linux top命令操作指令:
q:退出top命令
<Space>:立即刷新
s:设置刷新时间间隔
c:显示命令完全模式
t::显示或隐藏进程和CPU状态信息
m:显示或隐藏内存状态信息
l:显示或隐藏uptime信息
f:增加或减少进程显示标志
S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
u:指定显示用户进程
r:修改进程renice值
k:kill进程
i:只显示正在运行的进程
W:保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。
h:帮助命令。
原文:http://www.itwhy.org/2011/07-05/437.html
Linux中的系統負載平均值,是一個很獨特的概念,LINUX使用數字標識系統的負載,數字越大表明系統負載越高。在單處理器上,如果負載均衡值等於1,表示系統處於滿負荷狀態;大於1表示系統處於超負荷狀態。在多處理器或者多核處理器中,滿負荷運行狀態的負載均衡值應該與CPU數量或處理器核數相等。
- free指令
- 用來查看系統記憶體以及swap所使用的狀況
- ipcs指令
- ipcs是InterProcess Communication Status的縮寫,它可以看到更進一部記體使用的狀,它包含主要的三項記錄share memory,semaphore,message queues;另外也有files,pipe等
- ipcrm指令
- 這個指令是用來刪除ipcs的程序的;通常是系械或是程式不正常終止時,留了一堆InterProcess Communication,則會使用此指令去將記憶體的資源釋放出來。
- ipcrm -m 65536
- 2013/4/22:
- 新增:
- Linux中的系統負載平均值 說明
service指令
service 指令,用來啟動或停止系統服務,當然也可以查詢,系統有什麼服務,可以在etc/init.d中查找
step 1.service --status-all
canred@canred:/etc$ service --status-all
[ ? ] acpi-support
[ ? ] acpid
[ ? ] alsa-restore
[ ? ] alsa-store
[ ? ] anacron
[ + ] apache2
[ - ] apparmor
[ ? ] apport
[ ? ] atd
[ ? ] avahi-daemon
[ ? ] binfmt-support
[ ? ] bluetooth
[ - ] bootlogd
[ - ] brltty
[ + ] clamav-freshclam
[ ? ] console-font
[ ? ] console-setup
step 2. service atd staus
step 3. service atd start
step 1.service --status-all
canred@canred:/etc$ service --status-all
[ ? ] acpi-support
[ ? ] acpid
[ ? ] alsa-restore
[ ? ] alsa-store
[ ? ] anacron
[ + ] apache2
[ - ] apparmor
[ ? ] apport
[ ? ] atd
[ ? ] avahi-daemon
[ ? ] binfmt-support
[ ? ] bluetooth
[ - ] bootlogd
[ - ] brltty
[ + ] clamav-freshclam
[ ? ] console-font
[ ? ] console-setup
step 2. service atd staus
step 3. service atd start
ps,pstree,ipcs,pgrep,pidof,pman,w,vmstat指令
- ps指令用來顯示系統的進程
- ps -aux
- ps -aux | head
- ps -aux | sort +3
- 加上sort可以估排序的動作,因為sort是由0開始計數,所以+3表示由第4列做排序。
- ps -aux | sort user
- ps uU canred
- 直接指定使用者帳號名稱或uid皆可
- ps -aux | grep apache2
- 顯示apache2的字眼的所有進程
- ps指令的欄位說明
- USER:運行此進程的用戶名稱
- %CPU:進程的CPU佔用率
- %MEN:實際內存占用率
- VSZ:進程占用虛擬內存大小,單位是KB
- RSS:占用物理內存大小,單位是KB
- STAT:目前進程所處的狀態屬性
- 一般由1~3個字符號組成
- D:不可中斷的等待狀態,通常是等待I/O設備的數據等
- R:正處於運行列隊中的進程
- S:正處於中斷休眠狀態的進程,該進程可能是在等待某個中斷消息
- T:已停止工作的進程,因其被跟所以存在
- X:已經死亡的進程,通常不會看到這類的進程
- Z:已經僵死的進程
- <:高優先級進程
- N:低優先級進程
- s:會話的管理者
- +:進程會使用前台的終端
- l:這是一個多線的進程
- TIME:進程占用CPU的時間
- COMMAND:啟動進程使用的命令
- 選項補充:
- 在 不附加任何選項的情況下,ps只列出屬於使用者個人、有連結終端機的行程
- 合併a,-u,-x三個選項,ps將以「使用者格式」顯示任何符合下列2個條件之一的任何行程:屬於其他使用者,或沒連結終端機。此時,選項是否要前置破折號將不影響執行結果
- ps -aux == pa aux
- 並不是所有ps的選項都可以省略的如-C選項就不可以省略
- ps u -C apache2
- vmstat指令
- 顯示虛擬記憶體的統計,中還包括實體記憶體以及cpu的使用狀況。
-----------------------------------------------------------------------------------------------------
pstree指令用來以樹狀的方式,來顯示系統的進程
step 1 . pstree
canred@canred:/etc$ pstree
init─┬─NetworkManager─┬─dhclient
│ ├─dnsmasq
│ └─2*[{NetworkManager}]
├─accounts-daemon───{accounts-daemon}
├─acpid
├─apache2───9*[apache2]
├─apache2─┬─apache2
...
上列的 2* 表示當前進程有2個線程
-----------------------------------------------------------------------------------------------------
w指令,用來顯示系統目前登入者的表列,但顯示正在執行什麼樣的程序
-----------------------------------------------------------------------------------------------------
ipcs 指令,用來顯示linux系統當中進程間通訊的狀態(消息隊列、共用記憶體資料段、訊
號量的訊息)
-----------------------------------------------------------------------------------------------------
上列的 2* 表示當前進程有2個線程
-----------------------------------------------------------------------------------------------------
w指令,用來顯示系統目前登入者的表列,但顯示正在執行什麼樣的程序
-----------------------------------------------------------------------------------------------------
ipcs 指令,用來顯示linux系統當中進程間通訊的狀態(消息隊列、共用記憶體資料段、訊
號量的訊息)
-----------------------------------------------------------------------------------------------------
pgrep 指令用於以名稱的方式查找進程的id號
canred@canred:/etc$ pgrep bash
18417
18884
-----------------------------------------------------------------------------------------------------
pidof 指令和 pgrep 的功能是相同的,以是顯示的方式不同,pgrep是行顯示的;pidof是列
顯示的
-----------------------------------------------------------------------------------------------------
pmap 指令,用來顯示進程的內存映射關系
step 1. pmap 進程號
canred@canred:/etc$ pmap 1
1: /sbin/init
total 0K
step 2.也可以用 pmap -d 1 看更詳細的資訊
pmap -x 1
pidof 指令和 pgrep 的功能是相同的,以是顯示的方式不同,pgrep是行顯示的;pidof是列
顯示的
-----------------------------------------------------------------------------------------------------
pmap 指令,用來顯示進程的內存映射關系
step 1. pmap 進程號
canred@canred:/etc$ pmap 1
1: /sbin/init
total 0K
step 2.也可以用 pmap -d 1 看更詳細的資訊
pmap -x 1
----編輯紀錄
- 2013/5/8:
- 新增:ps指令的選項補充資訊。
- 2013/4/22:
- 新增:
- ps指令的欄位說明
- 補充:
- pstree進程數量
nice,nohup,renice指令
- nice 指令用於調整進程的優先級
- nice -n 6 find / -name passwd > out.txt
- 上以指令用於調整 find 指令的優先級為正6的值所以會比較慢執行它。優先級由-20~+20,越小優先級越高,-1~-20的等級只有管理者得以設定
- 在LIUNX中預設的進程優先級為0
- nice 不加選項時,則顯示系統的預設優先級
- nohup指令,用於指定的程序以忽略掛取訊息的方式運行,典型的應用,我們用一個shell在執行批次指令的時侯,可能因為我們的shell退出造成程序終止。
- nohup find / -name shadow > out.txt &
- renice指令用於調整已經存在的進程優先級
- sample 1
- ps aux | grep vim
- 我們先查看一下有關vim的進程
- canred@canred:~$ ps aux | grep vim
- canred 18745 0.0 0.0 10924 3224 pts/0 S+ 14:05 0:00 vim
- canred 18971 0.0 0.0 4412 844 pts/1 S+ 14:05 0:00 grep --color=auto vim
- 再執行 renice 指令來調整優先級
- renice +7 18745
- sample 2
- 想一口氣更改某位使用者的所有程序優先權
- renice -10 -u canred
----編輯紀錄
- 2013/4/23:
- 補充:nice指令內容
kill,killall,pkill,skill,watch 指令
- kill指令
- 對process傳遞訊號(signal),通常我們使用此指令來停止或是中斷程序,而該process接收到我們所給的signal,則會因為我所給的signal有不同的反應。例如我們給 -9 這樣的signal,所有類型的程序接收到這樣的訊號都會被獨迫中斷,若是我們給 -1 的signal,則會重新啟動。
- 指令語法:kill [signal] process_id
- 查看所有訊號
- kill -l
[1]+ Stopped vim
canred@canred:~/test$
canred@canred:~/test$
canred@canred:~/test$
canred@canred:~/test$ jobs
[1]+ Stopped vim
canred@canred:~/test$ ps aux | grep vim
canred 7681 0.0 0.0 10924 3480 pts/0 T 23:42 0:00 vim
canred 7683 0.0 0.0 4412 840 pts/0 S+ 23:43 0:00 grep --color=auto vim
canred@canred:~/test$ kill 7681
canred@canred:~/test$ ps aux | grep vim
canred 7681 0.0 0.0 10924 3480 pts/0 T 23:42 0:00 vim
canred 7686 0.0 0.0 4412 844 pts/0 S+ 23:45 0:00 grep --color=auto vim
canred@canred:~/test$ kill 7681
canred@canred:~/test$ jobs
[1]+ Stopped vim
canred@canred:~/test$ kill -9 7681
canred@canred:~/test$ jobs
有時需要讓一個進程停止執行,這時可以使用信號19掛起進程
- 常用的信號表:
- 9)SIGKILL:強制移除
- 15)SIGTERM:使用軟件終止方法
- 19)SIGSTOP:暫停
- 18)SIGCONT:繼續
- 其實我們常常對程式送出信號,如程序執行中,我們要中斷程式就會按下CTRL+C,此時就會送出一個中斷信號。另外在程序執行中,我們按下CTRL+Z則是送出一個暫停信號(信號19)
-------------------------------------------------------------------------------------------------------
killall 指令,用來刪除一個進程,刪除一依據是根據進程的名稱哦
Step 1 . killall vim
Or
killall -l 可以查詢訊號的種類
-------------------------------------------------------------------------------------------------------
pkill指令,用來刪除一個進程,刪除一依據是根據進程的名稱
Step 1 . pkill vim
-------------------------------------------------------------------------------------------------------
skill 指令,將指定的進程發送發號
step 1. ps aux | grep vim
setp 2. skill 進程號
-------------------------------------------------------------------------------------------------------
watch 指令以週期性的方式來查看執行的輸出結果
step 1. watch -d ls /root
以上指令於監看 root 資料夾的清單列表功能
----編輯紀錄
step 1. watch -d ls /root
以上指令於監看 root 資料夾的清單列表功能
----編輯紀錄
- 2013/4/22
- 新增:
- kill的信號資訊
stat,findfs指令
我們在查文件的訊息通常是使用 ls -l sample.txt
如果你還要更詳細的訊息,你可以使用 stat test2.txt 指令
canred@canred:~$ stat test2.txt
File: ‘test2.txt’
Size: 2335 Blocks: 8 IO Block: 4096 普通檔案
Device: 801h/2049d Inode: 44044335 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ canred) Gid: ( 1000/ canred)
Access: 2013-02-12 16:25:00.679354216 +0800
Modify: 2013-02-06 01:06:45.792911863 +0800
Change: 2013-02-06 01:06:45.792911863 +0800
Birth: -
如果你還要更詳細的訊息,你可以使用 stat test2.txt 指令
canred@canred:~$ stat test2.txt
File: ‘test2.txt’
Size: 2335 Blocks: 8 IO Block: 4096 普通檔案
Device: 801h/2049d Inode: 44044335 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ canred) Gid: ( 1000/ canred)
Access: 2013-02-12 16:25:00.679354216 +0800
Modify: 2013-02-06 01:06:45.792911863 +0800
Change: 2013-02-06 01:06:45.792911863 +0800
Birth: -
-----------------------------------------------------------------------------------------------------------
findfs 指令,用來查找文件系統
Step 1 . findfs LABEL=data
e2image,e2label,tune2fs,resize2fs指令
e2image指令;用來將指定的文件系統(ext2,ext3)保存到一個文件檔案中
Step 1 . e2image /dev/sdb1 sdb1.bak 即可
-------------------------------------------------------------------------------------------------------
e2label 指令 ; 用來設定文件系統的卷標名稱
Step 1 . e2label /dev/sdb1 卷標名稱
Step 2 . 然後可以使用 e2label /dev/sdb1 來查看
-------------------------------------------------------------------------------------------------------
Step 1 . e2image /dev/sdb1 sdb1.bak 即可
-------------------------------------------------------------------------------------------------------
e2label 指令 ; 用來設定文件系統的卷標名稱
Step 1 . e2label /dev/sdb1 卷標名稱
Step 2 . 然後可以使用 e2label /dev/sdb1 來查看
-------------------------------------------------------------------------------------------------------
tune2fs 指令 ; 用來調整文件系統的底層參數,在使用這一個文件系統的時侯要非常的小
心,有可能會造成資料的遺失
Step 1 . tune2fs -l /dev/sdb1 | grep "Mount count"
顯示如下
Mount count : 3
Step 2 . 然後可以使用 tune2fs -C 5 /dev/sdb1 來查看
-------------------------------------------------------------------------------------------------------
resize2fs 指令 ; 用來調整ext2擴展文件的大小,在使用這一個指定的時侯,你必須確定內
核是支持在線調整大小。
Step 1 . resize2fs -f /dev/sdb1 1024M
你可能會看到不支持的訊息 "On-line shrinking from ... to ... not supported"
Step 2 . 可不支持時可以重新編譯內核,並把這一個功能打開
-------------------------------------------------------------------------------------------------------
心,有可能會造成資料的遺失
Step 1 . tune2fs -l /dev/sdb1 | grep "Mount count"
顯示如下
Mount count : 3
Step 2 . 然後可以使用 tune2fs -C 5 /dev/sdb1 來查看
-------------------------------------------------------------------------------------------------------
resize2fs 指令 ; 用來調整ext2擴展文件的大小,在使用這一個指定的時侯,你必須確定內
核是支持在線調整大小。
Step 1 . resize2fs -f /dev/sdb1 1024M
你可能會看到不支持的訊息 "On-line shrinking from ... to ... not supported"
Step 2 . 可不支持時可以重新編譯內核,並把這一個功能打開
-------------------------------------------------------------------------------------------------------
quota,edguota,quotacheck,quotaoff,quotastatus,repquota指令;配額限制操作
- guota指令,用於查看指定用戶的磁碟空間的配額情況
- guota canred
- edguota指令,用於指定用戶的磁碟空間的配額情況
- 指令:edguota canred
- 這時會把到vi來顯示編輯,有2個重要的欄位
- sort :空間配額的軟限制;為0時是不受限制的。
- hard :空間配額的硬限制,也就是說用戶的使用空間不可以超過這個值 為0時是不受限制的
- quotacheck用來磁盤配額的檢查,並創建磁盤配額數據文件
- 在進行檢查之前我們要確定是否已經打開磁盤配額的功能
- 執行
cat /etc/fstab
你可能可以看見
............
/dev/sdb1 /mnt/sdb1 ext3 defaults,usrguota 1 2
看見grpquota或usrguota表示有開啟磁盤配額的功能
- 然後我們執行 quotacheck -cuv /mnt/sdb1 後
- quotacheck指令相關的選項
- 選項a
- 掃描fstab檔案中,有加入quota設定的分割區。
- 選項d
- 詳細顯示指令執行過程,便於除錯或了解程式執行的情形。
- 選項g
- 掃描磁碟空間時,計算每個群組識別碼(GID)啟佔用的目錄和檔案數目
- 選項u
- 掃描磁碟空間時,計算每個使用者識別碼(UID)啟佔用的目錄和檔案數目
- 選項v
- 標示指令執行過程
- 選項m
- 強制執行指令
你可以在 ls /mnt/sdb1 中看見1或2個aquota.user,aquota.group這2個檔案就是磁盤配額數據文件
-------------------------------------------------------------------------------------------
- repquota用來打印出磁盤配額報表的訊息
- 執行
- repquota /dev/sdb1
-------------------------------------------------------------------------------------------
- 配額限制的設定
- 系統上新增了使用者之後,可能會針對使用者設定可使用的硬碟空間,以便於管理以及避免資源的浪費時,所可能採在配額限制的功能。
- 在安裝完成後default是支援這個功能的,若自行編譯核心則要注意是否勾選File System->Quota Support
- 我們假設有幾個新的使用者要加入,並開啟配額限制
- 新增使用者
- useradd -u 2001 -g 100 -d /home/test1 -m test1
- useradd -u 2002 -g 100 -d /home/test2 -m test2
- 修改 /etc/fstab
- 看到 LABEL=/home /home ext3 defaults 1 2 並改成 LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
- 在/home目錄下新增2個檔案aquota.user , aquota.group 並更改權限(或是使用quotacheck指令來產生2個檔案)
- 新增2個檔案
- touch aquota.user aquota.group
- chmod 600 aquota.*
- 或是使用quotacheck -cug /home 的指令來產生這二個檔案
- 在使用quotacheck的指令時可能發生權限被拒的情況(小弟是在centos上遇到的)…你需要關才selinux的設定先…
- 關閉selinux
- 去編輯 /etc/sysconfig/selinux 這個檔案
- 將 SELINUX=enforcing 改成 SELINUX=disabled ,重開機就可以了
- 使用quotacheck -uvg /home是檢查是否設定正確
- Reboot你的電腦
- 對帳號test1設定quota設定
- edquota -u test1
- 對群組 member 設定quota設定
- edquota -g member
- 檢查一下test1帳號是否有設定quota
- repquota -a
- 設定所有使用者的寬限期
- edquota -ut
- edquota -t
- 寬限期的格式為
- /dev/sdd1 7days 7days
- 單位分成days,hours,minutes,seconds
- 設定所有群組的寬限期
- edquota -gt
- 將設定套用到其他的user
- 指令格式:edquota -p newrpm -u mail
- edquota -p newrpm `awk -F:'$3 > 2000 {print $1}' /etc/passwd`
- 指令2:
- edquota -p canred *
- 以canred的磁碟配置規則套用到所有人員
- edquota -p canred eva
- 以canred的磁碟配置規則套用到eva帳號上
- edquota -gp member member2
- 以群組member的磁碟配置規則套用到member上
- quota設定檔內容(aquota.user aquota.group)
- 格式如下
- Filesystem block soft hard inodes soft hard
- /dev/hda1 196 0 0 49 0 0
- 預設下soft = 0 , hard =0 ,表示沒有上限 。
- inodes把他想成是檔案數量即可,inodes = 0 表無限制
- soft limit 或 hard limit
- 如果我們打算分配給每位使用者10mb容量以偶500個檔案數的儲存空間,那麼這些使用者只能用到10mb的空間或500個檔案使用量。一旦起出就會被系統阻止。
- 若我們將soft limit 設定成10mb , 而hard limit 設定成15mb,則表示使用者存放超過10mb的空間仍然可以儲存,但最多可儲到15mb的空間,檔案數目的設定也是如此概念的。
- 檢查是否超過磁碟限制
- quota -v
- repquota -a
- repquota -au
- repquota -ag
- repquota /mnt/sdd1
- 取消磁碟空間的限制及再啟用
- quotaoff -avug 指令即可
- 若要將啟動磁碟空間限制,必須執行quotaon -avgu指令
- quotaon的相關選項
- a:開啟所有文件系統的磁盤配客功能
- u:開啟用戶磁盤配額
- g:開啟用戶磁盤配額
- v:如果開啟成功,就顯示提示信息
- 範例
- guotaon -vug /mnt/sdd1
- guotaon -va
- quotaoff的相關選項基本上尋quotaon是一樣的
- 檢准磁盤使用情況
- 執行quotacheck -cug /dev/sdd1 即可
- 2013/4/20
- 新增
- quotacheck遇見權限被拒的問題解決
- quotaon選項補充
- 2013/4/19
- 新增
- 【quotacheck指令相關的選項】【quota soft limit , hard limit 的說明】【檢查是否超過磁碟限制】【取消磁碟空間的限制及再啟用】補允quota -g 針對群組的指令
2013年2月21日 星期四
/proc目錄下的介紹
/proc 是一個"假的"檔案系統,它豆核心資訊的介面,若你查看檔案內容很多都是size 0 的,但可以用vi去看其中的資訊。大部份/proc之中的大部份檔案是唯檔,但在/proc/sys/之下的檔案內容,是可以修改的( if you are root),一更動並可以立即產生效果的,因此我將分成二個部份來
討論/proc/sys/ 以及 /proc的其他部份。
/proc/sys/
它記錄了kernel的核心資訊,也允許讀者改變核心的參數,你可以調整你的系統,但必須
小心,有可能會造成當機的情況。
若是希望改變檔案的數值,直接用echo或vi改變即可。如下
echo "123456" > /proc/sys/fs/file-max
or
sysctl -w net.ipv4.ip_forwarding="1"
這樣的修改會在開機後消失哦,如果要長久生效的話你要你的指令新增到
/etc/rc.d/rc.local 這個檔案中,或是直接在 /etc/sysctl.conf 修改。
/proc/sys/fs/
file-max
此檔案的數值表示系統核心所支援最大的file handles,若是你發現出現錯誤訊息說file handle
不足。那麼你就必須調大這個數值,若你要調為123456,就可以可以使用指令來修改
echo "123456" > /proc/sys/fs/file-max
顯示你的/proc/sys/fs/file-max當然就是cat即可啦~~~
file-nr
此檔案之中有3個數值,分別表示的意思
第1個是已分配的file handles
第2個是已使用的file handles
第3個是可以使用的file handles最大數值
inode-state , inode-nr
如同file hanlder,核心會自動的分配inode的架構,但是不用時並不能夠釋放這些資源
/proc/sys/kernel/
acct
這個檔案包含3個數值分別是 高水位、低水位、頻率。這個檔案的作用是判斷何時啟用/
停止file system的紀錄。
如果file system的使用率低水位,則會停止記錄,若是使用率高於高水位,則開始紀錄;
那麼頻率是已秒為單位
ctrl-alt-del
若這個檔案的內容是0,表示你按ctrl+alt+del時,它會將資料回存,再進行重新開機。
若不是為0時表示您按ctrl+alt+del,它就會直接重新開機
domainname , hostname
這2個檔案分別是NIS的 domain name 以及主機的 host name。不建議修改它,要修改的
話就是勤勞點,去改 /etc/hosts 再重新開機吧
osrelease
儲存核心的版本
ostype
是儲存作業系統的種類
version
儲存核心產生的時間以及版本
modprobe
這個檔案內容顯示 modprobe 的所在位置
modprode 的補充資料
insmod 與 modprobe 都是載入 kernel module,不過一般差別於 modprobe 能夠處理 module
載入的相依問題。比方你要載入 a module,但是 a module 要求系統先載入 b module 時,
直接用 insmod 掛入通常都會出現錯誤訊息,不過 modprobe 倒是能夠知道先載入 b module
後才載入 a module,如此相依性就會滿足。
/proc/sys/net/
網路相關設定
/proc/sys/net/ipv4/
網路相關設定 for IPV4
icmp_echo_ignore_all
是否回應 ICMP 的封包;如果是 0 表示關閉,也就是不回應所有 ICMP 的封包。
在你使用ping的指令就是送出ICMP的封包 ^ ^
icmp_echo_ignore_broadcasts
是否回應broadcasting的封包;如果是 0 表示關閉
ip_autoconfig
網路設定是否自動載入,載入的來源是透過 RAPR , BOOTP , DHCP 等取得自已的
IP設定。如果是 0 表示關閉,則這些網路設定在本機上啦。
ip_conntrack_max
檔案中的數字表示建立連線追縱 ( ip connect track ) 的最大數量,若是你的主機是
NAT server 的話建議調大這個數值。
ip_default_ttl
TTL ( Time To Live )的預設值,TTL是封包能夠存活所經過位置的個數,default:64,
也就是幫包若是轉送位置的次數超過64次,則這個封包就會被刪除。
ip_dynaddr
允許 socket 重新訂定 IP Address ,這項功能對於動態 IP Address ,如撥接,是必要的
如果是 0 表示關閉
ip_forward
0表示這台機器是 host ; 1 表示這台機器是 router ,當封包的目的地非本機時的處理方
式。若是 host 則會不理會它 ,若是 router 會將它轉到正確的位址。
ip_local_port_range
這個檔案包含2個數值 A 與 B 。 表示本機連到外面所用的 port 的範圍為 A ~ B 之間。
要注意這個區間要避開本機提供服務的port
tcp_keepalive_time
連線的狀況下,多久送出一次仍保持連線的訊息,單位是秒。default:2小時
tcp_fin_timeout
這檔案的內容是秒數,代表在 socket 結束前用來接收一個結束 FIN 的封包的時間
tcp_retries1
定義在放棄前,回應 TCP 連線重新傳遞的請求次數
tcp_retries2
定義在放棄前, TCP 連線重新傳遞的請求次數
他於tcp_retries1不同哦…一個是回應的一個是連線的。
tcp_syncookies
1表示不會回應 "不為syn的tcp新建立的連線封包"
/proc/sys/vm/
這個目錄是 linux 核心當中虛擬記憶體的設定,核心對於虛擬記憶體的使用,有更更
聰明以及更有廷展性的用法,一般而言我們統稱為 swap 。以下對於部份的檔案做介
紹。
kswapd
這個檔案是核心對 kswapd 這個常駐程式的控管。裡頭包含三個數值。
第1個是 kswapd 企圖去釋放一個單獨的目的,所使用 pages 的最大數量,這個值越
大,表核心可以使用更多的 free pages 。
第2個是 kswapd 企圖釋放 pages 的最少次數。
第3個是 kswapd 是圖寫入一個目的程序所需要的 pages 。
max_map_count
設定一個程序所擁有的記憶體對應區域,default:65536。
overcommit_memory
如果不是0,核心在記值程序所用的記憶體時將不會檢查是否有足夠的記憶體。
pagetable_cache
控制 page cache 所使用記憶體的比例。
/proc/ 的其他部份
以下介紹部份 /proc 的架構
數字部份
進入 /proc 之後,你會看到許多名稱為數字的目錄,這些數字代表的是 process id
其中的內容如下所示:
cmdline 這裡記載執行這個 process id 的完整指令。
cwd 這個是 process 的工作目錄
exe 這是這個執行檔實際位置的連結
fd 這是一個被這個 process 所開啟的檔案,其中 0 是input,1是output,2是錯誤,其
他為程式另外定義
map 這個檔案包含這個程式所對應的記憶體使用區以及權限
stat 這個 process 的狀態資訊,提供給 ps 查詢用。
/proc/ 下非數字的部份
cmdline 提供給 linux 核心的開機參數
cpuinfo cpu的相關資訊
devices 列出所有的 device 的列表
filesystems 列出核心所支援的 file system。
ide 為一個目錄,列出 IDE 的裝置資訊。
interrupts 列出 IRQ 的資訊
iomen 列出 I/O 記憶體的對應 , Linux 2.4 的功能
ioports 列出正確註冊,且在使用的 I/O 。
loadave 這個檔案會記錄工作平均數。
meminfo 紀錄記憶體資訊,當我們使用 free 指令時就會用到這一個檔案
modules 紀錄系統會載入的模組 : lsmod
partitions 包含了硬碟分割的相關資訊
pci 這是所有PCI的列表以及核心上的設定。
scsi 這是一個目錄包含了scsi的設定以及驅動程式的相關資訊。當然若是你沒有
scsi設備,就不會有這個目錄
stat 核心與系統方面的統計資訊
swaps swap所用的file system以及大小
sysvipc 這個目錄下包含了3個檔案,msg是message queues的資訊,
sem是semaphore Arrays的資訊,shm是SharedMemory Segments的資訊,
這3者都是interprocess communication常用的方式,也就是內部process之間溝通
的方式,也就是相同 ipcs指令。
uptime 這個檔案包含了2個數值,一個是系統更新的時間,另一個是idle的程序所花
費的時間,這邊圾是秒計算。
version 包含了核心的資訊以及gcc的版本。
/proc/net
討論/proc/sys/ 以及 /proc的其他部份。
/proc/sys/
它記錄了kernel的核心資訊,也允許讀者改變核心的參數,你可以調整你的系統,但必須
小心,有可能會造成當機的情況。
若是希望改變檔案的數值,直接用echo或vi改變即可。如下
echo "123456" > /proc/sys/fs/file-max
or
sysctl -w net.ipv4.ip_forwarding="1"
這樣的修改會在開機後消失哦,如果要長久生效的話你要你的指令新增到
/etc/rc.d/rc.local 這個檔案中,或是直接在 /etc/sysctl.conf 修改。
- sysctl.conf為系統資源設定檔
- 系統在開機時會讀這一個檔案,在檔案中以 ; , # 打頭行是註解,會被忽略。用來表示子目錄的符號 / 在這邊會以 . 取代,所以你可能看到內容如下
- net.ipv4.ip_forward = 1
- 這一行的意思是 /proc/sys/net/ipv4/ip_forwarding的內容是1
/proc/sys/fs/
file-max
此檔案的數值表示系統核心所支援最大的file handles,若是你發現出現錯誤訊息說file handle
不足。那麼你就必須調大這個數值,若你要調為123456,就可以可以使用指令來修改
echo "123456" > /proc/sys/fs/file-max
顯示你的/proc/sys/fs/file-max當然就是cat即可啦~~~
file-nr
此檔案之中有3個數值,分別表示的意思
第1個是已分配的file handles
第2個是已使用的file handles
第3個是可以使用的file handles最大數值
inode-state , inode-nr
如同file hanlder,核心會自動的分配inode的架構,但是不用時並不能夠釋放這些資源
/proc/sys/kernel/
acct
這個檔案包含3個數值分別是 高水位、低水位、頻率。這個檔案的作用是判斷何時啟用/
停止file system的紀錄。
如果file system的使用率低水位,則會停止記錄,若是使用率高於高水位,則開始紀錄;
那麼頻率是已秒為單位
ctrl-alt-del
若這個檔案的內容是0,表示你按ctrl+alt+del時,它會將資料回存,再進行重新開機。
若不是為0時表示您按ctrl+alt+del,它就會直接重新開機
domainname , hostname
這2個檔案分別是NIS的 domain name 以及主機的 host name。不建議修改它,要修改的
話就是勤勞點,去改 /etc/hosts 再重新開機吧
osrelease
儲存核心的版本
ostype
是儲存作業系統的種類
version
儲存核心產生的時間以及版本
modprobe
這個檔案內容顯示 modprobe 的所在位置
modprode 的補充資料
insmod 與 modprobe 都是載入 kernel module,不過一般差別於 modprobe 能夠處理 module
載入的相依問題。比方你要載入 a module,但是 a module 要求系統先載入 b module 時,
直接用 insmod 掛入通常都會出現錯誤訊息,不過 modprobe 倒是能夠知道先載入 b module
後才載入 a module,如此相依性就會滿足。
/proc/sys/net/
網路相關設定
/proc/sys/net/ipv4/
網路相關設定 for IPV4
icmp_echo_ignore_all
是否回應 ICMP 的封包;如果是 0 表示關閉,也就是不回應所有 ICMP 的封包。
在你使用ping的指令就是送出ICMP的封包 ^ ^
icmp_echo_ignore_broadcasts
是否回應broadcasting的封包;如果是 0 表示關閉
ip_autoconfig
網路設定是否自動載入,載入的來源是透過 RAPR , BOOTP , DHCP 等取得自已的
IP設定。如果是 0 表示關閉,則這些網路設定在本機上啦。
ip_conntrack_max
檔案中的數字表示建立連線追縱 ( ip connect track ) 的最大數量,若是你的主機是
NAT server 的話建議調大這個數值。
ip_default_ttl
TTL ( Time To Live )的預設值,TTL是封包能夠存活所經過位置的個數,default:64,
也就是幫包若是轉送位置的次數超過64次,則這個封包就會被刪除。
ip_dynaddr
允許 socket 重新訂定 IP Address ,這項功能對於動態 IP Address ,如撥接,是必要的
如果是 0 表示關閉
ip_forward
0表示這台機器是 host ; 1 表示這台機器是 router ,當封包的目的地非本機時的處理方
式。若是 host 則會不理會它 ,若是 router 會將它轉到正確的位址。
ip_local_port_range
這個檔案包含2個數值 A 與 B 。 表示本機連到外面所用的 port 的範圍為 A ~ B 之間。
要注意這個區間要避開本機提供服務的port
tcp_keepalive_time
連線的狀況下,多久送出一次仍保持連線的訊息,單位是秒。default:2小時
tcp_fin_timeout
這檔案的內容是秒數,代表在 socket 結束前用來接收一個結束 FIN 的封包的時間
tcp_retries1
定義在放棄前,回應 TCP 連線重新傳遞的請求次數
tcp_retries2
定義在放棄前, TCP 連線重新傳遞的請求次數
他於tcp_retries1不同哦…一個是回應的一個是連線的。
tcp_syncookies
1表示不會回應 "不為syn的tcp新建立的連線封包"
/proc/sys/vm/
這個目錄是 linux 核心當中虛擬記憶體的設定,核心對於虛擬記憶體的使用,有更更
聰明以及更有廷展性的用法,一般而言我們統稱為 swap 。以下對於部份的檔案做介
紹。
kswapd
這個檔案是核心對 kswapd 這個常駐程式的控管。裡頭包含三個數值。
第1個是 kswapd 企圖去釋放一個單獨的目的,所使用 pages 的最大數量,這個值越
大,表核心可以使用更多的 free pages 。
第2個是 kswapd 企圖釋放 pages 的最少次數。
第3個是 kswapd 是圖寫入一個目的程序所需要的 pages 。
max_map_count
設定一個程序所擁有的記憶體對應區域,default:65536。
overcommit_memory
如果不是0,核心在記值程序所用的記憶體時將不會檢查是否有足夠的記憶體。
pagetable_cache
控制 page cache 所使用記憶體的比例。
/proc/ 的其他部份
以下介紹部份 /proc 的架構
數字部份
進入 /proc 之後,你會看到許多名稱為數字的目錄,這些數字代表的是 process id
其中的內容如下所示:
cmdline 這裡記載執行這個 process id 的完整指令。
cwd 這個是 process 的工作目錄
exe 這是這個執行檔實際位置的連結
fd 這是一個被這個 process 所開啟的檔案,其中 0 是input,1是output,2是錯誤,其
他為程式另外定義
map 這個檔案包含這個程式所對應的記憶體使用區以及權限
stat 這個 process 的狀態資訊,提供給 ps 查詢用。
/proc/ 下非數字的部份
cmdline 提供給 linux 核心的開機參數
cpuinfo cpu的相關資訊
devices 列出所有的 device 的列表
filesystems 列出核心所支援的 file system。
ide 為一個目錄,列出 IDE 的裝置資訊。
interrupts 列出 IRQ 的資訊
iomen 列出 I/O 記憶體的對應 , Linux 2.4 的功能
ioports 列出正確註冊,且在使用的 I/O 。
loadave 這個檔案會記錄工作平均數。
meminfo 紀錄記憶體資訊,當我們使用 free 指令時就會用到這一個檔案
modules 紀錄系統會載入的模組 : lsmod
partitions 包含了硬碟分割的相關資訊
pci 這是所有PCI的列表以及核心上的設定。
scsi 這是一個目錄包含了scsi的設定以及驅動程式的相關資訊。當然若是你沒有
scsi設備,就不會有這個目錄
stat 核心與系統方面的統計資訊
swaps swap所用的file system以及大小
sysvipc 這個目錄下包含了3個檔案,msg是message queues的資訊,
sem是semaphore Arrays的資訊,shm是SharedMemory Segments的資訊,
這3者都是interprocess communication常用的方式,也就是內部process之間溝通
的方式,也就是相同 ipcs指令。
uptime 這個檔案包含了2個數值,一個是系統更新的時間,另一個是idle的程序所花
費的時間,這邊圾是秒計算。
version 包含了核心的資訊以及gcc的版本。
/proc/net
arp 包含核心的 arp table ,也就是網路卡卡號與IP address的對應關係。
atm 這是一個目錄,裡面包含了 ATM(asynchronous transfer mode)的設定以及統計
,通常被ATM networking 與ADSLcard使用。
dev 內容包含了網呫裝置的資訊,傳送與接收的統計
ip_conntrack 列出ip連線的追蹤,在NAT server,這個檔案將列出所有client的連線的
狀況。
ip_mr_cache 列出多重路由的cache
ip_mr_vif 列出多重虛擬的介面
ip_tables_names 若是使用iptables,這邊會列出所使用的tables。
netstat 顯示網路的統計數字
psched 列出所有排程的參數
raw 列出raw device的統計數字
route 列出核心的路由列表
rt_cache 列出目前的路由cache
snmp 列出使用中的snmp(simple network management protocol)資訊
sockstat 列出socket的統計資料。
tcp 列出 TCP socket 的資訊。
tr_rif 包含token ring RIF的路由列表
udp 包含完整的UPD socket 的資訊
wireless 列出wireless介面的資訊
atm 這是一個目錄,裡面包含了 ATM(asynchronous transfer mode)的設定以及統計
,通常被ATM networking 與ADSLcard使用。
dev 內容包含了網呫裝置的資訊,傳送與接收的統計
ip_conntrack 列出ip連線的追蹤,在NAT server,這個檔案將列出所有client的連線的
狀況。
ip_mr_cache 列出多重路由的cache
ip_mr_vif 列出多重虛擬的介面
ip_tables_names 若是使用iptables,這邊會列出所使用的tables。
netstat 顯示網路的統計數字
psched 列出所有排程的參數
raw 列出raw device的統計數字
route 列出核心的路由列表
rt_cache 列出目前的路由cache
snmp 列出使用中的snmp(simple network management protocol)資訊
sockstat 列出socket的統計資料。
tcp 列出 TCP socket 的資訊。
tr_rif 包含token ring RIF的路由列表
udp 包含完整的UPD socket 的資訊
wireless 列出wireless介面的資訊
訂閱:
文章 (Atom)