NO IMAGE

RH442:硬體執行的基本原理和作業系統的基本原理。
軟體調優:
硬體級別:調記憶體的使用,sishi的使用。
基礎知識很重要。
學習新知識的 
RAM:random-access memory隨機存取儲存器。
ROM:read-only memory   只讀儲存器。
CPU:處理器、控制器、暫存器
外圍裝置通過不停地中斷,來和計算機進行溝通。
前端匯流排:FSB:
南橋裝置:距離CPU比較近,低速匯流排控制器,早期是連線大量I/O裝置:鍵盤滑鼠,硬碟。南橋彙總以後傳給北橋,北橋再穿給CPU。
北橋裝置 : 高速匯流排控制器,早期是連線記憶體的。現在,記憶體直接連線CPU,不再連線北橋,速度更快。北橋只負責連線南橋,以及其他的匯流排的控制。
在北橋上接固態硬碟,來完成,快速服務。
程式區域性性原理,時間,空間區域性性。
機器語言:二進位制。
組合語言(微碼):需要編譯器,將微碼轉換為機器語言。跟硬體晶片的結合程度非常緊密,低階語言。
高階語言:先翻譯成組合語言,再編譯成機器語言,然後機器才能識別,然後才能執行。結合一些額外的機制,來彌合多種晶片之間的不同。(不同裝置之間)需要中間層API(應用程式設計介面application  program interface),不同硬體平臺用(用組合語言寫的軟體)軟體虛擬出來的環境是相同的,向上還有ABI。

庫:彌合底層硬體不同。
一堆的程式,沒有執行入口,可以被其他程式呼叫執行,提供統一的呼叫機制,只提供呼叫介面,(呼叫:call)
System call(底層:將會有上層的程式設計師決定他的應用機制,越底層,變化機制越少):作業系統為了儘可能簡化他的呼叫機制,所以做的非常底層。將底層系統呼叫一個或者多個功能封裝起來,做成更高階的介面(就是所謂的庫APL)。
系統呼叫
程式不能直接和硬體打交道,只能通過作業系統和硬體交流

硬體架構(CPU架構型別):
ARM (移動裝置android,ios):
x86(Inter和AMD 32位系列):
x64(64位):
安騰
Alpha(惠普公司)
UltraSparc
Power(IBM)
M68000,M68K
PowerPC(蘋果,摩托羅拉,IBM三家)
CPU主頻發展遇到了瓶頸,最多發展到了4G Hz,現在是朝多核發展,

OS:
Windows
Linux
Unix:
HP-UX(惠普)
Solaris(sun公司)
AIX(IBM)
Sco unix(sco公司)
Unixware
OS/2

作業系統:
      
 
 —–應用程式—-
                 
 ——-庫——-

 —–作業系統—-(系統呼叫)

 ——-硬體——

批處理,
多工:
切割CPU,Memory,儲存執行緒,
作業系統負責這些事情:執行在硬體上,負責管理硬體資源,將硬體資源所提供的計算能力,CPU切割成多個片,記憶體分成多個段,分配給多個不同的程式,並且在他們之間完成協調。還負責完成一個程式的啟動,終止,回收等工作,還要負責程式(程序:執行的程式,process處理過程 有生命週期,從啟動到結束)的切換等工作。通用軟體,不負責完成具體的工作,只是負責協調其他程式的工作。
CPU:(時間驅動的)
:計算時間Silce(切成時間片)
假設:5ms
Memory(分段):
:1.2段
:虛擬地址空間(32位,4G個地址空間。64位,4G*4G個)
程序:正在進行的程式。

程式設計師就是負責呼叫別人所提供的功能,然後去開發程式的的這樣一個過程,
造文字的概念,如果一個文字已經有了,我們拿來直接用就行了,沒必要再重新造一個文字。
這種機制就是:將那種公共的功能做成公共的(共享庫)庫。

===計算機硬體===:處理器,控制器,儲存器,輸入、輸出裝置,
==協調硬體程式==:(作業系統operating system)(作業系統的核心)核心kernel:負責管理硬體資源,並且將硬體資源虛擬成其他樣子,提供給上層所需要執行的程式。統一的資源管理者。程式執行是通過一個個的系統呼叫(system call)(一種非常底層的實現)來完成的,
====庫====:library,API(Application Program Interface),呼叫庫
=應用程式=:互動式程式、
 
記憶體分為三部分:BIOS,kernel space,多個程式共享記憶體

作業系統的外殼:shell
GUI:圖形使用者介面
CLI:命令列使用者介面

核心的功能:
程序管理
記憶體管理
檔案系統
網路功能
硬體驅動
安全機制

批處理系統:
job1$$$job2$$$……..

Mainfram(大型機)
GE(美國的通用電器公司),Bell(美國的電報電話公司ATMT的貝爾實驗室),MIT(人工智慧實驗室)共同研發多工,多使用者的系統(multice)。用組合語言開發的。

生產計算機的公司:
除了IBM外,還有DEC,digital equipment co-operation

PDP-系列計算機
vax-系列

Ken:
space Travel遊戲
在PDP7上用組合語言寫了一個平臺執行了他的遊戲。
這個平臺(系統)就是Unice –> Unix

B語言(指令碼語言):引入靜態變數,指標,和。。。—>  C語言 
Ken和 同事 用 C語言 研發了 Unix 系統

Ken  1976年,到加州大學伯克利分校  任教,
其中一個著名的研究生Bill Joy: BSRG團體(作業系統研究小組)研究Unix:改進,修復Bug,提供新功能。  
釋出新的 Unix 版本:BSD(Berkeley System Distribution)

貝爾實驗室:Unix 版本: system V 

1981年,PC機誕生,CPM系統,

西雅圖:1981年Microsoft成立:開始賣basic語言的編譯器,包裝發行賣Xenix(Unix).後來,
PC機上的系統:
CP/M–>DOS(單使用者,單任務)

JOBS(喬布斯):
PC機(裝的Unix)蘋果,apple1,

喬布斯去了Xerox公司:影印機
PARK實驗室:研發出了滑鼠,以及基於圖形化操作的作業系統。
喬布斯買走了它們。
研發出了apple2(圖形化作業系統),
比爾蓋茨,偷走了apple2 ,研發了Windows,
Unix研發商醒悟,不再打口水仗。BSD解散,留下了:FreeBSD專注於執行在PC機上,OpenBSD專注於安全,NetBSD專注於服務.

蘋果系統的核心:Unix,到今天為止,蘋果公司用的都是FreeBSD的核心。

 _一個企業如果只有技術,而經營不善的話,最終只有被收購的命運。做人也是一樣,不能只埋頭學習,還要擡頭看路。
 |
 |
大概2010年被Oracle公司收購67億美元
Sun MicroSystem:
Bell Joy成立的公司;
生產當時的工作站Work station,
有自己獨立的作業系統,sun OS –> Solaris

windows 收購DEC,一個技術越流行,招收一個技術人員的成本越低
開發了,基於VMS的windows–>windows NT
windows的技術基本都是別人3.5年前棄之不用的技術,蘋果公司很多強大的技術包裹絢麗的介面,都是依靠強大硬體的計算能力來實現的,現在的許多圖形工作站,一般都是蘋果機。

Unix商業化後,荷蘭一大學教授 安德魯 開發了一系統——Minix 用於上課。
但是系統不相容,對於每個機器必須開發各自的驅動,很麻煩。
他的一個學生linus,開始用Minix,後來那個學生對於教授的固執不滿,自己開發了一個系統——linus(後更名為linux),並且公開該系統,允許全球的人更改,那些更改的人只需要把改的系統反饋一下就好。然後該系統就迅速火起來了。
linux火起來,不是linux本身有多厲害,而是linux的思想符合了歷史的契機。

80年代,美國麻省理工學院一教授—-stallman倡導,Freedom,受到好多人支援
成立一個組織:
GUN : GNU is Not Unix
編寫了一個宣言(準則):
GPL:General Public License(任何人和組織在應用我們提供的原始碼後,必須把應用更改之後的原始碼公開,否則視為侵權)
後來:
LGPL:Lesser GPL 
GPLv2、GPLv3(嚴苛)

其他組織也有協定(比較寬泛):such as : BSD , Apache  (相對比較流行)

開源:開放原始碼(Open Source)

自由:
自由獲取、自由修改、自由學習
自由並不意味著免費。

stallman為這個組織還貢獻了許多著名的軟體:
Emacs:文字編輯器
gcc: GNU C Complier
bash:

linux : glibc,gcc,  受到了全球的黑客的親淶,併為他開發了大量的軟體。

他叫GNU/Linux.
他們的軟體都是C原始碼。需要編譯才能執行。

ABI:Application Binary Interface應用二進位制介面

這個系統需要編譯,才能用,所以就出現了相應的第三方組織:負責編譯linux核心和各種外圍應用程式,並且將它們打包發行成為一個可安裝的便捷的linux。
這種組織包括:
1993年,RedHat(在北美和中國是非常流行的)
1991年,SLS
1992年,德國Debian(高階使用者用的較多)
。。。,德國SUSE(在歐洲非常流行)
他們本身都不是linux的開發者。他們被稱為linux的發行(release)商。他們只是負責將原始碼格式的linux在通用的計算機平臺上,編譯成通用的格式,使得其他人拿到以後可以在大多數硬體平臺上安裝並使用。   

每個發行版的linux包括kernel和軟體:因而軟體管理器應運而生,
Debian,提供了:dpt
RetHat,模仿Debian提供了:rpm紅帽軟體包管理器

紅帽
收錢,賣的是服務。讓人很不爽,於是出現了Cent OS
開始個人版2003終止服務,並把他捐獻給Fedora,後開發行企業版。

Fedora:更新很快

Mandriva:也是基於紅帽個人版的二次發行版本,介面做的很好。

Cent OS:(國內用的最多)
Community ENTerprise OS 

(基於SLS)SUSE: –>已經被Novell收購(他以前的作業系統Netware)有兩個版本:SUSE 和 Open SUSE

Debian:技術最先進,唯一不受商業組織支援的系統,他的所有者和負責維護Debian的,統統來自於網際網路,大家自發聯合起來。最難用。
基於Debian的二次發行版本:
Ubuntu、Mint

linux核心也有版本:最新4.1.5
REHL也有自己的版本3.0 ,4.0 ,5.8 ,7.0:

/——————\
linux的基本原則:
1.由目的單一的小程式組成:組合小程式完成複雜任務
2.一切皆檔案:
3.儘量避免捕獲使用者介面:
4.配置檔案儲存為純文字格式:

GUI介面:
Gnome:C
KDE:C
XFace:嵌入式平臺上的輕量級作業系統,比如手機上,
CLI介面:
sh
bash
csh
zsh
ksh
tcsh

命令提示符:prompt,bash(shell)
#:root
$:普通使用者
命令:

命令格式:
命令 選項 引數
選項:
短選項: –
多個選項可以組合:ls -a -l = ls -al
長選項: —
通常不能組合
引數:
命令的作用物件
有多個引數時,用空格隔開

作業系統的使用憑證:進入作業系統需要登入
redhat嚴格區分大小寫

虛擬終端(teminal):Ctrl Alt (F1-F6)
進入圖形介面:
命令:startx &

切換使用者:
假設有這幾個使用者:root、student、visitor
su:switch user 
linux重要哲學思想:能簡寫絕不全些
命令:su [-l] student
[…]表示可省略

修改密碼:
密碼;passwd

密碼設定規則:
1.使用4種類別字元中的至少三種
2.足夠長,大於七位
3.使用隨機字串
4.定期更換
5.迴圈週期足夠大

RHCE RHCA shell程式設計 MySQL Web叢集 NoSQL Hadoop Hbase Openstack

—————————————————————————————————————————
2-1

GUI:Graphic User Interface
windows
X-window
Gnome
KDE
XFace

CLI:Command Line Interface
sh
bash
ksh 
zsh
tcsh

IDE:整合開發環境
dll(庫檔案):動態連結庫(Dynamic Link Library)

linux的庫上叫:( .so )share object 共享物件 

login:
使用者名稱:使用者ID

認證機制:Authertication
授權:Authorization
審計:Audition(日誌)

命令提示符:prompt
命令:
magic number:魔數(程式的執行入口)

#!/bin/bash

# command options… arguments…

命令
選項:
短選項 
長選項 
引數: 

list:ls
列出、列表
列出指定路徑下的 所有目錄或者檔案

資料夾:
目錄:也是一種檔案:路徑對映檔案

路徑:從指定起始點到目的地所經過的位置

檔案系統:file system

絕對路徑:
相對路徑:

目錄:working directory,current directory
FHS:檔案系統層級結構標準

ls:
-l 長格式:現實完整資訊 顯示(檔案型別(佔10個字元) )
檔案型別:
-:普通檔案(f)
d:目錄檔案(dictionary)
b:塊裝置檔案(block)
c:字元裝置檔案(character)
l:符號連結檔案(symbolic link file)
p:命令管道(pipe)
s:套接字(.socket)
檔案許可權:9位,每三位一組,rwx(讀,寫,執行),沒有的話用-表示
檔案硬連結的次數:
檔案的屬主(所有者):owner
檔案的屬組:group
檔案大小(size):預設單位是位元組
時間戮(timestamp):最近一次被修改的時間
訪問:access
修改:modify
改變:change,metadata,後設資料
-h:做(記憶體)單位換算
-a:顯示以 . 開頭的隱藏檔案
. 表示當前目錄
.. 表示父目錄
-A:
-d:顯示目錄自身屬性

-i:index node,inode:顯示檔案縮影節點號
-r:逆序顯示
-R:遞迴(recursive)顯示

cd:change directory 
家目錄,主目錄:home directory
cd ~(USERNAME):進入指定使用者的家目錄(不加username進入的是自己的)
cd -:在當前目錄和前一次所在的目錄之間來回切換

linux命令型別:
內建命令(shell內建)
外部命令

環境變數:命名的記憶體空間
變數賦值:
NAME=Jerry
記憶體型別:
堆hig:
棧stack:存放本地宣告的一些變數和靜態變數    

PATH:使用冒號分隔的路徑(按次序的)
在快取(hash)中找檔案:時間複雜度O(1)

type:顯示指定命令屬於哪種型別

hash:快取
printenv:列印環境變數

rtc:實時時鐘
獲得命令的使用幫助:
內部命令:
help COMMAND
外部命令:
COMMAND –help
命令手冊:manual
man COMMAND(export LANG=en)
whatis COMMAND
分章節:有八個
1.使用者命令
2.系統呼叫
3.庫使用者
4.特殊檔案(裝置檔案)
5.檔案格式(配置檔案的語法)
6.遊戲
7.雜項:miscellaneous
8.管理命令(/sbin,/usr/sbin,/usr/local/sbin)

<>:必須給出的內容
[]:可選
…:多選一
{}:分組
0
MAN:
NAME:命令名稱及功能簡要說明
SYNOPSIS:用法說明,包括可用的選項
DESCRIPTION:說明每一個選項的意義
FILE:此命令相關的配置檔案
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外參照

翻屏:
向後翻一屏:SPACE
向前翻一屏:b
向後翻一行:ENTER
向前翻一行:k
查詢:
/KEYWORD:向後
?KEYWORD:向前
n:下一個
N:前一個

q:退出

練習:
使用date單獨獲取系統當前的年份、月份、日、小時、分鐘、秒

hwclock:顯示硬體時鐘
-w:將系統時間寫到硬體中去
-s:將硬體時間寫到系統中來

線上文件:
info COMMAND

google
apache,hadoop,
怎麼能把一個問題給別人講清楚,說明白

cal:(calendar)日曆

練習:
1、echo是內部命令還是外部命令?
2、作用?
3、如何換行顯示?

練習:
1、printf是內部命令還是外部命令?
2、作用?
3、如何顯示“the year is 2013. today is 26”為兩行

file命令及其用法

windows:PE
Linux:ELF

檔案系統:
rootfs:根檔案系統

FHS:檔案系統層級標準

/boot:系統啟動相關的檔案,如核心,initrd,以及grub(bootloader)
/dev:裝置檔案:
塊裝置:隨機訪問,資料塊
字元裝置:線性訪問,按字元為單位
裝置號:主裝置號(major)和裝置號(minor)
/etc:配置檔案
/home:使用者的家目錄,每一個使用者的家目錄通常預設為:/home/USERNAME
/root:管理員的家目錄
/lib:庫檔案
靜態庫: .a
動態庫:.dll  .so (share object)
/lib/modules:/核心模組檔案
/media:移動裝置的掛載點目錄
/mnt:掛載點的目錄,額外的臨時檔案系統
/opt:可選目錄,第三方程式安裝目錄
/proc:偽檔案系統,核心對映檔案,
/sys:偽檔案系統(關機以後變空),跟硬體裝置相關的屬性對映檔案
/tmp:臨時檔案  /var/tmp
/var:可變化的檔案
/bin:可執行檔案,使用者命令
/sbin:管理命令

/usr:shared,read-only
/usr/bin
/usr/sbin
/usr/lib 

/usr/local:
/usr/local/bin
/usr/local/sbin
/usr/local/lib 

命名規則:
1、長度不超過255個字元;
2、不能使用 / 當檔名
3、嚴格區分大小寫

相對路徑:相對於當前位置的查詢路徑
絕對路徑:相對於根目錄的查詢路徑

檔案管理
目錄管理
ls
cd 
pwd

mkdir:建立空目錄
-p:逐一建立(父到子)
-v:檢視詳細目錄
tree:檢視目錄樹

刪除目錄;rmdir(remove directory)
刪除空目錄
-p:從子到父刪除,刪到該目錄不為空目錄為止

檔案的建立和刪除:
touch:
-a
-m
-t 
-c 
檔案和目錄不能同名
stat:顯示檔案的狀態

建立檔案,可以使用檔案編輯器

ASCII:美國標準資訊交換程式碼

GB18030 GBK GB2313 Unicode 

刪除檔案:rm
-i:刪除前詢問是否刪除
-f:強制刪除
-r:遞迴刪除該目錄的所有檔案

複製和移動檔案:
cp:copy
cp:SRC(原始檔) DEST(目的地)
一個檔案到到一個檔案
多個檔案到一個目錄
-i:覆蓋前詢問是否覆蓋
-r:遞迴複製資料夾裡的所有檔案
-f:強制複製檔案
-p:複製連結,同事保持連結的連結屬性
-a:歸檔複製,常用於備份

mv:move
移動檔案
(還可以重新命名檔案)
mv SRC DEST

install
-d DIRECOTRY: 建立目錄
SRC DEST 
install -t DEST SRC …
只能複製檔案

執行程式
裝置管理
軟體管理
程序管理
網路管理

目錄管理:
ls,cd, pwd,mkdir, rmdir, tree

檔案管理:
touch, stat, file, rm, cp, mv, nano

日期時間:
date, clock, hwclock, cal

檢視文字:
cat, tac, more, less, head, tail 

cat(連線並顯示):
linux文字檔案行結束的標誌為$
windows的行結束符為$加換行符
-n:顯示行號
-e:顯示行結束符

tac:倒過來顯示文字

分屏顯示:
more,less
more:向後翻
less:類似man
head:檢視檔案的前N行
tail:檢視檔案的後N行(N預設是10)
-n :顯示n行
-f:檢視檔案尾部,不退出,等待顯示後續最賤至此檔案的新內容。

文字處理:
cut、join、sed、awk、

database:資料庫
關係型資料庫:
表:二維表

文字檔案也可以儲存資料庫:
用冒號或空格(分隔符)隔開
cut:
-d:指定欄位分隔符,預設是空格
-f:指定要顯示的欄位
-f 1,3  顯示1和3
-f 1-3  顯示1到3

文字排序:
sort:(預設ASCII表升序)
-n:數值大小(升序)排序
-r:降序
-t:欄位分隔符
-k:以哪個欄位為準進行排序
-u:排序後相同的行只顯示一次
-f:排序時忽略字元大小寫

(相鄰並且完全重複的行)

uniq:
-c:顯示檔案中行重複的次數
-d:只顯示重複的行

文字統計:wc(word count)
顯示(行數、單詞數、位元組數)
-l:只顯示行數
-L:最長的一行包含多少個字元
-m(-c):顯示字元數
-w:顯示單詞數

tr(字元處理命令):用於轉換或刪除字元
“<“輸入重定向
eg:tr “a-z” “A-Z” </etc/passwd
-d:刪除給定字串中的單個字元

文字處理:cat,more,less,head, tail, cut, sort, uniq, grep 
正規表示式
管道和重定向:> < >> <<
使用者、組、許可權
bash及其特性:
shell:外殼
GUI:Gnome,KDE,XFace
CLI:sh,csh,ksh,bash,tcsh,ksh
每個開啟的shell都是一個程序:
程序:在每個程序看來,當前主機上只存在核心和當前程序
程序是程式的副本,程序是程式執行的例項

使用者的工作環境:
bash: #: 
$:
shell:子shell

bash:
1.命令歷史
2.管道和重定向
3.命令別名
4.命令列編輯
5.命令列展開
6.檔名通配
7.變數
8.程式設計

命令列編輯:
Ctrl a:跳到命令列首
Ctrl e:跳到命令列尾
Ctrl u:刪除游標至命令列行首的內容
Ctrl k:刪除游標至命令列行尾的內容
Ctrl l:清屏

命令歷史:
檢視命令歷史:history
-c:清空命令歷史
-d:OFFSET [n]:刪除指定位置的命令
-w:儲存命令至歷史檔案中
環境變數:
PATH:命令搜尋路徑
HISTSIZE:命令歷史快取區大小

命令歷史的使用技巧:
!n:執行命令歷史中的第n條命令
!-n:執行命令歷史中的倒數第n條命令
!!:執行上一條命令
!(string):執行命令歷史中以指定string為開頭的命令
!$:引用上一個命令的最後一個引數
Esc, .:同上
Alt .:同上

命令補全:搜尋PATH環境變數指定的每個路徑下我們給出的字串開頭的可執行檔案,如果多於一個,可以給出列表,否則將直接補全;
路徑補全:搜尋我們給出起始路徑下的每一個檔名,並試圖補全;
Tab(敲一下:顯示唯一匹配命令或引數;敲兩下:顯示所有符合條件的命令或引數或路徑)

命令別名:
alias CMDALIAS=COMMAND [Options] {arguments}
在shell中定義的別名僅當在當前shell生命週期中有效,別名的有效範圍僅為當前shell程序
撤銷別名:unalias CMDALIAS

命令替換:$(COMMAND),`COMMAND`(反引號)

bash支援的引號:
“:命令替換
“”:弱引用,可以實現變數替換
”:強引用,不完成變數替換

把命令中某個子命令替換為其執行 結果的過程

檔名通配:globbing 
*:任意長度的任意字元
?:匹配任意單個字元
[]:匹配製定範圍內的任意單個字元[a-zA-Z0-9]
[^]:匹配指定範圍之外的任意單個字元
[:space:]:空白字元
[:punct:]:標點符號
[:lower:]:小寫字母
[:upper:]:大寫字母
[:alpha:]:字母
[:digit:]:數字
[:alnum:]:數字和大小寫字母

#man 7 glob

作業2:
1.思考:ls命令是否可以顯示某目錄的整體大小,即包括其內部的所有檔案的整體大小?
2.通過幫助手冊,學習使用du命令;
#du
-s
-h
3.通過幫助,學習read命令;
作業3:
描述GPL,BSD,Apache三個開源協定的大體聯絡及區別。
自由軟體
開源協定,版權描述

作業4:
1.如何獲取Linux當前最新的核心版本號?
官網:www.kernel.org
2.列出你所瞭解的Linux發行版,並說明其跟Linux核心的關係。
Linux,GNU/Linux,原始碼,編輯,編譯,連結,執行

發行版:Fedora,RedHat(CentOS),SUSE(opensuse),Debian(Ubuntu,Mint),Gentoo(給了我們編譯的可能性),LFS(Linux From Scratch(起跑線))

RedHat:通用格式

計算資源:
許可權
使用者,
使用者,容器,關聯許可權:使用者組,方便的指派許可權

使用者:識別符號
使用者組:識別符號

使用者、組、許可權:
安全上下文(secure context):
r,w,x

檔案:
r:可讀,可以使用類似cat等命令檢視檔案內容
w: 可寫,可以編輯或刪除此檔案
x:可執行,exacutable,可以在命令提示符下當作命令提交給核心執行

目錄:
r:可以對此目錄執行ls以列出內部的所有檔案。
w:可以再次目錄建立檔案
x:可以使用cd切換進入此目錄,也可以使用ls -l檢視內部檔案的詳細資訊:

rwx:
r–:只讀
r-x:讀和執行
—:無許可權

0 000:—:無許可權
1 001:–x:執行
2 010:-w-:寫
3 011:-wx:寫和執行
4 100:r–:只讀
5 101:r-x:讀和執行
6 110:rw-:讀寫
7 111:rwx:讀寫執行
使用者:UID(user ID),/etc/passwd
組 :GID(group ID),/etc/group 

影子口令:
使用者:/etc/shadow
組:/etc/gshadow

使用者類別:
管理員:0
普通使用者:1-65535(16位二進位制(有的高達32位二進位制))
系統使用者:1-499
一般使用者:500-60000

使用者組類別:
私有組:建立使用者時,如果沒有為其指定所屬的組,系統就會自動為其建立一個與其使用者名稱相同的組
基本組:使用者的預設組
附加組:額外組:預設組以外的其他組

程序(具有身份):tom tom
物件:rwxrw-r– jerry(屬主) tom(屬組) a.txt
tom:ls
/bin/ls
rwx(屬主)rw-(屬組)r–(其他)

account:登入名
password:密碼
UID:
GID:基本(其他)ID
comment:註釋
HOME DIR:家目錄
shell:使用者預設的shell

/etc/shadow
account:登入名
encrypted password:加密的密碼

加密方法:
對稱加密:加密和解密使用同一個密碼
公鑰加密:每個密碼都成對出現,一個為私鑰(secret key),一個為公鑰(public key)(公鑰加密,私鑰解密;私鑰加密,公鑰解密;)
單向加密,雜湊加密:提取資料特徵碼(存在即合理),常用於資料完整性校驗
1.雪崩效應(初始條件的微小改變,將引起結果的巨大變化)(蝴蝶效應:亞馬遜流域的一隻蝴蝶忽閃一下翅膀,可能會引起得克薩斯州的一場颶風)
2.定長輸出
MD5:Message Digest第5版(中文名為訊息摘要演算法第五版)(麻省理工學院的人工智慧實驗室研發的), 120定長輸出
SHA1:美國國家標準委員會,安全雜湊演算法第一版(Secure Hash Algorithm),160位的定長輸出(還有SHA256,SHA512)

useradd USERNAME(新增使用者)
groupadd GROUPNAME(新增使用者組)
使用者管理:
useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage
組管理:
groupadd,groupdel,groupmod,gpasswd
許可權管理:
chown,chqrp,chmod,umask

解析:名稱解析,www.sohu.com–>IP地址

chmod:修改檔案的許可權
修改三類使用者的許可權
chmod 774 test.py