天天看點

linux網絡伺服器學習總結一為什麼學linux二學習目的三基本概念四基本指令和操作五linux中軟體安裝方式六 SSH七系統使用者八防火牆九 提權操作十檔案上傳下載下傳十一虛拟機安裝linux十二 目錄結構簡介十三webserver十四 資料庫十五PHP安裝和使用

留給以後的自己和有需要的朋友

主要内容如下:

linux網絡伺服器學習總結一為什麼學linux二學習目的三基本概念四基本指令和操作五linux中軟體安裝方式六 SSH七系統使用者八防火牆九 提權操作十檔案上傳下載下傳十一虛拟機安裝linux十二 目錄結構簡介十三webserver十四 資料庫十五PHP安裝和使用

一為什麼學linux

  1. 商業伺服器j基本都是linux
  2. 時下最熱門的大資料機器學期首選linux
  3. 整個網際網路地基是linux撐起來
  4. 開源軟體首先支援linux
  5. 嵌入式開發

二學習目的

  1.  掌握linux伺服器運維能力
  2. 可獨立部署linux伺服器
  3. 系統梳理相關知識

三基本概念

  1. 一切皆檔案的了解:Linux 與其他類 UNIX 系統一樣并不區分檔案與目錄:目錄是記錄了其他檔案名的檔案。使用指令 mkdir 建立目錄時,若期望建立的目錄的名稱與現有的檔案名(或目錄名)重複,則會建立失敗。
  2. Linux 将裝置當做檔案進行處理,下面代碼.展示了如何打開裝置檔案 /dev/input/event5 并讀取檔案内容。檔案 event5 表示一種輸入裝置,其可能是滑鼠或鍵盤等。檢視檔案 /proc/bus/input/devices 可知 event5 對應裝置的類型。裝置檔案 /dev/input/event5 使用 read() 以字元流的方式被讀取。結構體 input_event 被定義在核心頭檔案 linux/input.h 中。
    代碼  打開并讀取裝置檔案
    1 2 3 4 5 6 7

    int fd;

    struct input_event ie;

    fd = open("/dev/input/event5", O_RDONLY);

    read(fd, &ie, sizeof(struct input_event));

    printf("type = %d  code = %d  value = %d\n",

    ie.type, ie.code, ie.value);

    close(fd);

四基本指令和操作

  1. 輸入指令和目錄時Tab鍵補全,支援輕按兩下
  2. ifconfig:顯示或配置網卡,yum install net-tools
  3. 127.0.0.1的了解。一台電腦可以了解為有三塊網卡,一塊網卡叫做 loopback(這是一塊虛拟網卡)用來測試本機的TCP/IP協定棧,發往這段A類位址資料包不會出網卡,網絡裝置不會對其做路由;另外一塊網卡叫做 ethernet (這是你的有線網卡);第三塊網卡叫做 wlan(這是你的無線網卡)。其中127.0.0.1/8整個都是環回位址,用來測試本機的TCP/IP協定棧,發往這段A類位址資料包不會出網卡,網絡裝置不會對其做路由,環回位址是主機用于向自身發送通信的一個特殊位址。可以這麼說:同一台主機上的兩項服務若使用環回位址而非配置設定的主機位址,就可以繞開TCP/IP協定棧的下層。(也就是說:不用再通過什麼鍊路層,實體層,以太網傳出去了,而是可以直接在自己的網絡層,運輸層進行處理了)。網絡号為127的位址根本就不是一個網絡位址(因為産生的IP資料報就不會到達外部網絡接口中,是不離開主機的包)。 當作業系統初始化本機的TCP/IP協定棧時,設定協定棧本身的IP位址為127.0.0.1(保留位址),并注入路由表。當IP層接收到目的位址為127.0.0.1(準确的說是:網絡号為127的IP)的資料包時,不調用網卡驅動進行二次封裝,而是立即轉發到本機IP層進行處理,由于不涉及底層操作。是以,ping 127.0.0.1一般作為測試本機TCP/IP協定棧正常與否的判斷之一。 是以說:127.0.0.1是保留位址之一,隻是被經常的使用,來檢驗本機TCP/IP協定棧而已
  4. service xxx start 後面是一個腳本,啟動對應的程式
  5. systemctl指令是系統服務管理器指令,它實際上将 service 和 chkconfig 這兩個指令組合到一起
  6. 任務 舊指令 新指令
    使某服務自動啟動 chkconfig --level 3 httpd on systemctl enable httpd.service
    使某服務不自動啟動 chkconfig --level 3 httpd off systemctl disable httpd.service
    檢查服務狀态 service httpd status systemctl status httpd.service (服務詳細資訊) systemctl is-active httpd.service (僅顯示是否 Active)
    顯示所有已啟動的服務 chkconfig --list systemctl list-units --type=service
    啟動某服務 service httpd start systemctl start httpd.service
    停止某服務 service httpd stop systemctl stop httpd.service
    重新開機某服務 service httpd restart systemctl restart httpd.service
  7. vim 安裝 yum install vim 
  8. wget安裝 yum install wget
  9. 安裝163的源
    • 備份原有的源。mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    • 下載下傳對應版本repo檔案, 放入/etc/yum.repos.d/
    • yum clean all  yum makecache。yum 會把下載下傳的軟體包和header存儲在cache中,而不自動删除。如果覺得占用磁盤空間,可以使用yum clean指令進行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下載下傳的rpm包,yum clean all一全部清除。
  10. ps -ef|grep XX ps:檢視所有程序 -ef:顯示程序環境變量和全格式
  11. 查詢服務是否暗轉 yum list
  12. 建立檔案:touch 檔案名
  13. 建立目錄:mkdir
  14. 删除檔案:rm -e 直接把欲删除的目錄的硬連接配接資料删除成0,删除該目錄;

    -f:強制删除檔案或目錄;

    -i:删除已有檔案或目錄之前先詢問使用者;

    -r或-R:遞歸處理,将指定目錄下的所有檔案與子目錄一并處理;

    --preserve-root:不對根目錄進行遞歸操作;

    -v:顯示指令的詳細執行過程。

  15. 删除目錄:rmdir 隻能删除非空目錄
  16. netstat -anpl:檢視網絡狀态
  17. sudo:使用者提權
  18. ll+目錄:檢視目錄權限結果為  drwxrrwxrwx. 2 組名 使用者名 時間
  19. chown:改變一個目錄的通路權限 chown  -R  組名:使用者名  目錄
  20. 檢視本地安裝了哪些程式:rpm -qa
  21. 啟動一個服務:systemctl start postfix.service

    關閉一個服務:systemctl stop postfix.service

    重新開機一個服務:systemctl restart postfix.service

    顯示一個服務的狀态:systemctl status postfix.service

    在開機時啟用一個服務:systemctl enable postfix.service

    在開機時禁用一個服務:systemctl disable postfix.service

    檢視服務是否開機啟動:systemctl is-enabled postfix.service

    檢視已啟動的服務清單:systemctl list-unit-files|grep enabled

    檢視啟動失敗的服務清單:systemctl --failed

五linux中軟體安裝方式

一、源代碼形式

1.      絕大多數開源軟體都是直接以原碼形式釋出的

2.      源代碼一般會被打成.tar.gz的歸檔壓縮檔案

3.      源代碼需要編譯成為二進制形式之後才能夠運作使用

4.      源代碼基本編譯流程:

1).configure 檢查編譯環境,這裡可以通過--prefix等指令配置安裝路徑(好像)

2)make對源代碼進行編譯;

3)make insall 将生成的可執行檔案安裝到目前計算機中

二、RPM

1.源代碼形式的特點:操作複雜、編譯時間長、極易出現問題、依賴關系複雜

2.為了友善,RPM(redhat package manager)

3.RPM通過将代碼基于特定平台系統編譯為可執行檔案,并儲存依賴關系,來簡化開源軟體的安裝管理。針對不同的系統設定不同的包

4.常用指令規範:linuxcast-1.2.0-30.el6.1686.rpm 包名-版本号-适用平台-32/64-rpm

5.使用rpm –i software.rpm(安裝);

rpm -e software.rpm(解除安裝);

rpm –U software.rpm(更新形式安裝);

rpm –ivh http://www.linuxcast.net/software.rpm(支援通過http\ftp協定形式安裝)

-v 顯示詳細資訊;-h顯示進度條

查詢功能:rpm –qa 列出全部已經安裝的.rpm軟體  rpm –qa |grep ***

三:YUM

1.      rpm軟體包形式的管理雖然友善,但是需要手工解決軟體包的依賴關系。很多時候安裝一個軟體安裝一個軟體需要安裝1個或者多個其他軟體,手動解決時,很複雜,yum解決這些問題。Yum是rpm的前端程式,主要目的是設計用來自動解決rpm的依賴關系,其特點:

1)  自動解決依賴關系;2)可以對rpm進行分組,基于組進行安裝操作;3)引入倉庫概念,支援多個倉庫;4)配置簡單

2.      yum倉庫用來存放所有的現有的.rpm包,當使用yum安裝一個rpm包時,需要依賴關系,會自動在倉庫中查找依賴軟體并安裝。倉庫可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、統一的網絡倉庫。

3.      倉庫的配置檔案/etc/yum.repos.d目錄下

4.      使用:1)yum install 安裝;

2)yum remove解除安裝;

3)yum update 更新制定軟體

5.      安裝的時候,會下載下傳軟體包.Rpm在安裝,是以用國内倉庫

改變鏡像源1)通路位址http://mirrors.163.com/;2)點centos使用幫助;3)按步驟來

6.      查詢軟體:可以使用yumsearch **

綜上,yum 比rpm先進,但源碼包比較全。

六 SSH

  1. secure shell安全外殼協定,建立在應用層上的協定,幾乎支援所有unix平台
  2. 服務端安裝ssh服務 yum install openssh-server   yum install openssh-client(在服務端安裝中也會安裝)
  3. 開啟服務 service sshd start
  4. 開機自啟動

七系統使用者

  1. adduser:在home下自動建立目錄,沒有設定密碼,需要使用passwd指令修改密碼
  2. useradd:在ubuntu下不同(不推薦使用)
  3. userdel:删除使用者,但是檔案夾還在。userdel -r XXX 删除使用者和檔案夾。或者繼續用rm -rf删除檔案夾。
  4. passwd:  passwd 使用者名 設定密碼
  5. 問題: 在linux下添加使用者時,出現錯誤:Creating mailbox file: 檔案已存在?

      怎麼解決:

          原來linux下添加使用者後,會在系統裡自動加一個郵箱(系統郵箱),路徑是:/var/spool/mail/使用者名.

         可以直接用指令#rm -rf /var/spool/mail/使用者名

       這樣就可以再次添加同一名字的使用者.

  6. 切換使用者:su
  7. 修改對檔案的通路權限:chmod 權限 檔案,777代表最讀寫删除權限421.

八防火牆

  1. 作用
  2. 端口:http端口 80;ssh端口 22; https端口 443
  3. 安裝:yum install firewalld
  4. 啟動:service firewalld start
  5. 檢查狀态:service firewalled status
  6. service firewalld stop/disable
  7. firewalld-cmd 安裝防火牆之後預設提供了一這個指令, firewalld-cmd --help
  8. firewalld-cmd --list-zone   --list-all-zones  --list-zone=public 預設區域是public
  9. 查詢服務 firewalld-cmd --query-service=ssh  查詢是否開啟了ssh服務
  10. firewalld-cmd --remove-service=ssh 移出服務
  11. firewalld-cmd  --add-service=ssh 添加服務
  12. firewalld-cmd  --list-services 
  13. firewalld-cmd  --add-port 增加一個端口
  14. firewalld-cmd  --remove-port=22/tcp 關閉端口

九 提權操作

十檔案上傳下載下傳

  1. wget:wget url
  2. curl:curl-O url 
  3. 差別:在進階用途上的curl由于可自定義各種請求參數是以長于模拟web請求,用于測試網頁互動(浏覽器);wget由于支援ftp和Recursive是以長于下載下傳,用于下載下傳檔案
  4. scp下載下傳:     scp  檔案名  使用者@ip:伺服器目錄        然後輸入密碼
  5. scp上傳:     scp  使用者@ip:檔案名   伺服器目錄       然後輸入密碼
  6. xshell上傳下載下傳:伺服器安裝yum install lrzlz; rz直接選擇本地檔案上傳; sz将伺服器檔案下載下傳
  7. winscp:windows下的伺服器檔案管理工具。

十一虛拟機安裝linux

  1. 下載下傳linux  centos7
  2. 安裝過程,選擇英文,設定預設root賬号密碼為123456

十二 目錄結構簡介

linux網絡伺服器學習總結一為什麼學linux二學習目的三基本概念四基本指令和操作五linux中軟體安裝方式六 SSH七系統使用者八防火牆九 提權操作十檔案上傳下載下傳十一虛拟機安裝linux十二 目錄結構簡介十三webserver十四 資料庫十五PHP安裝和使用

【常見目錄說明】

目錄
/bin 存放二進制可執行檔案(ls,cat,mkdir等),常用指令一般都在這裡。
/etc 存放系統管理和配置檔案
/home 存放所有使用者檔案的根目錄,是使用者主目錄的基點,比如使用者user的主目錄就是/home/user,可以用~user表示
/usr

用于存放系統應用程式,比較重要的目錄/usr/local 本地系統管理者軟體安裝目錄(安裝系統級的應用)。這是最龐大的目錄,要用到的應用程式和檔案幾乎都在這個目錄。

/usr/x11r6 存放x window的目錄

/usr/bin 衆多的應用程式  

/usr/sbin 超級使用者的一些管理程式  

/usr/doc linux文檔  

/usr/include linux下開發和編譯應用程式所需要的頭檔案  

/usr/lib 常用的動态連結庫和軟體包的配置檔案  

/usr/man 幫助文檔  

/usr/src 源代碼,linux核心的源代碼就放在/usr/src/linux裡  

/usr/local/bin 本地增加的指令  

/usr/local/lib 本地增加的庫

/opt 額外安裝的可選應用程式包所放置的位置。一般情況下,我們可以把tomcat等都安裝到這裡。
/proc 虛拟檔案系統目錄,是系統記憶體的映射。可直接通路這個目錄來擷取系統資訊。
/root 超級使用者(系統管理者)的主目錄(特權階級^o^)
/sbin 存放二進制可執行檔案,隻有root才能通路。這裡存放的是系統管理者使用的系統級别的管理指令和程式。如ifconfig等。
/dev 用于存放裝置檔案。
/mnt 系統管理者安裝臨時檔案系統的安裝點,系統提供這個目錄是讓使用者臨時挂載其他的檔案系統。
/boot 存放用于系統引導時使用的各種檔案
/lib 存放跟檔案系統中的程式運作所需要的共享庫及核心子產品。共享庫又叫動态連結共享庫,作用類似windows裡的.dll檔案,存放了根檔案系統程式運作所需的共享檔案。
/tmp 用于存放各種臨時檔案,是公用的臨時檔案存儲點。
/var 用于存放運作時需要改變資料的檔案,也是某些大檔案的溢出區,比方說各種服務的日志檔案(系統啟動日志等。)等。
/lost+found 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的檔案(windows下叫什麼.chk)就在這裡

Linux目錄和Windows目錄有着很大的不同,Linux目錄類似一個樹,最頂層是其根目錄,如下圖:

linux網絡伺服器學習總結一為什麼學linux二學習目的三基本概念四基本指令和操作五linux中軟體安裝方式六 SSH七系統使用者八防火牆九 提權操作十檔案上傳下載下傳十一虛拟機安裝linux十二 目錄結構簡介十三webserver十四 資料庫十五PHP安裝和使用

/bin 二進制可執行指令

/dev 裝置特殊檔案

/etc 系統管理和配置檔案

/etc/rc.d 啟動的配置檔案和腳本

/home 使用者主目錄的基點,比如使用者user的主目錄就是/home/user,可以用~user表示

/lib 标準程式設計庫,又叫動态連結共享庫,作用類似windows裡的.dll檔案

/sbin 超級管理指令,這裡存放的是系統管理者使用的管理程式

/tmp 公共的臨時檔案存儲點

/root 系統管理者的主目錄

/mnt 系統提供這個目錄是讓使用者臨時挂載其他的檔案系統

/lost+found這個目錄平時是空的,系統非正常關機而留下“無家可歸”的檔案(windows下叫什麼.chk)就在這裡

/proc 虛拟的目錄,是系統記憶體的映射。可直接通路這個目錄來擷取系統資訊。

/var 某些大檔案的溢出區,比方說各種服務的日志檔案

/usr 最龐大的目錄,要用到的應用程式和檔案幾乎都在這個目錄,其中包含:

/usr/x11R6 存放x window的目錄

/usr/bin 衆多的應用程式

/usr/sbin 超級使用者的一些管理程式

/usr/doc linux文檔

/usr/include linux下開發和編譯應用程式所需要的頭檔案

/usr/lib 常用的動态連結庫和軟體包的配置檔案

/usr/man 幫助文檔

/usr/src 源代碼,linux核心的源代碼就放在/usr/src/linux裡

/usr/local/bin 本地增加的指令

/usr/local/lib 本地增加的庫根檔案系統

通常情況下,根檔案系統所占空間一般應該比較小,因為其中的絕大部分檔案都不需要經常改動,而且包括嚴格的檔案和一個小的不經常改變的檔案系統不容易損壞。

除了可能的一個叫/ vmlinuz标準的系統引導映像之外,根目錄一般不含任何檔案。所有其他檔案在根檔案系統的子目錄中。

1. /bin目錄

/ b i n目錄包含了引導啟動所需的指令或普通使用者可能用的指令(可能在引導啟動後)。這些指令都是二進制檔案的可執行程式( b i n是b i n a r y - -二進制的簡稱),多是系統中重要的系統檔案。

2. /sbin目錄

/ s b i n目錄類似/bin ,也用于存儲二進制檔案。因為其中的大部分檔案多是系統管理者使用的基本的系統程式,是以雖然普通使用者必要且允許時可以使用,但一般不給普通使用者使用。

3. /etc目錄

/ e t c目錄存放着各種系統配置檔案,其中包括了使用者資訊檔案/ e t c / p a s s w d,系統初始化檔案/ e t c / r c等。l i n u x正是*這些檔案才得以正常地運作。

4. /root目錄

/root 目錄是超級使用者的目錄。

5. /lib目錄

/ l i b目錄是根檔案系統上的程式所需的共享庫,存放了根檔案系統程式運作所需的共享檔案。這些檔案包含了可被許多程式共享的代碼,以避免每個程式都包含有相同的子程式的副本,故可以使得可執行檔案變得更小,節省空間。

6. /lib/modules 目錄

/lib/modules 目錄包含系統核心可加載各種子產品,尤其是那些在恢複損壞的系統時重新開機系統所需的子產品(例如網絡和檔案系統驅動)。

7. /dev目錄

/ d e v目錄存放了裝置檔案,即裝置驅動程式,使用者通過這些檔案通路外部裝置。比如,使用者可以通過通路/ d e v / m o u s e來通路滑鼠的輸入,就像通路其他檔案一樣。

8. /tmp目錄

/tmp 目錄存放程式在運作時産生的資訊和資料。但在引導啟動後,運作的程式最好使用/ v a r / t m p來代替/tmp ,因為前者可能擁有一個更大的磁盤空間。

9. /boot目錄

/ b o o t目錄存放引導加載器(bootstrap loader)使用的檔案,如l i lo,核心映像也經常放在這裡,而不是放在根目錄中。但是如果有許多核心映像,這個目錄就可能變得很大,這時使用單獨的檔案系統會更好一些。還有一點要注意的是,要確定核心映像必須在i d e硬碟的前1 0 2 4柱面内。

10. /mnt目錄

/ m n t目錄是系統管理者臨時安裝( m o u n t )檔案系統的安裝點。程式并不自動支援安裝到/mnt 。/mnt 下面可以分為許多子目錄,例如/mnt/dosa 可能是使用m s d o s檔案系統的軟驅,而/mnt/exta 可能是使用e x t 2檔案系統的軟驅,/mnt/cdrom 光驅等等。

11. /proc, /usr,/var,/home目錄

其他檔案系統的安裝點。

下面詳細介紹;

/etc檔案系統

/etc 目錄包含各種系統配置檔案,下面說明其中的一些。其他的你應該知道它們屬于哪個程式,并閱讀該程式的m a n頁。許多網絡配置檔案也在/etc 中。

1. /etc/rc或/etc/rc.d或/etc/rc?.d

啟動、或改變運作級時運作的腳本或腳本的目錄。

2. /etc/passwd

使用者資料庫,其中的域給出了使用者名、真實姓名、使用者起始目錄、加密密碼和使用者的其

他資訊。

3. /etc/fdprm

軟碟參數表,用以說明不同的軟碟格式。可用setfdprm 進行設定。更多的資訊見s e t f d p r m

的幫助頁。

4. /etc/fstab

指定啟動時需要自動安裝的檔案系統清單。也包括用swapon -a啟用的s w a p區的資訊。

5. /etc/group

類似/etc/passwd ,但說明的不是使用者資訊而是組的資訊。包括組的各種資料。

6. /etc/inittab

init 的配置檔案。

7. /etc/issue

包括使用者在登入提示符前的輸出資訊。通常包括系統的一段短說明或歡迎資訊。具體内容由系統管理者确定。

8. /etc/magic

“f i l e”的配置檔案。包含不同檔案格式的說明,“f i l e”基于它猜測檔案類型。

9. /etc/motd

m o t d是message of the day的縮寫,使用者成功登入後自動輸出。内容由系統管理者确定。常用于通告資訊,如計劃關機時間的警告等。

10. /etc/mtab

目前安裝的檔案系統清單。由腳本( s c r i t p )初始化,并由mount 指令自動更新。當需要一個目前安裝的檔案系統的清單時使用(例如df 指令)。

11. /etc/shadow

在安裝了影子( s h a d o w )密碼軟體的系統上的影子密碼檔案。影子密碼檔案将/ e t c / p a s s wd檔案中的加密密碼移動到/ e t c / s h a d o w中,而後者隻對超級使用者( r o o t)可讀。這使破譯密碼更困難,以此增加系統的安全性。

12. /etc/login.defs

l o g i n指令的配置檔案。

13. /etc/printcap

類似/etc/termcap ,但針對列印機。文法不同。

14. /etc/profile 、/ e t c / c s h . l o g i n、/etc/csh.cshrc

登入或啟動時b o u r n e或c shells執行的檔案。這允許系統管理者為所有使用者建立全局預設環境。

15. /etc/securetty

确認安全終端,即哪個終端允許超級使用者( r o o t )登入。一般隻列出虛拟控制台,這樣就不可能(至少很困難)通過數據機( m o d e m )或網絡闖入系統并得到超級使用者特權。

16. /etc/shells

列出可以使用的s h e l l。chsh 指令允許使用者在本檔案指定範圍内改變登入的s h e l l。提供一台機器f t p服務的服務程序ftpd 檢查使用者s h e l l是否列在/etc/shells 檔案中,如果不是,将不允許該使用者登入。

17. /etc/termcap

終端性能資料庫。說明不同的終端用什麼“轉義序列”控制。寫程式時不直接輸出轉義序列(這樣隻能工作于特定品牌的終端),而是從/etc/termcap 中查找要做的工作的正确序列。

這樣,多數的程式可以在多數終端上運作。

/dev檔案系統

/dev 目錄包括所有裝置的裝置檔案。裝置檔案用特定的約定命名,這在裝置清單中說明。

裝置檔案在安裝時由系統産生,以後可以用/dev/makedev 描述。/ d e v / m a k e d e v.local是

系統管理者為本地裝置檔案(或連接配接)寫的描述文稿(即如一些非标準裝置驅動不是标準

makedev 的一部分)。下面簡要介紹/ d e v下一些常用檔案。

1. /dev/console

系統控制台,也就是直接和系統連接配接的螢幕。

2. /dev/hd

i d e硬碟驅動程式接口。如: / d e v / h d a指的是第一個硬碟, h a d 1則是指/ d e v / h da的第一個

分區。如系統中有其他的硬碟,則依次為/ d e v / h d b、/ d e v / h d c、. . . . ..;如有多個分區則依次為

h d a 1、h d a 2 . . . . . .

3. /dev/sd

s c s i磁盤驅動程式接口。如有系統有s c s i硬碟,就不會通路/ d e v / h a d,而會通路/ d e v / sd a。

4. /dev/fd

軟驅裝置驅動程式。如: / d e v / f d 0指系統的第一個軟碟,也就是通常所說的a:盤,

/ d e v / f d 1指第二個軟碟,. . . . . .而/ d e v / f d 1 h 1 4 40則表示通路驅動器1中的4 . 5高密盤。

5. /dev/st

s c s i錄音帶驅動器驅動程式。

6. /dev/tty

提供虛拟控制台支援。如: / d e v / t t y 1指的是系統的第一個虛拟控制台, / d e v / t t y2則是系統

的第二個虛拟控制台。

7. /dev/pty

提供遠端登陸僞終端支援。在進行te l n e t登入時就要用到/ d e v / p t y裝置。

8. /dev/ttys

計算機串行接口,對于d o s來說就是“ c o m 1”口。

9. /dev/cua

計算機串行接口,與數據機一起使用的裝置。

10. /dev/null

“黑洞”,所有寫入該裝置的資訊都将消失。例如:當想要将螢幕上的輸出資訊隐藏起來時,隻要将輸出資訊輸入到/ d e v / n u l l中即可。

/usr檔案系統

/usr 是個很重要的目錄,通常這一檔案系統很大,因為所有程式安裝在這裡。/usr 裡的

所有檔案一般來自l i n u x發行版( d i s t r i b u t i o n);本地安裝的程式和其他東西在/usr/local 下,因為這樣可以在更新新版系統或新發行版時無須重新安裝全部程式。/usr目錄下的許多内容是可選的,但這些功能會使使用者使用系統更加有效。/ u s r可容納許多大型的軟體包和它們的配置檔案。下面列出一些重要的目錄(一些不太重要的目錄被省略了)。

1. /usr/x11r6

包含x wi n d o w系統的所有可執行程式、配置檔案和支援檔案。為簡化x的開發和安裝,x的檔案沒有內建到系統中。x wi n d o w系統是一個功能強大的圖形環境,提供了大量的圖形工具程式。使用者如果對microsoft wi n d o w s或m a c h i n t o s h比較熟悉的話,就不會對x win d o w系統感到束手無策了。

2. /usr/x386

類似/ u s r / x 11r6 ,但是是專門給x 11 release 5的。

3. /usr/bin

集中了幾乎所有使用者指令,是系統的軟體庫。另有些指令在/bin 或/usr/local/bin 中。

4. /usr/sbin

包括了根檔案系統不必要的系統管理指令,例如多數服務程式。

5. /usr/man、/ u s r / i n f o、/ u s r / d o c

這些目錄包含所有手冊頁、g n u資訊文檔和各種其他文檔檔案。每個聯機手冊的“節”都有兩個子目錄。例如: / u s r / m a n / m a n 1中包含聯機手冊第一節的源碼(沒有格式化的原始檔案),/ u s r / m a n / c a t 1包含第一節已格式化的内容。l聯機手冊分為以下九節:内部指令、系統調用、庫函數、裝置、檔案格式、遊戲、宏軟體包、系統管理和核心程式。

6. /usr/include

包含了c語言的頭檔案,這些檔案多以. h結尾,用來描述c語言程式中用到的資料結構、子過程和常量。為了保持一緻性,這實際上應該放在/usr/lib 下,但習慣上一直沿用了這個名字。

7. /usr/lib

包含了程式或子系統的不變的資料檔案,包括一些s i t e - w i d e配置檔案。名字l i b來源于庫(library); 程式設計的原始庫也存在/usr/lib 裡。當編譯程式時,程式便會和其中的庫進行連接配接。也有許多程式把配置檔案存入其中。

8. /usr/local

本地安裝的軟體和其他檔案放在這裡。這與/ u s r很相似。使用者可能會在這發現一些比較大的軟體包,如t e x、e m a c s等。

/var檔案系統

/var 包含系統一般運作時要改變的資料。通常這些資料所在的目錄的大小是要經常變化或擴充的。原來/ v a r目錄中有些内容是在/ u s r中的,但為了保持/ u s r目錄的相對穩定,就把那些需要經常改變的目錄放到/ v a r中了。每個系統是特定的,即不通過網絡與其他計算機共享。下面列出一些重要的目錄(一些不太重要的目錄省略了)。

1. /var/catman

包括了格式化過的幫助( m a n )頁。幫助頁的源檔案一般存在/ u s r / m a n / m a n中;有些m an頁可能有預格式化的版本,存在/ u s r / m a n / c a t中。而其他的m a n頁在第一次看時都需要格式化,格式化完的版本存在/var/man 中,這樣其他人再看相同的頁時就無須等待格式化了。(/var/catman 經常被清除,就像清除臨時目錄一樣。)

2. /var/lib

存放系統正常運作時要改變的檔案。

3. /var/local

存放/usr/local 中安裝的程式的可變資料(即系統管理者安裝的程式)。注意,如果必要,即使本地安裝的程式也會使用其他/var 目錄,例如/var/lock 。

4. /var/lock

鎖定檔案。許多程式遵循在/var/lock 中産生一個鎖定檔案的約定,以用來支援他們正在使用某個特定的裝置或檔案。其他程式注意到這個鎖定檔案時,就不會再使用這個裝置或檔案。

5. /var/log

各種程式的日志( l o g )檔案,尤其是login (/var/log/wtmp log紀錄所有到系統的登入和登出) 和syslog (/var/log/messages 紀錄存儲所有核心和系統程式資訊)。/var/log裡的檔案經常不确定地增長,應該定期清除。

6. /var/run

儲存在下一次系統引導前有效的關于系統的資訊檔案。例如, /var/run/utmp 包含目前登入的使用者的資訊。

7. /var/spool

放置“假脫機( s p o o l )”程式的目錄,如m a i l、n e w s、列印隊列和其他隊列工作的目錄。每個不同的s p o o l在/var/spool 下有自己的子目錄,例如,使用者的郵箱就存放在/var/spool/mail中。

8. /var/tmp

比/tmp 允許更大的或需要存在較長時間的臨時檔案。注意系統管理者可能不允許/var/tmp 有很舊的檔案。

/proc檔案系統

/proc 檔案系統是一個僞的檔案系統,就是說它是一個實際上不存在的目錄,因而這是一

個非常特殊的目錄。它并不存在于某個磁盤上,而是由核心在記憶體中産生。這個目錄用于提

供關于系統的資訊。下面說明一些最重要的檔案和目錄(/proc 檔案系統在proc man頁中有更詳

細的說明)。

1. /proc/x

關于程序x的資訊目錄,這一x是這一程序的辨別号。每個程序在/proc 下有一個名為自

己程序号的目錄。

2. /proc/cpuinfo

存放處理器( c p u )的資訊,如c p u的類型、制造商、型号和性能等。

3. /proc/devices

目前運作的核心配置的裝置驅動的清單。

4. /proc/dma

顯示目前使用的d m a通道。

5. /proc/filesystems

核心配置的檔案系統資訊。

6. /proc/interrupts

顯示被占用的中斷資訊和占用者的資訊,以及被占用的數量。

7. /proc/ioports

目前使用的i / o端口。

8. /proc/kcore

系統實體記憶體映像。與實體記憶體大小完全一樣,然而實際上沒有占用這麼多記憶體;它僅僅是在程式通路它時才被建立。(注意:除非你把它拷貝到什麼地方,否則/proc 下沒有任何東西占用任何磁盤空間。)

9. /proc/kmsg

核心輸出的消息。也會被送到s y s l o g。

10. /proc/ksyms

核心符号表。

11. /proc/loadavg

系統“平均負載”; 3個沒有意義的訓示器指出系統目前的工作量。

12. /proc/meminfo

各種存儲器使用資訊,包括實體記憶體和交換分區( s w a p )。

13. /proc/modules

存放目前加載了哪些核心子產品資訊。

14. /proc/net

網絡協定狀态資訊。

15. /proc/self

存放到檢視/proc 的程式的程序目錄的符号連接配接。當2個程序檢視/proc 時,這将會是不同的連接配接。這主要便于程式得到它自己的程序目錄。

16. /proc/stat

系統的不同狀态,例如,系統啟動後頁面發生錯誤的次數。

17. /proc/uptime

系統啟動的時間長度。

18. /proc/version

核心版本

十三webserver

  1. Apache:yum install httpd,service httpd start,service httpd stop
  2. Apache虛拟主機:一個伺服器多個域名的時候用,每個域名通路的網站内容和源代碼不一樣。apache的配置檔案httpd.conf,在這個裡面的virtual host being defined的位置下面定義虛拟主機,
    <VirtualHost *:80>
        ServerName www.blue.com
        DoucumentRoot /data/www
            <Directory "/data/www">
                Option -Indexes FollowSymLinks
                AllowOverride None
                Require all granted
            </Directory>
    </VirtualHost *:80>
               
    可以建立多個虛拟機,複制上面的代碼就好

    然後重新開機服務

  3. apache 預設代碼目錄 /var/www/html 配置檔案中可以找到,虛拟主機可以指定任意目錄

  4. selinux臨時設定:setenforce:0 寬松模式; 1嚴格模式,setenforce是臨時模式。

  5. selinux持久設定:持久設定模式:持久關閉是在 /etc/selinux/config檔案中的屬性 SELINUX屬性的設定,enforcing 強制模式,permissive 警告模式,disabled 關閉模式

  6. Nginx虛拟伺服器參數:

  7. Nginx中文知識網站:http://www.nginx.cn/

十四 資料庫

  1. mysql安裝:删除mariadb資料庫;在dev.mysql.com中下載下傳redhat7或對應的rpm包到本地(這次安裝的是mysql57-community-release-el7-11.noarch.rpm);yum localinstall 将下載下傳rpm包添加到本地源(如果windwos下載下傳的rpm包需要上傳到linux);然後yum install XXX.server那個程式,大概190MB.

  2. 啟動和停止:service mysqld start/stop/restart

  3. 本地連接配接MySql:mysql -h -u -p ,主機名 使用者 密碼,初始密碼在日志中,cat /var/log/mysqld.log;首次登入後可能要重新密碼。

  4. 選擇資料庫:use 資料庫名

  5. 遠端連接配接:修改資料庫的user表中Host值,将“localhost”為“%”,表示支援所有主機連接配接,查詢語句為 select Host,User from user; 修改語句為 update user set Host='%' where Host='localhost' and User='root';

  6. 密碼提示:如果提示重置密碼,是由于密碼過于簡單,需要設定為大寫、小寫、數字、特殊字元組合的密碼,或者通過set global validate_password_policy=0; set global validate_password_length=1;這兩個語句取消密碼限制,然後flush privileges; (不重新開機mysql的情況下重新整理使用者權限設定)

  7. 7

  8. 設定密碼:SET PASSWORD = PASSWORD(‘123456’);

  9. 資料庫連接配接:如果資料庫連接配接不上可能是防火牆原因。

  10. 設定資料庫遠端連接配接:update user set Host='%' where User="root" and Host="localhost"; (%代表可以接受所有連接配接),然後flush privileges; 重新整理權限。如果主機上已經登入mysql,則遠端無法繼續登入了。

  11. 修改密碼(忘記密碼):在/etc/my.conf中最後面輸入skip-grant-tables ;   連接配接資料庫,密碼輸入空;成功連接配接資料庫後輸入指令use mysql;      show talbles;      update user set authentication_string = password("123456") where user = 'root';(注意每個指令結束必須有冒号); 将/etc/my.conf中的skip-grant-tables行用#注釋掉; 重新開機mysql後可以用新密碼登入。

  12. genelog;記錄本地所有資料庫操作的sql語句

  13. 建立使用者:create user 'imooc'@'%' identified by '123456';(預設建立的使用者什麼權限都沒有),grant all privileges on *.* to '賬戶名'@'%' identified by '123456';

  14. windows下的mysql管理工具:heidisql mysqladmin(目前總是報文法錯誤)

  15. 權限的配置設定和收回:grant revoke

十五PHP安裝和使用

  1. 下載下傳:https://pan.baidu.com/s/1bpi4D9l 。檔案為 php-7.2.0.tar.gz

  2. 解壓:tar -zxvf php-7.2.0.tar.gz  

  3. 進入解壓的目錄:cd php7.2.0 

  4. 安裝依賴:yum install libxml2 libxml2-devel openssl openssl-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel -y  

  5. 開始進行配置:./configure --prefix=/usr/local/php720 --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=nobody --with-fpm-group=nobody --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo 

  6. 編譯安裝:make && make install 

  7. 建立配置檔案:cp php.ini-development /usr/local/php720/php.ini ;cp /usr/local/php720/etc/php-fpm.conf.default /usr/local/php720/etc/php-fpm.conf;(注意,這裡的php720等路徑會與安裝的版本有關,具體看情況);cp sapi/fpm/php-fpm /usr/local/bin;

  8. php安全設定:如果檔案不存在,則阻止 Nginx 将請求發送到後端的 PHP-FPM 子產品, 以避免遭受惡意腳本注入的攻擊,vim /usr/local/php/php.ini 中修改 cgi.fix_pathinfo=0

  9. 啟動php-fpm:在啟動服務之前,需要修改 php-fpm.conf 配置檔案,確定 php-fpm 子產品使用 www-data 使用者和 www-data 使用者組的身份運作。在/usr/local/php720/etc/目錄或者 /php-fpm.d/下,首先把www.conf.default 修改為www.conf,然後修改其檔案的内容,使用者和使用者組,使用者不能是root(會報錯); Unix user/group of processes; Note: The user is mandatory. If the group is not set, the default user's group; will be used.user = www-datagroup = www-data然後啟動 php-fpm 服務:/usr/local/bin/php-fpm

  10. 配置Nginx:vim /usr/local/nginx/conf/nginx.conf修改預設的 location 塊,使其支援 .php 檔案:location / {    root   html;    index  index.php index.html index.htm;}下一步配置來保證對于 .php 檔案的請求将被傳送到後端的 PHP-FPM 子產品, 取消預設的 PHP 配置塊的注釋,并修改為下面的内容:location ~* \.php$ {    fastcgi_index   index.php;    fastcgi_pass    127.0.0.1:9000;    include         fastcgi_params;    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;}然後重新開機nginx

  11. 建立測試頁面:rm /usr/local/nginx/html/index.html(路徑是nginx.conf配置檔案中的配置路徑)echo "<?php phpinfo(); ?>" >>index.php   建立一個測試頁。(是shell程式設計語句嗎?)

繼續閱讀