linux小知识
2. Linux基礎
安裝ubuntu具體方法
2.1 Linux內核及發行版本
2.1.1 Linux內核版本
-
Linux內核只有一個
-
內核是系統的心臟,是運行程序和管理(像磁盤和打印機等)硬件設備的核心程序,它提供了一個在裸設備與應用程序間的抽象層
-
回顧
-
在我們選購電腦時,通常注意力在硬件設備的配置上,在硬件設備選購完畢之后,然后在硬件設備的基礎上安裝一套操作系統,由操作系統來管理硬件(用Linux內核版本來管理硬件設備)。
-
操作系統的另一個作用:系統調用。
-
系統調用:把對硬件設備的管理封裝成一個個系統調用(方便其他應用程序簡潔的管理硬件)。
-
-
-
內核中還有一個終端命令,由終端命令來調用系統調用間接的操作電腦的硬件設備。
2.1.2 Linux發行版本
發行版是一些有志向想自己開發操作系統的人,開發的操作系統,但是開發操作系統需要寫硬件設備的接口,而linux內核已經完成了和硬件配合的工作,所以就可以在linux的基礎上搭建另外一套應用程序(一般包含桌面系統,圖形界面操作,各種應用程序等),將這一套應用程序打包,就叫做Linux發行版
發行版本包含有Linux內核,包含桌面環境,辦公套件,媒體播放器,數據庫等應用軟件
linux發行版只需要通過linux內核提供的系統調用間接的操作硬件
常見的發行版本如下:
-
Ubuntu
-
Redhat
-
Fedora
-
openSUSE
-
Linux Mint
-
Debian
-
Manjaro
-
Mageia
-
CentOS
-
Arch
2.2 linux系統下的文件和目錄結構
2.2.1 linux系統下的文件和目錄結構
-
windows xp之前的版本都是但用戶操作系統(同一時間只能由一個用戶使用,一個用戶獨自享用系統的全部硬件和軟件資源)
-
unix和linux的設計初衷就是多用戶操作系統(一臺機計算機在同一時間可以由多個用戶使用,多個用戶共同享用系統的全部硬件和軟件資源)
-
linux下沒有盤符的概念(C盤D盤等),只能看到文件夾(目錄)
-
Ubuntu沒有盤符這個概念,只有一個根目錄/,所有文件都在他下面
?
-
/home目錄中有幾個文件夾就說明在這臺電腦上在同一時間下允許三個用戶來同時使用
-
/python下面的幾個文件夾說明那幾個文件夾都只屬于python用戶
-
/python用戶不能對/laowang目錄下的文件進行操作
2.2.2 用戶目錄
位于/home/user,稱之為用戶工作目錄或家目錄,表示方式:
/home/user ~2.2.3 linux主要目錄速查表
-
/:根目錄,一般根目錄下置存放目錄,在linux下有且只有一個根目錄,所有的東西都是從這里開始。當在終端里輸入/home,其實是在告訴電腦,先從/(根目錄)開始,在進入到home目錄
-
/bin、/usr/bin:可執行二進制文件的目錄,如常用的命令ls、tar、mv、cat等
-
/boot:放置liinux系統啟動時會用到的一些文件,如linux的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub
-
/dev:存放linux系統下的設備文件,訪問該目錄下某個文件,相當于訪問某個設備,常用的是掛載光驅mount /dev/cdrom /mnt
-
/etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有:
-
/etc/inittab
-
/etc/fstab
-
/etc/init.d
-
/etc/X11
-
/etc/sysconnfig
-
/etc/xinetd.d
-
-
/home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下
-
~表示當前用戶的家目錄
-
~edu表示用戶edu的家目錄
-
-
/lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助
-
/lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置于此目錄下
-
/mnt:/media:光盤默認掛載點,通常光盤掛載于/mnt/cdrom下,也不一定,可以選擇任意位置進行掛載
-
/opt:給主機額外安裝軟件所擺放的目錄
-
/proc:此目錄的數據都在內存中,如系統核心、外部設備、網絡狀態、由于數據都存放于內存中,所以不占用磁盤空間,比較重要的文件有:
-
/proc/cpuinfo
-
/proc/interrupts
-
/proc/dma
-
/proc/ioports
-
/proc/net/*
-
-
/root:系統管理員root的家目錄
2.3 Ubuntu圖形界面的基本使用
-
ubuntu的任務欄在左邊,可以把一些常用的任務軟件拖拽到任務欄上
-
點擊第一個圖標,可以搜索想要的軟件,然后在想要留下的圖標(想把瀏覽器留在任務欄上)點擊右鍵鎖定到啟動器
-
關閉窗口的×在窗口的左上角
-
最大化窗口需要將光標移到最左上角(第一個圖標的上面)
-
菜單欄在最上面(光標移到上面的灰條中才會出現)
-
菜單欄(文件?編輯? 查看? 工具? 幫助等)
-
windows的菜單欄是跟著窗口走的
-
ubuntu的菜單欄是固定在最上面的
-
最上面是指第一個圖標上面的那個灰色條條
-
2.4 常用Linux命令的基本使用
2.4.1 為什么要學習linux終端命令?
-
在linux剛誕生時并沒有圖形界面(拿鼠標點圖形就可以打開軟件了),所有的操作必須全部依靠終端命令來完成,例如
-
磁盤操作
-
文件存取
-
目標操作
-
進程管理
-
文件權限
-
-
隨著時間的發展,在目前的IT市場上,大量的服務器維護工作都是在SSH客戶端(在自己的機器上安裝一個 SSH的客戶端)來完成的,而SSH的客戶端并沒有圖形界面,我們想要維護和管理服務器,都是需要終端命令才能夠完成的
-
在職場中,作為后端程序員,必須要或多或少的掌握一些linux常用的終端命令
-
linux發行版本的命令大概有200多個,但是常用的命令只有10多個而已
-
學習這些命令不用死記硬背,常用的命令,用的多了自然就記住了
-
不常用的命令,臨時遇到,百度就行
-
2.4.2 常用的Linux命令的基本使用
-
一般最常用的只是第一張表格的內容
| 01 | ls | list | 查看當前文件夾下的內容 |
| 02 | pwd | print work directory | 查看當前所在文件夾 |
| 03 | cd?[目錄名] 例如:cd?Desktop | change directory | 切換文件夾(如果只輸入cd則切換回家目錄?如果輸入cd .則沒有變化?如果輸入cd ..則返回上一級目錄) |
| 04 | tuoch?[文件名] | touch | 如果文件不存在,新建文件 |
| 05 | mkdir?[目錄名] | make directory | 創建目錄(創建文件夾)(目錄相當于文件夾) |
| 06 | rm?[文件名] | remove | 刪除指定的文件(要刪除文件夾需要加一些其他東西eg:rm -r [文件名稱]) |
| 07 | clear | clear | 清屏 |
| 01 | tree?[目錄名] | tree | 以樹狀圖列出文件目錄結構 |
| 02 | cp?源文件?目標文件 | copy | 復制文件或者目錄(所為目標文件,就是我們希望把源文件復制到哪里并且叫什么名字) |
| 03 | mv?源文件?目標文件 | move | 移動文件或者目錄/文件或者目錄重命名 |
| 01 | cat?文件名 | concatenate | 查看文件內容、創建文件、文件合并、追加文件內容等功能 |
| 02 | more?文件名 | more | 分屏顯示文件內容 |
| 03 | grep?搜索文本?文件名 | grep | 搜索文本文件內容 |
little tips:
-
Linux區分大小寫
-
ctrl shift =?放大終端窗口的字體顯示
-
ctrl -?縮小終端窗口的字體顯示
2.4.3 Linux終端命令
2.4.3.1 終端命令格式
command [-options] [parameter]說明:
-
command:命令名,相應功能的英文單詞或單詞的縮寫
-
[-options]:選項,可用來對命令進行控制,也可以省略
-
[parameter]:傳給命令的參數,可以是零個、一個或者多個
-
[]代表可選(中括號括起來的內容可以有也可以沒有)
-
例如:
-
ls
-
mkdir?aaa
-
rm?-r?aaa(aaa是文件夾的名字)
-
2.4.3.2 查閱命令幫助信息(知道即可)
在linux中,查詢終端命令幫助信息的兩種方式(查詢結果一般都是英文的):
- command --help
-
可以顯示 command 命令的幫助信息
-
此處的 command 和上面的 commend 同理:命令名,相應功能的英文單詞或單詞的縮寫
-
- man command
-
查閱command命令的使用手冊
-
man是 manual 的縮寫,是 linux 提供的一個手冊,包含了絕大部分的命令、函數的詳細使用說明
-
要再按一下q才會退出這個使用手冊,該條命令的其他操作鍵如下條所示
-
使用man時的操作鍵:
操作鍵功能 空格鍵 顯示手冊的下一頁 Enter鍵 一次滾動手冊頁的一行 b 回滾一屏 f 前滾一屏(和按空格鍵的顯示效果是一樣的) q 退出 /word 搜索word字符串
-
2.4.3.3 文件和目錄常用命令
-
查看目錄內容
ls
-
切換目錄
cd
-
創建和刪除操作
-
touch
-
rm
-
mkdir
-
-
拷貝和移動文件
-
cp
-
mv
-
-
查看文件內容
-
cat
-
more
-
grep
-
-
其他
-
echo
-
重定向>和>>
-
管道|
-
2.4.3.3.1 ls命令說明
2.4.3.3.1.1 ls說明
-
ls列出目錄的內容
-
注:linux下文件和目錄的特點
-
linux文件或目錄名稱最長可以有256個字符
-
以.開頭的文件為隱藏文件,需要用-a參數才能顯示
-
擴展:.代表當前目錄
-
擴展:..代表上一級目錄
-
2.4.3.3.1.2 ls常用選項
| -a | 顯示指定目錄下所有子目錄與文件,包括隱藏文件 |
| -l | 以列表方式顯示文件的詳細信息 |
| -h | 配合-l以人性化的方式顯示文件大小(必須配合-l選項一起使用) |
注:
-
ls之后的結果:文件夾用藍色字體顯示,文件用白色字體顯示
演示:
ls -l
-
會以縱向的方式列表顯示當前文件夾中所有的目錄以及文件
-
ls -l會顯示文件(夾)創建時間,日期,以及文件(夾)占用磁盤大小
-
第一列的d表示文件夾,沒有d則說明不是文件夾而是文件
-
中間那兩列python學到后面再補充(現在還不知道)
ls -l -h
-
同ls - lh
注:在linux中,終端命令的選項,如果有多個選項,可以分開來輸入,也可以合在一起來輸入
例如:la -alh或者ls -a -l -h以縱向方式查看所有文件,且磁盤大小顯示人性化
-
演示:
-
磁盤大小顯示人性化(18表示18個字節)
2.4.3.3.1.3 ls通配符的使用
| * | 代表任意個數個字符 |
| ? | 代表任意一個字符,至少一個 |
| [] | 表示可以匹配字符組中的任意一個 |
| [abc] | 匹配a、b、c中的任意一個 |
| [a-f] | 匹配從a到f范圍內的任意一個 |
-
例如:
-
查找以數字1開頭的文件ls 1*
-
查找以數字1結尾的文件ls *1.txt(必須加上文件擴展名或者在后面加*)
-
查找以數字3結尾的文件ls *3*
?
-
查找文件開頭和結尾為1,且中間一個字符不確定的文件ls 1?1.txt
-
查找中間字符為2的文件ls ?2?.txt
-
查找第一個字符是12345中的一個,后面兩個字符是23的文件ls [12345]23.txt
-
2.4.3.3.2 cd命令說明
-
cd更改當前的工作目錄
| cd | 切換到當前用戶的主目錄(/home/用戶目錄) |
| cd ~ | 切換到當前用戶的主目錄(/home/用戶目錄) |
| cd . | 保持在當前目錄不變 |
| cd .. | 切換到上級目錄 |
| cd - | 可以在最近兩次工作目錄之間來回切換 |
例:當前處在家目錄的桌面目錄下,需要將家目錄下的桌面目錄切換到家目錄下的文檔目錄: cd ~/Documents
2.4.3.3.3 touch命令說明
-
創建文件或者修改文件時間
-
如果文件不存在,可以創建一個空白文件
-
如果文件已經存在,可以修改文件的末次修改日期
例如:111.txt文件我昨天創建的,今天touch 111.txt那么時間(ls -lh可以看到它的詳細信息)會修改到今天這個時候
-
2.4.3.3.4 mkdir命令說明
-
創建一個新的目錄
選項含義 -p 可以遞歸創建目錄(一次性創建多個文件夾) 注:新建目錄的名稱不能與當前目錄中已有的目錄或文件同名(在linux中,文件也好,目錄也好,是不允許同名的)
例如:先創建a目錄,再在a目錄下創建b,在b目錄下創建c:
mkdir -p a/b/c
2.4.3.3.5 rm命令說明
-
刪除文件或目錄
-
注意:使用rm命令要小心,因為文件刪除后不能恢復(并不是放在回收站中,給我們一個后悔的機會)
-
rm命令同樣可以使用通配符
-
例如刪除所有文件和目錄rm -r *(切記不要在根目錄下做這個事情,否則系統就徹底完蛋了)
選項含義 -f 強制刪除,忽略不存在的文件,無需提示 -r 遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數
2.4.3.3.6 tree命令說明
-
以樹狀圖列出文件目錄結構
-
tree列出當前位置下的目錄結構
-
tree [目錄名]列出目錄名下的目錄結構
選項含義 -d 只顯示目錄,不顯示文件
2.4.3.3.7 cp命令說明
-
將給出的 文件 或 目錄 復制到另一個 文件 或 目錄 中,相當于DOS下的copy命令
| -i | 覆蓋文件前提示 |
| -r | 若給出的源文件是目標文件,則cp 將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名 |
-
例如:
-
將家目錄下的readme.txt文件復制到當前文件夾下:
cp ~/Documents/readme.txt ./readme.txt-
如果文件名不發生改變,也可以這樣寫:
cp ~/Documents/readme.txt .(當我們使用cp這個命令,想要復制某一個文件的時候,如果文件名不發生改變,那后面的參數,只需要指定目標路徑就可以了)
-
-
如果當前文件夾下已經有readme.txt文件,并且和家目錄下的readme.txt不一樣,那么在文件里面他會提示內容發生變更是否需要重新載入
-
如果輸入cp -i ~/Documents/readme.txt .他就會在終端提醒是否覆蓋?如果在敲一個n就不會覆蓋 readme.txt ;如果在敲一個y就會覆蓋 readme.txt
-
2.4.3.3.8 mv命令說明
-
mv命令可以用來移動 文件或者目錄,也可以給文件或目錄重命名
-
修改文件
-
例如:將當前那路徑下的 a目錄下的 b目錄下的 c目錄下的 123.txt 移動到 當前路徑下
mv a/b/c/123.txt . -
例如:文件重命名:(若源文件和目標文件,路徑相同,文件名不同)
將123.txt重命名為111.txt
mv 123.txt 111.txt -
例如:在重命名時名稱與另一個文件相同,則會覆蓋另一個文件的內容(用這種方式非常的不安全,覆蓋就回不去了,所以需要加上 -i (同 cp 中的 -i ))
當前路徑下有 112.txt ,將 111.txt 重命名為112.txt
mv 111.txt 112.txt此時 112.txt 里的內容是原 111.txt 的內容
選項含義 -i 覆蓋文件前提示 -
例如:當前路徑下有 112.txt ,將 111.txt 重命名為112.txt
mv -i 111.txt 112.txt
-
-
mv修改文件夾的內容
-
當前目錄下的 a文件夾 重命名為 b文件夾 mv a b(給文件重命名的時候最好加一個-i選項)
-
2.4.3.3.9 cat命令說明
-
cat 命令可以用來查看文件內容、創建文件、文件合并、追加文件內容等功能
-
cat 會一次顯示所有的內容,適合查看內容較少的文本文件
| -b | 對 非空輸出行 編號 |
| -n | 對 輸出的所有行 編號 |
-
注:Linux中還有一個 nl 的命令和 cat -b 的效果等價
2.4.3.3.10 more命令說明
-
more命令可以用于分屏顯示文件內容,每次只顯示一頁內容
-
適用于查看內容較多的文本文件
-
使用 more 的操作鍵:
| 空格鍵 | 顯示手冊的下一屏 |
| Enter | 一次滾動手冊頁的一行 |
| b | 回滾一屏 |
| f | 前滾一屏 |
| q | 退出 |
| /word | 搜索 word 字符串 |
2.4.3.3.11 grep命令說明
-
Linux 系統中 grep命令是一種強大的文本搜索工具(專門用來查找文件中是否包含 指定文本 的終端命令)(windows是使用 ctri+F查找)
-
grep允許對文本文件進行模式查找,所謂模式查找,又被稱為正則表達式
例如:
-
指定的文本一定出現在一行的行首,這個就是一種模式
-
指定的文本一定出現在一行的行尾,這個也叫作一種模式
-
| -n | 顯示匹配行及行號 |
| -v | 顯示不包含匹配文本的所有行(相當于求反) |
| -i | 忽略大小寫 |
-
例如:
-
grep -i hello 123.txt
-
grep -i "hello python" 123.txt
-
-
常用的兩種模式查找
| ^a | 行首,搜尋以a開頭的行 |
| ke$ | 行尾,搜尋以ke結束的行 |
例如:
-
grep ^a 123.txt
-
grep ke$ 123.txt
2.4.3.3.12 echo 文字內容
-
把傳遞給命令的參數在終端中再顯示一遍
-
echo會在終端中顯示參數指定的文字,通常會和重定向聯合使用
-
例如:
-
echo hello,那么返回的結果就是 hello
-
echo hello python,那么返回的結果就是 hello python
-
2.4.3.3.13 重定向 > 和 >>
-
linux 允許將命令執行結果重定向到一個文件
-
將本應顯示在終端上的內容 輸出/追加 到 指定文件中
其中:
-
> 表示輸出,會覆蓋文件原有的內容
-
>> 表示追加,會將內容追加到已有文件的末尾
例如:
-
echo hello > 123.txt
-
echo hello >> 123.txt
2.4.3.3.14 管道 |
-
linux 允許將一個命令的輸出,可以通過管道做為另一個命令的輸入
-
可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這里 | 的左右分為兩段,左端塞東西(寫),右端取東西(讀)
例如:
-
列出家目錄下的文件信息(假設信息很多需要分屏查看):ls -lha ~ | more
-
查詢文件以及文件夾中包含Do內容的項:ls -lha ~ | grep Do
-
常用的管道命令有:
-
more 分屏顯示內容
-
grep 在命令執行的結果的基礎上查詢指定的文本
2.4.3.4 遠程管理常用命令
-
關機、重啟
-
shutdown
-
-
查看或配置網卡信息
-
ifconfig
-
ping
-
-
遠程登錄和復制文件
-
ssh
-
scp
-
2.4.3.4.1 關機、重啟
| 01 | shutdown 選項 時間 | shutdown | 關機、重新啟動 |
2.4.3.4.1.1 shutdown
-
shutdown 命令可以 安全 關閉 或者 重新啟動系統
選項含義 -r 重新啟動 提示:
-
不指定選項和參數,默認 表示 1分鐘之后 關閉電腦
-
遠程維護服務器時,最好不要關閉系統(遠程服務器重新開機會很麻煩) ,而應該重新啟動程序(一定要記得加上 -r 選項)
-
-
常用命令實例
2.4.3.4.2 查看或配置網卡信息
| 01 | ifconfig | configure a network interface | 查看、配置計算機當前的網卡配置信息 |
| 02 | ping 地址 | ping | 檢測到目標ip地址的連接是否正常 |
2.4.3.4.2.1 網卡和IP地址
網卡
-
網卡是一個專門負責網絡通訊的硬件設備
-
IP地址是設置在網卡上的地址信息
我們可以把 電腦 比作 電話, 網卡 相當于 SIM 卡,IP 地址 相當于 電話號碼
IP地址
-
每臺聯網的電腦上都有IP地址,是保證電腦之間正常通訊的重要設備
注意:每臺電腦的IP地址不能相同,否則會出現IP地址沖突,并且沒有辦法正常通訊
注:Windows查看ip地址:
-
win+R
-
輸入 cmd 回車(enter鍵)
-
輸入 ipconfig 回車
2.4.3.4.2.2 ifconfig
-
ifconfig 可以查看、配置計算機當前的網卡配置信息
提示:一臺計算機中有可能會有一個 物理網卡 和 多個虛擬網卡,在 linux 中物理網卡的名字通常以 ensXX 表示
舉例:
提示:
-
上面有兩個網卡:ens33 和 lo
-
ip地址 是 inet地址(例如第一個網卡的 ip地址 是172.16.140.138? 第二個網卡的 ip地址 是 127.0.0.1)
友情提示:127.0.0.1是本地環回地址,是專門用來測試網卡是否正常工作的,如何測試網卡,稍后會講
-
inet6 對應的地址是 ipv6 的地址;inet 對應的是 ipv4 的地址
2.4.3.4.2.3 ping
#檢測到目標主機是否連接正常 $ping IP地址 ? #檢測本地網卡工作正常 $ping 127.0.0.1-
ping 一般用于檢測當前計算機到目標計算機之間的網絡 是否通暢,后面時間數值越大,速度越慢
-
ping 的工作原理與潛水艇的聲吶相似,ping 這個命令就是取自 聲吶的聲音
-
網絡管理員之間也常將 ping 用作動詞 —— ping 一下計算機X,看他是否開著
原理:網絡上的機器都有 唯一確定的IP地址,我們給目標IP地址發送一個數據包,對方就要返回一個數據包,根據返回的數據包以及時間,我們可以確定目標主機的存在
提示:在 linux 中,想要終止一個終端程序的執行,絕大多數都可以使用 ctrl + c
2.4.3.4.3 遠程登錄和復制文件
| 01 | ssh 用戶名@ip | secure shell | 關機、重新啟動 |
| 02 | scp用戶名@ip:文件名或路徑 用戶名@ip:文件名或路徑 | secure copy | 遠程復制文件 |
2.4.3.4.3.1 ssh基礎
在 Linux 中 ssh 是非常常用的工具,通過 ssh 客戶端 我們可以連接到運行了 ssh 服務器 的遠程機器上
-
SSH 客戶端是一種使用Secure Shell(SSH) 協議連接到遠程計算機的軟件程序
-
SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務 提供安全性的協議
-
利用 SSH協議 可以有效防止遠程管理過程中的信息泄露
-
通過 SSH協議 可以對所有傳輸的數據進行加密,也能夠防止 DNS 欺騙和 IP 欺騙
-
-
SSH 的另一項優點是傳輸的數據可以是經過壓縮的,所以可以加快傳輸的速度
1. 域名 和 端口號
域名
-
由一串 用點分割 的名字組成,例如:www.baidu.com
-
是 IP 地址的別名,方便用戶記憶
端口號
-
IP 地址:通過 IP 地址找到網絡上的 計算機
-
端口號:通過 端口號 可以找到 計算機上運行的應用程序
-
SSH 服務器 的默認端口號是 22 ,如果是默認端口號,在連接的時候,可以省略
-
-
常見服務器端口號列表:
序號服務端口號 01 SSH 服務器 22 02 Web 服務器 80 03 HTTPS 443 04 FTP 服務器 21
-
注意:
-
IP 地址 和 端口號 兩個都不能錯,錯一個都不能實現正常的網絡訪問
-
如果在訪問服務器的時候,沒有指定端口,那么就是用默認的端口
-
tips : 有關 端口號 的詳細內容,可自行百度
2. SSH 客戶端的簡單使用
ssh [-p port] user@remote-
user 是在遠程機器上的用戶名,如果不指定的話默認為當前用戶
-
remote 是遠程機器的地址,可以是 IP/域名,或者是 后面會提到的別名
-
port 是 SSH Server 監聽的端口,如果不指定,就為默認值22,如果是默認值,則可以省略
自己的練習
ssh -p 22 zhaoqq@20.30.1.4提示:
-
使用exit 退出當前用戶的登錄
注意:
-
ssh 這個終端命令只能在 Linux 或者 UNIX 系統下使用
-
如果在 windows 系統中,可以安裝 PuTTY 或者 XShell 客戶端軟件即可
提示:
-
在工作中, SSH 服務器的端口號很有可能不是22,如果遇到這種情況就需要使用 -p 選項,指定正確的端口號,否則無法正常連到服務器
3. windows 下 SSH 客戶端的安裝
-
Putty Download PuTTY: latest release (0.78)
-
XShell Xmanager中文官網_Xshell,Xmanager,Xftp 7下載
建議從官方網站下載正式的安裝程序
安裝和使用可以參照:52-遠程管理命令-11-XShell的安裝-免費和設置語言_嗶哩嗶哩_bilibili
scp
-
scp 就是 secure cope ,是一個在Linux下用來運行 遠程拷貝文件 的命令
-
他的地址格式與 ssh 基本相同,需要注意的是,在指定端口時用的是大寫的 -P 而不是小寫的?
-
自己的練習
| -r | 若給出的源文件是目錄文件,則 scp 將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名 |
| -P | 若遠程 SSH 服務器的端口不是 22 ,需要使用大寫字母 -P 選項指定端口 |
注意:
-
scp 這個終端命令只能在 Linux 或者 UNIX 系統下使用
-
如果在 Windows 系統中,可以安裝 PuTTY ,使用 pscp 命令行工具或者安裝 FileZilla 使用 FTP 進行文件傳輸
FillZilla
-
官方網站:客戶端 - FileZilla中文網
-
FileZilla 在傳輸文件時,使用的是FTP服務 而不是 SSH服務 ,因此端口號應該設置為 21
-
FileZilla如何使用:55-遠程管理命令-14-FileZilla在Windows下文件傳輸_嗶哩嗶哩_bilibili
SSH高級
-
免密碼登錄
-
配置別名
提示:
-
有關 SSH 配置信息都保存在用戶家目錄下的 .ssh 目錄下
-
.ssh 表示文件是隱藏的,需要用 ls -a 讀取
-
.ssh 文件夾里面的 known_hosts本質上記錄的是:在第一次連接遠程主機的授權信息(例如:主機地址)。再下一次使用 ssh 連接時就不會再有授權提示了
免密碼登錄
步驟
-
配置公鑰(在 ssh 路徑下)
-
執行 ssh-keygen 即可生成 SSH 鑰匙,一路回車即可
-
-
上傳公鑰到服務器
-
執行 ssh-copy-id -p port user@remote ,可以讓遠程服務器記住我們的公鑰
?
-
非對稱加密算法
-
使用 公鑰 加密的數據,需要使用 私鑰 解密
-
使用 私鑰 加密的數據,需要使用 公鑰 解密
2. 配置別名
每次都輸入 ssh -p port user@remote ,時間久了就會覺得很麻煩,特別是當 user , remote 和 port 都得輸入,而且還不好記憶 而 配置別名 可以讓我們進一步偷懶,譬如用: ssh ubuntu 來代替上面這么長一串,那么就在 ~/.ssh/config 里面追加以下內容:
Host ubuntu #遠端別名,可以隨便輸,但是不能有空格HostName 20.30.1.4 #遠端 ip 地址User zhaoqq #遠程計算機的用戶名Port 22 #遠端端口號保存之后,即可用 ssh ubuntu 實現遠程登錄了,scp 同樣可以使用
2.4.3.5 終端實用技巧
自動補全
-
如果拼寫沒有錯,按tab鍵會自動補齊文件(夾)名稱
-
例如:cd De,然后按一下tab他會自動補齊成cd Desktop
-
-
如果文件(夾)名稱的前幾個字母一樣,按兩下tab鍵他會顯示所有符合要求的文件夾名稱
例如:
-
我的文件夾有Desktop Documents Downloads
-
然后我輸入cd D按兩下tab鍵,他會顯示Desktop/ Documents/ Downloads/
-
然后可以輸入cd [文件夾名]切換到我們想進入的文件夾里面了
-
?
????2. 曾經使用過的命令
-
按上下左右的上/下鍵可以在曾經使用過的命令之間來回切換
-
如果想要退出選擇,并且不想執行當前選中的命令,可以按ctrl+c
? ? 3.??清屏操作
-
clear
2.4.3.6 相對路徑和絕對路徑
-
相對路徑在輸入路徑時,最前面不是/或者~,表示相對當前目錄所在的目錄位置
-
絕對路徑在輸入路徑時,最前面是/或者~,表示從根目錄/家目錄開始的具體目錄位置
例如:
-
絕對路徑:cd /home/python/Desktop
-
相對路徑:cd ..(相對于當前目錄的上一級目錄)
-
假設當前目錄是python目錄 cd Desktop則是相對目錄
-
2.5 用戶權限相關命令(了解即可)
2.5.1 用戶 和 權限 的基本概念
基本概念
-
用戶 是 Linux 系統工作中重要的一環,用戶管理包括 用戶 與 組 管理
-
在 Linux 系統中,不論是由本機或是遠程登錄系統,每一個用戶必須擁有一個賬號,并且對于不同的系統資源擁有不同的使用權限
-
在 Linux 中,可以指定 每一個用戶 針對 不同的文件或者目錄 的不同權限
-
對 文件/目錄 的權限包括:
序號權限英文縮寫數字代號 01 讀 read r 4 02 寫 write w 2 03 執行 excute x 1 04 無權限 - 0 執行文件:的語法格式 ./01.py (當前路徑下的01.py文件),就可以執行了
2.5.2 組
-
為了方便用戶管理,提出了 組 的概念,如下圖所示:
-
在實際應用中,可以預先針對 組 設置好權限,然后 將不同的用戶添加到對應的組中,從而不用以此為每一個用戶設置權限
2.5.3 ls -l 擴展
-
ls -l 可以以列表的方式查看文件夾下文件的詳細信息,從左到右依次是:
-
第一個字符如果是d表示目錄,- 表示文件夾
-
權限
-
第一組rwx表示文件擁有者的權限(第一列 python 就是 文件擁有者 的名稱)
-
第二組rwx表示 組 的權限(第二列 python 就是 組 的名稱)
-
第三組rwx表示 其他用戶 的權限
-
注:絕大多數組和用戶名是相同的
-
-
-
-
硬鏈接數(權限后面的數字1、2),通俗的講,就是有多少種方式,可以訪問到當前目錄/文件
例如:
-
dump.rdb 無論在什么情況下都可以用絕對路徑獲取信息 cat /home/python/dump.rdb
-
Desktop 文件夾無論在什么情況下都可以有兩種方式打開:
-
cd /home/python/Desktop
-
在 Desktop 路徑下,使用 cd .
-
假如Desktop 文件夾里面還有別的子文件夾,那么他的硬鏈接數就會變成3: 在Desktop 里面的子文件夾中輸入:cd ..(若有兩個子文件夾就會變成4,三個子文件夾就會變成5)
-
一個文件夾的子目錄越多,那么他的硬鏈接數也越多
-
-
-
擁有者,家目錄下 文件/目錄 的擁有者通常是當前用戶
-
組 在 Linux 中,很多時候,會出現組名和用戶名相同的情況,后續會補充
-
大小
-
時間
-
名稱
-
2.5.4 chmod 簡單使用(重要)
-
chmod 可以修改 用戶/組 對文件/目錄 的權限
-
命令格式如下:
chmod +/-rwx 文件名|目錄名 # +表示增加權限,-表示減少權限
提示:以上方式會一次性修改 擁有者/組 權限,有關 chmod 的高級用法,后續補充
目錄:
-
對目錄而言一般都有可執行權限,如果去掉可執行權限,那么使用cd 目錄名 或者 ls 目錄名 命令就會提示權限不夠
-
如果關掉可讀可寫的權限,使用cd 目錄名 或者 ls 目錄名 (這個目錄仍然有可執行權限)命令仍然可以讀取。
但是如果進入到文件夾
-
使用 ls (在這個目錄下沒有可讀權限)就會提示權限不夠
-
使用touch 02.py (在這個目錄下沒有可寫權限)也會提示權限不夠
-
2.5.5 超級用戶
-
Linux 系統中的 root 賬號通常 用于系統的維護和管理,對操作系統的所有資源 具有所有訪問權限
-
在大多數版本的 Linux 中,都不推薦 直接使用 root 賬號登錄系統
-
在 Linux 安裝過程中,系統會自動創建一個用戶賬號,而這個默認的用戶就稱為“標準用戶”(標準用戶:只能在自己的家目錄下活動的用戶,不能修改系統設置相關的文件)
sudo
-
su 是substitute user 的縮寫,表示 使用另一個用戶的身份
-
sudo 命令用來以其他身份來執行命令,預設的身份為 root
-
用戶使用 sudo 時,必須先輸入密碼,之后有 5分鐘的有效期限,超過期限則必須重新輸入密碼
若其未經授權的用戶企圖使用sudo ,則會發出警告郵件給管理員
2.6 組管理 終端命令
提示: 創建組/刪除組 的終端命令都需要通過 sudo 執行
| 01 | groupadd 組名 | 添加組 |
| 02 | groupdel 組名 | 刪除組 |
| 03 | cat /etc/group | 確認組信息 |
| 04 | chgrp -R 組名 文件/目錄名 | 遞歸修改文件/目錄的所屬組 |
-
要加上 sudo 不然會提示權限不夠
-
在 python 用戶的桌面文件夾下創建 Python學習 目錄
mkdir Python學習
-
新建 dev 組
sudo groupadd dev
-
查看是否創建成功
cat /etc/group
-
將 python學習 目錄的組修改為 dev
sudo chgrp -R dev Python學習
-
在默認情況下,文件和目錄的 擁有者 就是 當前這個用戶,同時,會使用一個同名的組名 作為 文件和目錄的組,現在的目標是需要將 Python學習 這個目錄對應的 組名 改為 dev
-
-R 選項可以遞歸修改目錄中所有子目錄以及文件的權限
-
提示:
-
組信息保存在 /etc/group 文件中
-
/etc 目錄是專門用來保存 系統配置信息 的目錄
-
在實際應用中,可以預先針對 組 設置好權限,然后 將不同的用戶添加到對應的組中,從而 不用依次為每一個用戶設置權限
2.7 用戶管理 終端命令
提示: 創建用戶/刪除用戶/修改其他用戶密碼 的終端命令都需要通過 sudo 執行
創建用戶/設置密碼/刪除用戶
| 01 | useradd -m -g 組 新建用戶名 | 添加新用戶 | - -m自動建立用戶家目錄 - -g 指定用戶所在的組,否則會自動建立一個和同名的組 |
| 02 | passwd 用戶名 | 設置用戶密碼 | 如果是普通用戶,直接用 passwd 可以修改自己的賬戶密碼 |
| 03 | userdel -r 用戶名 | 刪除用戶 | -r 選項會自動刪除用戶家目錄 |
| 04 | cat /etc/passwd |grep 用戶名 | 確認用戶信息 | 新建用戶后,用戶信息會保存在/etc/passwd 文件 中 |
提示:
-
在 Linux 系統中,要想添加新用戶,必須使用兩個終端命令
-
添加新用戶
-
設置用戶密碼
-
-
創建用戶時,如果忘記添加-m選項指定新用戶的家目錄 -- 最簡單的辦法就是刪除用戶(要添加-r),重新創建
-
創建用戶時,默認會創建一個和用戶名同名的組名
-
用戶信息(包括用戶所在的家目錄信息)保存在 /etc/passwd 文件中
2. 查看用戶信息
| 01 | id [用戶名] | 查看用戶 UID 和GID 信息(UID:用戶代號;GID:組代號) |
| 02 | who | 查看當前所有登錄的用戶列表 |
| 03 | whoami | 查看當前登錄用戶的賬戶名 |
id命令
?
-
如果只輸入 id ,則表示查看當前用戶的 GID 和 UID
-
最后一條命令中:
-
5行,adm 表示管理員,后面的python表示在/etc/passwd 中記錄的python用戶,表示python用戶具有管理員權限
-
18行,python用戶可以訪問系統的光驅
-
21行,python用戶可以以root的身份進行系統的管理和維護
-
67行,對應的是python的組,python組的代號是1000
-
注意:UID 存儲在 /etc/passwd中
-
在 passwd 中通過: 分割信息
passwd 文件
-
/etc/passwd 文件存放的是用戶的信息,由6個分好組成的7個信息,分別是
-
用戶名
-
密碼(x,表示用戶名是有密碼的,只不過密碼是加密的)
-
UID(用戶標識)
-
GID(組標識)
-
用戶全名或本地賬號(李四用戶的全名,如果沒有設置,就使用用戶名作為用戶的全名)
-
家目錄
-
登錄使用的 Shell,就是登陸之后,使用的終端命令,ubuntu 默認是 dash?(dash是一個軟件)
注意:GID 存儲在 /etc/group 中
who、whoami命令
?
usermod
usermod 可以用來設置 用戶 的 主組/附加組 和登錄 Shell,命令格式如下:
-
主組:通常在新建用戶時指定,在 /etc/passwd 的第四列 GID 對應的組(在新建用戶時,使用-g選項的組就是主組,如果不使用-g選項,系統就會默認幫我們建立一個用戶同名的組,這個組就是用戶的主組)
-
附加組:在 /etc/group 中最后一列表示該組的用戶列表,用于指定用戶的附加權限
-
登錄 Shell
-
ubuntu 默認是 dash(dash效率更高,但是dash不能使用 向上鍵(向上鍵可以使用上一條命令)
-
python 用的是 bash(bash更直觀,文件和文件夾有不同顏色,并且 向上鍵可以使用)
-
提示:設置了用戶的附加組之后,需要重新登錄才能生效!
sudo usermod -G sudo zhangsan exit ssh zhangsan@172.16.140.138 # 現在才可以使用sudo權限 sudo useradd -m -g dev wangwu # 修改用戶的主組(passwd 中的 GID) usermod -G 組 用戶名 ? # 修改用戶的附加組 usermod -G 組 用戶名 ? # 修改用戶登錄 Shell usermod -s /bin/bash注意:默認使用 useradd添加的用戶是沒有權限使用sudo以root身份執行命令的,可以使用以下命令,將用戶添加到 sudo附加組中
usermod -G sudo 用戶名which(重要)
tips :
-
/etc/passwd是用于保存用戶信息的文件
-
/usr/bin/passwd是用于修改客戶密碼的程序
?
-
which命令可以查看執行命令所在位置,例如:
bin 和 sbin
-
在linux中,絕大多數可執行文件都是保存在/bin,/sbin,/usr/bin,/usr/sbin
-
/bin(binary)是二進制執行文件目錄,主要用于具體應用
-
/sbin(system binary)是系統管理員專門用的二進制代碼存放目錄,主要用于系統管理
-
/usr/bin(user commands for applications)后期安裝的一些軟件
-
/usr/sbin(super user commands for applications)超級用戶的一些管理程序
tips:
-
cd這個終端命令是內置在系統內核中的,沒有獨立的文件,因此用which無法找到cd命令的位置
3. 切換用戶
| 01 | su -用戶名 | 切換用戶,并且切換目錄 | - 可以切換到用戶家目錄,否則保持位置不變 |
| 02 | exit | 退出當前登錄賬戶 |
-
su不接用戶名,可以切換到root,但是不推薦使用,因為不安全
-
exit示意圖如下:
?
4. 修改文件權限
| 01 | chown | 修改擁有者 |
| 02 | chgrp | 修改組 |
| 03 | chmod | 修改權限 |
-
命令格式如下:
-
chmod在設置權限時,可以簡單的使用三個數字分別對應 擁有者/組 和 其他 用戶的權限
-
常見數字組合有(u表示用戶、g表示組、o表示其他):
-
777 ===>u=rwx,g=rwx,o=rwx
-
755 ===>u=rwx,g=rx,o=rx
-
644 ===>u=rw,g=r,o=r
-
chmod 練習
將 01.py 的權限修改為u=rwx,g=rx,o=rx
將123.txt的權限修改為u=rw,g=r,o=-
將test 目錄及目錄下 所有 文件權限修改為u=rwx,g=rwx,o=rx
2.8 系統信息
-
方便通過遠程終端維護服務器時,查看服務器上當前 系統日期和時間/磁盤空間/占用情況/ 程序執行情況
2.8.1 時間和日期
| 01 | date | 查看系統時間 |
| 02 | cal | calender 查看日歷,-y選項可以查看一年的日歷 |
2.8.2 磁盤和目錄空間
| 01 | df -h | disk free 顯示磁盤剩余空間 |
| 02 | du -h [目錄名] | disk usage 顯示目錄下的文件大小 |
-
選項說明
| -h | 以人性化的方式顯示文件大小 |
?
?
2.8.3 進程信息
-
所謂進程,通俗的說就是當前正在執行的一個程序
| 01 | ps aux | process status 查看進程的詳細狀況 |
| 02 | top | 動態顯示運行中的進程并且排序 |
| 03 | kill [-9] 進程代號 | 終止指定代號的進程,-9 表示強行終止 |
ps 默認只會顯示當前用戶通過終端啟動的應用程序
-
ps選項說明功能
| a | 顯示終端上的所有進程,包括其他用戶的進程 |
| u | 顯示進程的詳細狀態 |
| x | 顯示沒有控制終端的進程 |
?只輸入top然后回車,得到結果如下:
- ?要退出top 可以直接輸入q
?
tips :
- 使用kill命令之前,要先ps知道進程代號(PID)
- 使用kill命令時,最好只終止由當前用戶開啟的進程,而不要終止root 身份開啟的進程,否則可能導致系統崩潰
2.9 其他命令
2.9.1 查找文件
-
find 命令功能非常強大,通常用來在特定的目錄下 搜索 符合條件的文件
| 01 | find [路徑] -name "*.py" | 查找指定路徑下擴展名是.py的文件,包括子目錄 |
-
如果省略路徑,表示在當前文件夾下查找
-
之前學習的通配符,在使用find命令時同時可用
-
有關find的高級使用,后續會寫
練習:
搜索桌面目錄下,文件名包含 1 的文件
搜索桌面目錄下,所有以.txt為擴展名的文件
搜索桌面目錄下,以數字 1 開頭的文件
2.9.2 軟鏈接
| 01 | ln -s 被鏈接的源文件 鏈接文件 | 建立文件的軟鏈接,用通俗的方式講類似于windows下的快捷方式 |
注意:
-
沒有-s選項建立的是一個硬鏈接文件
-
兩個文件占用相同大小的磁盤空間,工作中幾乎不會建立文件的硬鏈接
-
-
源文件要使用絕對路徑,不能使用相對路徑,這樣可以方便移動鏈接文件后,仍然能夠正常使用
練習:
將桌面目錄下的01.py 移動到demo/b/c目錄下
將桌面目錄下新建01.py的軟鏈接01_xiangdui和01_juedui
- 分別使用相對路徑和絕對路徑建立01_xiangdui和01_juedui的軟鏈接將01_xiangdui和01_juedui移動到demo目錄下,對比使用相對路徑和絕對路徑的區別
硬鏈接簡介(知道)
-
在使用ln創建鏈接時,如果沒有-s選項,會創建一個硬鏈接,而不是軟鏈接
練習:
在~/Desktop/demo目錄下建立~/Desktop/demo/b/c/01.py的硬鏈接01_hard
使用ls -l查看文件的硬鏈接數(硬鏈接--有多少種方式可以訪問文件或者目錄)
刪除~/Desktop/demo/b/c/01.py,并且使用tree來確認demo目錄下的三個鏈接文件
?
文件硬鏈接的示意圖:
在 Linux 中,文件名 和 文件的數據 是分開存儲的
tips:
-
在Linux中,只有文件的硬鏈接數 == 0才會被刪除
-
使用ls -l可以查看一個文件的硬鏈接的數量
-
在日常工作中,幾乎不會建立文件的硬鏈接,知道即可
2.9.3 打包和壓縮
-
打包壓縮是日常工作中備份文件的一種方式
-
在不同的操作系統中,常用的打包壓縮方式是不同的
-
windows 常用 rar
-
mac 常用 zip
-
linux 常用 tar.gz
-
2.9.3.1 打包/解包
-
tar是 linux中最常用的備份工具,此命令可以把一些列文件打包到一個大文件中,也可以把一個打包的大文件恢復成一系列文件
-
tar的命令格式如下:
-
tar選項說明
| c | 生成檔案文件,創建打包文件 |
| x | 解開檔案文件 |
| v | 列出歸檔解檔的詳細過程,顯示進度 |
| f | 指定檔案文件名稱,f后面一定是.tar文件,所以必須放選項最后 |
注意:f選項必須放在最后,其它選項順序可以隨意
練習:
刪除桌面下的所有內容
在桌面上新建三個空白文件01.py,02.py,03.py
將這三個文件夾打包成py.tar的包
新建tar目錄,并且將py.tar移動到tar目錄下
解包py.tar
?
?
2.9.3.2 壓縮/解壓縮
gzip
-
tar與gzip命令結合可以使用實現文件 打包和壓縮
-
tar只負責打包文件,但不壓縮
-
用gzip壓縮tar打包后的文件,其擴展名一般用xxx.tar.gz
-
在Linux中,最常見的一種壓縮格式就是xxx.tar.gz
-
在tar命令中有一個選項 -z 可以調用gzip,從而可以方便的實現壓縮和解壓縮的功能
-
命令格式如下:
| -C | 解壓縮到指定目錄,注意:要解壓縮的目錄必須存在 |
?
bzip2(two)
-
tar與bzip2命令結合可以使用實現文件 打包和壓縮(用法和gzip一樣)
-
tar只負責打包文件,但不壓縮
-
用bzip2壓縮tar打包后的文件,其擴展名一般用xxx.tar.bz2
-
-
在tar命令中有一個選項 -j 可以調用bzip2,從而可以方便的實現壓縮和解壓縮的功能
-
命令格式如下:
2.9.4 軟件安裝
通過apt安裝/卸載軟件
-
apt是Advanced Packaging Tool,是Linux下的一款安裝包管理工具
-
可以在終端中方便的 安裝/卸載/更新軟件包
練習:
# 一個小火車提示 $ sudo apt install sl ? # 一個比較漂亮的查看當前進程排名的軟件(按 q 退出) $ sudo apt install htop?htop輸出結果如下:
?
配置軟件源
-
如果希望Ubuntu中安裝軟件,更快加速,可以通過設置鏡像源,選擇一個訪問網速更快的服務器,來提供軟件下載/安裝服務
-
提示:更換服務器之后,需要一個相對比較長時間的更新過程,需要耐心等待。更新完成之后,在安裝軟件都會從新設置的服務器下載軟件了
所謂鏡像源,就是所有服務器的內容是相同的(鏡像),但是根據所在的位置不同,國內服務器通常速度會更快一些
設置鏡像源(圖形界面下):系統設置 -- 軟件和更新 -- 下載自 -- 選擇中國的站點/選擇最佳服務器 -- 選擇服務器 -- 輸入root密碼 -- 關閉 -- 重新載入
總結
- 上一篇: JS实现简单进度条
- 下一篇: 【笔记补发20210403 第2次课】《