Linux基礎(chǔ)學(xué)習(xí)筆記

安裝虛擬機(jī)

首先從阿里鏡像官網(wǎng)下載centos6.5的ISO鏡像文件,然后用VMware安裝centos的虛擬機(jī)。

安裝虛擬機(jī)

填寫需要?jiǎng)?chuàng)建的虛擬機(jī)的基本配置信息,暫時(shí)把內(nèi)存設(shè)為1GB,硬盤最大20GB。然后就是把剛剛下載的ISO鏡像放入安裝引導(dǎo),進(jìn)入centos6.5系統(tǒng)的安裝步驟。安裝步驟非常簡(jiǎn)單,就是一直填寫一些配置信息即可。之后一直Xshell來連接虛擬機(jī),因?yàn)樗茸詭У腸entos終端界面更加友好,功能更加強(qiáng)大。由于安裝的centos6.5系統(tǒng)自帶了圖形化界面,但是圖形化界面太消耗內(nèi)容了,所以就關(guān)閉了開機(jī)啟動(dòng)圖形化界面,在/etc/inittab將原先的"id:5:initdefault:"中的5修改為3即可。

配置虛擬機(jī)

  1. 網(wǎng)絡(luò)配置

虛擬機(jī)的配置最主要的是網(wǎng)絡(luò),其目的是使得所有的虛擬機(jī)既可以訪問到外網(wǎng),也可以相

互之間ping得通。這里采用NAT+僅主機(jī)模式實(shí)現(xiàn)。

首先給出虛擬機(jī)網(wǎng)絡(luò)通信的原理圖

虛擬機(jī)網(wǎng)絡(luò)結(jié)構(gòu)圖

在NAT模式中,主機(jī)網(wǎng)卡直接與虛擬NAT設(shè)備相連,然后虛擬NAT設(shè)備與虛擬DHCP服務(wù)器一起連接在虛擬交換機(jī)VMnet8上,這樣就實(shí)現(xiàn)了虛擬機(jī)聯(lián)網(wǎng)。VMware Network Adapter VMnet8虛擬網(wǎng)卡主要是為了實(shí)現(xiàn)主機(jī)與虛擬機(jī)之間的通信。

配置子網(wǎng)和網(wǎng)關(guān)

子網(wǎng)和網(wǎng)關(guān)

因?yàn)樘摂M機(jī)默認(rèn)開機(jī)是不會(huì)加載網(wǎng)絡(luò)服務(wù)的,所以還需要修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,使開機(jī)自動(dòng)啟動(dòng)。

IP地址采用動(dòng)態(tài)主機(jī)配置協(xié)議dhcp進(jìn)行自動(dòng)分配ip地址。

但是考慮到之后所用的一些組件(如zookeeper的配置文件)需要配置ip地址,如果采取動(dòng)態(tài)分配ip地址的方法,ip地址改變后,配置就會(huì)隨之失敗,所以改為靜態(tài)ip地址的配置方法。

靜態(tài)ip地址需要修改/etc/sysconfig/network-scripts/ifcfg-eth0文件

首先將BOOTPROTP改為靜態(tài)獲取ip地址,然后填寫和上面vmware網(wǎng)絡(luò)處于一個(gè)網(wǎng)段的ip地址和對(duì)應(yīng)的子網(wǎng)掩碼,最后網(wǎng)關(guān)填寫vmware填寫的網(wǎng)關(guān),DNS填寫自己想要的DNS服務(wù)器。

因?yàn)楦臑榱遂o態(tài)獲取ip地址和網(wǎng)關(guān)等,還需要修改宿主機(jī)上VMware Network Adapter VMnet8的ip地址的網(wǎng)關(guān),才能使得主機(jī)和虛擬機(jī)之間相互通信,最后需要注意的是要關(guān)閉虛擬機(jī)和宿主機(jī)的防火墻,不然會(huì)使得ping不通。

填寫剛剛配置的網(wǎng)關(guān)。

然后就可以獲得靜態(tài)ip地址的虛擬機(jī)了。

  1. Java運(yùn)行環(huán)境配置

雖然下載的centos系統(tǒng)中自帶了openjdk的,但是openjdk和oracle的JDK之間有很多細(xì)節(jié)的東西不一樣,而且oracle的JDK比openjdk也多了許多功能,所以先卸載openjdk再安裝oracle的JDK。

使用rpm -qa | grep java命令先查看系統(tǒng)自帶的jdk相關(guān)的內(nèi)容,其中rpm是包管理工具,所以rpm -qa就是獲取所有被安裝的rpm package.而|符號(hào)是管道,意思是前者的輸出作為后者的輸入。Grep java意思是搜索出所有包含java字符的項(xiàng)目,所以這條命令合起來就是搜索出所有的java相關(guān)的包。得到了openjdk相關(guān)的包后并將其用rm命令刪除。然后在oracle官網(wǎng)下載JDK的tar.gz包,放進(jìn)新建的/export/server目錄,因?yàn)閘inux的目錄各有自己表示的意義,所以這里新建一個(gè)自己的目錄。使用tar zxvf jdk-8u151-linux-x64.tar.gz命令進(jìn)行解壓。最后將Java添加至環(huán)境變量即可,在/etc/profile文件末尾添加如下內(nèi)容并保存。

最后使用source /etc/profile命令使環(huán)境變量的配置文件重新加載,然后使用Java-version測(cè)試效果。

前幾天在配置zookeeper過程中也配置了Java,當(dāng)時(shí)順便寫了篇博客,里面有比較詳細(xì)的配置過程:http://www.lxweimin.com/p/a3ae0332d644

  1. python運(yùn)行環(huán)境

由于linux操作系統(tǒng)自帶python2,而且操作系統(tǒng)的一些命令依賴于python2,,所以不能卸載或者升級(jí),所以選擇安裝python2和python3共存的環(huán)境。wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz下載python的壓縮包,并使用tar xf命令進(jìn)行解壓。

1、準(zhǔn)備編譯環(huán)境,這是為了使后面的編譯過程順利

yum groupinstall 'Development Tools'

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel

2、下載 Python3.5代碼包

wget <u>https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz</u>

3、編譯

tar Jxvf Python-3.5.2.tar.xz

cd Python-3.5.2

./configure --prefix=/usr/local/python3 使用prefix指定python安裝的位置,通過執(zhí)行腳本./configure開始編譯, 這一過程可以決定系統(tǒng)的配置并創(chuàng)建相應(yīng)的Makefile和make文件

make && make install 最后執(zhí)行相應(yīng)的Makefile和make文件即可安裝好python

4、設(shè)置環(huán)境變量

echo 'export PATH=$PATH:/usr/local/python3/bin' >> ~/.bashrc

echo是指定輸入內(nèi)容,>>是追加至目標(biāo)文件

5、設(shè)置目錄

ln -sv /usr/local/python3/bin/python3.5 /usr/bin/python

通過上面命令可以在/usr/bin/python3路徑下創(chuàng)建一軟鏈接文件python,當(dāng)訪問此鏈接文件,就可以間接地訪問/usr/local/python3/bin/python3.5下的python程序了。這種方式與windows下的快捷方式類似。這是為了輸入python3執(zhí)行調(diào)用的是python3.5的命令

Python3安裝完成。

Python的安裝方式和Java有一定的差別。Python包中沒有bin文件可以用來直接執(zhí)行python文件,而需要對(duì)源碼進(jìn)行編譯,然后創(chuàng)建軟鏈接步驟才行。這個(gè)過程補(bǔ)充學(xué)習(xí)了編譯過程:

1).configure 檢查編譯環(huán)境;

2)make對(duì)源代碼進(jìn)行編譯;

3)make insall 將生成的可執(zhí)行文件安裝到當(dāng)前計(jì)算機(jī)中

make和makefile作用,和創(chuàng)建軟鏈接的相應(yīng)命令ln以及軟鏈接作用。順帶學(xué)習(xí)了使用echo來寫入內(nèi)容到指定文件,還有>和>>的區(qū)別,一個(gè)是覆蓋,一個(gè)是追加。

4、mysql服務(wù)端

首先使用rpm -qa | grep mysql查詢系統(tǒng)是否自帶mysql,然后使用rpm -e mysql刪除發(fā)現(xiàn)報(bào)錯(cuò),查看錯(cuò)誤信息得是因?yàn)橐蕾嚊_突,因?yàn)閥um是可以將依賴關(guān)系自動(dòng)解決,所以使用yum remove進(jìn)行刪除。

因?yàn)槟J(rèn)yum沒有mysql5.7,所以添加第三方軟件庫(kù)

從mysql的官網(wǎng)下載mysql57-community-release-el6-5.noarch.rpm

wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

安裝rpm文件
yum install mysql-community-release-el6-5.noarch.rpm

查看mysql的安裝源是否可用,如不可用請(qǐng)自行修改配置文件(/etc/yum.repos.d/mysql-community.repo)使mysql57下面的enable=1

若有mysql其它版本的安裝源可用,也修改配置文件使其enable=0

使用yum安裝mysql:

yum install mysql-community-server

啟動(dòng)mysql服務(wù)

修改mysql密碼

首先修改mysql的配置文件vim /etc/my.cnf

意思是跳過密碼可以直接登陸,然后就直接登陸進(jìn)mysql數(shù)據(jù)庫(kù),接著進(jìn)入名字為mysql的數(shù)據(jù)庫(kù)修改控制用戶密碼的字段authentication_string(以前控制密碼的字段為password,后來改名為authentication_string了)。

update MySQL.user set authentication_string=password('新密碼') where user='root'

修改密碼完成后重啟數(shù)據(jù)庫(kù)服務(wù)(service mysqld restart)就可以用密碼登陸至數(shù)據(jù)庫(kù)了

查看mysqld是否開機(jī)自啟動(dòng),并設(shè)置為開機(jī)自啟動(dòng):


修改字符集為UTF-8:

更改配置文件/etc/my.cnf

最后再把剛剛加進(jìn)配置文件的表示跳過密碼登陸的命令去掉。

雖然只是安裝了mysql,但是這個(gè)過程也重新學(xué)習(xí)了centos安裝軟件的幾種方式。

rpm:安裝本地自己下載的rpm軟件包,自己解決軟件之間的依賴。 yum:在線安裝,可以解決依賴問題。

源碼安裝:1.下載源代碼 2.解壓 3.進(jìn)入解壓目錄 4../configure 5.make 6.make install

系統(tǒng)目錄結(jié)構(gòu)

Linux系統(tǒng)的目錄結(jié)構(gòu)整體呈現(xiàn)為樹狀結(jié)構(gòu)

幾個(gè)主要的目錄作用

/bin: bin是Binary的縮寫, 這個(gè)目錄存放著最經(jīng)常使用的命令。

/boot: 這里存放的是啟動(dòng)Linux時(shí)使用的一些核心文件,包括一些連接文件以及鏡像文件。

/dev : dev是Device(設(shè)備)的縮寫, 該目錄下存放的是Linux的外部設(shè)備,在Linux中訪問設(shè)備的方式和訪問文件的方式是相同的。

/etc: 這個(gè)目錄用來存放所有的系統(tǒng)管理所需要的配置文件和子目錄。

/home: 用戶的主目錄,在Linux中,每個(gè)用戶都有一個(gè)自己的目錄,一般該目錄名是以用戶的賬號(hào)命名的。

/lib: 這個(gè)目錄里存放著系統(tǒng)最基本的動(dòng)態(tài)連接共享庫(kù),其作用類似于Windows里的DLL文件。幾乎所有的應(yīng)用程序都需要用到這些共享庫(kù)。

/lost+found: 這個(gè)目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機(jī)后,這里就存放了一些文件。

/media: linux系統(tǒng)會(huì)自動(dòng)識(shí)別一些設(shè)備,例如U盤、光驅(qū)等等,當(dāng)識(shí)別后,linux會(huì)把識(shí)別的設(shè)備掛載到這個(gè)目錄下。

/mnt: 系統(tǒng)提供該目錄是為了讓用戶臨時(shí)掛載別的文件系統(tǒng)的,我們可以將光驅(qū)掛載在/mnt/上,然后進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容了。

/opt: 這是給主機(jī)額外安裝軟件所擺放的目錄。比如你安裝一個(gè)ORACLE數(shù)據(jù)庫(kù)則就可以放到這個(gè)目錄下。默認(rèn)是空的。

/proc: 這個(gè)目錄是一個(gè)虛擬的目錄,它是系統(tǒng)內(nèi)存的映射,我們可以通過直接訪問這個(gè)目錄來獲取系統(tǒng)信息。 這個(gè)目錄的內(nèi)容不在硬盤上而是在內(nèi)存里,我們也可以直接修改里面的某些文件,比如可以通過下面的命令來屏蔽主機(jī)的ping命令,使別人無法ping你的機(jī)器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root: 該目錄為系統(tǒng)管理員,也稱作超級(jí)權(quán)限者的用戶主目錄。

/sbin: s就是Super User的意思,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序。

/selinux: 這個(gè)目錄是Redhat/CentOS所特有的目錄,Selinux是一個(gè)安全機(jī)制,類似于windows的防火墻,但是這套機(jī)制比較復(fù)雜,這個(gè)目錄就是存放selinux相關(guān)的文件的。

/srv: 該目錄存放一些服務(wù)啟動(dòng)之后需要提取的數(shù)據(jù)。

/sys: 這是linux2.6內(nèi)核的一個(gè)很大的變化。該目錄下安裝了2.6內(nèi)核中新出現(xiàn)的一個(gè)文件系統(tǒng) sysfs 。

sysfs文件系統(tǒng)集成了下面3種文件系統(tǒng)的信息:針對(duì)進(jìn)程信息的proc文件系統(tǒng)、針對(duì)設(shè)備的devfs文件系統(tǒng)以及針對(duì)偽終端的devpts文件系統(tǒng)。

該文件系統(tǒng)是內(nèi)核設(shè)備樹的一個(gè)直觀反映。

當(dāng)一個(gè)內(nèi)核對(duì)象被創(chuàng)建的時(shí)候,對(duì)應(yīng)的文件和目錄也在內(nèi)核對(duì)象子系統(tǒng)中被創(chuàng)建。

/tmp: 這個(gè)目錄是用來存放一些臨時(shí)文件的。

/usr: 這是一個(gè)非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個(gè)目錄下,類似于windows下的program files目錄。

/usr/bin: 系統(tǒng)用戶使用的應(yīng)用程序。

/usr/sbin: 超級(jí)用戶使用的比較高級(jí)的管理程序和系統(tǒng)守護(hù)程序。

/usr/src:內(nèi)核源代碼默認(rèn)的放置目錄。

/var: 這個(gè)目錄中存放著在不斷擴(kuò)充著的東西,我們習(xí)慣將那些經(jīng)常被修改的目錄放在這個(gè)目錄下。包括各種日志文件。

文件操作

基本屬性:

Linux系統(tǒng)是一種典型的多用戶系統(tǒng),不同的用戶處于不同的地位,擁有不同的權(quán)限。為了保護(hù)系統(tǒng)的安全性,Linux系統(tǒng)對(duì)不同的用戶訪問同一文件(包括目錄文件)的權(quán)限做了不同的規(guī)定。在Linux中我們可以使用ll或者ls –l命令來顯示一個(gè)文件的屬性以及文件所屬的用戶和組,如:

第一個(gè)字母d表示目錄,-表示文件,l表示鏈接文檔。接下來的字符中,以3個(gè)為一組,且均為rwx的三個(gè)參數(shù)的組合,分別表示讀寫執(zhí)行,沒有相應(yīng)的權(quán)限則用-號(hào)表示。

1-3位表示該文件所有者擁有文件的權(quán)限,4-6位表示所有者的同組用戶擁有的權(quán)限,7-9位表示其他用戶的權(quán)限。若要更改文件的權(quán)限,有兩種方法,數(shù)字和符號(hào),其中rwx分別用421表示,而文件的權(quán)限分為3個(gè)組,每個(gè)組的權(quán)限用總和表示,例如4+2+1=7,所以最高權(quán)限就是3個(gè)組都為7的時(shí)候,此時(shí)可使用命令chmod 777 文件名。

目錄管理:

絕對(duì)路徑: 路徑的寫法,由根目錄 / 寫起,例如:/usr/share/doc 這個(gè)目錄。

相對(duì)路徑: 路徑的寫法,不是由 / 寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時(shí),可以寫成: cd ../man 這就是相對(duì)路徑的寫法。

常用命令:

ls 列出目錄

ll 列出目錄和詳細(xì)信息

cd切換目錄

pwd顯示目前的目錄

mkdir創(chuàng)建一個(gè)新的目錄

rmdir刪除一個(gè)空的目錄

cp 復(fù)制文件或目錄

rm 移除文件或目錄

vim創(chuàng)建文件

cat 查看文件內(nèi)容

tac 從最后一行開始顯示

nl 顯示的時(shí)候,順道輸出行號(hào)

more 一頁一頁的顯示文件內(nèi)容

less 與 more 類似,但是比 more 更好的是,他可以往前翻頁

head 只看頭幾行

tail 只看尾巴幾行

Linux鏈接概念

Linux 鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號(hào)鏈接(Symbolic Link)。默認(rèn)情況下,ln 命令產(chǎn)生硬鏈接。

硬連接

硬連接指通過索引節(jié)點(diǎn)來進(jìn)行連接。在 Linux 的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個(gè)編號(hào),稱為索引節(jié)點(diǎn)號(hào)(Inode Index)。在 Linux 中,多個(gè)文件名指向同一索引節(jié)點(diǎn)是存在的。比如:A 是 B 的硬鏈接(A 和 B 都是文件名),則 A 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)與 B 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)相同,即一個(gè) inode 節(jié)點(diǎn)對(duì)應(yīng)兩個(gè)不同的文件名,兩個(gè)文件名指向同一個(gè)文件,A 和 B 對(duì)文件系統(tǒng)來說是完全平等的。刪除其中任何一個(gè)都不會(huì)影響另外一個(gè)的訪問。

硬連接的作用是允許一個(gè)文件擁有多個(gè)有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因?yàn)閷?duì)應(yīng)該目錄的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不影響索引節(jié)點(diǎn)本身和其它的連接,只有當(dāng)最后一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會(huì)被釋放。也就是說,文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除。

軟連接

另外一種連接稱之為符號(hào)連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似于 Windows 的快捷方式。它實(shí)際上是一個(gè)特殊的文件。在符號(hào)連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的軟鏈接(A 和 B 都是文件名),A 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)與 B 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)不相同,A 和 B 指向的是兩個(gè)不同的 inode,繼而指向兩塊不同的數(shù)據(jù)塊。但是 A 的數(shù)據(jù)塊中存放的只是 B 的路徑名(可以根據(jù)這個(gè)找到 B 的目錄項(xiàng))。A 和 B 之間是“主從”關(guān)系,如果 B 被刪除了,A 仍然存在(因?yàn)閮蓚€(gè)是不同的文件),但指向的是一個(gè)無效的鏈接。

1).刪除符號(hào)連接f3,對(duì)f1,f2無影響;

2).刪除硬連接f2,對(duì)f1,f3也無影響;

3).刪除原文件f1,對(duì)硬連接f2沒有影響,導(dǎo)致符號(hào)連接f3失效;

4).同時(shí)刪除原文件f1,硬連接f2,整個(gè)文件會(huì)真正的被刪除。

wc命令可以用來查看文件的大致信息 -c顯示Bytes數(shù)

用戶和用戶組管理

Linux系統(tǒng)是一個(gè)多用戶多任務(wù)的分時(shí)操作系統(tǒng),任何一個(gè)要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請(qǐng)一個(gè)賬號(hào),然后以這個(gè)賬號(hào)的身份進(jìn)入系統(tǒng)。

用戶的賬號(hào)一方面可以幫助系統(tǒng)管理員對(duì)使用系統(tǒng)的用戶進(jìn)行跟蹤,并控制他們對(duì)系統(tǒng)資源的訪問;另一方面也可以幫助用戶組織文件,并為用戶提供安全性保護(hù)。

添加新用戶使用useradd命令

更改li用戶的密碼 passwd li

刪除用戶

userdel -r li

/etc/passwd文件是用戶管理工作涉及的最重要的一個(gè)文件。

增加用戶組 groupadd 選項(xiàng) 用戶組

刪除用戶組 groupdel 選擇 用戶組

與用戶組相關(guān)的信息都存放在/etc/group中

Linux系統(tǒng)資源管理

磁盤管理

df命令參數(shù)功能:檢查文件系統(tǒng)的磁盤空間占用情況??梢岳迷撁顏慝@取硬盤被占用了多少空間,目前還剩下多少空間等信息。

df 一般配置參數(shù)-h使用,因?yàn)?h表示以GBytes等格式顯示,比較容易閱讀

du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對(duì)文件和目錄磁盤使用的空間的查看,還是和df命令有一些區(qū)別的。

進(jìn)程查看與管理

Linux操作系統(tǒng)和windows一樣,都存在著進(jìn)程機(jī)制。

Ps命令查看進(jìn)程,有幾種常用參數(shù)

a 顯示所有用戶的所有進(jìn)程(包括其它用戶); u 按用戶名和啟動(dòng)時(shí)間的順序來顯示進(jìn)程; x 顯示無控制終端的進(jìn)程; e 顯示所有進(jìn)程,包括沒有控制端的進(jìn)程; f 用樹形格式來顯示進(jìn)程; l 長(zhǎng)格式輸出; w 為了避免詳細(xì)參數(shù)被截?cái)?,可以用多個(gè)w來讓其顯示完整(比如說ww或者是www); o 需要查看的選項(xiàng)


USER:進(jìn)程的屬主;

PID :進(jìn)程的ID;

%CPU :進(jìn)程占用的CPU百分比;

%MEM :占用內(nèi)存的百分比;

VSZ :進(jìn)程虛擬大??;

RSS :駐留中頁的數(shù)量;

TTY :終端ID。問號(hào)表示是無終端的,也就是系統(tǒng)本身。

STAT :進(jìn)程狀態(tài)

    R 正在運(yùn)行可中在隊(duì)列中可過行的;

    S 處于休眠狀態(tài);

    T 停止或被追蹤;

    W 進(jìn)入內(nèi)存交換(從內(nèi)核2.6開始無效);

    X 死掉的進(jìn)程(從來沒見過);

    Z 僵尸進(jìn)程;

    N 優(yōu)先級(jí)較低的進(jìn)程

    L 有些頁被鎖進(jìn)內(nèi)存;

    s 進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);

    l 多線程

    + 位于后臺(tái)的進(jìn)程組;

WCHAN :正在等待的進(jìn)程資源;

START : 啟動(dòng)進(jìn)程的時(shí)間;

TIME : 進(jìn)程消耗CPU的時(shí)間;

COMMAND: 啟動(dòng)進(jìn)程的命令的名稱和參數(shù);

表示進(jìn)程httpd的進(jìn)程屬主為root,PID為2644,cpu和內(nèi)存使用率為0,處于休眠狀態(tài)的后臺(tái)進(jìn)程,消耗cup的時(shí)間為0。

top命令會(huì)在當(dāng)前終端全屏顯示系統(tǒng)運(yùn)行信息,實(shí)時(shí)跟蹤系統(tǒng)資源的使用情況,顯示內(nèi)容包括CPU、內(nèi)存占用情況,系統(tǒng)運(yùn)行進(jìn)程的列表和每一個(gè)進(jìn)程運(yùn)行的狀態(tài)等信息,對(duì)于分析系統(tǒng)運(yùn)行中的問題很有幫助。


這里遇到個(gè)小BUG,發(fā)現(xiàn)時(shí)間有問題,應(yīng)該是因?yàn)檫@里的系統(tǒng)時(shí)間取的是硬件時(shí)間,這里是虛擬硬件,也就是供電時(shí)間。解決辦法是將時(shí)間與網(wǎng)絡(luò)時(shí)間同步:

  1. 安裝ntpdate工具 yum -y install ntp ntpdate

  2. 設(shè)置系統(tǒng)時(shí)間與網(wǎng)絡(luò)時(shí)間同步 ntpdate cn.pool.ntp.org

  3. 將系統(tǒng)時(shí)間寫入硬件時(shí)間 hwclock --systohc

Top命令

第一行表示當(dāng)前時(shí)間 系統(tǒng)運(yùn)行時(shí)間 當(dāng)前登錄用戶數(shù) load average系統(tǒng)負(fù)載

第二行表示Tasks: 86 total :系統(tǒng)總的進(jìn)程數(shù)1 running :正在運(yùn)行的進(jìn)程數(shù)84 sleeping:休眠狀態(tài)的進(jìn)程數(shù)1 stopped :停止的進(jìn)程數(shù) 0 zombie :僵尸進(jìn)程數(shù)

第三行表示cup的各種使用率

第四行表示 total: 物理內(nèi)存總量 used :已使用的物理內(nèi)存 free :未使用的物理內(nèi)存 buffers :內(nèi)核緩存占用的物理內(nèi)存

第五行表示 total :交換分區(qū)總?cè)萘縰sed:已使用的交換分區(qū)容量free:未使用的交換分區(qū)容量cached :緩存的總?cè)萘?/p>

后面各進(jìn)程的信息意思就是頭部字段的表面意思了。

啟動(dòng)進(jìn)程的方式是根據(jù)各程序開始的命令啟動(dòng)程序?qū)?yīng)的進(jìn)程

殺進(jìn)程是根據(jù)進(jìn)程的ID執(zhí)行命令kill -9 進(jìn)程ID

服務(wù)添加與管理

Linux系統(tǒng)中的服務(wù)和windows系統(tǒng)的服務(wù)在概念和作用上是差不多的,只是相關(guān)的配置方式發(fā)生了改變。

CentOS 6上的服務(wù)管理工具為chkconfig,Linux系統(tǒng)所有的預(yù)設(shè)服務(wù)都可以通過查看/etc/init.d/目錄得到。


在centos6和7中都可以通過命令service 服務(wù)名 start|stop|restart來實(shí)現(xiàn)服務(wù)的控制。這里的服務(wù)名就是/etc/init.d/目錄下的這些文件了。啟動(dòng)network除了可以使用命令service network start外,還可以使用/etc/init.d/network start。

我們可以使用命令chkconfig --list列出所有的服務(wù)及每個(gè)級(jí)別的開啟狀態(tài)


這里的級(jí)別(數(shù)字0~6)為系統(tǒng)啟動(dòng)級(jí)別(CentOS 7之前版本的用法,而CentOS 7已經(jīng)不再嚴(yán)格區(qū)分級(jí)別的概念了),運(yùn)行級(jí)別0、1和6被系統(tǒng)保留。其中0作為shutdown動(dòng)作,1作為重啟至單用戶模式,6為重啟。在一般的Linux系統(tǒng)實(shí)現(xiàn)中,都是用了2、3、4、5幾個(gè)級(jí)別。在CentOS系統(tǒng)中,2表示無NFS支持的多用戶模式,3表示完全多用戶模式(也是最常用的級(jí)別),4保留給用戶自定義,5表示圖形登錄方式。

查看服務(wù)狀態(tài)

開啟服務(wù)

停止服務(wù)運(yùn)行

重新啟動(dòng)服務(wù)

使得服務(wù)開機(jī)自啟

查看服務(wù)開機(jī)自啟動(dòng)狀態(tài)

服務(wù)添加

如果采用yum安裝方式完成后一般會(huì)自動(dòng)在系統(tǒng)添加相應(yīng)的服務(wù),但是如果采取源碼安裝方式的話,默認(rèn)是不會(huì)添加系統(tǒng)服務(wù)的,所以需要手動(dòng)添加相應(yīng)的服務(wù)。因?yàn)榉?wù)都存放在/etc/init.d/下的,所以需要?jiǎng)?chuàng)建一個(gè)文件,文件名即為服務(wù)名,文件具體內(nèi)容根據(jù)服務(wù)的工作定義得到。然后修改剛剛創(chuàng)建的文件的權(quán)限為755并用命令chkconfig xx on設(shè)置開機(jī)自啟,最后用chkconfig --list檢查服務(wù)是否成功創(chuàng)建。

最后是Vim的學(xué)習(xí),雖然vim在平常使用過程中用得非常多,也很習(xí)慣了,但是還有很多非常好的快捷鍵不知道,用上了可以節(jié)約大部分開發(fā)時(shí)間。比如Ctrl+f可以翻一頁之類的。由于快捷鍵非常的用,不能全部記住,所以在使用的時(shí)候再去查詢,在多次使用中形成記憶,快捷鍵查詢。

Linux端口監(jiān)控

lsof -i:端口號(hào)

netstat -tunlp|grep 端口號(hào)

兩種都可以查看指定端口被哪個(gè)進(jìn)程占用

如果后面不跟grep可以查看所有tcp udp端口的占用情況

IDEA

在Java開發(fā)環(huán)境的選擇上,我選擇了IDEA,因?yàn)镮DEA幾乎包括了Eclipse的所有功能,并且IDEA的代碼補(bǔ)全功能更是十分的強(qiáng)大。由于以前使用IDEA開發(fā)過很多Java服務(wù)端項(xiàng)目,所以IDEA得使用已經(jīng)比較熟悉了,就暫時(shí)不用再學(xué)習(xí)了。

復(fù)制虛擬機(jī)

為了更加方便的得到3臺(tái)虛擬機(jī),在需要的基本組件安裝好后,直接從已有的復(fù)制更加方便快捷。復(fù)制過程中雖然非常簡(jiǎn)單,但是特別需要注意的是要修改復(fù)制后的虛擬機(jī)的MAC地址,因?yàn)閮膳_(tái)虛擬機(jī)的MAC地址一樣的話違背了計(jì)算機(jī)網(wǎng)絡(luò)中的MAC地址的定義,會(huì)出現(xiàn)網(wǎng)絡(luò)問題。還有就是需要進(jìn)入/etc/sysconfig/network修改主機(jī)名至新的主機(jī)名,修改hosts文件內(nèi)容。

測(cè)試得此時(shí)三臺(tái)虛擬機(jī)可以相互ping通和ping外網(wǎng)baidu.com


免密登錄配置

環(huán)境設(shè)置

首先根據(jù)各虛擬機(jī)的主機(jī)名配置hosts文件,這樣以后就可以直接訪問主機(jī)名,不用輸入ip地址了,3臺(tái)主機(jī)的配置過程相同。

修改sshd的配置文件,去掉以下行的注釋。

重啟ssh服務(wù)

本機(jī)生成公鑰和私鑰

把公鑰導(dǎo)入到認(rèn)證文件

先將自己的公鑰導(dǎo)入到本機(jī)的認(rèn)證文件進(jìn)行測(cè)試

將每臺(tái)虛擬機(jī)的公鑰文件導(dǎo)入其它兩臺(tái)虛擬機(jī)中導(dǎo)入到目標(biāo)主機(jī)(用scp命令)

把公鑰加入到授權(quán)列表文件中

對(duì)node2個(gè)node3重復(fù)同樣的操作

修改權(quán)限


最后得到理想的結(jié)果,3臺(tái)虛擬機(jī)可以兩兩免密登錄

最后去看了一下免密登錄的原理,它的原理大致是將自己的公鑰寫入目標(biāo)主機(jī)的信任列表中,免密登錄目標(biāo)主機(jī)時(shí),目標(biāo)主機(jī)用它的公鑰加密一個(gè)隨機(jī)字符串發(fā)送給登陸者,登陸者因?yàn)橛兴借€可以解密,所以能識(shí)別登錄者。

補(bǔ)充常用命令

最后補(bǔ)充一些漏掉的linux常用命令

command > file
將輸出重定向到 file,會(huì)覆蓋文件。

command < file
將輸入重定向到 file。

command >> file
將輸出以追加的方式重定向到 file。

n > file
將文件描述符為 n 的文件重定向到 file。

n >> file
將文件描述符為 n 的文件以追加的方式重定向到 file。

n >& m
將輸出文件 m 和 n 合并。

n <& m
將輸入文件 m 和 n 合并。

<< tag
將開始標(biāo)記 tag 和結(jié)束標(biāo)記 tag 之間的內(nèi)容作為輸入。

find / -name file1 從 '/' 開始進(jìn)入根文件系統(tǒng)搜索文件和目錄 find / -user user1 搜索屬于用戶 'user1' 的文件和目錄

在top動(dòng)態(tài)查看進(jìn)程時(shí),然后按下大寫M按照memory排序,按下大寫P按照CPU排序。

time命令用于測(cè)試一個(gè)命令的運(yùn)行時(shí)間

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容