Linux 學(xué)習(xí)筆記

Linux 概念

Linux 內(nèi)核

  • 內(nèi)核(kennel)是系統(tǒng)的核心,是運(yùn)行程序和管理磁盤和打印機(jī)等硬件設(shè)備的核心程序
  • 內(nèi)核版本又分為穩(wěn)定版和開發(fā)版,兩種版本相互關(guān)聯(lián),相互循環(huán)

Linux 發(fā)行版

  • 發(fā)行版通常包含桌面環(huán)境、辦公套件、媒體播放器、數(shù)據(jù)庫(kù)等應(yīng)用軟件
  • 常見發(fā)行版有:
    • Ubuntu
    • Redhat
    • Cenos
    • Debian
    • Manjaro
    • Arch
image

Linux 目錄結(jié)構(gòu)

image
  • /:根目錄,一般根目錄只存放目錄
  • /bin、/usr/bin:可執(zhí)行二進(jìn)制文件的目錄,如常用的命令:lsmv、cat
  • /boot:放置Linux啟動(dòng)時(shí)用到的一些文件,如Linux的內(nèi)核文件:/boot/vmlinuxz,系統(tǒng)引導(dǎo)管理器:/boot/grub
  • /dev:存放Linux系統(tǒng)下的外部設(shè)備文件
  • /etc:系統(tǒng)配置文件存放目錄
  • /home:用戶的主目錄,目錄名是以用戶的賬號(hào)命名的
  • /lib、/usr/lib、/usr/local/lib:系統(tǒng)使用的函數(shù)庫(kù)的目錄,程序在執(zhí)行過(guò)程中,需要調(diào)用一些額外的參數(shù)時(shí)需要的函數(shù)庫(kù)的協(xié)助,類似Windows里的DLL文件
  • /lost+fount:一般情況下是空的,當(dāng)系統(tǒng)異常產(chǎn)生錯(cuò)誤時(shí),會(huì)將一些丟失片段放置在這(比如非法關(guān)機(jī))
  • /mnt、/media:光盤默認(rèn)掛載點(diǎn),通常掛在與/mnt/cdrom下
  • /opt: 這是給主機(jī)額外安裝軟件所擺放的目錄。
  • /proc:是一個(gè)虛擬的目錄,它是系統(tǒng)內(nèi)存的映射,我們可以通過(guò)直接訪問(wèn)這個(gè)目錄來(lái)獲取系統(tǒng)信息。
  • /root:系統(tǒng)管理員root的主目錄

常用Linux命令的基本使用

命令 作用
ls 查看當(dāng)前文件夾下的內(nèi)容
pwd 查看當(dāng)前所在文件夾
cd [目錄名] 切換文件夾
touch 如果文件不存在,新建文件
mkdir 創(chuàng)建目錄
rm [文件名] ****刪除指定的文件
clear 清屏
  • ctrl+shift + =放大終端窗口的字體
  • ctrl + -縮小終端窗口的字體

Linux 終端命令格式

command [-options] [parameter]
  • 選項(xiàng)說(shuō)明
    • []:表示可選
    • command:命令名,相應(yīng)功能的英文單詞或縮寫
    • [-options]:選項(xiàng),可用來(lái)對(duì)命令進(jìn)行控制,也可以省略
    • [parameter]:命令參數(shù),可以是零個(gè),一個(gè)或者多個(gè)

查閱命令幫助信息

因?yàn)椴樵兊亩际怯⑽牡?,如果工作中遇到?wèn)題可以借助網(wǎng)絡(luò)搜索來(lái)查詢

命令 作用
command --help 顯示command命令的幫助信息顯示command命令的幫助信息
man command 查詢command的命令使用手冊(cè)
  • 使用man的操作鍵
b 回滾一屏
f 前滾一屏
操作鍵 功能
q 退出
空格鍵 顯示手冊(cè)的下一屏
Enter鍵 一次滾動(dòng)手冊(cè)頁(yè)的一行

終端實(shí)用技巧

1> 自動(dòng)補(bǔ)全

  • 在敲出文件/目錄/命令的前幾個(gè)字母之后,按下tab

2> 曾經(jīng)使用過(guò)的命令

  • /光標(biāo)鍵可以在曾經(jīng)使用過(guò)的命令之間來(lái)回切換
  • 如果要推出選擇,并不想執(zhí)行當(dāng)前選中的命令,可以按ctrl+c

文件和目錄常用命令

  • 文件和目錄的特點(diǎn)
    • Linux文件或者目錄名稱最長(zhǎng)可以有256個(gè)字符
    • .開頭的文件為隱藏文件,需要用加-a參數(shù)才能顯示
    • ./代表當(dāng)前目錄
    • ../代表上一級(jí)目錄

相對(duì)路徑和絕對(duì)路徑

  • 相對(duì)路徑 表示相對(duì)當(dāng)前目錄所在的目錄位置
  • 絕對(duì)路徑 表示從根目錄/home目錄開始的具體位置

ls 常用選項(xiàng)

參數(shù) 含義
-a 顯示指定目錄下所有子目錄和文件,包括隱藏文件
-l 以列表方式顯示文件的詳細(xì)信息
-h 配合-l 以人性化的方式顯示文件大小

mkdir

參數(shù) 含義
-p 可以遞歸創(chuàng)建目錄

新建目錄的名稱不能與當(dāng)前目錄中已有的目錄或文件同名

rm

參數(shù) 含義
-f 強(qiáng)制刪除,忽略不存在的文件,無(wú)需提示
-r 遞歸地刪除目錄下的內(nèi)容,刪除文件夾時(shí)必須加此參數(shù)

使用rm 命令需要小心,因?yàn)槲募h除后不能恢復(fù)

tree

  • tree命令可以用樹狀圖列出文件目錄結(jié)構(gòu)
參數(shù) 含義
-d 只顯示目錄

cp

  • cp命令是將文件目錄復(fù)制到另一個(gè)文件目錄
參數(shù) 含義
-f 已經(jīng)存在的目標(biāo)文件直接覆蓋,不會(huì)提示
-i 覆蓋文件前提示
-r 遞歸復(fù)制該目錄下的所有子目錄和文件,目錄文件必須為一個(gè)目錄名

mv

  • mv命令可以用來(lái)移動(dòng)文件或目錄,也可以給文件或目錄重命名
參數(shù) 含義
-i 覆蓋文件前提示

cat

  • cat命令可以用來(lái)查看文件內(nèi)容、創(chuàng)建文件、文件合并、追加文件內(nèi)容等功能
  • cat會(huì)一次顯示所有的內(nèi)容,適合查看內(nèi)容比較少的文本文件
參數(shù) 含義
-b 對(duì)非空輸出行編號(hào)
-n 對(duì)輸出的所有行編號(hào)

more

  • more命令可以用于分屏顯示文件內(nèi)容,每次只顯示一頁(yè)內(nèi)容
  • 適合查看內(nèi)容較多的文本文件
操作鍵 功能
b 回滾一屏
f 前滾一屏
q 退出
空格鍵 顯示文本的下一屏
Enter鍵 一次滾動(dòng)文本的一行

grep

  • grep允許對(duì)文本文件進(jìn)行正則查找
參數(shù) 含義
-n 顯示匹配行及行號(hào)
-v 顯示不包含匹配文本的所有行
-i 忽略大小寫
  • 常用的兩種正則查找法
參數(shù) 含義
^a 行首,搜尋以a開頭的行
a$ 行尾,搜尋以a結(jié)尾的行

echo 文字內(nèi)容

  • echo 會(huì)在終端中顯示參數(shù)指定的文字,通常是和重定向聯(lián)合使用

重定向 > 和 >>

  • 將終端的內(nèi)容輸出/追加到指定文件中

其中

  • \>表示輸出,會(huì)覆蓋文件原有的內(nèi)容
  • \>>表示追加,會(huì)將內(nèi)容追加到已有文件的末尾
例:echo ls -lha >> a

管道 |

  • Linux 允許將 一個(gè)命令的輸出可以通過(guò)管道 作為 另一個(gè)命令的輸入
  • 可以理解現(xiàn)實(shí)生活中的管子,管子的一頭塞東西進(jìn)去,另一頭取出來(lái),這里的|的左右分為兩端,左端-,右端-

常用的管道命令有:

  • more:分屏顯示內(nèi)容
  • grep:在命令執(zhí)行結(jié)果的基礎(chǔ)上查詢指定的文本

用戶權(quán)限相關(guān)命令

  • 用戶管理包括用戶管理
  • 可以指定每一個(gè)用戶針對(duì)不同的文件和目錄不同權(quán)限
權(quán)限 英文 縮寫 數(shù)字代號(hào)
read r 4
write w 2
執(zhí)行 excute x 1

chmod (重要)

  • chmod 可以修改用戶/組對(duì)文件/目錄的權(quán)限
命令 作用
chmod +/-rwx 文件名|目錄名 更改文件/目錄的權(quán)限

超級(jí)用戶

  • Linux系統(tǒng)中的root賬戶通常用于系統(tǒng)的維護(hù)和管理,對(duì)操作系統(tǒng)的所有資源具有訪問(wèn)權(quán)限
  • 不建議使用root賬戶直接登錄系統(tǒng)

sudo

  • susubstitute use的縮寫,表示使用另一個(gè)用戶的身份
  • sudo命令是其他身份用來(lái)執(zhí)行命令
  • 用戶使用sudo時(shí)必須先輸入密碼,但有五分鐘的有效期限,超時(shí)必須重新輸入密碼

組管理

提示:創(chuàng)建組/刪除組的終端命令都需要通過(guò)sudo來(lái)執(zhí)行

命令 作用
groupadd 組名 添加組
groupdel 組名 刪除組
cat /etc/group 確認(rèn)組信息
**chgrp -R **組名 文件/目錄名 修改文件/目錄的所屬組
  • 組信息是保存在/etc/group

用戶管理

創(chuàng)建用戶/刪除用戶/修改其他用戶密碼 的終端命令都需要通過(guò)sudo執(zhí)行

命令 作用 說(shuō)明
useradd -m -g 組 新建用戶名 添加新用戶 -m 自動(dòng)建立用戶目錄 -g 指定用戶所在組
passwd 用戶名 設(shè)置用戶密碼 如果是普通用戶,直接用passwd修改自己的賬戶密碼
userdel - r 用戶名 刪除用戶 -r 選項(xiàng)會(huì)自動(dòng)刪除用戶目錄
cat /etc/passwd | grep 用戶名 確認(rèn)用戶信息 用戶信息會(huì)保存在/etc/passwd文件中
  • 如果創(chuàng)建用戶時(shí),如果忘記添加-m選項(xiàng)指定新用戶的home目錄—最簡(jiǎn)單就是刪除用戶,重新創(chuàng)建
  • 創(chuàng)建用戶時(shí),忘添加-g選項(xiàng),默認(rèn)會(huì)創(chuàng)建一個(gè)和用戶名同名的組名

查看用戶信息

命令 作用
id [用戶名] 查看用戶UID和GID信息
who 查看當(dāng)前所有登錄的用戶列表
whoami 查看當(dāng)前登錄用戶的賬戶名

passwd文件

/etc/passwd 文件存放的是用戶的信息,由6個(gè)分好組成的7個(gè)信息,分別是

  1. 用戶名
  2. 密碼(x,表示加密的密碼)
  3. UID(用戶標(biāo)識(shí))
  4. GID (組標(biāo)識(shí))
  5. 用戶全名或本地賬戶
  6. 家目錄
  7. 登錄使用的終端命令(默認(rèn)是dash)

usermod

  • usermod 可以用來(lái)設(shè)置用戶的主組 / 附加組 和 登錄shell
  • 主組:通常在新建用戶時(shí)指定,在/etc/passwd的第四列GID對(duì)應(yīng)的組
  • 附加組:在/etc/group 中最后一列表示該組的用戶列表,用于指定用戶的附加權(quán)限

設(shè)置了用戶附加組后,需要重新登錄才能生效

命令 作用
usermod -g 組 用戶名 修改用戶的主組
usermod -G 組 用戶名 修改用戶的附加組
usermod -s /bin/bash 用戶名 修改用戶登錄的shell

注意:默認(rèn)使用useradd添加的用戶是沒(méi)有權(quán)限使用sudo以root身份執(zhí)行命令的,可以使用以下命令,將用戶添加到sudo 附加組中

usermod -G sudo 用戶名

which (重要)

  • which 命令可以查看執(zhí)行命令的所在位置,例如:
whish ls

注意:cd這個(gè)終端命令是內(nèi)置在系統(tǒng)內(nèi)核中的,沒(méi)有獨(dú)立的文件,因此用which無(wú)法找到cd命令的位置

切換用戶

命令 作用 說(shuō)明
su - 用戶名 切換用戶,并且切換目錄 - 可以切換到用戶目錄,否則保持位置不變
exit 退出當(dāng)前登錄用戶
  • su 后不跟用戶名,默認(rèn)切換到root,但是不推薦使用,因?yàn)椴话踩?/li>

修改文件權(quán)限

命令 作用
chown 用戶名 文件名|目錄名 修改擁有者
chgrp -R 組名 文件名|目錄名 修改組
chmod -R 755 文件名|目錄名 修改權(quán)限
  • chmod在設(shè)置權(quán)限時(shí),可以簡(jiǎn)單使用三個(gè)數(shù)字分別對(duì)應(yīng)擁有者 / 其他用戶的權(quán)限
image
  • 常用數(shù)字組合有
    • 777===>u= rwx,g=rwx,o=rwx
    • 755===>u=rwx,g=rx,o=rx
    • 644===>u=rw,g=r,o=r

遠(yuǎn)程管理常用命令

shutdown 關(guān)機(jī) / 重啟

  • shutdown命令可以安全關(guān)閉或者重新啟動(dòng)系統(tǒng)
命令 作用
shutdown [選項(xiàng)] [時(shí)間] 關(guān)機(jī)/重新啟動(dòng)
  • 選項(xiàng)說(shuō)明

    選項(xiàng) 含義
    -r 重新啟動(dòng)
    -c 取消執(zhí)行

不指定選項(xiàng)和參數(shù),默認(rèn)表示1分鐘后關(guān)閉電腦

注意:遠(yuǎn)程維護(hù)服務(wù)器時(shí),最好是重新啟動(dòng)系統(tǒng),而不是關(guān)機(jī)

ifconfig 查看或配置網(wǎng)卡信息

命令 作用
ifconfig 查看/配置計(jì)算機(jī)當(dāng)前的網(wǎng)卡配置信息
ping ip地址 檢測(cè)到目標(biāo) ip地址的連通性

ping 一般用于檢測(cè)當(dāng)前計(jì)算機(jī)到目標(biāo)計(jì)算機(jī)之間的網(wǎng)絡(luò)是否暢通、數(shù)值越大、速度越慢

 #查看網(wǎng)卡對(duì)應(yīng)的IP地址
 $ ifconfig | grep inet 

ssh 遠(yuǎn)程登錄和復(fù)制文件

image
  • SSH客戶端是一種使用Secure Shell(SSH)連接到遠(yuǎn)程計(jì)算機(jī)的軟件程序
  • SSH是目前較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議
    • 利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過(guò)程中的信息泄露
    • 通過(guò)SSH協(xié)議可以對(duì)所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,也能防止DNS欺騙和IP欺騙
    • 使用SSH協(xié)議傳輸?shù)臄?shù)據(jù)是經(jīng)過(guò)壓縮的,所以可以加快傳輸速度
命令 作用
ssh 用戶名@ip 關(guān)機(jī) / 重新啟動(dòng)
scp 用戶名@ip:文件名或路徑 用戶名@ip:文件名或路徑 遠(yuǎn)程復(fù)制文件
  • SSH這個(gè)終端命令只能在Linux和Unix系統(tǒng)下使用,在Windows上需要使用客戶端軟件才行
  • SSH服務(wù)器的端口號(hào)很可能不是22,那就使用-p選項(xiàng),指定正確的端口號(hào),否則無(wú)法連接服務(wù)器

Windows下SSH客戶端的安裝

xshell http://www.xshellcn.com/

putty https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

SCP

  • scp 就是secure copy ,是一個(gè)在Linux下用來(lái)進(jìn)行遠(yuǎn)程拷貝文件的命令
  • 它的地址格式與ssh基本相同,需要注意的是,在指定端口時(shí)用的是大寫的-P而不是小寫的
選項(xiàng) 含義
-r 復(fù)制該目錄下的所有子目錄和文件,目標(biāo)文件必須是一個(gè)目錄名
-P 若遠(yuǎn)程SSH 服務(wù)器的端口不是22

注意:‘:’后面的路徑如果不是絕對(duì)路徑,則以用戶的home目錄作為參照路徑

例:把本地的文件上傳到服務(wù)器
scp -P port test.txt user@remote:Desktop/test.txt
把遠(yuǎn)程服務(wù)器的文件下載到本地
scp -P port user@remote:Desktop/test.txt
加上 -r 選項(xiàng)可以傳送文件夾到服務(wù)器
scp -r demo user@remote:Desktop
把服務(wù)器的文件夾下載到本地
scp -r user@remote:Desktop demo
image
  • scp這個(gè)終端命令只能在Linux或者Unix系統(tǒng)下使用
  • 如果在Windows系統(tǒng)中,可以安裝FileZilla使用FTP進(jìn)行文件傳輸

SSH 高級(jí)

有關(guān)SSH的配置信息都保存在用戶home目錄下的.ssh目錄下

01. 免密碼登錄

  • 配置公鑰
    • 執(zhí)行ssh-keygen即可生成SSH鑰匙,之后一路回車即可
  • 上傳公鑰到服務(wù)器
    • 執(zhí)行ssh-copy-id -p port user@remote,可以讓遠(yuǎn)程服務(wù)器保存我們的公鑰
image

采用非對(duì)稱加密算法

  • 使用公鑰加密的數(shù)據(jù),需要使用私鑰解密
  • 使用私鑰加密的數(shù)據(jù),需要使用公鑰解密

02. 設(shè)置別名

每次輸入ssh -p port user@remote,時(shí)間久了就會(huì)覺(jué)得很麻煩,而且不好記

當(dāng)配置完別名后就可以偷懶,比如:ssh manjaro 來(lái)代替上面的一大串

  • ~/.ssh/config里面追加以下內(nèi)容:

    Host manjaro
      HostName ip地址
      User 用戶名
      Port 22
    

保存之后,即可用ssh manjaro 實(shí)現(xiàn)遠(yuǎn)程登錄,scp同樣可以使用

系統(tǒng)信息相關(guān)命令

通過(guò)遠(yuǎn)程終端維護(hù)服務(wù)器時(shí),查看服務(wù)器當(dāng)前系統(tǒng)日期和時(shí)間 / 磁盤空間占用情況 / 程序執(zhí)行情況

時(shí)間和日期

命令 作用
date 查看系統(tǒng)時(shí)間
cal 查看日歷(默認(rèn)當(dāng)前月),-y 選項(xiàng)可以查看一年的日歷

磁盤信息

命令 作用
df -h disk free 顯示磁盤剩余空間
du - h [目錄名] disk usage 顯示目錄下的文件大小
  • 選項(xiàng)說(shuō)明
參數(shù) 含義
-h 以人性化的方式顯示文件大小

進(jìn)程信息

  • 所謂進(jìn)程,通俗地說(shuō)就是 當(dāng)前正在執(zhí)行的一個(gè)程序
命令 作用
ps aux process status 查看進(jìn)程的詳細(xì)狀況
top 動(dòng)態(tài)顯示運(yùn)行中的進(jìn)程并且排序
kill [-9] [PID] 終止指定代號(hào)的進(jìn)程,-9表示強(qiáng)行終止

ps默認(rèn)只會(huì)顯示當(dāng)前用戶通過(guò)終端啟動(dòng)的應(yīng)用程序

  • ps選項(xiàng)說(shuō)明
命令 含義
a 顯示終端上的所有進(jìn)程,包括其他用戶的進(jìn)程
u 顯示進(jìn)程的詳細(xì)狀態(tài)
x 顯示沒(méi)有控制終端的進(jìn)程

使用kill命令時(shí),最好只終止當(dāng)前用戶開啟的進(jìn)程,不要終止root身份開啟的進(jìn)程,否則會(huì)導(dǎo)致系統(tǒng)奔潰

查找文件

命令 作用
find [路徑] -name "*.py" 查找路徑下擴(kuò)展名為py的文件,包含子目錄
  • 如果省略路徑,表示在當(dāng)前文件下查找

軟鏈接

命令 作用
ls -s [被鏈接的源文件] [鏈接文件] 建立文件的軟鏈接
  • 沒(méi)有-s選項(xiàng)的建立的時(shí)一個(gè)硬鏈接文件
  • 源文件要使用絕對(duì)路徑,為了方便移動(dòng)鏈接文件后能繼續(xù)正常使用

硬鏈接

命令 作用
ln [被鏈接的源文件] [鏈接文件] 建立

在linux中,文件名和文件數(shù)據(jù)時(shí)分開存儲(chǔ)的

打包壓縮

  • 在不同系統(tǒng)中,常用的打包壓縮方式也是不同的
    • linux常用tar.gz
    • Mac 常用zip
    • Windows 常用rar
  • tar命令可以把一系列文件打包到一個(gè)大文件,也可以把大文件恢復(fù)成一個(gè)系列文件

打包

命令 作用
tar -cvf [打包后文件名.tar] [被打包的文件/路徑] 打包一個(gè)文件/目錄

解包

命令 作用
tar -xvf 打包的文件.tar 解壓文件
  • tar選項(xiàng)說(shuō)明
選項(xiàng) 含義
c 生成檔案文件,創(chuàng)建打包文件
x 解開檔案文件
v 列出歸檔解檔的詳細(xì)過(guò)程,顯示進(jìn)度
f 指定檔案文件名,f 后面要跟著.tar文件

壓縮/解壓

gzip

  • targizp一起用可以實(shí)現(xiàn)打包和壓縮
  • tar命令中有個(gè)選項(xiàng)-z可以直接調(diào)用gzip,實(shí)現(xiàn)快速打包壓縮解壓功能
命令 作用
tar -zcvf [打包后文件名.tar.gz] [被打包的文件/路徑] 壓縮文件
tar -zxvf 打包的文件.tar.gz 解壓文件
  • 解壓選項(xiàng)說(shuō)明

    選項(xiàng) 含義
    -C 解壓縮到指定目錄(目錄必須存在)

bzip2

  • tarbzip2也可以實(shí)現(xiàn)文件打包壓縮(用法和gzip一樣)
命令 作用
tar -jcvf [打包后文件名.tar.gz] [被打包的文件/路徑] 壓縮文件
tar -jxvf 打包的文件.tar.gz 解壓文件

計(jì)算機(jī)中文件大小的表示方式

單位 英文 含義
字節(jié) B (Byte) 在計(jì)算機(jī)中作為一個(gè)數(shù)字單元,一般為8位二進(jìn)制數(shù)
K (Kibibyte) 1KB = 1024B,千字節(jié)
M (Mebibyte) 1MB = 1024KB,百萬(wàn)字節(jié)
千兆 G (Gigabyte) 1GB = 1024MB,十億字節(jié),千兆字節(jié)
T (Terabyte) 1TB = 1024GB,萬(wàn)億字節(jié),太字節(jié)
P (Petabyte) 1PB = 1024TB,千萬(wàn)億字節(jié),拍字節(jié)
E (Exabyte) 1EB = 1024PB,百億億字節(jié),艾字節(jié)
Z (Zettabyte) 1ZB = 1024EB,十萬(wàn)億億字節(jié),澤字節(jié)
Y (Yottabyte) 1YB = 1024ZB,一億億億字節(jié),堯字節(jié)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容