## SSH(secure shell)協(xié)議 ? ? ? ? 單詞含義 ?安全的外殼 ??
SSH客戶端<-------------------------->SSH服務(wù)器
數(shù)據(jù)傳輸是加密的,可以防止信息泄露;
數(shù)據(jù)傳輸是壓縮的,可以提高傳輸速度。
域名
是IP地址的別名,方便記憶查詢。
例如百度的ip地址為163.177.151.110 ? ? ? ?但輸入域名www.baidu.com更方便
端口號
SSH服務(wù)器 ? ? ? ? ? ?端口 ? ?22
Web服務(wù)器 ? ? ? ? ? ? ? ? ? ? ? ?80
HTTPS服務(wù)器 ? ? ? ? ? ? ? ? ? 443
FTP服務(wù)器 ? ? ? ? ? ? ? ? ? ? ? ? 21 ? ? ? ? ? ? ? ?Windows用
ssh [-p port] user@remote ? ? ? ? ? ? ? ? ? ?ssh -p 22 Python@169.254.46.170
user ? ?????指在遠(yuǎn)程機(jī)器的用戶名,默認(rèn)為當(dāng)前用戶
remote ? ?是遠(yuǎn)程機(jī)器的地址,可以是IP / 域名,或別名(下面有解析)
port ? ? ? ? 是SSH Server監(jiān)聽的端口,如果不指定,就為默認(rèn)值 22
注意:
ssh 這個終端命令只能在Linux和Unix系統(tǒng)下使用
若要在Windows中使用,需下載安裝PuTTY或者XShell客戶端軟件 www.xshellcn.com
退出用戶連接 ? ?輸入 ?exit ?即可
##SCP ? (secure copy) ? ? 在Linux下遠(yuǎn)程拷貝文件
命令格式與SSH基本相同 ? ? ?但此處的 -P ? ?必須是大寫的
把本地當(dāng)前目錄下的01.py文件復(fù)制到遠(yuǎn)程家目錄下的Desktop/01.py下
注意“:”后面的路徑如果不是絕對路徑,則以用戶的家目錄作為參照路徑
scp -P port 01.py user@remote:Desktop/01.py
反過來把遠(yuǎn)程家目錄下的01.py文件復(fù)制到本地當(dāng)前目錄下的01.py
scp -P port user@remote:Desktop/01.py 01.py
加上 -r 可以傳送文件夾
把當(dāng)前目錄下的demo文件夾復(fù)制到遠(yuǎn)程家目錄下的Desktop
scp -P ?port -r demo user@remote:Desktop
反之亦然
scp -P port -r user@remote:Desktop/demo demo
注意:
scp同樣只能在Linux和Unix下使用,在Windows下載PuTTy使用pscp命令同樣功能,或安裝
FileZilla使用FTP服務(wù)進(jìn)行文件傳輸 ? ? ? ? ? ?端口為21
但以上每次登陸服務(wù)器或遠(yuǎn)程計算機(jī)都需要輸入密碼,所以配置密鑰可以免密碼登錄
配置公鑰
在.ssh目錄下輸入 ssh-keygen 即可生成鑰匙,一路回車即可,會生成公鑰私鑰兩個文件
上傳公鑰到服務(wù)器
執(zhí)行 ssh-copy-id -p port user@remote ?可以讓遠(yuǎn)程服務(wù)器記住我們的公鑰
id_rsa.pub 為公鑰
id_rsa 為私鑰 ? ? ? ? ? ? ? ?<----------------> ? ? ? ? ? ? ??????authorized_keys
?SSH客戶端 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SSH服務(wù)器 ?
本地使用私鑰對數(shù)據(jù)進(jìn)行加密/解密
服務(wù)器使用公鑰對數(shù)據(jù)進(jìn)行加密/解密
##非對稱加密算法:
使用公鑰加密的數(shù)據(jù),需要使用私鑰解密;
使用私鑰加密的數(shù)據(jù),則需要使用公鑰解密。
運(yùn)行原理:
客戶端使用私鑰對數(shù)據(jù)進(jìn)行加密 -> 通過網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送給服務(wù)器 -> 服務(wù)器使用公鑰對接收到的數(shù)據(jù)進(jìn)行解密 -> 服務(wù)器使用公鑰對數(shù)據(jù)進(jìn)行加密 -> 通過網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送給客戶端 -> 客戶端再使用私鑰對數(shù)據(jù)進(jìn)行解密
配置別名
因為每次輸入ssh -p port user@remote: ? 會比較繁瑣,因此將ssh 后面用別名代替
先在~/.ssh目錄下創(chuàng)建config文件
touch config
在config文件中編輯以下內(nèi)容
Host 別名名稱
? ? HostName 服務(wù)器IP地址即remote
? ? User 服務(wù)器用戶名
? ? Port 端口
保存之后就可以用ssh 別名名稱 代替了
例如 ? ssh myserver ? ? ? ?等于 ? ? ? ?ssh -p port user@remote
#scp 使用同理 ? ? ? 若要復(fù)制文件夾需加 -r ? ? 且別名后必須加“:”
例如 ? scp -r ~/Desktop myserver:~/Desktop/sources
用戶 和 權(quán)限 的基本概念
讀 ? ? ? ? ? ? ? ?read ? ? ? ? ? ? ? ?r ? ? ? ? ? ? ? ?數(shù)字代號????4
寫 ? ? ? ? ? ? ? ?write ? ? ? ? ? ? ? w ? ? ? ? ? ? ? ????????????????????2
執(zhí)行 ? ? ? ? ? ?excute ? ? ? ? ? ?x ? ? ? ? ? ? ? ?????????????????????1

一共十個字母 ? ?往后每三個字母一組區(qū)分看 ? ?意思為 “可讀 ? ?可寫 ? ?可執(zhí)行”
第一個字母為“d”,表示為文件夾;若為“-”,表示為文件。
①對應(yīng)用戶的權(quán)限 ? ?②對應(yīng)組的權(quán)限 ? ?③對應(yīng)其他用戶的權(quán)限
而③到用戶中間的數(shù)字意思為 ? ?硬鏈接數(shù)
表示有多少種方式可以訪問到當(dāng)前目錄/文件 ? ? ?簡單理解為目錄/文件夾總數(shù) + 1
chmod的使用 ? ? ?增減權(quán)限
chmod +/- rwx 文件名/目錄名
例如chmod +w 01.py ? ? ? ? ? ?chmod -rw 02.py
##在Mac終端不一樣的用法
chmod 用戶+操作+權(quán)限 文件
用戶部分:使用字母 u 表示文件擁有者(user),g 表示擁有者所在群組(group),o 表示其他用戶(other),a 表示全部用戶(all,包含前面三種用戶范圍);
操作部分:“+” 符號表示增加權(quán)限,“-” 符號表示取消權(quán)限,“=” 符號表示賦值權(quán)限;
權(quán)限部分:“r” 符號表示可讀(read),“w” 表示可寫(write),“x” 表示可執(zhí)行權(quán)限(execute);
文件部分:如不指定文件名,表示操作對象為當(dāng)前目錄下的所有文件。
例如 chmod g+w 123.txt ? ?chmod o-r,g+x 123.txt
#但測試過 ? ?u ? 無效 ????? ?就是用戶的權(quán)限修改不了
可以用數(shù)字方式修改,下拉有方法 ? ?例如 chmod 755 01.py
超級用戶 root
root賬號通常用于系統(tǒng)的維護(hù)和管理,對操作系統(tǒng)的所有資源具有所有訪問權(quán)限
sudo ? ? ? ?(substitute user) ? ? ? ? 表示使用另一個用戶的身份
使用sudo命令表示使用了超級用戶root的身份,但需要輸入密碼,每次有效期5分鐘。
組管理
添加組/刪除組 的命令都需要通過sudo執(zhí)行
sudo groupadd 組名 ? ? ? ? ? ? ? ?添加組
sudo grouddel 組名 ? ? ? ? ? ? ? ? 刪除組
cat /etc/group ? ? ? ? ? ? ? ?查看組信息 ? ? ? ?etc目錄存放的大都是系統(tǒng)文件
chgrp -R 組名 目錄/文件名 ? ? ? ?遞歸修改目錄/文件的所屬組
若沒加sudo,會提示權(quán)限不夠
用戶管理
useradd -m -g 用戶名 ? ? ? ? ? ? ? ? ? ? ? ?-m ? ?自動建立用戶家目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -g ? ?指定用戶所在的組,否則會建立同名的組
passwd 用戶名 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 設(shè)置密碼,如果是普通用戶,直接用passwd可以修改密碼
userdel -r 用戶名 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?刪除用戶, -r 會自動刪除用戶家目錄
cat /etc/passwd | grep 用戶名 ? ? ? ? ? ? ? ?查看用戶信息
id 用戶名 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 查看用戶各種ID
使用useradd添加的用戶,默認(rèn)不在sudo組中,就是沒有sudo權(quán)限。以下添加
usermod -G sudo 用戶名
修改用戶的主組 ? ?(passwd 中的 GID)
usermod -g 組 用戶名
修改用戶的附加組
usermod -G 組 用戶名
修改用戶登錄 Shell
usermod -s /bin/bash
Which ? 查詢命令所保存在的位置????????
例 which ls ? ? ? ? ? ? ? ?which useradd
/etc/passwd ? ? ? ? ? ?用于保存用戶信息的文件
/usr/bin/passwd ? ? ? ?用于修改用戶密碼的程序
/bin ? ?(binary) ? ?是二進(jìn)制執(zhí)行文件目錄,主要用于具體應(yīng)用
/sbin ? ?(system binary) ? ?是系統(tǒng)管理員專用的二進(jìn)制代碼存放目錄,主要用于系統(tǒng)管理
/usr/bin ? ?(user commands for applications) ? ?后期安裝的一些軟件
/usr/sbin ? ?(super user commands for applications) ? ?超級用戶的一些管理程序
切換用戶
su - 用戶名 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?加“-”表示切換用戶及目錄,不加保留前用戶目錄
chown ? ? ? ? ? ? ? ? ? ? ? ? ? ?修改擁有者
chgrp ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?修改組
chmod ? ? ? ? ? ? ? ? ? ? ? ? ? ? 修改權(quán)限
修改文件/目錄的擁有者
chown 用戶名 文件名/目錄名
遞歸修改文件/目錄的組 ? ? ? ? ? ? ? ?-R ? ?表示遞歸
chgrp -R 組名 文件名/目錄名
遞歸修改文件權(quán)限
chmod -R 755 文件名/目錄名
“7”表示擁有者權(quán)限 ? ? ????“5”表示組權(quán)限 ? ? ? ?“5”其他用戶權(quán)限

常見數(shù)字組合
777 ? ?-----> ? ? ? ?u=rwx,g=rwx,o=rwx
755 ? ?-----> ? ? ? ?u=rwx,g=rx,o=rx
644 ? ?-----> ? ? ? ?u=rw,g=r,o=r
例如????chmod 755 01.py????
時間和日期
date ? ? ? ? ? ? ? ?查看系統(tǒng)時間
cal ? ? ? ? ? ? ? ? ?calendar 查看日歷,-y 選項可以查看一年的日歷
磁盤信息
df -h ? ? ? ? ? ? ? ?disk free 顯示磁盤剩余空間
du -h 目錄名 ? ? ? ?disk usage顯示目錄下的文件大小
“-h” 以直觀方式顯示文件大小
進(jìn)程信息
ps ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?process status 查看進(jìn)程的詳細(xì)情況
ps aux ? ? ? ? ? ? ? ? ? ? ? ?參數(shù)a,u,x ? ? ? ? ? ?ps a ? ? ? ? ? ? ? ?ps u
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a顯示終端上的所有進(jìn)程,包括其他用戶的進(jìn)程
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? u顯示進(jìn)程的詳細(xì)狀態(tài)
????????????????????????????????????x顯示沒有控制終端的進(jìn)程
top ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?動態(tài)顯示運(yùn)行中的進(jìn)程并且排序 ? ? ? ?退出按“q”
kill [-9]進(jìn)程代號 ? ? ? ? ? 終止指定代號的進(jìn)程,-9表示強(qiáng)行終止
find命令
find 路徑 -name "搜索條件" ? ? ? ? ? ? ? 若不輸入路徑,表示在當(dāng)前目錄搜索
例如 ? ? find Desktop/ -name "*.py"
軟鏈接
ln -s 被鏈接的源文件 鏈接文件 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?類似Windows的快捷方式
必須帶 -s ,否則建立的是硬鏈接文件
源文件要使用絕對路徑,如果使用相對路徑,一旦移動鏈接文件,無法使用
ln -s /Users/xuge/Desktop/01.py kuaijie_dakai
硬鏈接
相當(dāng)于深復(fù)制與淺復(fù)制的概念
打包解包
windows ? ?常用rar
Mac ? ? ? ? ? ?常用zip
Linux ? ? ? ? ? 常用tar.gz
打包文件 ??
tar -cvf 打包文件.tar 被打包的文件 ? ? 例如 tar -cvf py.tar 01.py 02.py
解包文件
tar -xvf 打包文件.tar
參數(shù)c,v,f,x
c ? ?生成檔案文件,創(chuàng)建打包文件
v ? ?列出歸檔解檔的詳細(xì)過程,顯示進(jìn)度
f ? ?指定檔案文件名稱,f后面一定是.tar文件,所以必須放選項最后
x ? ?解開檔案文件
注意:f 選項必須放最后,其他隨意
壓縮/解壓縮
gzip
tar與gzip命令結(jié)合使用可以實(shí)現(xiàn)文件 ?打包和壓縮
①?????tar只負(fù)責(zé)打包不負(fù)責(zé)壓縮
② ? ?用gzip壓縮tar打包后的文件,其擴(kuò)展名一般為“xxx.tar.gz”
在Linux中最常見的壓縮文件格式就是“xxx.tar.gz”
在打包解包時加一個參數(shù)“-z”,可以調(diào)用gzip,方便實(shí)現(xiàn)壓縮與解壓縮
壓縮文件
tar -zcvf 打包文件.tar.gz 被壓縮的文件
解壓縮文件
tar -zxvf 打包文件.tar.gz
解壓縮到指定路徑 ? ?-C
tar -zxvf 打包文件.tar.gz -C 目標(biāo)路徑
bzip2
用法與gzip一樣,但擴(kuò)展名不一樣 ? ? ? ? ? ?xxx.tar.bz2
參數(shù)為 -j
tar -jcvf 打包文件.tar.bz2 被壓縮的文件
tar -jxvf 打包文件.tar.bz2
APT
apt ? ?Advanced Packaging Tool ? ?是Linux下的一款安裝包管理工具
安裝軟件
sudo apt install 軟件包
卸載軟件
sudo apt remove 軟件名
更新已安裝的包
sudo apt upgrade