Linux學習筆記之計劃任務、進程管理、磁碟管理 進程和程式的區別: 1、程式是靜態概念,本身作為一種軟體資源長期儲存;而進程是程式的執行過程,它是動態概念,有一定的生命週期,是動態產生和消亡的。 2、程式和進程無一一對應關係。一個程式可以由多個進程共用;另一方面,一個進程在活動中有可順序的執行若干個程式 www.2cto.com 父進程和子進程: 1、子進程是由一個進程所產生的進程,產生這個子進程的進程稱為父進程 2、在Linux系統中,使用系統調用fork建立進程。fork複製的內容包括父進程的資料和堆棧段以及父進程的進程環境 3、父進程終止子進程自然終止 前台進程和後台進程: 前台進程:在Shell提示處打入命令後,建立一個子進程,運行命令,Shell等待命令退出,然後返回到對使用者給出提示符。這條命令與Shell非同步運行,即在前台運行,使用者在它完成之前不能執行另一個命令 後台進程:在Shell提示出打入命令,若後隨一個&,Shell建立的子進程運行此命令,但不等待命令退出,而直接返回到對使用者給出提示。這條命令與Shell同步運行,即在後台運行。後台進程必須是非互動。 例如: 查看使用者資訊:w. [root@CentOS-Test dhcp]# w 14:57:48 up 8:24, 3 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - 06:34 8:18m 0.11s 0.11s -bash root tty7 :0 06:39 8:23m 3:19 3:19 /usr/bin/Xorg :0 -br -verbose -audit 4 -auth /var/run/gdm/au root pts/3 192.168.0.211 12:06 0.00s 0.42s 0.14s w JCPU:以終端代號來區分,該終端所有相關的進程執行時,所消耗的CPU時間會顯示在這裡 PCPU:CPU執行程式耗費的時間 WHAT:使用者正在執行的操作 load average:分別顯示系統在過去1、5、15分鐘內的平均負載程度 FROM:顯示使用者從何處登入系統,":0"的顯示代表該使用者是從XWindow下,開啟文字模式視窗登入的 IDLE:使用者顯示的時間。這是一耳光計時器,一旦使用者執行任何操作,該計時器便會被重設 查看個別使用者資訊: w 使用者名稱 查看隸屬於自己的進程詳細資料 ps -aux 或ps -le [root@CentOS-Test dhcp]# ps -aux Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1762 0.0 0.0 2004 480 tty2 Ss+ 06:34 0:00 /sbin/mingetty /dev/tty2 root 1764 0.0 0.0 2004 480 tty3 Ss+ 06:34 0:00 /sbin/mingetty /dev/tty3 PID:進程號 PPID:父進程的進程號 TTY:進程啟動的終端 STAT:進程的目前狀態 S:休眠狀態 D:不可中斷的休眠狀態 R:運行狀態 Z:僵死狀態 T:停止 NI:進程的優先順序 產找某個進程是否已經啟動 ps -le | grep httpd 尋找某個使用者的進程是否已經啟動 ps -uU root 或 ps -aux | grep root 殺死進程:kill 進程號 kill -9 進程號(強行關閉) kill -l 進程號(重啟進程) xkill:關閉圖形進程 killall:結束所有進程 pgrep 服務名稱 :尋找服務進程號 pkill 進程名稱:關閉進程 nice:指定程式的運行優先順序(-20-19) nice -5 myprogram nice --5 /etc/rc.d/init.d/httpd start renice:改變一耳光正在啟動並執行進程的優先順序 renice -20 pid nohup:使進程在使用者退出登陸後仍舊繼續執行,nohup命令將執行後的資料資訊和錯誤資訊預設儲存到檔案nohup.out中: 格式:nohup program & nohup find / -name init* > /root/find.init.20120120 & 將命令的執行結果儲存到/root/find.init.20120120檔案中 進程的掛起和恢複: 掛起:ctrl+z 終止:ctrl+c 進程的恢複 恢複到前台繼續運行:fg 恢複到後台繼續運行:bg 查看被掛起的進程:jobs top命令:進程狀態顯示和進程式控制制,每5秒鐘自動重新整理一次(動態顯示) 常用選項:d:指定重新整理的時間間隔 c:顯示整個命令列而不僅僅顯示命令名十五、計劃任務 計劃任務的命令: 1、一次性計劃任務 at 安排作業在某一時刻執行一次 at [-f 檔案名稱] 時間,其中時間有兩種格式: 絕對計時方法:midnight noon teatime hh:mm[today] hh:mm tomorrow hh:mm 星期 hh:mm MM/DD/YY 相對計時方法:now +n minutes now +n hours now +n days at的執行結果和設定檔: 如果/etc/at.allow檔案存在,那麼只有列在此檔案中的使用者才可以使用at命令;若/etc/al.allow檔案不存在,則檢查/etc/at.deny檔案是否存在。若/etc/at.deny存在,則在此檔案中列出的使用者都不能使用at命令。如果兩個檔案都不存在你,則只有root使用者可以使用,如果兩個檔案都存在且均為空白,則所有的使用者都可以使用at命令 batch 安排作業在系統負載不重時執行一次 2、周期性計劃任務 crontab 安排周期性啟動並執行作業 crontab -e 分鐘0 小時4 天* 月* 星期* 命令/指令碼 把知道的具體時間填上,不知道的用*代替十五、檔案系統 檔案系統構成 /usr/bin、/bin:存放所有使用者可以執行的命令 /usr/sbin、 /sbin:存放只有root可以執行的命令 /home:使用者預設的宿主目錄 /proc:虛擬檔案系統,存放當前記憶體鏡像 /dev:存放裝置檔案 /lib:存放系統程式運行所需的共用庫 /lost+found:存放一些系統出錯的檢查結果 /tmp:存放使用者的臨時檔案 /etc:系統設定檔 /var:包含經常發生變動的檔案,如郵件、記錄檔、計劃任務等 /usr:存放所有命令、庫、手冊頁等 /mnt:臨時檔案系統的安裝點 /boot:核心檔案及自舉程式檔案儲存位置 裝置掛載 分區與格式化原理 磁碟配額 檔案系統常用命令 1、df -m 或 df -h::查看磁碟分割情況或檔案夾大小 2、du -sh 查看檔案、目錄的大小 3、fsck、e2fsck -p 分區名 檢測修複檔案系統,單一使用者模式執行 4、file 判斷檔案類型 5、光碟機的使用 掛載光碟機: mount /dev/cdrom /mnt/cdrom 卸載光碟機:umount /mnt/cdrom 添加磁碟或分區 1、劃分分區(fdisk): 關機,添加硬碟,重新啟動後在coms裡面查看是否添加成功或進入後使用dmesg |grep sdb查看 使用fdisk -l sdb 查看磁碟資訊(大小) 2、分區:fdisk /dev/sdb m:擷取協助資訊 p:列印硬碟分區表 n:列印新的分區 斷行符號後: e:擴充分區 p:主要磁碟分割 然後分區號(1-4) 在起始柱面上斷行符號 終止柱面+numM w:儲存 3、重新啟動電腦 4、建立檔案系統(相當於windows的格式化) msfs.ext4 /dev/sdb1 5、掛載分區 現在根目錄下建立一個檔案夾, [root@CentOS-Test /]# mkdir web 將sdb1掛載到web下 [root@CentOS-Test /]# mount /dev/sdb1 /web //此種掛載重啟後會失效 查看掛載情況 [root@CentOS-Test /]# df -h 檔案系統 容量 已用 可用 已用%% 掛載點 /dev/sda1 9.7G 3.2G 6.0G 35% / /dev/sdb1 9.9G 151M 9.3G 2% /web