一、shell和vi
Shell俗稱殼篡腌,用來區(qū)別于Kernel(核)学歧,是指“提供使用者使用界面”的軟件(命令解析器)
1、shell分類
- 圖形界面shell:通過提供友好的可視化界面茸苇,調(diào)用相應(yīng)應(yīng)用程序排苍,如windows系列操作系統(tǒng),Linux系統(tǒng)上的圖形化應(yīng)用程序GNOME学密、KDE等纪岁。
- 命令行shell:通過鍵盤輸入特定命令的方式,調(diào)用相應(yīng)的應(yīng)用程序则果,如windows系統(tǒng)的cmd.exe、Windows PowerShell漩氨,Linux系統(tǒng)的Bourne shell ( sh)西壮、Bourne Again shell ( bash)等。
2叫惊、bash和shell
各個 shell 的功能都差不多款青, Linux 默認(rèn)使用 bash。
在window系統(tǒng)下使用bash霍狰,需要一個軟件
==bash命令格式==
命令 [-options] [參數(shù)]
==bash常見命令==
- pwd (Print Working Directory) 查看當(dāng)前目錄
- cd (Change Directory) 切換目錄抡草,如 cd /etc
- ls (List) 查看當(dāng)前目錄下內(nèi)容,如 ls -al
- mkdir (Make Directory) 創(chuàng)建目錄蔗坯,如 mkdir blog
- touch 創(chuàng)建文件康震,如 touch index.html
- cat 查看文件全部內(nèi)容,如 cat index.html
- more/less 查看文件宾濒,如more /etc/passwd腿短、less /etc/passwd
- rm (remove) 刪除文件,如 rm index.html、rm -rf blog
- rmdir (Remove Directory) 刪除文件夾橘忱,只能刪除空文件夾赴魁,不常用
- mv (move) 移動文件或重命名,如 mv index.html ./demo/index.html
- cp (copy) 復(fù)制文件钝诚,cp index.html ./demo/index.html
- head 查看文件前幾行颖御,如 head -5 index.html
- tail 查看文件后幾行 –n –f,如 tail index.html凝颇、tail -f -n 5 index.html
- tab 自動補(bǔ)全潘拱,連按兩次會將所有匹配內(nèi)容顯示出來
- history 查看操作歷史
- '>' 和 >>重定向
- curl 網(wǎng)絡(luò)請求,如curl http://www.baidu.com
- whoami 查看當(dāng)前用戶
- | 管道符可以將多個命令連接使用祈噪,上一次(命令)的執(zhí)行結(jié)果當(dāng)成下一次(命令)的參數(shù)
- grep 匹配內(nèi)容泽铛,一般結(jié)合管道符使用
3、vi編輯器
如同Windows下的記事本辑鲤,vi編輯器是Linux下的標(biāo)配盔腔,通過它我們可以創(chuàng)建、編輯文件
三種模式
命令模式月褥、插入模式弛随、底行模式
命令行模式--i/a-->輸入模式
命令行模式--shift+:-->尾函數(shù)模式
vi編輯器的使用
- 底行模式 : w保存,:w filenme另存為
- 底行模式 : q退出
- 底行模式 : wq保存并退出
- 底行模式 : e! 撤銷更改宁赤,返回到上一次保存的狀態(tài)
- 底行模式 : q! 不保存強(qiáng)制退出
- 底行模式 : set nu 設(shè)置行號
- 命令模式 : ZZ(大寫)保存并退出
- 命令模式: u轍銷操作舀透,可多次使用
- 命令模式: dd刪除當(dāng)前行
- 命令模式: yy復(fù)制當(dāng)前行
- 命令模式: p 粘貼內(nèi)容
- 命令模式: ctrl+f向前翻頁
- 命令模式: ctrl+b向后翻頁
- 命令模式: i進(jìn)入編輯模式,當(dāng)前光標(biāo)處插入
- 命令模式: a進(jìn)入編輯模式决左,當(dāng)前光標(biāo)后插入
- 命令模式: A進(jìn)入編輯模式愕够,光標(biāo)移動到行尾
- 命令模式: o進(jìn)入編輯模式,當(dāng)前行下面插入新行
- 命令模式: O進(jìn)入編輯模式佛猛,當(dāng)前行上面插入新行
4惑芭、SSH
SSH是一種網(wǎng)絡(luò)協(xié)議,用于計算機(jī)之間的加密登錄继找。
如果要在Windows系統(tǒng)中使用SSH遂跟,會用到另一種軟件PuTTY,我們后面用到的Git客戶也集成了SSH
格式:ssh user@host
user 代表真實存在的用戶 host代表要登錄的遠(yuǎn)程計算機(jī)
加密技術(shù)
常見有兩種加密技術(shù)婴渡,分別是對稱性加密和非對稱性加密
SSH屬于后者
非對稱加密算法需要兩個密鑰來進(jìn)行加密和解密幻锁,這兩個秘鑰分別是公開密鑰(public key,簡稱公鑰)和私有密鑰(private key边臼,簡稱私鑰)哄尔。
工作原理
公鑰和私鑰是成對出現(xiàn),可以通過ssh-keygen -t rsa來創(chuàng)建
免密登錄
- ssh-keygen -t rsa會創(chuàng)建公鑰和密鑰(默認(rèn)在用戶目錄/.ssh目錄下)
- ssh-copy-id user@host添加到對應(yīng)遠(yuǎn)程主機(jī)的用戶目錄/.ssh目錄下
- 也可以登錄遠(yuǎn)程主機(jī)柠并,進(jìn)入到用戶目錄/.ssh目錄下手動創(chuàng)建authorized_keys文件究飞,并將自已的公鑰粘入該文件置谦。
二、版本控制VCS
版本控制(Version Control Systems)
是一種記錄一個或若干文件內(nèi)容變化亿傅,以便將來查閱特定版本修訂情況的系統(tǒng)
本地版本控制系統(tǒng)媒峡、集中式版本控制系統(tǒng)、分布式版本控制系統(tǒng)
本地版本控制
借助軟件我們可以記錄下文件的每一次修改
功能比較單一葵擎,比如很難實現(xiàn)多人協(xié)同開發(fā)谅阿,
集中式VCS
通過單一的集中管理的服務(wù)器,保存所有文件的修訂版本酬滤,協(xié)同工作的開發(fā)者都通過客戶端連到這臺服務(wù)器签餐,取出最新的文件或者提交更新。其代表為SVN
分布式VCS
分布式版本控制系統(tǒng)盯串,則不需要中央服務(wù)器氯檐,每個協(xié)同開發(fā)者都擁有一個完整的版本庫,任何協(xié)同開發(fā)者用的服務(wù)器發(fā)生故障体捏,事后都可以用其它協(xié)同開發(fā)者本地倉庫恢復(fù)冠摄。
代表為git
==git沒網(wǎng)也可以,svn需要網(wǎng)絡(luò)==
三几缭、Git
1河泳、git工作原理
git三種狀態(tài)
- 已提交(committed)
- 已修改(modified)
- 已暫存(staged)
三個工作區(qū)域
- Git 倉庫(Repository)
Git用來保存項目的元數(shù)據(jù)和對象數(shù)據(jù)庫的地方
- 工作目錄(working Directory)
對項目的某個版本獨立提取出來的內(nèi)容
- 暫存區(qū)域(Staging Area)
保存了下次將提交的文件列表信息,一般在Git倉庫目錄中
Git工作流程
- 在工作目錄中修改文件
- 暫存文件年栓,將文件的快照放入暫存區(qū)域
- 提交文件拆挥,找到暫存區(qū)域的文件,將快照永久性存儲到Git倉庫目錄某抓。
2纸兔、Git本地倉庫
配置用戶
git config --global user.name "自已的名字"
git config --global user.email "自已的郵箱地址"
--global 配置當(dāng)前用戶所有倉庫
--system 配置當(dāng)前計算機(jī)上所有用戶的所有倉庫
注:配置用戶只需要執(zhí)行1次,可以重復(fù)使用否副。
初始化倉庫
需要將現(xiàn)有項目初始化為一個倉庫汉矿,或者將一個已有的使用git進(jìn)行版本控制的倉庫克隆到本地。
- git init
git init只是創(chuàng)建了一個名為.git的隱藏目錄副编,這個目錄就是存儲我們歷史版本的倉庫,ls -al 可以查看流强。
- git clone 倉庫地址
假如公司已有項目用了Git痹届,那我們就利用克隆
執(zhí)行完這個命令,會在當(dāng)前目錄下生成一個Monment目錄(默認(rèn)和倉庫名稱相同)打月,這個便是已有一個使用Git管理的項目队腐。
查看文件狀態(tài)
- git status可以檢測當(dāng)前倉庫文件的狀態(tài)
==注:git會忽略空的目錄==
==所以倉庫中的文件夾里要有東西==
添加文件到暫存區(qū)
- git add 文件名/ 文件路徑 “*”或-A代表所有
- 放到暫存區(qū)的文件被標(biāo)記成了==綠色==,等待提交奏篙。(不同的工具不一樣)
撤銷更改
- git status可以再次查看倉庫狀態(tài)
- 修改的文件會被標(biāo)記==紅色==柴淘。
- git checkout 文件名可以 回到之前狀態(tài) ==從暫存區(qū)還原原到工作區(qū)==
提交文件
- git commit -m '備注信息'
- 將暫存區(qū)被標(biāo)記成綠色的文件迫淹,全部提交到本地倉庫存儲。
查看提交歷史
- git log查看提交的歷史
- 按鍵盤q鍵退出
恢復(fù)上次提交的狀態(tài)
- 通過SHA值可以回到之前某一次的提交
- git reset --hard c888a614e072e2
Git分支
第1次提交時为严,Git會默認(rèn)幫我們創(chuàng)建了一個master的分支敛熬,并且有指針(HEAD)指到了末端
==指針(HEAD)用來標(biāo)明當(dāng)前處于哪個分支的哪個版本==
- 創(chuàng)建分支 git branch hotfix
- 切換分支 git checkout hotfix
- 刪除分支 git branch -d hotfix
3、Git遠(yuǎn)程倉庫
創(chuàng)建共享倉庫
- Git要求共享倉庫是一個以.git結(jié)尾的目錄
- git init ==--bare== 初始化一個共享倉庫第股,也叫裸倉庫
向共享倉庫共享(同步)內(nèi)容
- 進(jìn)入到y(tǒng)ike目錄
- git push
從共享倉庫里取出內(nèi)容
- 新創(chuàng)建一個目錄(模擬另一個開發(fā)者)
- git clone ./repo.git demo
通過demo倉庫向repo.git共享內(nèi)容
4应民、獲取員遠(yuǎn)程計算機(jī)權(quán)限
生成密匙
- ssh-keygen -t rsa 然后一路回車,這里會在當(dāng)前用戶生成了一個.ssh的文夾
- 將id_rsa.pub公鑰的內(nèi)容復(fù)制
- 打開gitHub的個人中心
- 打到SSH keys
- id_rsa.pub公鑰粘貼即可
5夕吻、Gitlab
gitLab是免費(fèi)的管理倉庫的網(wǎng)站程序诲锹,我們可以把它架設(shè)到公司自已的服務(wù)器上,實現(xiàn)倉庫私有化涉馅,這也是大部分公司通常采用的方法归园,其使用方法與gitHub十分相似。
6稚矿、命令匯總
- git config配置本地倉庫
- 常用git config --global user.name庸诱、git config --global user.email
- git config --list查看配置詳情
- git init 初始一個倉庫,添加--bare可以初始化一個共享(裸)倉庫
- git status 可以查看當(dāng)前倉庫的狀態(tài)
- git add“文件” 將工作區(qū)中的文件添加到暫存區(qū)中盐捷,其中file可是一個單獨的文件偶翅,也可以是一個目錄、“*”碉渡、-A
- git commit -m '備注信息' 將暫存區(qū)的文件聚谁,提交到本地倉庫
- git log 可以查看本地倉庫的提交歷史
- git branch查看分支
- git branch“分支名稱” 創(chuàng)建一個新的分支
- git checkout“分支名稱” 切換分支
- git checkout -b deeveloper 新建并切換到developer分支
- git merge“分支名稱” 合并分支
- git branch -d “分支名稱” 刪除分支
- git clone “倉庫地址”獲取已有倉庫的副本
- git push origin “本地分支名稱:遠(yuǎn)程分支名稱”將本地分支推送至遠(yuǎn)程倉庫,
- 本地倉庫分支名稱和遠(yuǎn)程倉庫分支名稱一樣的情況下可以簡寫成一個滞诺,即git push “倉庫地址” “分支名稱”形导,如果遠(yuǎn)程倉庫沒有對應(yīng)分支,將會自動創(chuàng)建
- git remote add “主機(jī)名稱” “遠(yuǎn)程倉庫地址”添加遠(yuǎn)程主機(jī)习霹,即給遠(yuǎn)程主機(jī)起個別名朵耕,方便使用
- git remote 可以查看已添加的遠(yuǎn)程主機(jī)
- git remote show “主機(jī)名稱”可以查看遠(yuǎn)程主機(jī)的信息
四、bower
基于NodeJS的一個靜態(tài)資源管理工具淋叶,由twitter公司開發(fā)維阎曹,解決大型網(wǎng)站中靜態(tài)資源的依賴問題。
- 依賴NodeJS環(huán)境和git工具煞檩。
- npm install -g bower安裝bower(全局安裝)
- bower search 查找資源信息
- bower install 安裝(下載)資源处嫌,通過#號可以指定版本號
- bower info 查看資源信息
- bower uninstall 卸載(刪除)資源
- bower init初始化,用來記錄資源信息及依賴斟湃。