Linux系統內核與Linux發行套件系統的區別
Linux系統內核指的是一個由Linus Torvalds 負責維護,提供硬件抽象層,硬盤及文件系統控制及多任務功能的系統核心程序
Linux發行套件系統纔是咱們常說的Linux操做系統,也便是由Linux內核與各類經常使用軟件的集合產品
Linux的發行版本能夠大致分爲兩類:
一類:商業公司維護的發行版本 (以Read Hat 爲表明)
一類:社區組織維護的發行版本 (後者以Debian爲表明)linux
Redhat 應該稱爲Redhat系列
包括:
1)RHEL(Redhat Enterprise Linux 也就是所謂的Redhat Advance Server)
收費版本,穩定性很是好,適合服務器使用
2)Fedora Core
由原來的Redhat桌面版發展而來,免費版,穩定性較差,最好只用於桌面應用
3)CentOS
RHEL的社區克隆版本,免費版,穩定性很是好,適合服務器使用
Redhat 系列的包管理方式採用的是基於RPM包和YUM包的管理方式,包分發方式是編譯好的二進制文件
Redhat是國內使用人羣最多的Linux版本shell
社區企業操做系統(Community Enterprise Operating System Centos)
來自於Redhat Enterprise Linux 依照開放源代碼規定釋放出的源代碼所編譯而成;二者不一樣在於,CentOS並不包含封閉源代碼軟件windows
用戶能夠免費體驗到最新的技術和工具,而功能成熟後會被加入到RHEL系統中,所以也被稱爲RHEL系統的"試驗田"
由全球社區愛好者構建的面向平常應用的快速且強大的操做系統
Fedora(第七版本之前爲Fedora Core) 是一款基於Linux的操做兄臺你,也是一組維持計算機正常運行的軟件集合,其目標是建立一套新穎,多功能而且自由和開源的操做系統安全
德國著名的linux系統
對我的來講是徹底免費的,包括使用和在線更新,被評價爲最華麗的Linux桌面發行版,甚至超越WIN7 但它的優點毫不僅僅侷限於WIN7還有絢麗的用戶交互界面,其性能也毫不亞於其餘Linux桌面發行版bash
具備極高的自定製性,操做複雜,適合有經驗的人員使用
能爲幾乎任何應用程序或需求自動地做出優化和定製,追求極限的配置,性能,以及頂尖的用戶和開發者社區,都是Gentoo體驗的特色
Gentoo的哲學是:自由和選擇
Gentoo能成爲理想的安全服務器,開發工做站,專業桌面,遊戲系統,嵌入式解決方案或別的東西服務器
包括:
1.6.1)Debian
Debian是社區類Linux的典範,是迄今爲止最遵循GNU規範的Linux 系統,提供了近十萬種不一樣的開源軟件支持,在國外擁有很高的承認度和使用率
對於各種內核架構支持性良好,穩定性,安全性更有免費的技術支持
Debian最具特點的是:apt-get /dpkg包管理方式
Redhat的YUM也是在模仿Debian的APT方式;可是在二進制文件發行方式中,APT應該是最好的,
分三個版本分支:
A).unstable 爲最新的測試版本,其中包括最新的軟件包,可是也有相對較多的bug,適合桌面用戶
B).testing 通過unstable中的測試,相對較爲穩定,也支持了很多新技術
C).stable 通常只用於服務器,上面的軟件包大部分比較過期,可是穩定和安全性都很是的高
1.6.2)Ubuntu
是一款基於Debian派生的操做系統(嚴格來講不能算一個獨立的發行版本),對新款硬件具備極強的兼容能力
特色:
界面很是友好,容易上手,對硬件支持很是全面;最適合作桌面系統的Linux發行版本
同時Ubuntu也可用於服務器領域
目標:爲通常用戶提供一個最新的,同時又相對穩定的主要自由軟件構建而成的操做系統網絡
安裝主要步驟截圖:
session
echo 'HISTTIMEFORMAT ="%F %T `whoami` " ' >> /etc/bashrc
1)一切都是一個文件(包括硬件)架構
不只普通的文件,目錄、字符設備、塊設備、 套接字等在 Unix/Linux 中都是以文件被對待;雖然類型不一樣,可是對其提供的倒是同一套操做界面。
2)小型,單一用途的程序
程序和可執行文件不要太複雜,這樣才能保證了linux內核的高效運行
3)接程序,共同完成複雜的任務
複雜的任務能夠經過鏈接多個簡單的程序實現複雜的功能。對於複雜的功能linux經過許多簡單程序的組合等方式實現,在保證簡單功能的高效性的同時,複雜的程序也必然是高效性的
4)避免使人困惑的用戶界面
linux是開源的,不管什麼問題均可以經過簡潔的命令行實現 排錯,修改系統的配置,一切都是簡潔明瞭爲基礎
5)配置數據存儲在文本中
linux全部的配置文件都存放在文本配置文件當中,不管什麼配置修改都只需修改其配置文件便可,配置文件時文本形式的只需任意一款文本編輯器修改便可而不是相似於windows那樣將保存在註冊表中,而且windows的註冊表須要專門的二進制或十六進制的編輯器纔可編輯,修改比較複雜編輯器
1).echo
用途:輸出內容到標準輸出,以空白分割字符串,而且後面增長換行
使用範圍:RedHat/Ubuntu/CentOS/Fedora
語法: echo [-neE] [arg ...]/echo [--help] [--version] 參數: -n 輸出字符串 不換行 -E 禁止"\"轉義(默認選項) -e 打開"\"的轉義,字符串中出現如下字符,會加以處理 \a 發出警告聲 \b 至關於按退格鍵(backspace) 前提"\b"後面存在字符 \c 不換行輸出 "\c"後面不存在字符的狀況下,至關於-n \e 至關於\033 \f 換行 光標停在原處 【\v 與\f相同】 \n 換行,光標移動行首 \r 回車 光標移動首行,不換行 \t tab 製表符 \\ 插入\字符 \0nnn 八進制表明的ASCII字符 \xHH 十六進制表明的ASCII字符 實例1:顯示變量 [08:25:29 root@CentOS7 ~]#echo '$PATH' $PATH [08:26:18 root@CentOS7 ~]#echo "$PATH" /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 單引號、雙引號、不帶引號之間的區別 單引號: 將單引號內的內容原樣輸出 雙引號: 把雙引號內的內容輸出出來;若是內容中有命令,變量等,會先把變量,命令解析出結果,而後再輸出最終內容來。 雙引號內命令或變量的寫法爲`命令/變量`或$(命令/變量) 無引號: 若是內容中有命令,變量等,會先把變量,命令解析結果,而後在輸出最終內容來, 若是字符串中帶有空格等特殊字符,則不能完整的輸出,須要改加雙引號,通常連續的字符串,數字,路徑等能夠用,不過最好用雙引號替代之 因此,shell中字符串的聲明,能夠用雙引號,單引號,或者不用引號,但當內容中包含空格,則最好用雙引號。而命令或變量的寫法爲`命令或變量`或$(命令或變量),該用法不能在單引號中生效。 實例2 #換行 [08:40:29 root@CentOS7 ~]#echo -e "hello\fworld" hello world [08:52:05 root@CentOS7 ~]#echo -e "hello\vworld" hello world [08:52:15 root@CentOS7 ~]#echo -e "hello\nworld" hello world [08:52:32 root@CentOS7 ~]#echo -e "hello\rworld" world #\b [08:52:37 root@CentOS7 ~]#echo -e "123\b" 123 [08:54:07 root@CentOS7 ~]#echo -e "123\b456" 12456 #\c [08:35:07 root@CentOS7 ~]#echo -e "123\c" 123[08:35:15 root@CentOS7 ~]#echo -n "123" 123[08:35:37 root@CentOS7 ~]#echo -e "123\c456" 123[08:35:54 root@CentOS7 ~]#
2).screen
建立一個新screen會話
screen -S [session]
加入screen 會話
screen -x [session]
退出並關閉screen會話
exit
剝離當前screen會話
ctrl+a,d
顯示全部已經打開的screen會話
screen -ls
恢復某個screen會話
screen -r [session]
3).date
用途:顯示或設定系統的日期與時間
語法: date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]] -u : 顯示目前的格林威治時間 -d datestr : 顯示 datestr 中所設定的時間 (非系統時間) -s datestr : 將系統時間設爲 datestr 中所設定的時間 --help : 顯示輔助訊息 --version : 顯示版本編號 在顯示方面,使用者能夠設定欲顯示的格式,格式設定爲一個加號後接數個標記,其中可用的標記列表以下 時間方面: % : 印出 % %n : 下一行 %t : 跳格 %H : 小時(00..23) %I : 小時(01..12) %k : 小時(0..23) %l : 小時(1..12) %M : 分鐘(00..59) %p : 顯示本地 AM 或 PM %r : 直接顯示時間 (12 小時制,格式爲 hh:mm:ss [AP]M) %s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前爲止的秒數 %S : 秒(00..61) %T : 直接顯示時間 (24 小時制) %X : 至關於 %H:%M:%S %Z : 顯示時區 日期方面: %a : 星期幾 (Sun..Sat) %A : 星期幾 (Sunday..Saturday) %b : 月份 (Jan..Dec) %B : 月份 (January..December) %c : 直接顯示日期與時間 %d : 日 (01..31) %D : 直接顯示日期 (mm/dd/yy) %h : 同 %b %j : 一年中的第幾天 (001..366) %m : 月份 (01..12) %U : 一年中的第幾周 (00..53) (以 Sunday 爲一週的第一天的情形) %w : 一週中的第幾天 (0..6) %W : 一年中的第幾周 (00..53) (以 Monday 爲一週的第一天的情形) %x : 直接顯示日期 (mm/dd/yy) %y : 年份的最後兩位數字 (00.99) %Y : 完全年份 (0000..9999) 硬件時間 hwclock /clock -s /--hctosys 以硬件時間校訂系統時間 -w /--systohc 以系統時間校訂硬件時間 實例1: [14:00:47 root@CentOS7 ~]#date +%-H:%-M:%-S 14:1:4 [14:01:04 root@CentOS7 ~]#date +%H:%M:%S 14:01:07 以上二者的區別是:第一種格式,會省略時間多於的0 實例2: [14:01:11 root@CentOS7 ~]#date -d @1509536033 Wed Nov 1 19:33:53 CST 2017 實例3:顯示日曆 [14:03:39 root@CentOS7 ~]#cal -y 實例4: [14:10:40 root@CentOS7 ~]#date Sun Jun 14 14:10:42 CST 2020 [14:10:42 root@CentOS7 ~]#date +%c Sun 14 Jun 2020 02:10:48 PM CST [14:10:48 root@CentOS7 ~]#date +%D 06/14/20 [14:11:53 root@CentOS7 ~]#date +%x 06/14/2020 [14:12:00 root@CentOS7 ~]#date +%T 14:12:08 [14:12:08 root@CentOS7 ~]#date +%X 02:12:15 PM [14:15:14 root@CentOS7 ~]#date +%T%n%D 14:15:18 06/14/20 [14:15:18 root@CentOS7 ~]#date '+%B %d' June 14 [14:19:09 root@CentOS7 ~]#date --date '12:34:56' Sun Jun 14 12:34:56 CST 2020
4).ifconfig
用途:顯示或設置網絡設備的狀態
ifconfig [網絡設備][down up -allmulti -arp -promisc] [add<地址>][del<地址>] [<hw<網絡設備類型><硬件地址>] [io_addr<I/O地址>] [irq<IRQ地址>] [media<網絡媒介類型>] [mem_start<內存地址>] [metric<數目>] [mtu<字節>] [netmask<子網掩碼>] [tunnel<地址>] [-broadcast<地址>] [-pointopoint<地址>] [IP地址] # 參數說明: add<地址> 設置網絡設備IPv6的IP地址。 del<地址> 刪除網絡設備IPv6的IP地址。 down 關閉指定的網絡設備。 <hw<網絡設備類型><硬件地址> 設置網絡設備的類型與硬件地址。 io_addr<I/O地址> 設置網絡設備的I/O地址。 irq<IRQ地址> 設置網絡設備的IRQ。 media<網絡媒介類型> 設置網絡設備的媒介類型。 mem_start<內存地址> 設置網絡設備在主內存所佔用的起始地址。 metric<數目> 指定在計算數據包的轉送次數時,所要加上的數目。 mtu<字節> 設置網絡設備的MTU。 netmask<子網掩碼> 設置網絡設備的子網掩碼。 tunnel<地址> 創建IPv4與IPv6之間的隧道通訊地址。 up 啓動指定的網絡設備。 -broadcast<地址> 將要送往指定地址的數據包當成廣播數據包來處理。 -pointopoint<地址> 與指定地址的網絡設備創建直接連線,此模式具備保密功能。 -promisc 關閉或啓動指定網絡設備的promiscuous模式。 [IP地址] 指定網絡設備的IP地址。 [網絡設備] 指定網絡設備的名稱。 # 啓動關閉指定網卡 ifconfig eth0 down ifconfig eth0 up # 啓用和關閉ARP協議 ifconfig eth0 arp //開啓 ifconfig eth0 -arp //關閉 # 設置最大傳輸單元 ifconfig eth0 mtu 1500 //設置能經過的最大數據包大小爲 1500 bytes
5).export
用途:用於設置或顯示環境變量
export 可新增,修改或刪除環境變量
export 的效力僅限於該次登錄操做
# 語法: export [-fnp][變量名稱]=[變量設置值] 參數說明: -f 表明[變量名稱]中爲函數名稱。 -n 刪除指定的變量。變量實際上並未刪除,只是不會輸出到後續指令的執行環境中。 -p 列出全部的shell賦予程序的環境變量。