2018-11-20linux、git總結

計算機是由硬件和軟件構成的。

硬件的五大部件:

  • 運算器 -|
    | - 中央處理器
  • 控制器 -|
  • 存儲器 - 內存(RAM)
  • 輸入設備
  • 輸出設備

軟件的兩大類別:

  • 系統軟件 - 操作系統(內核+工具程序)
  • 應用軟件

Linux系統的內核是Free的
Linux系統最早的內核是由Linus在1991年開發的

Unix - MINIX - Linux - Android
- BSD - FreeBSD - Macintosh - macOS - iOS
- AIX(IBM)
- HP-UX(HP)
- Solaris(SUN)

我們能夠接觸到的操作系統除了Windows其他系統幾乎都是Unix的衍生品
類Unix操作系統

Shell - 殼程序 - 人機交互界面(人和計算機對話的窗口)
Shell中的工具和命令

who - 查看登錄系統用戶的信息
last - 查看最近使用過系統的用戶信息

clear - 清除屏幕輸出
history - 查看歷史命令
!歷史命令編號 - 重新執行歷史命令

useradd/userdel - 添加/刪除用戶
passwd - 修改用戶口令
su - switch user - 切換用戶

logout / exit - 退出登錄
reboot / shutdown - 重啟 / 關機
write 用戶名 - 給指定用戶發送消息
mesg y/n - 是否接收別人發送的消息
wall - 給所有人發出廣播消息

獲得幫助
man - manual - 查看幫助手冊
命令 --help - 獲得命令的幫助

pwd - print working directory - 打印當前工作目錄
cd - change directory - 改變目錄
ls - list directory contents - 列出目錄內容

mkdir 目錄名 - make directory - 創建文件夾
rmdir 目錄名 - remove empty directory - 刪除空文件夾
touch 文件名 - 創建一個空文件
echo 內容 > 文件名 - 將內容重定向到指定的文件
wget http://www.sohu.com/ - 聯網通過URL獲取指定文件
rm - 刪除文件
rm -rf - 刪除文件夾
cp - 拷貝文件或文件夾
mv - 移動文件或文件夾(重命名)

cat - concatenate - 連接文件內容(查看文件)
less / more - 分屏查看
head / tail - 查看文件前面/后面的部分
sort - 給文件排序
uniq - 去除相鄰的重復內容
| - 管道 - 連接兩個進程(命令)- 把前一個進程的輸出作為后面一個進程的輸入

gzip / gunzip - 壓縮/解壓縮
xz -z / xz -d - 壓縮/解壓縮

tar是Linux系統下的歸檔文件(類似于Windows下的rar文件)
解歸檔 - tar -xvf 歸檔文件的名字
歸檔 - tar -cvf 歸檔文件的名字 需要歸檔的文件

grep - 搜索字符串
find - 查找文件

MySQL - 關系型數據庫
Redis - NoSQL數據庫

CPython - 用C語言實現的Python解釋器
Jython - 用Java語言實現的Python解釋器
IronPython - 用C#語言實現的Python解釋器
PyPy - 用Python語言實現的Python解釋器

8bit -------> 1Byte
1024B -------> 1KB
1024KB -------> 1MB
1024MB -------> 1GB
1024GB -------> 1TB
1024TB -------> 1PB

《鳥哥的Linux私房菜》

Linux發行版本:

  • Redhat
  • CentOS
  • Ubuntu
  • Fedora
  • SUSE
  • Debian

Linux系統安裝軟件:

  1. 使用包管理工具 - yum / rpm / apt / deb
  2. 源代碼構建安裝 - 下載源代碼用C語言構建工具進行構建
  3. 直接下載二進制程序 - 配置環境變量之后使用

Apache/Nginx ---> HTTP服務器 ---> 提供Web應用

yum search nginx - 搜索名為nginx的軟件包
yum -y install nginx - 安裝名為nginx的軟件包
yum -y remove nginx - 刪除名為nginx的軟件包
yum update nginx - 更新名為nginx的軟件包
yum info nginx - 查看名為nginx的軟件包相關信息
yum list installed - 查看已經安裝的軟件包

service nginx start

systemctl start nginx - 啟動Nginx
systemctl restart nginx - 重啟Nginx
systemctl stop nginx - 停止Nginx
systemctl status nginx - 查看Nginx狀態
systemctl enable nginx - 設置Nginx開機自啟
systemctl disable nginx - 禁用Nginx開機自啟

更新Linux系統Python環境到3.7.1

  1. 安裝依賴項
    yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

  2. 下載源代碼
    wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

  3. 解壓縮和解歸檔
    gunzip Python-3.7.1.tgz
    tar -xvf Python-3.7.1.tar

  4. 進入文件夾生成構建文件(Makefile)
    cd Python-3.7.1
    ./configure --prefix=/usr/local/python37 --enable-optimizations

  5. 構建和安裝
    make && make install

  6. 修改環境變量
    cd ~
    vim .bash_profile

PATH=$PATH:$HOME/bin:/usr/local/python37/bin

  1. 斷開服務器連接,重新連接服務器
    python3 --version

  2. 注冊一個快捷方式(符號鏈接)
    ln -s /usr/local/python37/bin/python3 /usr/bin/python3

硬鏈接 - 相當于給文件增加了一個引用計數(不復制數據的備份)
軟鏈接(符號鏈接) - 相當于是Windows下的快捷方式 可以為常用的文件和文件夾在用戶主目錄下創建軟鏈接來方便操作

ln 源文件 目標文件

ps - processes - 查看進程狀態
ps -ef / ps -aux

top - 類似于任務管理器

kill - 結束進程

登錄系統成功之后進入Shell(殼程序)交互式環境
大多數Linux系統默認的Shell都是bash
bourne again shell

Internet是基于TCP/IP模型的四層架構

應用層 - HTTP / FTP / SSH / QQ / SMTP / POP3
傳輸層 - TCP / UDP - 端到端傳輸服務
網絡層 - IP - 尋址和路由
物理鏈路層(網絡接口層) - 分幀和校驗

端口是對IP地址的擴展用來區分不同的服務
HTTP - TCP協議80端口
HTTPS - TCP協議443端口
SSH - TCP協議22端口
SMTP - TCP協議25端口
POP3 - TCP協議110端口

sftp root@1.2.3.4
sftp>
quit / exit / bye - 退出sftp
cd / lcd - 切換遠端工作目錄 / 切換本地工作目錄
pwd / lpwd - 查看遠端工作目錄 / 查看本地工作目錄
ls / lls - 查看遠端目錄下的內容 / 查看本地目錄下的內容
mkdir / lmkdir - 在遠端創建目錄 / 在本地創建目錄
put - 上傳文件(-r遞歸可以用來上傳文件夾)
get - 下載文件(-r遞歸可以用來下載文件夾)

Vim的工作模式:

  1. 命令模式 按i或a進入編輯模式;按:/?進入末行模式
  2. 編輯模式 按Esc進入命令模式
  3. 末行模式 按回車回到命令模式

常用命令:
h j k l - 移動光標
gg / G / <n>G - 首行 最后一行 第n行
dd d0 d$ dw - 刪行 刪到行首 刪到行尾 刪單詞
yy - 復制
p - 黏貼
u - 撤銷
ZZ - 保存退出
q - 錄制宏/結束錄制
qa - 錄制宏并保存在寄存器a中
@a - 播放宏
100@a - 將指定的宏播放100遍

快捷鍵:
ctrl+e / ctrl+y 下移/上移一行
ctrl+f / ctrl+b 下移/上移一頁
ctrl+r 重做
ctrl+w 按兩下 - 切換窗口

末行模式:
set nu / set nonu - 設置顯示/取消行號
set ts=4 - 設置制表的空格數
syntax on / off - 打開/關閉高亮語法
map/imap/inoremap 快捷鍵 執行的操作 - 映射快捷鍵
ls - 顯示打開的文件
b <n> - 切換文件
sp - 水平拆分窗口
vs - 垂直拆分窗口
w - write - 保存
q - quit - 退出
可以加!強制執行
/正則表達式 - 正向搜索與正則表達式匹配的字符串
?正則表達式 - 反向搜索與正則表達式匹配的字符串
1,$s/正則表達式/替換的內容/指示器 - 查找替換
c - 確認 - confirm
i - 忽略大小寫 - ignore case
e - 錯誤靜默 - error

~/.vimrc - vim的配置文件

代碼提示 - 安裝一個名為YouCompleteMe插件

文件權限
-rw-r--r-- 1 root root hello.py

第一個字符
d ---- 文件夾
l ---- 軟鏈接
- ----- 文件
第2-4個字符:文件的所有者對文件有何種操作權限
r - read - 讀
w - write - 寫
x - execute - 執行
第5-7個字符:和文件所有者同組的用戶對文件有何種操作權限
第8-10個字符:其他用戶(不是所有者也不同組)的用戶對文件有何種操作權限

chmod u+x,g+x,o+x 文件名 - 給文件加上執行權限
chmod 755 文件名
chown 用戶名 文件名 - 改變文件所有者
chgrp 用戶組 文件名 - 改變文件用戶組

以太網 - Ethernet

網絡相關命令:
ping - 檢測網絡可達性 - ICMP
tracepath - 檢查數據路由
ifconfig - 檢查網絡接口(網絡適配器)
ip - 查看配置網絡接口相關信息
netstat - 查看網絡狀態(端口占用、進程、已建立的連接)
sftp - 安全網絡文件傳輸
scp - 安全文件拷貝

scp 文件 用戶名@1.2.3.4:/目錄/文件名

命令 & - 讓命令在后臺運行
jobs - 查看后臺運行的進程
fg %編號 - 讓命令回到前臺運行
bg %編號 - 讓命令在后臺運行
Ctrl+z - 將前臺進程暫停放到后臺

版本控制
1990s - 鎖定模式

  • CVS - Concurrent Version System
  • VSS - Visual Source Safe

2000s - 合并模式

  • SVN - Subversion - 集中控制式

分布式版本控制系統 - BitKeeper
2005年 - Git / Mercury

Linux系統安裝Git
方法一:yum -y install git
方法二:

  1. 下載git源代碼壓縮文件
    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.1.tar.xz
  2. 解壓縮和解歸檔
    xz -d git-2.19.1.tar.xz
    tar -xvf git-2.19.1.tar
  3. 配置安裝路徑
    cd git-2.19.1
    ./configure --prefix=/usr/local
  4. 安裝git的網絡依賴庫
    yum -y install libcurl-devel
  5. 構建和安裝
    make && make install
  6. 檢查安裝結果
    git --version

Git的使用

  1. 創建git倉庫
    git init

  2. 將代碼納入暫存區
    git add 文件名
    git add .

  3. 查看暫存區狀態
    git status
    git rm --cached 文件名(從暫存區移除)
    git checkout -- 文件名(將暫存區文件恢復到工作區)

  4. 配置身份標識
    git config --global user.name "..."
    git config --global user.email "..."

  5. 提交到本地倉庫
    git commit -m '...'

  6. 查看提交日志
    git log
    git reflog - 看到未來的版本(曾經提交過又被撤回的版本)

  7. 回到歷史版本
    git reset --hard HEAD^
    git reset --hard HEAD^^
    git reset --hard 版本的哈希摘要

--hard參數是為了保持工作區和歷史版本的一致性

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,034評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,413評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,449評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,165評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,559評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,781評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,327評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,084評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,278評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,495評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,927評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,172評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,010評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,241評論 2 375

推薦閱讀更多精彩內容

  • 計算機是由硬件和軟件構成的。 硬件的五大部件: 運算器 -|| - 中央處理器 控制器 -| 存儲器 - 內存(R...
    13147abc閱讀 1,274評論 0 1
  • 計算機是由硬件和軟件構成的。 硬件的五大部件: 運算器 -| 控制器 -| 中央處理器 存儲器 - 內存(RAM)...
    葉葉阿姨閱讀 134評論 0 0
  • 一、Python簡介和環境搭建以及pip的安裝 4課時實驗課主要內容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,793評論 0 10
  • 今天是什么日子 起床:5:56 就寢:12:30 天氣:晴 心情:一般 任務清單 昨日完成的任務,最重要的三件事:...
    津津有好味閱讀 377評論 0 49
  • 今天下午回到學校,。回家一趟200塊錢沒花完,昨天正好發工資了,回來用微信把借同事的錢還了。 看我的生活不是個大手...
    遠山的輪廓閱讀 165評論 0 0