標籤:

Linux系統第三天

第三天了,哎,Linux命令這個東西一開始真的是很枯燥乏味,但是呢,沒有辦法呀,要恰飯得嘛,接下來,let me see 防火牆

防火牆:

service iptables start/stop/status --在我們學習熟悉lixux系統時,我們不需要用到防火牆,有時還會阻礙我們的學習,因此直接 service iptables stop就可以了

selinux:

SeLinux是Linux的一個安全策略,但是在實際應用中,很多人都會遇到各種問題,很多編譯安裝軟體的文檔,也特意註明了,建議關閉SeLinux

enforcing:強制模式,代表SeLinux運作中,且已經開始正確的開始限制domain/type了;

permissive:寬容模式,代表SELinux運作中,不過斤會有警告訊息並不會實際限制.這種模式可以用來作為SELinux的debug之用;

disabled:關閉,SELinux並沒有實際運作

查看SELinux狀態

sestatus -v ##如果SELinux status參數為enabled即為開啟狀態

關閉SELinux:

臨時關閉(不用重啟機器):

setenforce 0 設置SELinux成為permissive模式

setenforce 1 設置SELinux成為enforcing模式

修改配置文件需要重啟機器:

修改etc/selinux/config 文件,將SELinux關閉掉

將SELinux=enforcing 改為 SELinux=disabled重啟機器即可

Linux進程操作

1.查看進程

ps -aux

-a 列出所有

-u 列出用戶

-x 列出詳細,如cpu,內存等

ps -ef | grep ssh

查看所有進程里cmd是ssh的進程信息

根據CPU使用來升序排序

ps -aux --sort -pcpu

PID:運行著的命令(CMD)的進程編號

TTY:命令所運行的位置(終端)

TIME:運行著的該命令所佔用的CPU處理時間

CMD:該進程所運行的命令

2.性能分析

top命令是Linux下常用的性能分析工具,能夠實現顯示系統中各個進程的資源佔用狀況,常用語服務端性能分析

用法: top -d/p/q/c/C/s/S/ n

參數說明

d 指定每兩次屏幕信息刷新之間的時間間隔.當然用戶可以使用s交互命令來改變

p 通過指定監控進程id來僅僅監控某個進程的狀態

q 該選項將使top沒有任何延遲的進行刷新.如果調用程序有超級用戶許可權,那麼top將以儘可能高的優先順序運行

S 指定累計模式

s 使top命令在安全模式中運行.這將去除交互命令所帶來的潛在危險

i 使top不顯示任何閑置或者僵死進程

c 顯示整個命令行而不只是顯示命令名

total 京城總數

running 正在運行的進程數

sleeping 睡眠的進程數

stopped 停止的進程數

zombie 殭屍進程數

Cpu(s):

us 用戶空間佔用CPU百分比

sy 內核空間佔用CPU百分比

ni 用戶進程空間內改變過優先順序的進程佔用CPU百分比

wa 等待輸入輸出的CPU時間百分比

hi 硬體CPU中斷佔用百分比

si 軟體中中斷佔用百分比

st 虛擬機佔用百分比

Mem:

total 物理內存總量

used 使用的物理內存總量

free 空閑內存總量

buffers 用作內核緩存的內存量

Swap:

total 交換區總量

0k used 使用的交換區總量

free 空閑交換區總量

cached 緩衝的交換區總量,內存中的內容被換出交換區,而後又被換入到內存,但使用過的交換區尚未被覆蓋,該數值即為這些內容已存在於內存中的交換區的大小,相應的內存再次被換出時可不比再對交換區寫入

3.後台進程

若想一個程序放在後台運行,只要在命令後面加&符號 ping 百度一下,你就知道 > ping.log &

jobs -l 列出當前連接的所有後台進程

注意:jobs命令只看當前終端生效的,關閉終端後,在另一個終端jobs已經無法看到後台跑的程序了

此時應用 ps -ef | grep 進程名 來查詢後台進程

後台進程有時運行一段時間後,系統會自動把該進程掛起來,導致進程無法再正常運行,因此後台一般和nohub命令結合來使用,告訴系統不要把該進程掛起來,這樣該命令就可以24小時不間斷運行

nohub ping 百度一下,你就知道 > ping 2.log &

此時該命令還不夠完美,因為這時ping命令的輸出重定向只會把正確的日誌重定向到 ping2.log里,我們要想所有的日誌都定向到指定文件里。所以我們應該這樣寫:nohub ping 百度一下,你就知道 > ping3.log 2>&1 &

4.殺死進程

Kill 用法:kill pid

-9 強制殺死

可以先用jobs -l 或 ps 命令先查出對應程序的PID或PPID,然後殺死進程

其他常用命令

1.wget

wget 是一個從網路上自動下載文件的自由工具,支持通過 HTTP、HTTPS、FTP 三個最常見的 TCP/IP協議 下載,並可以使用 HTTP 代理

需先安裝 yum install wget –y

wget用法:wget [option] 網址 -O 指定下載保存的路徑

wget 工具還可以用來做一些簡單的爬蟲,這裡不是我們的學習重點,如果想做爬蟲,可以用java或python語言來做。

包管理

1.rpm包

RPM(RedHat Packge Manager)是RedHat公司出的軟體包管理器,使用它可以很容易地對rpm形式的軟體包進行安裝、升級、卸載、驗證、查詢等操作,安裝簡單,而卸載時也可以將軟體安裝在多處目錄中的文件刪除乾淨。並且能夠針對不同的平台系統編譯目標軟體包。就跟windows系統的程序安裝與卸載管理一樣

rpm包安裝:

?rpm -ivh rpm包路徑

查找rpm包:

?rpm -qa : 查詢已經安裝的所有包

?rpm -q PACKAGE_NAME: 查詢指定的包是否已經安裝

卸載軟體:

rpm -e ntp-4.2.6p5-10.el6.centos.2.x86_64(全名)

2.tar包

tar

-z gzip進行解壓或壓縮,帶.gz需要加,壓縮出來.gz也需要加

-x 解壓

-c 壓縮

-f 目標文件,壓縮文件新命名或解壓文件名

-v 解壓縮過程信息列印

解壓命令:tar -zvxf xxxx.tar.gz

tar

-z gzip進行解壓或壓縮,帶.gz需要加,壓縮出來.gz也需要加

-x 解壓

-c 壓縮

-f 目標文件,壓縮文件新命名或解壓文件名

-v 解壓縮過程信息列印

解壓命令:tar -zvxf xxxx.tar.gz

壓縮命令:tar -zcf 壓縮包命名 壓縮目標

3.zip包

壓縮命令:zip -r 包名 目標目錄

需先安裝zip:yum install zip –y

解壓 unzip filename:

需先安裝unzip,yum install unzip –y

先把tomcat目錄刪除掉,然後再解壓,以免衝突

3.yum ---再試

4.文本的分析

免密碼登錄

1.工作原理

1.Server A 向 Server B發送一個連接請求.

2.Server B 得到Server A 的信息後,在本地的authorized_keys 文件中查找A 存放在 B 上的公鑰,如果有相應的公鑰,則隨機生成一個字元串,並用Server A的公鑰加密,接著放送給Server A

3.Server A 得到Server B 發來的信息後,使用私鑰進行解密,然後將解密後的字元串發送給Server B Server B 用原來隨機生成的字元串和A發貨來的字元串進行比對,如果一直,則允許免登陸

總結:A要買密碼登錄到B,B首先要擁有A的公鑰,然後B要做一次加密驗證,對於非對稱加密,公鑰加密的密文不能用公鑰解開,只能死要解開

2.生成公鑰和秘鑰

在主機A上生成一對公鑰和秘鑰

命令:ssh-keygen -t dsa -P -f ~/.ssh/id_dsa

--系統會在對應的用戶的home目錄下的.ssh目錄里生成公鑰和秘鑰文件

ls -a查看文件,會有一個.ssh的隱藏文件 進入即可查看

查看公鑰和秘鑰 :ll ~/.ssh亦可 id_dsa --私鑰 id_dsa.pub --公鑰

#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys --將公鑰重定向到.ssh的一個新文件中

3.添加秘鑰

將A的.ssh目錄下中的id_dsa.pub拷貝到B的authorized_keys文件里

4 驗證

用Scp遠程拷貝命令,在A主機上隨便拷貝一份文件到B主機上,如果不需要密碼,則說明免密碼登錄配置成功。


推薦閱讀:

學會配置ssh客戶端
GNU/Linux軟體使用小TIPS
「Linux」 - 基本操作
Linux啟動時如何定位BIOS提供的ACPI表

TAG:Linux |