計(jì)算機(jī)由硬件和軟件構(gòu)成
計(jì)算機(jī)硬件的五大部件:運(yùn)算器兰吟、控制器杭跪、存儲(chǔ)器仙逻、輸入設(shè)備、輸出設(shè)備
計(jì)算機(jī)軟件:系統(tǒng)軟件(操作系統(tǒng)涧尿、編譯程序)和應(yīng)用軟件
操作系統(tǒng)會(huì)負(fù)責(zé)管理和操作硬件系奉,并提供簡(jiǎn)單的人機(jī)交互的接口
Ken Thompson / Dennis Ritchie ---> Unix (1970s)
Xerox(施樂) ---> GUI / 鼠標(biāo) / 以太網(wǎng)
1980s --- IBM PC
Unix ---> BSD ---> AIX (IBM)
Unix ---> System V ---> Solaris (SUN)
Uinx ---> System III ---> HP-UX (HP)
Unix ---> BSD ---> FreeBSD ---> Macintosh (Apple) ---> macOS ---> iOS / watchOS / tvOS
Unix ---> Minix (Andrew Tanenbaum) ---> Linux (Linus Torvalds) ---> Android (Google)
Linux發(fā)型版本
- Redhat
- Ubuntu --- 個(gè)人
- CentOS --- 服務(wù)器 --- 遠(yuǎn)程訪問
- Fedora
- SUSE
- Debian
個(gè)人操作系統(tǒng) - Windows / macOS
服務(wù)器操作系統(tǒng) - 商用Unix / Linux / Windows Server
多用戶多任務(wù)操作系統(tǒng)
要求:基本使用 / 安裝和配置服務(wù) / 部署項(xiàng)目
命令 [命令的參數(shù)] [命令作用的對(duì)象]
ls -laR .pip
cat /proc/cpuinfo
cat -n /proc/cpuinfo
command not found - 命令沒有找到(敲了無效的命令)
Linux常用命令:
- w / who / whoami / last - 查看登錄用戶情況
- adduser / passwd - 創(chuàng)建用戶修改密碼
- date / cal - 查看日期日歷
- write / wall / mesg - 發(fā)送消息
- clear - 清除屏幕
- logout / exit - 退出登錄
- man / info / --help - 查看幫助
- history - 歷史命令 - !命名編號(hào) - 再次執(zhí)行歷史命令
- reboot - 重啟系統(tǒng) - init 6
- shutdown - 關(guān)機(jī) - init 0
Linux文件操作相關(guān)命令:
- pwd - print working directory - 打印工作目錄
- cd - change directory - 改變目錄 - 相對(duì)路徑和絕對(duì)路徑
- ls - list directory contents - 列出目錄下的內(nèi)容
-l - 長(zhǎng)格式查看
-a - 查看所有文件 - 在Linux系統(tǒng)中以點(diǎn)開頭的文件和文件夾是隱藏的
-R - 遞歸式的查看 - 遇到文件夾要遞歸的列出文件夾下的內(nèi)容 - cat - concatenate - 連接多個(gè)文件(查看文件的內(nèi)容)
- touch - 創(chuàng)建空文件或者修改已有文件的最后訪問時(shí)間
- mkdir - make directory - 創(chuàng)建文件夾
-p - 如果需要就創(chuàng)建父文件夾 - rm - remove - 刪除
-f - 強(qiáng)制刪除
-r - 遞歸刪除 - 刪文件夾需要指定該參數(shù) - rmdir - remove empty directory - 刪除空文件夾
- wget - 通過網(wǎng)絡(luò)獲取文件
- 例如:wget [圖片上傳失敗...(image-cdd7a1-1555377943306)]
https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
- 例如:wget [圖片上傳失敗...(image-859b4-1555377943306)]
https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
- gzip / gunzip - 文件壓縮/解壓縮(gz/tgz)
- 例如:gunzip Python-3.7.3.tgz
- xz - 文件壓縮/解壓縮(xz)
-z - 壓縮
-d - 解壓縮
- 例如:xz -d Python-3.7.3.xz
- tar - archive - 文件歸檔/解歸檔
-xvf - 解歸檔(將一個(gè)文件拆成多個(gè)文件)
- 例如:tar -xvf Python-3.7.3.tar
-cvf - 創(chuàng)建歸檔文件(將多個(gè)文件合并成一個(gè)文件)
- wc - word count - 查看文件行數(shù)、單詞數(shù)姑廉、字符數(shù)
-l - 查看行數(shù)
-w - 查看單詞數(shù)
-c - 查看字符數(shù) - sort - 文件排序
-r - 降序(默認(rèn)是從小到大 - 升序) - uniq - unique - 文件去重(相鄰相同的內(nèi)容會(huì)被過濾掉)
- head / tail - 查看文件的開頭/結(jié)尾部分
- more / less - 分頁查看文件
- 例子:cat -n taobao.html | more
- diff - different - 比較文件的差別
Ctrl+D - 結(jié)束輸入
Ctrl+C - 中斷一個(gè)正在執(zhí)行的命令
Ctrl+W - 刪除命令中的一塊
Ctrl+A - 光標(biāo)到行首
Ctrl+E - 光標(biāo)到行尾
Python - 解釋器
CPython - C語言實(shí)現(xiàn)的Python解釋器
Jython - Java語言實(shí)現(xiàn)的Python解釋器
IronPython - C#語言實(shí)現(xiàn)的Python解釋器
PyPy - Python語言實(shí)現(xiàn)的Python解釋器
- cp - copy - 拷貝文件
- mv - move - 移動(dòng)文件(同一個(gè)路徑下移動(dòng)相當(dāng)于是重命名操作)
| - 管道 - 將多個(gè)進(jìn)程連接起來(把前一個(gè)命令的輸出作為下一個(gè)命令的輸入)
- 輸出重定向
- 追加輸出重定向
2> - 錯(cuò)誤輸出重定向
2>> - 錯(cuò)誤追加輸出重定向
Ctrl+D - 結(jié)束輸入
Ctrl+C - 中斷一個(gè)正在執(zhí)行的命令
Ctrl+W - 刪除命令中的一塊
Ctrl+A - 光標(biāo)到行首
Ctrl+E - 光標(biāo)到行尾
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
./configure --prefix=/usr/local/python37 --enable-optimizations
Linux系統(tǒng)下的軟件安裝:
redhat package manager
yellowdog updater modified
- 包管理工具 - yum / rpm / apt
- yum search nginx - 從默認(rèn)的倉庫搜索有沒有指定的軟件
- yum install -y nginx - 安裝軟件
- yum remove -y nginx - 卸載軟件
- yum info nginx - 查看軟件相關(guān)信息
- yum list installed - 查看已經(jīng)安裝的軟件
- yum update nginx - 更新軟件
- 源代碼構(gòu)建安裝 - gcc / make
Apache - Web服務(wù)器
Nginx - Web服務(wù)器(HTTP服務(wù)器)/ 反向代理服務(wù)器
源代碼構(gòu)建安裝Python3.7
- 下載
wget [圖片上傳失敗...(image-844c19-1555463926318)]
https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
- 解壓縮和解歸檔
xz -d Python-3.7.3.tar.xz
tar -xvf Python-3.7.3.tar - 補(bǔ)充依賴庫
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel - 進(jìn)入Python源代碼目錄安裝前準(zhǔn)備工作
cd Python-3.7.3
./configure --prefix=/usr/local/python37 --enable-optimizations - 構(gòu)建和安裝
make && make install - 注冊(cè)PATH環(huán)境變量
cd ~
vim .bash_profile
PATH=...:/usr/local/python37/bin
- 激活環(huán)境變量
source .bash_profile - 測(cè)試安裝是否成功
python3 --version
Vim的使用
- 啟動(dòng)vim
- vim 文件名
- vim的三種模式:
- 命令模式 - 按鍵代表命令 ---i或者a---> 編輯模式
---:或者/---> 末行模式
~ G - 光標(biāo)移到文件末尾 / 500G - 光標(biāo)移到第500行 / gg - 光標(biāo)移到行首 / hjkl - 左下右上(前面可以加數(shù)字)
~ Ctrl+y / Ctrl+e - 移動(dòng)一行
~ Ctrl+f / Ctrl+b - 翻一頁
~ 0 - 光標(biāo)到行首 / $ - 光標(biāo)到行尾 / w - 光標(biāo)移到下一個(gè)單詞
~ dd - 刪除光標(biāo)所在行 / 100dd - 從光標(biāo)所在行向下刪除100行
~ yy - 復(fù)制光標(biāo)所在行 / 10yy - 從光標(biāo)所在行開始復(fù)制10行
~ p - 粘貼 / 5p - 粘貼5遍
~ u - 撤銷 / ctrl+r - 恢復(fù) - 編輯模式 - 鍵入內(nèi)容 ---Esc---> 命令模式
- 末行模式 - 搜索/配置/執(zhí)行系統(tǒng)命令 ---Enter---> 命令模式
~ set nu - 顯示行號(hào) - set nonu
~ syntax on - 顯示高亮語法 - syntax off
~ set ts=4 - 修改制表鍵的空格數(shù)
~ set ruler - 顯示光標(biāo)所在的位置 - set noruler
- 命令模式 - 按鍵代表命令 ---i或者a---> 編輯模式
給文件添加執(zhí)行權(quán)限
chmod u+x,g+x,o+x 文件名
u - user - 當(dāng)前用戶
g - group - 同組用戶
o - other - 其他用戶
在長(zhǎng)格式查看時(shí)可以看到文件的權(quán)限字符
ls -l 文件名
r - read - 讀權(quán)限
w - write - 寫權(quán)限
x - execute - 執(zhí)行權(quán)限
Vim的使用
- 啟動(dòng)vim
- vim 文件名
- vim的三種模式:
- 命令模式 - 按鍵代表命令 ---i或者a---> 編輯模式
---:或者/---> 末行模式
~ G - 光標(biāo)移到文件末尾 / 500G - 光標(biāo)移到第500行 / gg - 光標(biāo)移到行首 / hjkl - 左下右上(前面可以加數(shù)字)
~ Ctrl+y / Ctrl+e - 移動(dòng)一行
~ Ctrl+f / Ctrl+b - 翻一頁
~ 0 - 光標(biāo)到行首 / - 從光標(biāo)所在的位置刪除到行尾
~ yy - 復(fù)制光標(biāo)所在行 / 10yy - 從光標(biāo)所在行開始復(fù)制10行
~ p - 粘貼 / 5p - 粘貼5遍
~ u - 撤銷 / ctrl+r - 恢復(fù) - 編輯模式 - 鍵入內(nèi)容 ---Esc---> 命令模式
- 末行模式 - 搜索/配置/執(zhí)行系統(tǒng)命令 ---Enter---> 命令模式
~ set nu - 顯示行號(hào) - set nonu
~ syntax on - 顯示高亮語法 - syntax off
~ set ts=4 - 修改制表鍵的空格數(shù)
~ set ruler - 顯示光標(biāo)所在的位置 - set noruler
- 命令模式 - 按鍵代表命令 ---i或者a---> 編輯模式
面向?qū)ο缶幊蹋?/p>
- 定義類(數(shù)據(jù)抽象(找名詞) - 屬性缺亮、行為抽象(找動(dòng)詞) - 方法)
- 創(chuàng)建對(duì)象(構(gòu)造器語法)
- 給對(duì)象發(fā)消息(調(diào)用對(duì)象的方法)
工資結(jié)算系統(tǒng) - 給公司的員工結(jié)算月薪
~ 部門經(jīng)理:12000/月
~ 程序員:200/小時(shí)
~ 銷售員:1800/底薪 + 銷售額5%的提成
計(jì)算出每個(gè)人的月薪
卡片(Card) - 撲克(Poker) - 玩家(Player)
~ 繼承(is-a)
~ 關(guān)聯(lián)(has-a)- 聚合/合成
~ 依賴(use-a)