體驗(yàn)更好的瀏覽版式,請(qǐng)?jiān)L問我的博客:xiaowen.ink
習(xí)慣了圖形化界面哼转,當(dāng)初接觸命令操作多少還是不習(xí)慣明未。
以前做java,android 壹蔓,無論是git 還是SVN趟妥,eclipse 或者Android studio總有插件幫我們完成版本的控制,因此每次只需要點(diǎn)擊提交或者同步即可佣蓉。
來到了索喜科技披摄,以前的那些插件可就都用不上,因?yàn)榇a在遠(yuǎn)程服務(wù)器勇凭,編譯也得在遠(yuǎn)程服務(wù)器疚膊,只能通過ssh登錄進(jìn)行操作了,因此就需要接觸命令來進(jìn)行開發(fā)了虾标,還有需要用 vim了寓盗。
習(xí)慣了編輯器帶來的便利,寫代碼也就啪啪的沒一會(huì)功夫就寫了一大堆璧函,現(xiàn)在呢傀蚌,得需要一個(gè)個(gè)單詞手敲,因?yàn)闆]有提示...剛開始的時(shí)候心中一萬只草泥馬奔騰而過蘸吓,什么鬼善炫,這效率我需要多久才能上手。库继。箩艺。
后來才知道,原來是可以用編輯器來干活的宪萄,比如 notepad 舅桩,vscode ,source insight雨膨,現(xiàn)在接觸的最多的也就是這三個(gè)擂涛,做底層開發(fā)的視 vim 和 source insight 為神器,就好像做android 開發(fā)的對(duì)Android studio 或者 java開發(fā)對(duì)Intelli IDEA 的一樣聊记,不過還是有點(diǎn)不同撒妈,做底層開發(fā)的好像都鄙視上層開發(fā)...
不扯了,總結(jié)下這么久來接觸的命令排监,現(xiàn)在暫時(shí)就這些狰右,以后有別的再更新,主要有:
Git
Linux
Vim
Git
克隆
- git clone xxx ---> 克隆項(xiàng)目舆床,xxx 是項(xiàng)目的地址
分支
- git branch ---> 查看當(dāng)前項(xiàng)目分支
- git checkout -b xxx --->切換到分支xxx棋蚌,或者不帶 -b嫁佳,需要注意的是,切換前記得 git pull 先更新本地項(xiàng)目
查看當(dāng)前狀態(tài)和覆蓋本地更新
- git status --->查看當(dāng)前項(xiàng)目的狀態(tài)谷暮,比如修改了那些文件蒿往,添加了那些文件,或者已經(jīng) commit 沒有 push 等
- git status -uno ---> 查看當(dāng)前 repo 文件的狀態(tài)湿弦,不包含新增的文件
- git pull ---> 更新本地瓤漏,如果項(xiàng)目里面有多個(gè) repo ,并且是要在根目錄更新颊埃,請(qǐng)使用 agito pull
- git checkout -f ---> 覆蓋本地更新
- git checkout -f xxx.file ---> 單個(gè)文件覆蓋更新蔬充,只會(huì)將xxx.file文件修改的內(nèi)容全部覆蓋掉
查看修改信息
- git diff ---> 查看本地更改的更改的內(nèi)容,不包含新增的文件班利,如果要看新增的文件饥漫,請(qǐng)使用 git status
- git diff xxx.file ---> 查看xxx.file文件的更改內(nèi)容,可以查看多個(gè)文件罗标,文件之間空格隔開
生成 patch
- git diff --binary >xxx.patch ---> 將本地更改的內(nèi)容生成xxx.patch文件趾浅,不包括新增文件
- git diff --binary HEAD^ >xxx.patch ---> 將上一次提交的內(nèi)容生成xxx.patch文件。HEAD^^表示上兩次馒稍,一次類推
- git diff HASH_PREV HASH_CURR > PATCHNAME.patch ---> 生成指定 commit 之間的 patch 命令: HASH_CURR -> 需要生成的commit 號(hào)皿哨; HASH_PREV --> HASH_CURR 之前的commit 號(hào),比如:git diff ed0ede9ab46ade1494fd2b7a5ab7882c8cbab0e6 a1d1f770eed6a7980aafd228f9c3a76a23023fc5 > PATCHNAME.patch
- git format-patch -1 <r1> ... <rn> --->打patch包含提交人的相關(guān)信息,多個(gè)commit 號(hào)之間用這樣的方式纽谒,單個(gè)則直接帶commit 號(hào)即可
打 patch
- patch -p1 < ~/xxxx.patch ---> 在當(dāng)前目錄打入 xxxx.patch,"~" 表示系統(tǒng)根目錄证膨,"." 表示當(dāng)前目錄
- git am ~/xxxx.patch ---> 打入包含提交人信息的patch ,跟上面的 git format-patch 對(duì)應(yīng)
提交
- git add xxx.file ---> 添加 xxx.file 關(guān)聯(lián)鼓黔,多個(gè)文件直接空格后面攜帶央勒,如果是本地所有的文件都要提交,可以執(zhí)行 git add . 澳化,即后面帶一個(gè) "."崔步,表示關(guān)聯(lián)當(dāng)前所有未添加關(guān)聯(lián)的文件
- git commit -a ---> 提交,并且填寫提交信息
- git push ---> push 上服務(wù)器
查看 log
- git log ---> 查看 log
- git log xxx.file ---> 查看 xxx.file 的 log
- git log -p ---> 查看 log 和提交的內(nèi)容
- git log -p xxx.file ---> 查看 xxx.file 的log 和提交的內(nèi)容
版本回退
- git reset + commit ---> 已經(jīng)執(zhí)行 git commit 缎谷,不想執(zhí)行 git push 提交 井濒,可以回退到上一級(jí)版本,那么你改過的東西就會(huì)重新恢復(fù)為未提交列林,或者執(zhí)行命令 : git reset --hard HEAD^
- git reset --hard HEAD^ ---> 版本回退1級(jí)(回退一級(jí)則是一個(gè)^號(hào))瑞你,或者執(zhí)行 git reset + commit
注意:
- 上述的一些命令可以攜帶后綴,比如帶 "." 表示當(dāng)前目錄希痴,帶文件等
Linux
下面的命令操作過程中如果提示沒有權(quán)限者甲,則在執(zhí)行命令的前面添加 sudo
文件操作
-
查看文件列表 ls
ls ---> 列出當(dāng)前目錄下文件和文件夾,不包括"." 開頭的文件和文件夾
la ---> 列出當(dāng)前目錄下的所有文件和文件夾砌创,包含 "." 開頭的文件和文件夾
ll ---> 列出文件或者文件夾的所有信息虏缸,比如權(quán)限鲫懒,文件所有者,文件大小刽辙,時(shí)間等
pwd ---> 顯示當(dāng)前目錄的絕對(duì)路徑 -
文件或者文件夾創(chuàng)建以及改名窥岩、復(fù)制和刪除
mkdir xxx ---> 創(chuàng)建xxx文件夾
touch xxx.txt ---> 創(chuàng)建 xxx.txt 文件
mv xxx vvvv ---> 將文件夾 xxx 重命名為 vvvv ,該命令也可以操作文件
mv xxx /home/share xxx ---> 將 xxx 移動(dòng)到 /home/share 扫倡,該命令也可以操作文件
rm xxx.txt ---> 刪除 xxx.txt 文件
rm -rf xxx ---> 將 xxx 目錄底下的內(nèi)容全部刪除, -r 遞歸竟纳, -f 強(qiáng)行刪除撵溃,忽略不存在的文件,系統(tǒng)不再提示
cp /home/share/xxx.txt . ---> 將 /home/share/xxx.txt 拷貝到當(dāng)前目錄
cp /home/share/xxx.txt /home/wxf/vvv.txt ---> 將 /home/share/xxx.txt 拷貝到 /home/wxf/锥累,并將其命名為 vvv.txt
拷貝文件夾則在上述兩條命令cp 的后面添加參數(shù)-R
缘挑,其余的跟上述的一樣,比如將share文件夾拷貝到當(dāng)前目錄:cp -R /home/share/ .
搜索與查找
-
搜索字符串
grep -nsFR "xxx" * ---> 在當(dāng)前目錄下搜索字符 xxx
grep -nsFR "xxx" * --color=auto ---> 在當(dāng)前目錄下搜索字符 xxx桶略,并將匹配的關(guān)鍵字添加顏色 -
查找文件
find . -name "new_main.c" ---> 在當(dāng)前目錄下查找new_main.c文件语淘,也可以使用通配符 ""進(jìn)行模糊搜索,比如: find . -name "new_main." , find . -name "new*.c" 等等
權(quán)限管理
- sudo chown -R wxfc:wxfc commit ---> 使用戶wxfc或者組wxfc擁有 commit 的讀寫權(quán)限
網(wǎng)絡(luò)連接
- ssh user@host ---> 錄遠(yuǎn)程主機(jī)host际歼,比如 ssh wxfc@172.22.26.201 惶翻,然后輸入密碼即可
- ssh -p 66 user@host ---> 更改登錄的端口,因?yàn)槟J(rèn)端口是 : 22
- ifconfig ---> 查看Linux設(shè)備的IP地址
vim
- vim fileName ---> 打開文件 fileName
- 搜索
/text ---> 搜索text鹅心,按 n 鍵切換選中
吕粗?text ---> 反向搜索
shift + * ---> 光標(biāo)點(diǎn)中某個(gè)單詞,按住 shift + * 旭愧,即可選中單詞颅筋,然后按住 shift ,不斷的點(diǎn)擊 * 鍵即可切換當(dāng)前的搜索输枯,* 鍵 也可以替換成 # 鍵 - u ---> 撤銷修改,相當(dāng)于 window 的 ctrl + z
- i ---> 在當(dāng)前位置插入
- 復(fù)制粘貼
yy ---> 復(fù)制當(dāng)前行
p ---> 在當(dāng)前行的下一行粘貼议泵,前提是執(zhí)行了 yy - 刪除
dd ---> 刪除當(dāng)前行
x ---> 刪除當(dāng)前字符 - 退出
Esc + : + q! ---> 退出不保存修改
Esc + : + wq ---> 退出保存修改
未完待續(xù)...