一、yum添加centos源
1、執行cd /etc/yum.repos.d/,
如果添加了RHEL安裝光盤的源,需要將光盤源重命名,避免影響使用。
mv cdrom.repo cdrom.repo.bak
2、執行rpm -qa | grep yum檢查當前系統中都安裝了哪些有關於yum的包
3、執行rpm -e卸載,
由於執行rpm -e yum-metadata-parser出現依賴關係卸載失敗;
所以先執行 rpm -e yum-updatesd
rpm -e yum-security卸載這兩個程序
4、 由於yum的相關包依賴關係非常複雜。所以當無法刪除時,執行 –nodeps參數忽略相應的依賴關
系強制卸載
rpm -e --nodeps yum
rpm -e --nodeps yum-metadata-parser
5、將整理好的壓縮包解壓到/tmp下,並切換到/tmp/ VMFLODER
tar zxvf ebai-yum.tar.gz -C /tmp/
6、安裝yum也會遇到很麻煩的依賴關係問題。所以,用yum-*一起去安裝他們,就解決了。
rpm -ivh yum-*
7、安裝好之後,我們將Centos的源配置文件拷貝到/etc/yum.repos.d目錄中,看看能否使用yum。
cp CentOS-Base.repo /etc/yum.repos.d/
8、發現不可以。因爲配置文件中使用了$releaserver,所以會檢查系統的版本。因此,還需要安裝其
他rpm包來改變系統的版本。
1)執行vi CentOS-Base.repo,打開該文件查看mirrorlist到源服務器的鏡像列表中進行篩選,該
行下采用了變量名稱來替代當前系統的版本名或版本號;
baseurl指定一個具體的源服務器
2)執行cat /etc/redhat-release查看本機linux版本號,版本號是Red Hat Enterprise Linux
Server release 5.5 (Tikanga),centos官方源裏不存在該版本,所以需要改變當前系統的
release。
3)因此,先卸載RHEL自己的版本有關包
執行rpm -e redhat-release-5Server顯示卸載失敗,
所以執行 rpm -e --nodeps redhat-release-5Server強制卸載
4)再安裝centos的版本包執行rpm -ivh centos-release-5-4.el5.centos.1.i386.rpm,
顯示失敗,centos-release包依賴centos-release-notes包,所以要先安裝後者。
rpm -ivh centos-release-notes-5.4-4.i386.rpm
5)cat /etc/redhat-release 查看當前系統的release,
現在的版本爲CentOS release 5.4 (Final);
同時在/etc/yum.repos.d/下放置一個CentOS-Base.repo的源配置文件
6)用rpm命令來檢查一下這個包都裝出了什麼文件
rpm -ql centos-release
7)cd /etc/yum.repos.d/查看到源的配置文件已經準備完畢,
8)現在,yum已經可用了。我們用yum list命令來檢查一下。
yum list
二、進程
(一)、
1、什麼是進程
進程是正在運行的可執行程序的實例,通過進程ID(pid)識別。
2、爲什麼需要有進程
Linux使用虛擬內存,每個進程都擁有自己特定的內存地址空間。
3、進程的保存內容
1)執行環境:
每一個進程都是受保護的;進程之間不能互相訪問。
2)輸入輸出環境:
(1)打開的文件描述符(descriptor)
proc 目錄
相應各個進程在內存中的抽象顯示。進入某個進程目錄下,顯示相關信息;切換到該目錄下的fd
目錄,該目錄下的數字就是相應軟鏈接的描述符
(2)內存映射文件
經常存放進程的可執行代碼
(3)文件系統環境
(4)環境變量
(5)遺留信息
(6)憑證
(7)資源統計和限制
4、查看進程命令
1) ps :默認顯示的是當前進程所調用的相關信息
參數:
(1)-A -e ax :這三個參數都是查看所有進程
(2)-ef :查看所有進程並列表顯示
<1>UID 當前用戶的UID
<2>PID 進程的ID
<3>PPID 父進程的ID
<4>C CPU使用的資源百分比
<5>STIME 執行的時間
<6>TTY 登陸者使用的終端
<7>TIME 消耗的CPU時間
<8> CMD 程序本身
[] 中括號括起來的進程是內核進程;
非中括號括起來的進程是用戶進程
(3)ps -aux : 顯示所有進程與ps -ef相同
(4)-C command 所有command旳實例
(5)-U --user --User user 屬於user的所有進程
(6)-t --tty terminal 從terminal啓動的所有進程
(7)-p --pid N pid爲N的進程
(8)-f 詳盡列表
(9)-l l 長格式
(10)-j j 作業格式
(11)-o o --format str
用戶定義的格式,使用由str指定的字段(str的可用字段可由ps L列出,或者通過
命令:man 1 ps ,查詢man page)
2)top
3)圖形界面下執行gnome-system-monitor
5、進程的生命週期——啓動
1)進程創建和命令執行是兩個不同的概念。通常創建一個新進程是爲了運行一個指定的命令,但是不
運行命令也可以創建進程,不創建進程也可以運行新命令。
2)啓動進程的幾種方式
(1)創建新進程(派生(fork))
(2)執行新命令(exec)
(3)派生和執行
例如字符界面下用戶的登錄
(4)查看進程家譜pstree 。
系統的原始進程是init ,init的PID總是1
一個進程可以產生另一個進程,除了init以外, 所有的進程都有父進程
使用pstree 命令看看系統的進程樹型結構,
pstree可以用來以樹狀的方式表現進程的父子關 系.
6、進程的生命週期——終止
1)終止分正常終止(exit)和非正常終止
退出之後的進程會留下整數形式的狀態碼,也稱爲返回值,亦稱遺留信息。
2)孤兒進程(Orphan)
父進程被強行終止後形成。
3)殭屍進程(zombie)
當進程退出釋放大多數資源和給父進程返回值,在給返回值和釋放資源之間,子進程所處的特殊狀
態稱爲殭屍進程。
每一個進程關閉的時候都會經歷一個殭屍的狀態。
殭屍進程不佔用內存、CPU等所有資源。
當父進程終止子進程未清理時,這時形成的殭屍進程會導致出現問題,如內存溢出等。
4)疏忽的父親沒人管的孩子——長期存在的殭屍進程。
消除方法:
(1)強制關閉殭屍進程
(2)將殭屍進程掛載到init進程下,成爲init的子進程
7、進程的狀態:
(1)可運行狀態(R)
準備被CPU運算的進程
(2)自願睡眠或稱爲可中斷的(S)
定期被喚醒的,一般每5秒鐘喚醒一次
(3)非自願睡眠或稱爲不可中斷或強制(S)
不會被定期喚醒。
(4)停止(掛起)的進程(T)
ctrl z
(5)殭屍進程(Z)