1. 電腦硬體基本知識 CPU - 寄存器 - L1/L2/L3 - 記憶體 - 硬碟 - 互聯網下載/其他存儲介質傳輸 寄存器:如果是需要重覆執行的指令,就放到寄存器,不用每次都從記憶體去讀取 8個寄存器緩存:CPU是高速設備,記憶體是低速設備,CPU和記憶體做數據交互,就通過緩存來臨時存儲。 電腦的 ...
------------------
1. 電腦硬體基本知識
------------------
CPU - 寄存器 - L1/L2/L3 - 記憶體 - 硬碟 - 互聯網下載/其他存儲介質傳輸
寄存器:如果是需要重覆執行的指令,就放到寄存器,不用每次都從記憶體去讀取 8個寄存器
緩存:CPU是高速設備,記憶體是低速設備,CPU和記憶體做數據交互,就通過緩存來臨時存儲。
電腦的主要硬體:
CPU:
主頻:台式機 單核主頻 4.0Ghz 睿頻6.0Ghz
工藝:32nm 22nm 10nm 8nm,摩爾定律(戈登.摩爾)貝爾實驗室
架構:CPU的軟體,skylake
外星人、未來人類:P7 筆記本20萬。將台式機的硬體,放到筆記本里。
筆記本模具:藍天(代工)、微星(自產自用)。
Intel 英特爾(牙膏廠):
酷睿 Core(家用,自帶核心顯卡):
核心(超線程技術)
i3:雙核雙線程
i5:四核四線程,筆記本(雙核四線程)
i7:四核八線程
U 低電壓(低功耗)
M 移動版
Q 四核心
H 焊接在主板上(散熱好一些,但是不能拆卸)
K 不鎖倍頻
X 旗艦版
至強 Xeon(伺服器,不帶核心顯卡):
E3:單核主頻低,但是核心多。 主頻2.0, 6核12線程,主要是用來做多任務處理。
E5:
E7:
AMD :銳龍
記憶體:圓晶體顆粒、主控
優盤、記憶體、固態硬碟,都由圓晶體顆粒和主控組成。
頻率:1333MHZ 1600MHZ
4G 1333MHZ + 4G 1600MHZ 遵循水桶效益。
圓晶體顆粒廠商:三星、鎂光、台積電、東芝
金士頓、海盜船、威剛、三星、鎂光...
機械硬碟:磁頭,簇
5400rpm 7200rpm ,
60~80M/s 100M/s
IBM(硬碟業務出售給日立) - 日立(西部數據合併了日立的硬碟業務) - 西部數據(全資收購閃迪 )
三星的硬碟 - 希捷
顯卡:
英偉達 NVIDIA
GeForce 精視:
GTX 1080、980、780、690
1080Ti 公版,顯卡生產商發佈的顯卡版本
流處理器:
架構:
顯存:速度
華碩、索泰、技嘉、七彩虹。
AMD(ATI)
A卡,N卡:信仰。
網卡、音效卡:瑞昱 和 高通。
顯示器:戴爾、LG、三星、夏普、冠捷、京東方。
------------------
2. Unix 和 Linux的誕生
------------------
21世紀最偉大的科研機構 貝爾實驗室
(後來:從att拆分後,單獨成立一家公司:朗訊(商業化)和 貝爾實驗室(科研),阿爾卡特收購了朗訊:阿爾卡特-朗訊。阿爾卡特和諾基亞合併: 諾基亞阿爾卡特朗訊貝爾實驗室)
通信業務:愛立信、西門子、諾基亞、阿爾卡特
電信設備:思科、華為、中興
AT&T(美國電話電報公司) 成立一個科研單位。
貝爾實驗室:晶體管、C語言、Unix操作系統,通信、光、物理、化學...
誕生了8個諾貝爾獎得主,多個圖靈獎得主。
圖靈獎:電腦界的諾貝爾獎。艾蘭-圖靈 英國人。發明瞭機器自動去計算,最後破譯德軍Enigma密碼。人工智慧之父。
機器語言 - 彙編語言(符號語言)- 高級語言
UNIX :彙編寫的第一版。
BCPL(英國劍橋發佈一種編程語言) - B語言(編寫了改寫了UNIX) - C語言。
開始用C語言重寫了UNIX
intel :
8086 8bit、80286 16bit、80386 32bit CPU
UNIX 最早的源碼是開放,大學、機構、軍工都可以使用。
AT&T 申請版權,不能再隨便使用源碼。
UNIX BSD : 加利福尼亞大學 伯克利分校電腦中心 發佈的一款UNIX
Sun :Sun公司, Sun伺服器 + Sun OS, Java, 全部被Oracle收購,Solaris
GNU 組織:開源世界的領頭人。
GNU :GNU is Not Unix:宣揚自由軟體運動的一個組織。
GNU當時有很多自由軟體,Emacs,bash等,唯獨缺少一個操作系統。
GNU + Linux = 開源世界
Linus's UNIX = Linux
Linus 的主要產品:kernel(Linux的內核)、git(版本管理工具)、github(代碼托管網站)
Linux全部都是免費下載使用。
Ubuntu(在宣傳Linux的使用做了很大的貢獻):易用性,軟體的更新速度和維護速度很高。
CentOS:個人版的Redhat
Redhat:企業級的Linux,提供收費的技術解決方案
Debian
FreeBSD
OpenBSD
BT5/Kali:黑客必備的Linux
Ubuntu 16.04
年.月
04 :穩定版都是長期支持版(支持4~6年)
10 :過渡版本,開發版本(支持1年)
------------------
微軟的故事...
------------------
IBM: 國際商用機器公司
IBM PC機,缺一個操作系統,微軟接下了這個訂單。
MS-DOS: 5萬刀 買了 西雅圖軟體公司手上 一個操作系統 xxx-DOS,賣給了IBM
MS-DOS:磁碟操作系統,一直到 MS-DOS 9.0
Windows 比爾蓋茨,圖形化的操作系統
Windows 3.0 - 銷量非常非常廣泛,幾乎所有的家用電腦都運行 Windows
從此,微軟開始了他的壟斷之路。三流公司做產品、二流公司做設計、一流公司做標準。全世界的軟體公司都活在微軟的陰影之下。
2001 互聯網時代開始了,微軟開始走下路。
搜索、手機、移動互聯網,鮑爾默 。納德拉:移動為先雲為先。
現金牛:Windows、Office、Azure雲
矽谷,國外大企業玩死小公司:1.收購,2.收購不了打官司。
Windows 8 和 8.1
Windows XP,大家的電腦都很差,記憶體512M
Windows Vista 和 7
------------------
3. Linux的常用命令
------------------
Ubuntu
ls :列出當前目錄下的文件
pwd :列印當前目錄的絕對路徑
touch 創建指定文件
rm 刪除指定文件
mkdir 創建指定空目錄
rmdir 刪除指定空目錄
rm -rf 刪除非空目錄 -r 表示遞歸刪除,-f 強制執行
clear / ctrl + l 快速清屏
------------------
4. Vim的基本操作
------------------
Vim 是Vi 的升級版。
主要有兩種模式:
預設打開文件後,是命令模式
編輯模式:
按一下鍵進入編輯模式:
i 在當前游標前,進行編輯
I 在當前行的行首,進行編輯
a 在當前游標後,進行編輯
A 在當前行的行尾,進行編輯
o 在當前行的下麵開闢新行,進行編輯
O 在當前行的上面開闢新行,進行編輯
命令模式:
在編輯模式下,按ESC鍵進行命令模式
h : 向左
j : 向下
k : 向上
l : 向右
x 刪除游標所在的字元
X 刪除游標前一個字元
dd 刪除當前行字元
D 刪除當前行游標和游標之後的所有字元
u 撤銷上一步操作
r 替換當前游標的字元
gg 就是回到文件的開始位置
G 到文件的結尾所在行的開始
:w 保存數據
:q 退出文件(如果文件沒保存則提示出錯)
:q! 強制退出,打開後寫入的數據則不保存。
:wq 保存並退出
:x 保存並退出
shift + zz 保存並退出
yy 複製當前行
p 在下一行粘貼複製的內容
使用命令的時候,可以按下ESC鍵終端當前命令
dd 刪除/剪切當前行字元
yy 是複製當前行
p 是游標所在行的下麵一行粘貼 複製/剪切的內容
D 刪除/剪切 當前行游標和游標之後的所有字元
p 在游標的位置後進行粘貼(不會換行)
u 是撤銷
ctrl + r 是反撤銷
y1j :從游標所在行開始,向下複製1行,總共2行
y2k :從游標所在行開始,向上複製2行,總共3行
視圖模式:
v 進入視圖模式,可以選中多行內容,只處理被選中的部分
ctrl + v 進入視圖模式,可以 按區域塊 選中,只處理被選中的部分
v G : 從當前位置開始,向後選中全部內容
man ls
空格:走一屏幕
回車:走一行
b :回滾一屏幕
q :退出
終端的命令技巧:
方向鍵 上下 切換之前的命令
方向鍵 左右 移動游標
ctrl + a : 移動游標到命令的頭部
ctrl + e : 移動游標到命令的尾部
善用tab鍵補齊文件名/目錄名
ctrl + c :立刻終止當前程式/行為
ctrl + u 清除當前的命令內容
ls -a 顯示所有文件,包括隱藏文件
ls -l 顯示文件的詳細信息
例如:-rw-rw-r-- 1 python python 1466 9月 11 14:52 a.py
第一個字元表示文件類型:-普通文件,d表示目錄
rwx rw- r--
文件所有者許可權 所屬用戶組的許可權 其他用戶的許可權
r read 表示讀許可權
w write 表示寫許可權
x execute 表示執行許可權
1 表示硬鏈接數量 :相當於文件拷貝,拷貝越多,硬鏈接就越多,刪除一個拷貝,硬鏈接就減少一個。
python python : 用戶名 和 組名
1466:文件大小,單位 Byte
9月 11 14:52 :表示文件的最後修改時間
a.py :文件名
cp :拷貝
cp 源文件 拷貝後的文件
cp -r 源目錄 拷貝後的目錄
mv : 移動/重命名 文件/目錄
mv 源文件/目錄 移動後的文件名/目錄名
cat:在終端上顯示文件里文本內容,適用於文本內容較少時候使用
-n 可以顯示行號
cat -n xxx.py
more:在終端上分段顯示內容,適用於內容較多的時候使用
grep : 在文本里查找指定的內容
grep "文本內容" 文件名
grep支持正則表達式,正則表達式是一種文本匹配工具,一般編程語言都支持正則表達式。 Python通過 import re 導入模塊使用正則。
舉例:
^hello : 表示匹配以hello開頭的字元串
world$ : 表示匹配以world結尾的字元串
UNIX哲學:一個功能只做一件事,各個功能之間可以配合使用。
重定向: 將終端的輸出內容重定向到文件里(註意,重定向不要重定向到文件自身,否則會導致內容丟失)
> 相當於文件操作的 w ,如果文件不存在,則創建文件並寫入數據,如果文件存在則清空文件再寫入數據
>> 相當於文件操作的 a,如果文件不存在,則創建文件並寫入數據,如果文件存在則在文件末尾追加新的數據
可以配合Linux的其他命令一起使用,只要是終端的輸出內容,都可以做重定向。
# 保存終端的輸出信息(ps -aux表示顯示所有進程的詳細信息)
ps -aux > ps_info.txt
# 文件合併
cat file1 >> file2
管道: 將第一個命令的結果,通過管道,傳遞給第二個命令處理
ps -aux | grep "sogou"
python 1444 0.2 0.2 29932 8316 pts/2
顯示pid編號 1444
sudo kill -9 1444
ls -al | more
cat xxx.txt | grep
chmod 修改文件許可權:
chmod +x 讓所有用戶都具有執行許可權
chmod -r 讓所有用戶都沒有讀許可權
這樣處理許可權要麼都有,要麼都沒有。
chmod 777 test.py # 所有用戶可讀可寫可執行
chmod 536 test.py # 文件所有者 5:讀執行, 組 3:寫執行, 其他用戶 6:讀寫
chmod 400 test.py # 文件所有者 4:讀, 其他用戶沒有許可權
0 表示沒有許可權
1 表示執行許可權
2 表示寫許可權
4 表示讀許可權
Windows 在目錄里執行:
先找當前目錄,如果當前目錄有,則立刻執行;如果當前目錄沒有,則去找環境變數。
Linux 在目錄里執行:
直接找環境變數,如果環境變數有,則執行;如果沒有,則報錯。
所以,需要在前面加上 ./ 指明Linux執行當前目錄下的文件。
#!/usr/bin/python3
# 表示如果文件作為可執行程式運行,則使用指定解釋器進行解釋。
#coding:utf-8
# Python2 預設環境是ascii編碼,不能處理中文。coding:utf-8 表示按utf-8編碼處理中文。在Python2的代碼里比較常見。
# Python3 環境已經改為utf-8,所以不用指定了。
print("你好世界,你壞世界。")
find: 查找指定目錄下的所有符合條件的文件(註意,find會遞歸查找所有的子目錄)
如果不寫路徑,則預設查找當前目錄;如果不寫 -name 文件名,則預設查找所有文件
# 查找當前目錄下所有的 .py 文件,包括子目錄
find ./ -name "*.py"
軟連接:
ln -s 源文件的絕對路徑 軟連接的路徑和名稱
1. 源文件必須用絕對路徑
2. 創建好軟連接後,不要移動源文件,否則會失效。
硬鏈接:簡單理解為文件的拷貝(課後瞭解)
Linux 打包 和 壓縮:一般把需要打包的文件和目錄全部存到統一的一個目錄,再去打包這個目錄。
tar 只是包,並沒有做壓縮
# 打包
tar -cvf 打包後的包名.tar 需要打包的目錄
# 解包
tar -xvf 打包後的包名.tar
tar.gz 會進行壓縮,大小會大大降低
# 壓縮 gzip
tar -zcvf 壓縮後的包名.tar.gz 需要打包的目錄
# 解壓縮
tar -zxvf 壓縮後的包名.tar.gz
sudo su # 切換超級用戶,一般不推薦這麼做,避免因為誤操作導致系統問題,不小心誤刪文件或修改文件,系統不會提示。
sudo vi /bin/xxxx # 需要許可權單獨加 sudo
# 1. 安裝軟體
$ sudo apt install 軟體包
# 2. 卸載軟體
$ sudo pip remove 軟體名
# 3. 更新已安裝的包
$ sudo apt upgrade
# 4. 定期更新源伺服器軟體列表 : /var/lib/apt/lists
$ sudo apt update
讓自己緊張起來!