第一、Linux 基礎
CPU架構:
x86
x64 (amd64)
m68000,m68k
arm
ultrasparc
Power;PowerPC(aix) (IBM公司設計RISC的CPU)
MIPS,ARM(多用在網關,機頂盒,便捷式設備的處理)
alpha (HP公司的)
POSIX:(Portable Operating System Interface)
window和linux都遵循POSIX ,俗稱的API
硬件–> 驅動—> kernel –》操作系統(API(SysCall,LibCall))
硬件部分
Unix-like 開源協定:
GPL:General Public License (強制開源)
copyright,copyleft
LGPL:lesser GPL (稍微)
GPLv2,GPLv3
FSF:Free
BSD:
Apache :只要不以原作者名義商業化,都可以不開源,商業用途
ASF:Apache Software Foundation
雙線授權:
Community : 遵循開源協定
商業授權:
Enterprise(企業版) (針對企業提供付費服務,維護)
程序管理:
相關開源協議的介紹
http://www.awflasher.com/blog/archives/939
https://www.oschina.net/question/54100_9455
程序的組成部分:
二進制程序(就是主程序)
配置文件(定制化配置,以方便特定運行服務)
庫文件(為二次開發提供的接口)
幫助文件:(使用說明)
程序包管理器:
1,程序的組成文件打包成一個或者幾個有限文件
2,安裝:
3,卸載
4,查詢
各種系統安裝包管理器
Debian :dpkg,apt-get
RedHat: rpm ,yum,dnf(yum升級版)
S.u.S.E: rpm,zypper
ArchLinux: port
Gentoo: 邊編譯邊安裝
LFS: Linux From Scratch (完完全全顯示了系統編譯-創建的過程)
Kali:
硬件資源的復用創建出了虛擬機
CPU的復用:時序
內存的復用:空間切片
硬盤的復用:空間
I/O的復用:時序
網卡的復用 :時序
ps:目前主流的虛擬化軟件:vmware workstations;virtualbox
終端(terminal)用戶界面
gui:graphic user interface
gnome ked
cli:command line interface
bash ,ksh ,csh,
終端分類、操作和切換:
物理終端:控制臺,console
虛擬終端:6個 稱為:tty
ctrl+alt+F[1-6]
圖案終端:
CentOS 6
Ctrl+Alt+F7
CentOS 7
在相應的虛擬終端上啟動
串行終端:ttyS
偽終端:pty
遠程連接:
ssh協議:secure shell
命令:ss -tnl
查看系統是否監聽于tcp協議的22號端口
]# ip addr list
]# ifconfig
如果是遠程安裝的,需要遠程連接,確保關閉防火墻
]# iptables -L -n # 查看防火墻是否關閉
關閉防火墻
CentOS 7 :
~]# systemctl disable firewalld.service
~]# systemctl stop firewalld.service
CentOS 6:
~]# service iptables stop
~]# chkconfig iptables off
第二、Linux 重要思想:
1,一切皆文件(硬件設備都是文件表示)
物理終端:/dev/console
虛擬終端:/dev/tty#[1-6]
串行終端:/dev/ttyS#
偽終端:/dev/pts/#
2,有眾多功能單一的程序組成:一個程序只做一件事,組合小程序完成復雜任務
3,盡量避免跟用戶交互
目標:易于以編程的方式實現自動化
4,使用文本文件保存配置信息
CLI接口
命令行[smile@www ~]#
prompt(提示符的解釋) 相關環境變量是PS1
#,管理員,$普通用戶
建議用非管理員用戶登錄,安全操作起見 執行管理操作,臨時切換就行
幾個基礎命令:
tty:查看當前終端設備
ifconfig或者ip addr list:查看活動接口的ip地址
echo:回顯
ping 探測網絡的目標地址和當前的主機之間的連通性
關機命令:
CentOS 7
~]# systemctl poweroff
~]# systemctl reboot ; 重啟
stallman:
自由含義:自由學習和修改,自由使用;自由分發,自由創建衍生版
思考:文件是什么?眾多文件如何組織起來?
目錄:路徑映射
文件:存儲空間存儲的一段流式數據,對數據可以做到按名存取
文件系統:層級結構
/: 原初節點,倒置樹狀結構
文件路徑表示: 相對路徑(從當前位置出發)和絕對路徑(從根位置出發)
文件名使用法則:
嚴格區分字符大小寫;目錄也是文件,同一個目錄下,兩個文件不能同名
支持使用除“/"以外的任意字符
最長不能超過255個字符
basename:最右側的文件或者目錄名
dirname:basename左側的路徑
程序的組成部分:二進制程序文件,庫文件,配置文件,幫助文件
前兩者一般都是二進制文件,后兩個是文本文件
庫文件:不能獨立執行,只能被調用時執行
命令存放的目錄:/sbin, /bin, /usr/bin, /usr/sbin, /usr/local/bin,/usr/loacl/sbin
庫文件: /lib,/lib64,/usr/lib,usr/lib64
注意:并非所有的命令都有一個在某個目錄里有一個對應的可執行文件
命令可兩類:
shell自帶的命令, 內置命令(builtin)
獨立的可執行程序文件,文件名即命令:外部命令
命令語法的基本格式
Command OPTIONS ARGUMENTS
shell 程序是獨特的程序,負責解析用戶提供的命令
環境變量: eg:HOME,PATH
查看命令的類型:
type COMMAND
OPTIONS: 指定命令運行的特性
注意:1,有些命令的選項沒有-,多個選項可以合并;2,–help,這種長選項不能合并;3,有些選項可以帶參數,此稱為選項參數
ARGUMENTS:命令的作用對象,命令對什么生效
第三、如何獲取幫助?
內部命令:help COMMAND
外部命令:使用手冊 manual (man COMMAND)
手冊所在目錄:/usr/share/man
SECTION:
NAME:功能性說明
SYNOPSIS: 語法格式
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:使用案例
AUTHOR:作者
BUGS:報告程序的BUG方式
SEE ALSO:參考
SYNOPSIS:
[]:可選內容
<>:必須提供的內容
a|b|c: 多選一
….同類內容可出現多個
使用手冊:壓縮格式的文件,并有章節之分
/usr/share/man1,man2,man3
1,用戶命令
2,系統調用
3,C庫調用
4,設備文件及特殊文件
5,文件格式 (配置文件格式)
6,游戲使用幫助
7,雜項
8,管理工具及守護進程
查看命令有哪些章節
whatis COMMAND,有依賴數據庫: makewhatis(手動更新數據庫)
操作man手冊的閱讀方式
空格:向文件尾部翻一屏
b鍵:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:
回車鍵:向文件尾部翻一行
k:向文件首部翻一行
G:直到最后一行
1G:直到文件首行
#G:直到指定行
-M 選項 : 到指定目錄下面查找命令手冊并打開
info COMMAND: 獲取在線幫助文檔
README:程序相關信息
INSTALL:安裝幫助
CHANGES;版本更改信息
google搜索:
keyword filetype:pdf
keyword site:domain.tld
第四、Linux文件系統
1,文件名嚴格區分大小寫
2,文件名可以使用除/以外的任意字符
3,文件名長度不能超過255字符
4,以.開頭的文件是隱藏文件
.是當前目錄
..是上一級目錄
常用命令:
pwd:printing working directory (顯示路徑
cd:change directory 改變目錄(就是改變路徑
直接cd或者cd~ 直接到家目錄
在bash中,~表示家目錄
cd ~USERHOME 切換到USERHOME的家目錄
cd – 和上一級來回切換
$PWD:當前工作目錄
$OLDPWD:前次的工作目錄
ls:list 列出指定目錄下的內容
-a: 顯示所有文件(包含隱藏文件
-A:顯示除.和..之外的所有文件
-l:–long 顯示出詳細信息
-h,–human-readable 對文件大小單位換算,換算大小可能不是非常精確
-d,查看目錄本身,不是目錄內部內容
-r:逆序顯示
-R:遞歸顯示
cat:catenate 查看文本文件
-n :顯示行號
-E:顯示行結束符
tac:反過來顯示文本文件命令,和cat對比
file :determin file type 確定文件類型
查看文件類型
echo :回顯
-n:不換行
-e:執行轉義字符
單引號和雙引號的區別
單引號:強引用,變量引用不能被替換
eg:'$SHELL' 還是$SHELL
雙引號:弱引用,變量引用能被替換
eg:'$SHELL' 是SHELL
shutdown :halt ,power-off,reboot
OPTIONS:
-h:halt
-r:reboot
-c:cancel
TIME:
now
hh:mm
wall: 向所有終端發出信息
日期相關的命令
Linux:系統啟動時從硬件讀取時間和日期:讀取完以后,就不在與硬件相關
還有就是和服務器時間同步時間
系統時鐘和硬件時鐘
date: 查看系統時鐘
顯示日期:date [OPTION][+FORMART]
%s:從1970年1月1日(Unix元年)0分0秒到現在所經過的秒數
設置日期:date [MMDDhhmm[[CC]YY][.ss]]
clock: 顯示和設置硬件時鐘
-s: –hctosys 以硬件為準,同步系統時間
-w: –sysyshc: 以系統為準,同步硬件時鐘
hwclock和clock同一個命令
cal :查看日歷
原創文章,作者:不忘初衷,如若轉載,請注明出處:http://www.www58058.com/63341