進程管理
程序放在磁盤上叫文件,把它複製到內存,並在cpu運行,就叫進程,
進程多少也反映當前運行程序的多少
進程在系統中會爲每一個進程生成一個進程號,在全部的進程中有一個特殊進程即init進程,
它是全部進程的祖先,進程號是1。這個進程是不能停止的。
進程與 /proc 目錄關係密切
/proc 是一個實時的、常駐內存的虛擬文件系統。它反映的是當前內核運行的狀態有時還能經過設置 /proc 中某些文件的狀態來臨時修改系統設置的目的
例:echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all -----禁ping
進程狀態
r 運行狀態
s 睡眠狀態
d 不可中斷的睡眠狀態
t 暫停或跟蹤狀態
z 殭屍進程(退出了,但資源還未釋放掉)
經常使用進程管理的命令
一、ps 查看進程狀態
ps -ef
ps aux
s 它有子進程
l 多線程
+ 位於後臺進程組
< 高優先級
N 低優先級
二、pstree 查看進程
三、top 實時查看進程
實時查看時:
按 P 根據cpu使用率排序
按 M 根據內存使用狀況排序
k 殺進程
q 退出
u 顯示指定用戶的進程
shift + >
shift + < 翻頁看
四、kill 殺進程
五、killall 以服務名或進程名的方式殺進程
有時同一個服務或程序會生成不少的進程,經過進程號來殺,會比較麻煩,這時能夠用killall
六、pkill 以服務名或進程名的方式殺進程 (和killall 相似,但不要全名)
例:killall http --殺不掉,由於killall 要全名的
七、nice 以指定的優先級去運行一個程序
格式:nice [-n num] command
num:
-20~19 值越低優先級越高,默認爲0
例: nice -n -20 /usr/bin/vmware
八、renice 修改一個正在運行的程序優先級
格式; renice [num] PID
例:
修改x0vncserver 的優先級
renice -20 17237
做業控制:
九、 & 後臺運行符
十、jobs 查看後臺運行的命令
十一、bg 啓動後臺中止的進程
格式:bg 後臺程序編號
如: bg %1
十二、殺後臺進程
kill %1
1三、將前臺程序放到後臺運行數據庫
如: cp /soft/rhel62.iso / --以後按ctrl +z ,程序就到後臺
1四、 fg 將後程序調到前臺運行vim
fg %1
1五、 ctll + z 將前臺程序放到後臺(會中止運行)windows
文件查找與壓縮
文件查找:
which 顯示可執行命令的路徑(告訴你命令在哪)
例:which cp which fdisk
能不能找到取決於兩個方面:服務器
1)有沒有這個命令(文件)
2)PATH 變量
which 不會在磁盤上搜有沒有這個文件,它只在 PATH 變量指定的路徑中去搜索,若是沒指定那個目錄,即使有也找不到
whereis
同 which 相似,locate 查找速度很是快,由於從系統數據庫中找,沒在磁盤上搜索,可是會存在一個問題,若是系統數據庫未更新,那即使文件存在,也找不到
解決辦法是更新系統數據庫
locate qq
touch aaa.txt
locate aaa.txt --這裏找不到aaa.txt 了
updatedb
locate aaa.txt --更新數據庫後就找到了
find 文件查找
格式: find 路徑 [選項]
-name 按文件名找
-type 按類型找
b 塊設備
c 字符設備
d 目錄
l 連接
f 普通文件
-uid 按用戶id找
-user 按用戶名找
-gid 按組id 找
-group 按組名找
-size 按大小找
+nK|M|G
-nK|M|G
-mtime 按修改時間找(單位:天)
+n 大於n 天(n天之前)
-n 小於n 天(n天之內)
-mmin amin cmin 按修改時間、訪問時間、修改時間找(單位:分鐘)
mtime 文件修改時間(側重於內容,mtime 的修改會引發ctime、atime的修改)
atime 文件訪問時間(如查看)
ctime 文件修改時間(側重於屬性修改,如權限,名字等)
查看文件 stat
-nouser 查找無效屬主的文件
-group 查找無效組
-exec 對查找的結果執行命令,查找結果做爲命令輸入參數網絡
格式:find .... -exec command {} \;
-ok 與 -exec 做用相似,可是執行命令時,有確認信息多線程
xargs 也能夠作相似的事情,不過xargs 就要使用管道了,將查詢結果傳給xargs (注意的是xargs 不是find 的選項)異步
用法: command1 | xargs -I {} command2 {}async
-I 用一個符號來替代前一個命令傳過來的每一個具體結果ui
command2 {} 對前面傳過來的結果執行命令
例:找 fdisk find / -name fdisk
例:只找aaa的目錄 find / -type d -name aaa
例:找tom 建立的全部文件 find / -user tom
例:找1G以上的文件 find / -size +1G
例:找無效屬主的文件,並將這些文件刪除 find / -nouser -exec rm {} \;
例:刪除tom建立的文件 find / -user tom -type f -ok rm {} \;
例:用xargs 的方式把 tom 建立的普通文件,複製到 /test
格式:command1 | xargs -I {} command2 {}
find / -user tom -type f | xargs -I {} cp {} /test
文件壓縮與打包
windows 下常見的壓縮格式: .zip .rar
linux 下常見的縮格式: .gz .bz2 .tar.gz .tar.bz2
gzip
壓縮:gzip etc.tar
解壓:gzip -d etc.tar.gz
bzip2
壓縮:bzip etc.tar
解壓:bzip -d etc.tar.bz2
.zip 文件拷到linux來解壓方法:
unzip 壓縮文件名
.rar 文件拷到linux來解壓方法:
要裝rar的linux 版,rar 命令行的使用
rar 壓縮:rar a etc.tar.rar etc.tar
rar 解壓:rar e etc.tar.rar
tar 打包/解包
格式: tar [option] [文件目錄列表]
option:
-c 打包
-x 解包
-v 顯示打包解包過程
-f 指定打包解包文件
-j 用bzip2 來進行壓縮與解壓
-z 用gzip 來進行壓縮與解壓
-C 指定解壓路徑
-t 查看包內容
例:把 /etc 打包成一個文件
tar -cvf etc.tar /etc
例:把 etc.tar.bz2 解包
tar -xvjf etc.tar.bz2
例:查看包的內容
tar -tvf etc.tar.bz2
NFS (Network File System) 網絡文件系統的簡稱,最先由sun公司開發,主要用於類unix間的文件共享。
服務器軟件安裝:
yum install nfs*
涉及的服務:
nfs
rpcbind
配置文件:
/etc/exports
配置格式: 共享的目錄 能訪問客戶端(訪問參數) 能訪問客戶端2(訪問參數2)
能訪問的客戶端:
172.16.1.116 單一IP
172.16.1.* IP段
172.16.1.0/24 IP段
www.uplooking.com 主機名
*.uplooking.com 域名
* 全部機器
訪問參數:
ro 只讀
rw 讀寫
sync 實時同步數據到磁盤
async 異步
anonuid=xxx 指定匿名賬號的uid
anongid=xxx 指定匿名賬號的gid
secure 限制客戶端只能從小於1024的端口鏈接到nfs 服務器
insecure 能夠從大於1024端口鏈接到nfs 服務器
NFS端口:
111 rpcbind (原來portmap)端口,另外還有一些隨機端口,由rpcbind 來映射
exportfs 手工維護共享目錄
格式: exportfs [option] [dir_name]
option:
-v 顯示共享
-a 共享 /etc/exports 定義的目錄(啓用共享)
-u 中止共享
-r 從新讀取配置文件(至關於從新加載配置文件)
至關於 service nfs reload
例:經過exportfs 共享 /test 目錄
exportfs *:/test
例: 配一個nfs 服務器,讓客戶端只讀訪問
服務器端:
vim /etc/exports
/share *(ro)
service nfs restart
mkdir /share
cp ...... /share
客戶端:
1) 查看服務器共享了哪些資源
showmount -e ip
如:showmount -e 172.16.1.116
2) 掛載服務器的共享到本地目錄
mount ip:共享目錄 本地掛載點
如:mount 172.16.1.116:/soft /mnt
3) 訪問了
把服務器的共享目錄掛載到本地後,訪問掛載點就是訪問服務器的共享目錄了
cd /mnt
ls
服務管理
啓動服務
service 服務名 start
中止服務
service 服務名 stop
重啓服務
service 服務名 restart
查看服務狀態
service 服務名 status
如何讓服務自動啓動:
1) vim /etc/rc.d/rc.local
把啓動服務的命令寫進去(不經常使用)
2) chkconfig --level 2345 服務名 on
檢查:chkconfig --list | grep 服務名
2345 是運行級別
例: chkconfig --level 2345 nfs on
chkconfig --list | grep nfs