redhat冬令營

redhat

希望大家喜歡,點贊哦

redhat冬令營

在這個冬令營之前,太多的人告訴我:

如果你是一名程序員,想要了解自己的工作環境,操控自己的工作環境,Linux是必須的。

對于我這種菜鳥來說,有點懷疑又深信不疑。有剛巧學校有個講座,沖著坐場人員給學分(0.05分大概。。。)我就去了。哎呦,剛好是linux,其實這個講座前筆者也在用ubuntu來code一些C語言程序。于是講課的老師開始講redhat,linux。聽的我興致勃勃,又是剛巧老師說有一個冬令營。我便填表、報名。(好巧好巧。。。)

一、Bios和Uefi

1.1 Bios:

BIOS是英文"Basic Input Output System"的縮略詞,直譯過來后中文名稱就是"基本輸入輸出系統"。其實,它是一組固化到計算機內主板上一個ROM芯片上的程序,它保存著計算機最重要的基本輸入輸出的程序、開機后自檢程序和系統自啟動程序,它可從CMOS中讀寫系統設置的具體信息。 其主要功能是為計算機提供最底層的、最直接的硬件設置和控制。

BIOS的功能有:

  • 自檢與初始化
  • 程序服務處理
  • 硬件中斷處理

UEFI,全稱“統一的可擴展固件接口”(Unified Extensible Firmware Interface), 是一種詳細描述類型接口的標準。這種接口用于操作系統自動從預啟動的操作環境,加載到一種操作系統上

實質為Bios的升級版,在邏輯上可分為硬件控制和OS軟件管理兩部分:操作系統—可擴展固件接口—固件—硬件。
與BIOS 相比,UEFI最大的幾個區別在于:
*1. 編碼99%都是由C語言完成;

  1. 一改之前的中斷、硬件端口操作的方法,而采用了Driver/protocol的新方式;
  2. 將不支持X86實模式,而直接采用Flat mode(也就是不能用DOS了,現在有些 EFI 或 UEFI 能用是因為做了兼容,但實際上這部分不屬于UEFI的定義了);
  3. 輸出也不再是單純的二進制code,改為Removable Binary Drivers;
  4. OS啟動不再是調用Int19,而是直接利用protocol/device Path;
  5. 對于第三方的開發,前者基本上做不到,除非參與BIOS的設計,但是還要受到ROM的大小限制,而后者就便利多了。
    7.彌補BIOS對新硬件的支持不足的問題。*

二、遠程控制

2.1 SSH

SSH 為 Secure Shell 的縮寫,由 IETF 的網絡工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。

SSH為比較安全的協議
建立連接的命令如下:
1.基于口令的安全驗證(需要賬號與口令)
因為需要在網絡上傳口令,所以不太安全

ssh user_name@ip  //ip替換為要鏈接的機器的ip

2.基于密匙的安全驗證:
(為自己創建一對密匙,并把公用密匙放在需要訪問的服務器上)因為使用密鑰加密,而且不需要在網絡上傳口令,較安全

ssh-keygen-t rsa
ssh-copy-id -i id_rsa.pub user_name@ip
ssh user_name@ip

2.2 vnc

VNC (Virtual Network Computer)是虛擬網絡計算機的縮寫。它 是一款優秀的遠程控制工具軟件,由著名的 AT&T 的歐洲研究實驗室開發的。VNC 是在基于 UNIX 和 Linux 操作系統的免費的開源軟件,遠程控制能力強大,高效實用,其性能可以和 Windows 和 MAC 中的任何遠程控制軟件媲美。 在 Linux 中,VNC 包括以下四個命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多數情況下用戶只需要其中的兩個命令:vncserver 和 vncviewer。

命令如下:

vncserver:p    //p為端口號
vncviewer ip:p 
systemctl stop firewalld.service  //若有需要就關閉防火墻

三、linux文件結構(linux重要文件夾)

相信讀者看git上的項目或者是應用的安裝文件時候,會發現有bin,lib等命名一樣的目錄,而且自己還搞不懂這些目錄是干嘛的,沒關系,就讓我來班門弄斧吧、、、
linux有四種基本文件系統類型:普通文件、目錄文件、連續文件和特殊文件。可以用file命令來識別。

普通文件:如文本文件、c語言源代碼、shell腳本等,可以用cat、less、more、vi等來察看內容,用mv來改名。
目錄文件:包括文件名、子目錄名及其指針。可以用ls列出目錄文件
  鏈接文件:是指向一索引節點的那些目錄條目,用ls來查看時,鏈接文件的標志用l開頭,而文件后以"->"指向所鏈接的文件
  特殊文件:如磁盤、終端、打印機等都在文件系統中表示出來,常放在/etc目錄內。例如:軟驅A稱為/dev/fd0,/dev/had來自第一硬盤。

以下是linux系統常見的重要目錄以及各個目作用:

/
根目錄。
包含了幾乎所的文件目錄。相當于中央系統。進入的最簡單方法是:cd /。

/boot
引導程序,內核等存放的目錄。
這個目錄,包括了在引導過程中所必需的文件,引導程序的相關文件(例如grub,lilo以及相應的配置文件以及Linux操作系統內核相關文件(例如vmlinuz等一般都存放在這里。在最開始的啟動階段,通過引導程序將內核加載到內存,完成內核的啟動(這個時候,虛擬文件系統還不存在,加載的內核雖然是從硬盤讀取的,但是沒經過Linux的虛擬文件系統,這是比較底層的東西來實現的。然后內核自己創建好虛擬文件系統,并且從虛擬文件系統的其他子目錄中(例如/sbin 和 /etc加載需要在開機啟動的其他程序或者服務或者特定的動作(部分可以由用戶自己在相應的目錄中修改相應的文件來配制。如果我們的機器中包含多個操作系統,那么可以通過修改這個目錄中的某個配置文件(例如grub.conf來調整啟動的默認操作系統,系統啟動的擇菜單,以及啟動延遲等參數。

/sbin
超級用戶可以使用的命令的存放目錄。
存放大多涉及系統管理的命令(例如引導系統的init程序,是超級權限用戶root的可執行命令存放地,普通用戶無權限執行這個目錄下的命令(但是時普通用戶也可能會用到。這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin等目錄是相似的,我們要記住,凡是目錄sbin中包含的都是root權限才能執行的,這樣就行了。后面會具體區分。

/bin
普通用戶可以使用的命令的存放目錄。
系統所需要的那些命令位于此目錄,比如ls、cp、mkdir等命令;類似的目錄還/usr/bin,/usr/local/bin等等。這個目錄中的文件都是可執行的、普通用戶都可以使用的命令。作為基礎系統所需要的最基礎的命令就是放在這里。

/lib
根目錄下的所程序的共享庫目錄。
此目錄下包含系統引導和在根用戶執行命令時候所必需用到的共享庫。做個不太好但是比較形象的比喻,點類似于Windows上面的system32目錄。理說,這里存放的文件應該是/bin目錄下程序所需要的庫文件的存放地,也不排除一些例外的情況。類似的目錄還/usr/lib,/usr/local/lib等等。

/dev
設備文件目錄。
在Linux中設備都是以文件形式出現,這里的設備可以是硬盤,鍵盤,鼠標,網卡,終端,等設備,通過訪問這些文件可以訪問到相應的設備。設備文件可以使用mknod命令來創建,具體參見相應的命令;而為了將對這些設備文件的訪問轉化為對設備的訪問,需要向相應的設備提供設備驅動模塊(一般將設備驅動編譯之后,生成的結果是一個*.ko類型的二進制文件,在內核啟動之后,再通過insmod等命令加載相應的設備驅動之后,我們就可以通過設備文件來訪問設備了。一般來說,想要Linux系統支持某個設備,只要個東西:相應的硬件設備,支持硬件的驅動模塊,以及相應的設備文件。

/home
普通用戶的家目錄($HOME目錄。
在Linux機器上,用戶主目錄通常直接或間接地置在此目錄下。其結構通常由本地機的管理員來決定。通常而言,系統的每個用戶都自己的家目錄,目錄以用戶名作為名字存放在/home下面(例如quietheart用戶,其家目錄的名字為/home/quietheart。該目錄中保存了絕大多數的用戶文件(用戶自己的配置文件,定制文件,文檔,數據等),root用戶除外(參見后面的/root目錄。由于這個目錄包含了用戶實際的數據,通常系統管理員為這個目錄單獨掛載一個獨立的磁盤分區,這樣這個目錄的文件系統格式就可能和其他目錄不一樣了(盡管表面上看,這個目錄還是屬于根目錄的一棵子樹上),有利于數據的維護。

/root
用戶root的$HOME目錄
系統管理員(就是root用戶或超級用戶)的主目錄比較特殊,不存放在/home中,而是直接放在/root目錄下了。

/etc
全局的配置文件存放目錄。
系統和程序一般都可以通過修改相應的配置文件,來進行配置。例如,要配置系統開機的時候啟動那些程序,配置某個程序啟動的時候顯示什么樣的風格等等。通常這些配置文件都集中存放在/etc目錄中,所以想要配置什么東西的話,可以在/etc下面尋找我們可能需要修改的文件。一些大型套件,如X11,在 /etc 下它們自己的子目錄。系統配置文件可以放在這里或在 /usr/etc。 不過所程序總是在 /etc 目錄下查找所需的配置文件,你也可以將這些文件鏈接到目錄 /usr/etc。另外,還一個需要注意的常見現象就是,當某個程序在某個用戶下運行的時候,可能會在該用戶的家目錄中生成一個配置文件(一般這個文件最開始就是/etc下相應配置文件的拷貝,存放相應于“當前用戶”的配置,這樣當前用戶可以通過配置這個家目錄的配置文件,來改變程序的行為,并且這個行為只是該用戶特的。原因就是:一般來說一個程序啟動,如果需要讀取一些配置文件的話,它會首先讀取當前用戶家目錄的配置文件,如果存在就使用;如果不存在它就到/etc下讀取全局的配置文件進而啟動程序。就是這個配置文件不自動生成,我們手動在自己的家目錄中創建一個文件的話,也有許多程序會首先讀取到這個家目錄的文件并且以它的配置作為啟動的選項(例如我們可以在家目錄中創建vim程序的配置文件.vimrc,來配置自己的vim程序。

/usr
這個目錄中包含了命令庫文件和在通常操作中不會修改的文件。
這個目錄對于系統來說也是一個非常重要的目錄,其地位類似Windows上面的”Program Files”目錄(請原諒我可能這樣做比較不太恰當^_^。安裝程序的時候,默認就是安裝在此文件內部某個子文件夾內。輸入命令后系統默認執行/usr/bin下的程序(當然,前提是這個目錄的路徑已經被添加到了系統的環境變量中。此目錄通常也會掛載一個獨立的磁盤分區,它應保存共享只讀類文件,這樣它可以被運行Linux的不同主機掛載。

/usr/lib
目標庫文件,包括動態連接庫加上一些通常不是直接調用的可執行文件的存放位置。
這個目錄功能類似/lib目錄,理說,這里存放的文件應該是/bin目錄下程序所需要的庫文件的存放地,也不排除一些例外的情況。

/usr/bin
一般使用者使用并且不是系統自檢等所必需可執行文件的目錄。
此目錄相當于根文件系統下的對應目錄(/bin,非啟動系統,非修復系統以及非本地安裝的程序一般都放在此目錄下。

/usr/sbin
管理員使用的非系統必須的可執行文件存放目錄。
此目錄相當于根文件系統下的對應目錄(/sbin,保存系統管理程序的二進制文件,并且這些文件不是系統啟動或文件系統掛載 /usr 目錄或修復系統所必需的。

/usr/share
存放共享文件的目錄。
在此目錄下不同的子目錄中保存了同一個操作系統在不同構架下工作時特定應用程序的共享數據(例如程序文檔信息)。使用者可以找到通常放在 /usr/doc 或 /usr/lib 或 /usr/man 目錄下的這些類似數據。

/usr/include
C程序語言編譯使用的頭文件。
linux下開發和編譯應用程序所需要的頭文件一般都存放在這里,通過頭文件來使用某些庫函數。默認來說這個路徑被添加到了環境變量中,這樣編譯開發程序的時候編譯器會自動搜索這個路徑,從中找到你的程序中可能包含的頭文件。

/usr/local
安裝本地程序的一般默認路徑。
當我們下載一個程序源代碼,編譯并且安裝的時候,如果不特別指定安裝的程序路徑,那么默認會將程序相關的文件安裝到這個目錄的對應目錄下。例如,安裝的程序可執行文件被安裝(安裝實質就是復制到了/usr/local/bin下面,此程序(可執行文件所需要依賴的庫文件被安裝到了/usr/local/lib目錄下,被安裝的軟件如果是某個開發庫(例如Qt,Gtk等那么相應的頭文件可能就被安裝到了/usr/local/include中等等。也就是說,這個目錄存放的內容,一般都是我們后來自己安裝的軟件的默認路徑,如果擇了這個默認路徑作為軟件的安裝路徑,被安裝的軟件的所文件都限制在這個目錄中,其中的子目錄就相應于根目錄的子目錄。

/proc
特殊文件目錄。
這個目錄采用一種特殊的文件系統格式(proc格式,內核支持這種格式。其中包含了全部虛擬文件。它們并不保存在磁盤中,也不占據磁盤空間(盡管命令ls -c會顯示它們的大小)。當您查看它們時,您實際上看到的是內存里的信息,這些文件助于我們了解系統內部信息。例如:
├1/ 關于進程1的信息目錄。每個進程在/proc 下一個名為其進程號的目錄。
├cpuinfo 處理器信息,如類型、制造商、型號和性能。
├devices 當前運行的核心配置的設備驅動的列表。
├dma 顯示當前使用的DMA通道。
├filesystems 核心配置的文件系統。
├interrupts 顯示使用的中斷,and how many of each there have been.
├ioports 當前使用的I/O端口。
├kcore 系統物理內存映象。與物理內存大小一樣,但實際不占這么多內存;
├kmsg 核心輸出的消息。也被送到syslog 。
├ksyms 核心符號表。
├loadavg 系統”平均負載”;3個沒意義的指示器指出系統當前的工作量。
├meminfo 存儲器使用信息,包括物理內存和swap。
├modules 當前加載了哪些核心模塊。
├net 網絡協議狀態信息。
├self 到查看/proc 的程序的進程目錄的符號連接。
├stat 系統的不同狀態
├uptime 系統啟動的時間長度。
└version 核心版本。

/opt
可擇的文件目錄。
這個目錄表示的是可擇的意思,些自定義軟件包或者第方工具,就可以安裝在這里。比如在Fedora Core 5.0中,OpenOffice就是安裝在這里。些我們自己編譯的軟件包,就可以安裝在這個目錄中;通過源碼包安裝的軟件,可以把它們的安裝路徑設置成/opt這樣來安裝。這個目錄的作用一點類似/usr/local。

/mnt
臨時掛載目錄。
這個目錄一般是用于存放掛載儲存設備的掛載目錄的,比如磁盤,光驅,網絡文件系統等,當我們需要掛載某個磁盤設備的時候,可以把磁盤設備掛載到這個目錄上去,這樣我們可以直接通過訪問這個目錄來訪問那個磁盤了。一般來說,我們最好在/mnt目錄下面多建立幾個子目錄,掛載的時候掛載到這些子目錄上面,因為通常我們可能不僅僅是掛載一個設備吧?

/media
掛載的媒體設備目錄。
掛載的媒體設備目錄,一般外部設備掛載到這里,例如cdrom等。比如我們插入一個U盤,我們一般會發現,Linux自動在這個目錄下建立一個disk目錄,然后把U盤掛載到這個disk目錄上,通過訪問這個disk來訪問U盤。

/var
內容經常變化的目錄。
此目錄下文件的大小可能會改變,如緩沖文件,日志文件,緩存文件,等一般都存放在這里。

/tmp
臨時文件目錄。
該目錄存放系統中的一些臨時文件,文件可能會被系統自動清空。的系統直接把tmpfs類型的文件系統掛載到這個目錄上,tmpfs文件系統由Linux內核支持,在這個文件系統中的數據,實際上是內存中的,由于內存的數據斷電易失,當系統重新啟動的時候我們就會發現這個目錄被清空了。

/lost+found 
恢復文件存放的位置。
當系統崩潰的時候,在系統修復過程中需要恢復的文件,可能就會在這里被找到了,這個目錄一般為空。

另外,有些目錄初學者容易混淆,這里簡單區分一下:
/bin,/sbin與/usr/bin,/usr/sbin:
/bin一般存放對于用戶和系統來說“必須”的程序(二進制文件)。
/sbin一般存放用于系統管理的“必需”的程序(二進制文件),一般普通用戶不會使用,根用戶使用。
/usr/bin一般存放的只是對用戶和系統來說“不是必需的”程序(二進制文件)。
/usr/sbin一般存放用于系統管理的系統管理的不是必需的程序(二進制文件)。

/lib與/usr/lib:
/lib和/usr/lib的區別類似/bin,/sbin與/usr/bin,/usr/sbin。
/lib一般存放對于用戶和系統來說“必須”的庫(二進制文件)。
/usr/lib一般存放的只是對用戶和系統來說“不是必需的”庫(二進制文件)。*

四、IP

相信對IP的概念大家不陌生了,當然對于TCP/IP四層模型還有ISO/OSI七層模型的了解我目前僅限于計算機基礎中講到的東西
這部分我能總結的東西大家基本也都知道了,說句如下:
子網掩碼:區分ip網絡號,主機號。。
就這樣一筆帶過了

五、用戶與組

這部分主要為幾個命令:

useradd username  //添加用戶
userdel username  //刪除用戶
usermod -g groupname username //更改用戶主組
usermod -G groupname username  //更改用戶附組
groupadd groupname //同理
groupdel groupname //同理

六、文件與權限

6.1 ugo權限

ll命令查看文件信息時,打頭的rwx還有-組合表示的就是該文件的ugo權限
u:user
g:group
o:other
想要更改權限用chmod命令即可(具體見命令-h)

6.2 facl權限

當然用ugo來劃分權限其實很粗糙,不完善
此時就可以用facl權限即可(具體見命令手冊幫助)

七、RAID 磁盤陣列技術

磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構成的具有冗余能力的陣列”之意。
RAID技術主要包含RAID 0~RAID 50等數個規范,它們的側重點
各不相同

當然這種技術顧名思義會使磁盤冗余,想要速度還是容量,權衡取最優解即可

7.1 RAID0

RAID 0 只需要2塊以上的硬盤即可,成本低,可以提高整個磁盤的性能和吞吐量。RAID 0沒有提供冗余或錯誤修復能力,如果任何一塊磁盤壞掉,就會出現故障但實現成本是最低的。


RAID 0

7.2 RAID1:磁盤鏡像

RAID 1 即將一款磁盤中的文件復制到另一塊磁盤中,讀取時并行讀取各自一半,速度明顯提升,磁盤利用率僅為50%。RAID 1主要是通過二次讀寫實現磁盤鏡像,所以磁盤控制器的負載也相當大。


RAID 1

7.3 RAID2:帶海明碼校驗

將數據條塊化地分布于不同的硬盤上,條塊單位為位或字節,并使用稱為“加重平均糾錯碼(漢明碼)”的編碼技術來提供錯誤檢查及恢復。

7.4 RAID3:帶奇偶校驗碼的并行傳送

7.5 RAID4:帶奇偶校驗碼的獨立磁盤結構

7.6 RAID5:分布式奇偶校驗的獨立磁盤結構

RAID 5

7.7 RAID6:帶有兩種分布存儲的奇偶校驗碼的獨立磁盤結構

RAID技術親測速度的確有提升(犧牲空間換來的)主要代碼如下(在機房測試,關機后還原,自己電腦就慎重吧):

fdisk /dev/vdb
//通過這個建立一個拓展分區里面包括三個適當大小的邏輯分區我用的200M,其他步驟默認即可
madam --creat /dev/md0 --level=5 --raid-devices=3 /dev/vdb[156]
  //用三塊200M的空間建立一個raid5技術的區
mount /dev/md0 /mnt  //將分區掛載
umount /mnt   //卸載此盤用詞命令

八、加密

加密,是以某種特殊的算法改變原有的信息數據,使得未授權的用戶即使獲得了已加密的信息,但因不知解密的方法,仍然無法了解信息的內容。

8.1 對稱加密

對稱加密算法在加密和解密時使用的是同一個秘鑰

  • 優點 算法公開、計算量小、加密速度快、加密效率高。
  • 缺點 在數據傳送前,發送方和接收方必須商定好秘鑰,然后使雙方都能保存好秘鑰。其次如果一方的秘鑰被泄露,那么加密信息也就不安全了。另外,每對用戶每次使用對稱加密算法時,都需要使用其他人不知道的唯一秘鑰,這會使得收、發雙方所擁有的鑰匙數量巨大,密鑰管理成為雙方的負擔。

8.2 非對稱式加密

非對稱加密算法需要兩個密鑰來進行加密和解密,這兩個秘鑰是公開密鑰(public key,簡稱公鑰)和私有密鑰(private key,簡稱私鑰)。

  • 優點 安全性更好,不需要像對稱加密那樣在通信之前要先同步秘鑰
  • 缺點 加密和解密花費時間長、速度慢,只適合對少量數據進行加密

九、云與虛擬化

現在很紅,藍圖很美,但我目前只知道這個略難。。。沒入門呢!!!

希望大家喜歡,點贊哦

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容