歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 馬哥筆記(未整理)

馬哥筆記(未整理)

日期:2017/3/1 12:10:30   编辑:關於Linux
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" -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
Copyright © Linux教程網 All Rights Reserved