1. 程式人生 > 其它 >FastAPI 學習之路(五十)WebSockets(六)聊天室完善

FastAPI 學習之路(五十)WebSockets(六)聊天室完善

Linux常用指令

關機&重啟命令

shutdown -h now //立即關機
shutdwon -h 1 //1分鐘後關機
shutdown -r now //立即重啟
halt //關機
reboot //重啟計算機
sync //把記憶體的資料同步到磁碟

注意細節

不管是重啟系統還是關閉系統,首先要執行sync命令,把記憶體中的資料寫到磁碟中。

使用者管理

//新增使用者
useradd 使用者名稱
//指定/修改密碼
passwd 使用者名稱
//刪除使用者
userdel 使用者名稱
//查詢使用者資訊
id 使用者名稱
//切換使用者
su - 使用者名稱
//登出使用者(圖形介面無效)
logout
//返回到原來使用者
exit
//檢視當前使用者/登入使用者
whoami

//增加組
groupadd 組名
//刪除組
groupdel 組名
//修改使用者的組
usermod -g 使用者組 使用者名稱

使用者和組的相關檔案

使用者配置檔案

/etc/passwd 每行的含義:使用者名稱:口令:使用者標識號:組標識號:主目錄:登入:Shell

組配置檔案

/etc/group 每行含義:組名:口令:組標識號:組內使用者列表

口令配置檔案

/etc/shadow 登入名:加密口令:最後一次修改時間:最小時間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌

應用案例

//建立user使用者
useradd user
//建立user使用者並指定家目錄
useradd -d /home/user user
//指定user使用者·密碼
passwd user
//刪除user使用者
userdel user
//刪除user使用者及家目錄
userdel -r user
//查詢user使用者資訊
id user
//切換user使用者
su - user

//建立beijing組
groupadd beijing
//建立user使用者,並指定beijing組
useradd -g beijing user

//建立shanghai組
//將user使用者的使用者組修改為shanghai組
usermod -g shanghai user

實用指令

執行級別

幫助指令

man //獲取幫助資訊
help //指令

檔案目錄類

//顯示當前工作目錄的絕對路徑
pwd
//列出檔案和目錄
ls [選項]/[目錄或檔案]
//切換目錄
cd [引數]
//建立目錄
mkdir [選項] 要建立的目錄
//刪除空目錄
rmdir [選項] 要刪除的空目錄
//建立空檔案
touch 檔名稱
//拷貝
cp [選項] source dest
//移除檔案或目錄
rm [選項] 要刪除的檔案或目錄
//移動檔案與目錄或重新命名
mv [選項] source dest

//檢視檔案內容
cat [選項] 要檢視的檔案
more [選擇] 要檢視的檔案
less [選擇] 要檢視的檔案

//輸出重定向指令
>
//追加指令
>>

//輸出內容到控制檯
echo [選項] [輸出內容]
//顯示檔案的開頭部分內容
head [選項] 檔案
//顯示檔案的尾部部分內容
tail [選項] 檔案

//軟連結
ln -s [原檔案或目錄][軟連結名]

//檢視已經執行過歷史命令
history

應用案例

//列出檔案和目錄
ls -al
//切換目錄
cd ~
cd ..
cd /
//建立目錄
mkdir animal
mkdir -p /root/animal/tiger
//刪除目錄
rmdir /root/animal/tiger
rm -rf /root/animal
//建立空檔案
touch 1.txt 2.txt
//遞迴複製整個資料夾
cp -r animal new_animal
//移除目錄
rm -r new_animal
rm -rf new_animal
//移動多個檔案至目錄內
mv 1.txt 2.txt dest
//重新命名目錄
mv dest folder
//檢視檔案內容
cat -n /etc/profile
cat -n /etc/profile | more
將/home目錄下的檔案列表寫入到/home/info.txt中
ls -l /home > /home/info.txt
echo "hello world!" >> /home/info.txt
cal > mycal

//顯示環境變數
echo $PATH
//控制檯輸出hello world!
echo "hello world!"
//輸出前5行
head -n 5 /etc/profile
//輸出後5行
tail -n 5 /etc/profile
//實時的監控mydate.text有沒有變化
tail -f mydate.txt

//建立軟連結
ln -s /root linkToRoot
//刪除軟連結
rm -rf linkToRoot

//檢視10條歷史命令
history 10

//執行歷史命令為10的命令
!10

時間日期類

//顯示當前日期
date [選項]
//檢視日曆
cal [選項]

實用案例

//顯示當前時間
date “+%Y-%M-%d %H:%M:%S”
//設定系統時間
date -s "2021-10-26 16:23:30"
//顯示當前日曆
cal
//顯示器2021日曆
cal 2021

搜尋查詢類

//查詢指令
find [搜尋範圍][選項]
//快速定位檔案路徑
locate [搜尋檔案]

//過濾查詢
grep [選項] 查詢內容 原始檔
-n 顯示匹配行及行號。
-i 忽略字母大小寫。

//管道符(表示將前一個命令的處理結果輸出傳遞給後面的命令處理。)
|

實用案例

//按名字查詢
find /home -name hello.txt
//按使用者查詢
find /opt -user nobody
//按大小查詢
find / -size -20M
find / -size 20M
find / -size +20M

//寫入2021日曆於1.txt
cal 2021 > 1.txt
//查詢檔案內May所在行
cat 1.txt | grep -ni May

特別說明

由於locate指令基於資料庫進行查詢,所以第一次執行前,必須使用updatedb指令建立locate資料庫。(CentOS8需安裝`yum install mlocate`使用。)

壓縮和解壓類

//壓縮檔案
gzip
//解壓檔案
gunzip

//壓縮檔案
zip
//解壓檔案
unzip

//打包指令
tar [選項]

實用案例

//壓縮檔案 1.txt -> 1.txt.gz
gzip 1.txt
//解壓檔案 1.txt.gz -> 1.txt
gunzip 1.txt.gz

//壓縮檔案
zip -r mypackage.zip /tmp
//解壓檔案
unzip -d /root/mypackage mypackage.zip

//將1.txt,2.txt壓縮成a.tar.gz
tar -zcvf a.tar.gz 1.txt 2.txt
//將/home的資料夾壓縮成myhome.tar.gz
tar -zcvf myhome.tar.gz /home
//將a.tar.gz解壓到當前目錄
tar -zxvf a.tar.gz
//將myhome.tar.gz解壓到/opt
tar -zxvf myhome.tar.gz -C /opt

組管理

//檢視檔案的所有者
ls -ahl

//修改檔案所有者
chown 使用者名稱 檔名

//修改檔案所在組
chgrp 組名 檔名

實用案例

//改變檔案所有者
chown newowner file
//改變使用者所有者和所有組
chown newowner:newgroup file

//將abc.txt檔案的所有組修改成newgroup
chgrp newgroup abc.txt
//將/home/user目錄下所有檔案和目錄的所有組修改成newgroup
chgrp -R newgroup /home/user

備註

-R 如果是目錄 則使其下所有子檔案或目錄遞迴生效。

許可權管理

檔案型別:

- 普通檔案
d 目錄
l 軟連結
c 字元裝置(鍵盤,滑鼠。)
b 塊檔案(硬碟。)

檔案所有者許可權:
r 可讀 w 可寫 x 執行

檔案所有組許可權:
r 可讀 w 可寫 x 執行

檔案其它組許可權:
r 可讀 w 可寫 x 執行

如果是檔案,表示硬連結數目,
如果是目錄,表示子目錄數目。

所有者

所有組

檔案大小(位元組)

最後修改時間

檔名稱

//修改檔案或目錄許可權
chmod [選項] 檔名

實用案例

第一種方式:+、-、=變更許可權
u 所有者 g 所有組 o 其它組 a 所有人
chmod u=rwx,g=rx,o=x 檔案目錄名
chmod o+w 檔案目錄名
chmod a-x 檔案目錄名

第二種方式
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 檔案目錄名,相當於chmod 751 檔案目錄名。

其它

//檢查是否開啟sshd
service sshd status
//查詢IP
ip addr