linux的簡單了解和使用


一、 Linux概述 

1.1. 簡介 

Linux是一個自由的,免費的,源碼開放的操作系統。也是開源軟件中最著名的例子。其最主要的目的就是為了建立不受任何商品化軟件版權制約的,全世界都能使用的類Unix兼容產品.而我們將服務器部署在Linux將會更加的穩定、安全、高效以及出色的性能這時windows無法比的。

 1.2.Linux作者

 林納斯·本納第克特·托瓦茲(Linus Benedict Torvalds, 1969~ ),著名的電腦程序員、黑客。Linux內核的發明人及該計划的合作者。托瓦茲利用個人時間及器材創造出了這套當今全球最流行的操作系統(作業系統)內核之一。現受聘於開放源代碼開發實驗室(OSDLOpen Source Development Labs, Inc),全力開發Linux內核。

 1.3.Linux 發行版

 發行版是基於 Linux 內核的一個操作系統。它帶有用戶可以使用的軟件集合。更多的,它還包含系統管理包。目前有許多 Linux 發行版。因為我們不能數清目前所有的 Linux 發行版,所以我們來看一下一些有名的版本: UbuntuFedoraOpensuseRed hat Linux Debian 等是幾個非常受歡迎的 Linux 發行版。

1.4.Linux的特點

開放性,多用戶,多任務,豐富的網絡功能,可靠的系統安全,良好的可移植性,具有標准兼容性

二、環境准備

2.1. Vmware

2.1.1 Vmware簡介

大多數服務器的容量CPU,內存,磁盤等)利用率不足 30%,這不僅導致了資源浪費,也加大了服務器數量。實現服務器虛擬化后,多個操作系統可以作為虛擬機在單台物理服務器上運行,並且每個操作系統都可以訪問底層服務器的計算資源,從而解決效率低下問題。

Vmware虛擬機化技術由此誕生,它可以將一台服務器虛擬化出多台虛擬機,供多人同時使用,提高資源利用率。

2.1.2 Vmware workstation 安裝

詳細見vmware安裝文檔

2.2. linux安裝

詳細參照網上教程,很多

2.3.網絡配置

2.3.1 查看網關

 

2.3.2 配置IP(NAT模式)

1.編輯配置文件,添加修改以下內容

vi  /etc/sysconfig/network-scripts/ifcfg-eth0

i 進入文本編輯模式,出現游標,左下角會出現INSERT,即可以編輯

 

 

應包含以下配置,

 DEVICE=eth0     #網卡設備名,請勿修改名字

TYPE=Ethernet #網絡類型,以太網

BOOTPROTO=static   #啟用靜態IP地址

ONBOOT=yes  #開啟自動啟用網絡連接

IPADDR=192.168.78.100  #設置IP地址

NETMASK=255.255.255.0  #設置子網掩碼

GATEWAY=192.168.78.2   #設置網關

DNS1=114.114.114.114  #設置備DNS

 

ESC退出編輯模式

:wq  #保存退出

 

2.修改完后執行以下命令

service network restart  #重啟網絡連接

 ifconfig  #查看IP地址

 

3.驗證是否配置成功:

虛擬機能ping通虛擬網關

 

 

 虛擬機與物理機(筆記本)相互可ping

 

 

 虛擬機與公網上的百度網址相互可ping通(此步ping通,才說明網絡配置成功,Ctrl+C停止)

命令:ping  www.baidu.com 

 

注意:

a.保證VMware的虛擬網卡沒有被禁用

 

b.網關IP不能被占用

 

 

2.4.XShell安裝使用

2.4.1安裝步驟

除了安裝路徑需要修,其他一直下一步

2.4.2 連接虛擬機

1. 打開xshell軟件新建一個會話

 

 

 2. 填寫所要連接的虛擬機IP,會話名稱可改可不改,點擊確定。

 

 

3.連接虛擬機。

 

 

4.輸入root用戶名,可以勾選記住用戶名

 

 

5.填寫密碼,可以勾選“記住密碼”

 

 

6.登錄成功。

 

 

三、文件系統

Linux文件系統中的文件是數據的集合,文件系統不僅包含着文件中的數據而且還有文件系統的結構,所有Linux 用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。

 

Linux目錄結構:

 

   bin  存放二進制可執行文件(ls,cat,mkdir)                                                           

  boot  存放用於系統引導時使用的各種文件

  dev 用於存放設備文件

  etc  存放系統配置文件

  home 存放所有用戶文件的根目錄

  lib  存放跟文件系統中的程序運行所需要的共享庫及內核模塊

  mnt  系統管理員安裝臨時文件系統的安裝點

  opt  額外安裝的可選應用程序包所放置的位置

  proc  虛擬文件系統,存放當前內存的映射

  root  超級用戶目錄

  sbin  存放二進制可執行文件,只有root才能訪問

  tmp  用於存放各種臨時文件

  usr  用於存放系統應用程序,比較重要的目錄/usr/local 本地管理員軟件安裝目錄

var  用於存放運行時需要改變數據的文件

 

3.1.目錄操作

3.1.1切換目錄

命令:cd + 目錄的路徑  

查看當前目錄的完整路徑 pwd

 命令 cd .. 返回到父目錄

 3.1.2新建目錄

命令:mkdir + 目錄名字

查看當前目錄下擁有的子目錄和文件: ls

 3.1.3拷貝目錄

cp source dest  -r

 3.1.4刪除目錄

rmdir directory

 注意:rmdir只能刪除空目錄,若要刪除非空目錄則用rm命令

rm -rf dir

3.1.5移動/更改 目錄

移動文件或目錄:mv + 目錄/文件名字 + 其他路徑

  mv test /     test目錄移動到 根目錄/ 下

 更改文件或目錄的名字:mv + 舊目錄名字新目錄名字。

 3.2.文件操作

3.2.1新建文件:(一切皆文件)

touch web.log   創建一個空文件。

 3.2.2 復制文件

     cp web.log web_cp.log

 復制文件,加個-r 參數,代表遍歷復制,此時可用於復制一個目錄。

3.2.3 刪除文件

rm web_cp.log

 此時需要手動輸入y ,代表確認刪除。可加 –f參數,直接刪除,無需確認。當需要一個目錄下所有東西時,加-r參數,代表遍歷刪除。

 rm -f web.log

 3.2.4 查看

3.2.4.1查看目錄下的東西

ls / ll

   命令 ls -l 等價於 ll

 查看目錄下的所有東西(包括隱藏文件) 

命令:ls –al 等價於  ll –a

 3.2.4.2查看文件內容

cat filename: 一次性顯示整個文件的內容

 注意:當文件較大時,文本在屏幕上迅速閃過(滾屏),用戶往往看不清所顯示的內容。

 因此,一般用more等命令分屏顯示.

more filename 該命令一次顯示一屏文本,滿屏后停下來,並且在屏幕的底部出現一個提示信息,給出至今己顯示的該文件的百分比

Space鍵,顯示文本的下一屏內容。
Enier鍵,只顯示文本的下一行內容。

B鍵,顯示上一屏內容。

Q鍵,退出。

 

 

 

    

less命令 與 more命令 非常類似

less filename:

h 顯示幫助界面

Q 退出less 命令

u 向滾動半頁

d 向翻半頁

空格鍵 滾動一 

b 向后翻一頁

回車鍵 滾動一

[pagedown]: 向下翻動一頁

[pageup]: 向上翻動一頁

以及上下鍵,向上一行,向下一行

 3.2.4.3頭打印文件內容

head  -10 filename  打印文件1到10行

  3.2.4.4尾部打印文件內容

  tail -10 filename 打印文件最后10行

 注意:tail 還經常可以拿來查看文件的內容變化

-f參數,tail –f filename

 

3.2.5查找文件或目錄

find  pathname –name filename

      例子:find / -name profile

      該命令表示為,在/目錄下查找 名字為profile的文件或目錄,最后列出它的絕對路徑

       最后發現,linux系統根目錄/ 下 一共有兩個名字為profile,其中/etc/profile是一個文件,/etc/lvm/profile為目錄

還可以按正則表達式來查找,且pathname越精確,查找的范圍越小,速度越快。

      find /etc -name pro*

      該命令表示為:在/etc目錄下查找以pro開頭的文件或目錄。

 

 四、文本編輯

4.1.vi

 

編輯模式

vi filename :打開或新建文件,並將光標置於第一行首

vi +n filename :打開文件,並將光標置於第n行首

vi + filename :打開文件,並將光標置於最后一行首

vi +/pattern filename:打開文件,並將光標置於第一個與 pattern匹配的串處

 

命令行模式

• w保存

• q退出

• q!:不保存文件並退出vi

– 在VI的命令模式下輸入“:set nu”,就有行號了。

– 在VI的命令模式下輸入“:set nonu”,取消行號。

 

 

一般模式

• yy 復制光標所在行(常用)

• nyy 復制光標所在行的向下n行,例如, 20yy則是復制20行(常用)

• p,P   p為復制的數據粘貼在光標下一行, P則為粘貼在光標上一行(常用)

G:光標移至第最后一行

nG:光標移動至第N行行首

n+:光標下移n行

n-:光標上移n行

H :光標移至屏幕頂行

M :光標移至屏幕中間行

L :光標移至屏幕最后行

 

• dd:刪除 行

x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的

• u 恢復前一個動作(常用)

 

刪除第N行到第M行:

  :N,Md

 

4.2.vim

Vim是從 vi 發展出來的一個文本編輯器。代碼補完、語法高亮編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用.

安裝vim 軟件

yum install vim

 

y確認, 這中間一共要按兩次確認

 

可以在書寫命令時就加y,這樣就不用逐一確認。

yum install vim  -y

   vim 打開/etc/profile 文件,會發現編輯器對文本的內容進行了高亮,使整個文件的內容可讀性大大加強

命令:vim /etc/profile

 

五、傳輸

5.1.遠程拷貝

5.1.1將本地文件復制到遠程機器

 

scp local_file remote_username@remote_ip:remote_folder   

 

第一次遠程拷貝時,需要在箭頭1初輸入yes確認一下,驗證一下遠程主機。然后在箭頭2處輸入一下遠程主機的密碼。

 5.1.2將本地目錄復制到遠程機器

scp -r local_folder remote_username@remote_ip:remote_folder 

 test目錄下創建一個myfile文件,然后將test目錄遠程拷貝到192虛擬機的根目錄下。

 5.2.上傳

需先安裝lrzsz :  yum  install  lrzsz  -y

安裝好后,輸入上傳的命令rz,彈出一下界面:

 選擇一個windows系統里的文件上傳至虛擬機的當前目錄下,然后ll命令,查看結果

 

5.3.下載

  下載命令為sz,sz命令只能下載文件,不能是目錄,可先將目錄壓縮成一個包,再下載至windows系統。下載完之后,按ctrl+c結束。

 

5.4Xftp的安裝與使用

    除了可以用rz sz命令進行本地windows系統和虛擬機之間的文件傳輸,還可以使用XFTP軟件。

六、網絡指令

6.1.查看網絡配置信息

命令:ifconfig

 

 

箭頭1指向的是本機IP,箭頭2為廣播地址,箭頭3位子網掩碼。

6.2.測試與目標主機的連通性

命令:ping remote_ip

 

 

輸入ping 192.168.78.192代表測試本機和192主機的網絡情況,箭頭1表示一共接收到了3個包,箭頭2表示丟包率為0,表示兩者之間的網絡順暢。注意:linux系統的ping命令會一直發送數據包,進行測試,除非認為的按ctrl + c停止掉,windows系統默認只會發4個包進行測試,以下為windows的dos命令。

 

6.3.顯示各種網絡相關信息

命令:netstat 

-a (all)顯示所有選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態

-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。

提示:LISTENLISTENING的狀態只有用-a或者-l才能看到

 

七、系統配置

7.1 主機名配置

  若要修改主機名字,可在/etc/sysconfig/network文件里修改.

vim /etc/sysconfig/network

       機器重啟才能生效

 

 

7.2 DNS配置

    hosts文件的作用相當於DNS,提供IP地址hostname的對應,可在這個文件里添加映射。域名解析

vi /etc/hosts

 

測試:直接ping 主機名

/etc/resolv.conf DNS服務器的地址文件

 

 

7.3 環境變量

Linux系統的環境變量是在/etc/profile文件里配置。

首先考慮一個問題,問什么我們先前敲的yum, service,date,useradd等等,可以直接使用,系統怎么知道這些命令對應的程序是放在哪里的呢?

這是由於無論是windows系統還是linux系統,都有一個叫做path的系統環境變量,當我們在敲命令時,系統會到path對應的目錄下尋找,找到的話就會執行,找不到就會報沒有這個命令。如下圖:

 

 

我們可以查看一下,系統一共在哪些目錄里尋找命令對應的程序。

命令:echo $path

 

 

   可以看到path里有很多路徑,路徑之間有冒號隔開。當用戶敲命令時,系統會從左往右依次尋找對應的程序,有的話則運行該程序,沒有的就報錯,command not found.

那如果我寫了一個腳本(腳本后面會專門講),我該怎樣運行它呢?

 

 

 

test.sh添加可執行權限,chmod 700 test.sh

 

 

 

運行方法有三種:

 

一種是到腳本的目錄下執行:

運行命令 ./test.sh  ,代表執行當前目錄里的腳本test.sh

 

 

一種是敲腳本的絕對路徑:/usr/test/test.sh

 

 

以上兩種運行方式都不是很簡便,因為先前我們執行yum service命令等,都是直接敲對應的命令的。所以我們也可以參照這樣子做,只要我們配一個環境變量就好。

編輯: vim /etc/profile test.sh所在目錄添加到path里就OK,我這里test.sh是在/usr/test目錄下。

 

編輯完之后,執行source /etc/profile命令,重新加載環境變量,此時會發現PATH路徑多了一個/usr/test

 

   最后驗證一下,直接執行test.sh

       

 

 

八、服務操作

8.1 列出所有服務

命令:chkconfig

查詢操作系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。

 

 

 

各數字代表的系統初始化級別含義:

 0:停機狀態

  1:單用戶模式,root賬戶進行操作

  2:多用戶,不能使用net file system,一般很少用

  3:完全多用戶,一部分啟動,一部分不啟動,命令行界面

  4:未使用、未定義的保留模式

  5:圖形化,3級別中啟動的進程都啟動,並且會啟動一部分圖形界面進程。

  6:停止所有進程,卸載文件系統,重新啟動(reboot)

  這些級別中1、2、4很少用,相對而言0、3、5、6用的會較多。3級別和5級別除了桌面相關的進程外沒有什么區別。為了減少資源占用,推薦都用3級別.

注意 linux默認級別為3,不要initdefault 設置為0 6

 

 

8.2 服務操作

service 服務名 start/stop/status/restart

例子:對防火牆服務進行操作,防火牆的服務名為:iptables.

查看防火牆服務運行狀態。

 

 

   關閉防火牆.   

 

開啟防火牆

 

 

8.3 關閉防火牆

service iptables start/stop/status

注:學習期間直接把防火牆關掉就是,工作期間也是運維人員來負責防火牆的。

8.4 服務初執行等級更改

chkconfig --level 2345 name off|on

 

 

 若不加級別,默認是2345級別

命令:chkconfig name on|off

 

九、linux進程操作

9.1 查看所有進程

 

命令: ps  -aux

-a 列出所有

-u 列出用戶

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

 - e

  -f

 

 

命令: ps  - ef  |  grep ssh

 查看所有進程里CMDssh 的進程信息。

 

 

其中箭頭所指的是sshd服務進程的進程號(PID

 

9.2 殺死進程

Kill

用法 kill pid

-9:強制殺死

ps 命令先查出對應程序的PIDPPID ,然后殺死掉進程。

 

十、 其他常用命令

10.1 yum

yum是一個在FedoraRedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝

由於centos系統的yum默認是到國外網站下載,有時下載速度會很慢,故我們可以換一個yum的下載源,這里我們換一個國內的下載源 阿里雲鏡像。

 

第一步:備份你的原鏡像文件,以免出錯后可以恢復。

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

 

第二步:下載新的CentOS-Base.rep/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

 

下載完之后,vim /etc/yum.repos.d/CentOS-Base.repo 查看一下文件內容。

 

 

第三步:運行yum makecache生成緩存

 

查看當前源

yum list | head -50

 10.2 wget

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

需先安裝 yum install wget  –y

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

 

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

 

 

10.3 tar 

tar

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

-x 解壓

-c 壓縮

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

-v 解壓縮過程信息打印

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

例子:先用rz命令或wscp上傳一個tar包,然后解壓。

 

 

 

 解壓后:

 

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

例子:tar -zcf tomcat.tar.gz apache-tomcat-7.0.61

apache-tomcat-7.0.61 目錄壓縮成tomcat.tar.gz包。

 

十一、JDK部署

11.1 官網下載

http://www.oracle.com/technetwork/java/javase/downloads/index.html

 

 

 

11.2 上傳並解壓

wscpjdk包上傳到linux系統里,我這里上傳到/usr/soft目錄下。

然后解壓: tar -zxf jdk-7u80-linux-x64.tar.gz

 

 

11.3 配置環境變量

配置全局JAVA_HOME,並在path路徑里加入java_home/bin.

注意:新的path路徑必須要包含舊的path路徑,且每個路徑之間以冒號隔開,而不是分號

vim /etc/profile

JAVA_HOME= /usr/soft/jdk1.7.0_75

PATH=$PATH:$JAVA_HOME/bin

 

 

 

重新加載環境變量:source  /etc/profile

 

 

11.4 驗證

java  -version

 

 

如出現上圖,則表示java環境變量配置成功。

十二、部署Tomcat

12.1 官網下載

下載tomcat

http://tomcat.apache.org/

12.2 上傳並解壓

我這里上傳至/usr/soft目錄下,然后解壓。

 

 

 

12.3 啟動tomcat

tomcatbin目錄下有個startup.sh 腳本可以直接啟動tomcat服務

 

 

關閉tomcat服務,可以用shutdown.sh命令。

或者ps -ef | grep tomcat 查看出tomcat進程號后,用kill命令。

12.4 jps

jpsJDK 1.5提供的一個顯示當前所有java進程pid的命令,簡單實用,非常適合在linux/unix平台上簡單察看當前java進程的一些簡單情況。

 

 

如上圖所示,jps命令顯示出了,系統當前運行在jvm上的進程情況。其中Bootstraptomcat的進程名字,1996tomcatPID

13.5 驗證

先把防火牆關了,然后訪問虛擬機IP8080端口

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com