KANIKIG

KANIKIG

just for fun | 兴趣使然 Ph.D. in Engineering|❤️ #NFT $ETH| [Twitter](https://twitter.com/kanikig2)|[Github](https://github.com/KANIKIG)|[Telegram channel](https://t.me/kanikigtech)

Linux基礎筆記

image

去年學習 python 基礎課時包含的 linux 基礎課程筆記

記得很簡略基本上只有自己看得懂。。

一、操作系統與 Linux#

1. 操作系統#

1)操作硬體
2)將操作硬體的方法封裝為系統調用

1.1 操作系統分類#

  • 桌面操作系統
  • 伺服器操作系統
  • 嵌入式操作系統
  • 移動設備操作系統

2. 操作系統發展史#

2.1 Unix#

星際旅行
BCPL->B 語言 ->C 語言
Unix
多用戶

2.2 Linux#

在 minix 基礎上
內核

2.3 Linux 內核與發行版#

增加了終端命令
內核是封裝好的系統調用
發行版是在內核基礎上開發的一套應用程序

2.4 Linux 文件系統#

win 磁碟符
因為 xp 之前都是單用戶

linux
home 下放著各個用戶的文件夾

etc 系統配置文件
bin 可執行二進制文件
home 用戶目錄

二、Linux 終端命令#

掌握常用的十幾個即可,不常用的查表

ctrl +/- 放大終端字體

1. 最常見的 7 個命令:#

  1. ls list 查看當前文件夾下的內容
  2. pwd print work directoty 查看當前文件夾
  3. cd change directory 切換文件夾
  4. touch touch 如果文件不存在則新建文件
  5. mkdir make directory 創建目錄
  6. rm remove 刪除文件
  7. clear 清屏

2. 終端命令格式#

command [-option][parameter]

rm -r 文件夾

3. 查閱命令幫助信息#

兩種方式

command --help

man command
空格 翻頁
回車 下一行
b 回滾一頁
f 翻頁
q 退出

(command 為對應命令)

4. 文件和目錄常用命令#

ls cd touch rm mkdir

tab 自動補全文件名 如果有其他選擇,再按一次,系統會提示可能命令

上下可以切換至以前的命令
ctrl c 直接回到最下

複製和移動
tree cp mv

查看文件內容
cat more grep

1) ls#

. 開頭為隱藏文件 ls 需要 - a (all)
如果需要創建隱藏文件,只需要加.

. 當前目錄
.. 上級目錄

ls -a 顯示全部文件
ls -l 列表方式顯示文件全部信息
ls -h 配合 - l 人性化顯示文件大小

drwxr-xr-x 4 kanikig kanikig 4096 5 月 19 18:02 AppWebCache
drwxr-xr-x 3 kanikig kanikig 4096 6 月 16 22:55 Audio
drwxr-xr-x 2 kanikig kanikig 4096 5 月 18 18:13 CloudRes
-rw-r--r-- 1 kanikig kanikig 33280 5 月 26 15:05 CustomFace.db
-rw-r--r-- 1 kanikig kanikig 494509 7 月 9 14:01 CustomFace.dbc
-rw-r--r-- 1 kanikig kanikig 132096 7 月 9 14:01 DingDongStorage.db
-rw-r--r-- 1 kanikig kanikig 0 5 月 18 18:08 DingDongStorage.db-journal
-rw-r--r-- 1 kanikig kanikig 25600 7 月 9 14:01 DocImport.db

d 代表目錄

ls -l -h
文件大小更直觀
drwxr-xr-x 4 kanikig kanikig 4.0K 5 月 19 18:02 AppWebCache
drwxr-xr-x 3 kanikig kanikig 4.0K 6 月 16 22:55 Audio
drwxr-xr-x 2 kanikig kanikig 4.0K 5 月 18 18:13 CloudRes
-rw-r--r-- 1 kanikig kanikig 33K 5 月 26 15:05 CustomFace.db
-rw-r--r-- 1 kanikig kanikig 483K 7 月 9 14:01 CustomFace.dbc

選項可以連寫 如
ls -alh

ls 與通配符

  • 任意字符串
    ? 任意字符
    [] 匹配字符組任意一個 [1-9] [abc]

如 ls m* 找 m 開頭的

2) cd#

常用參數

cd 直接回家
或者加波浪號~直接返回家目錄
cd - 在最近兩次目錄切換

相對路徑
絕對路徑 / 或者~開頭

3) touch#

如果已經存在,則修改日期更新

4) mkdir#

-p 連續創建目錄

mkdir -p a/b/c/d

(linux 一個目錄下 文件夾和文件也不可重名)

5) rm#

-f 強制刪除
-r 遞歸刪除

同樣可使用通配符

6) tree#

樹狀圖列出文件系統

-d 只顯示目錄

7) cp#

cd 源文件 目標文件

文本編輯器 ctrl s 快速保存

後面可以指定文件名
不改的話可以只寫目錄

-i 覆蓋文件前提示
-r 遞歸複製整個文件夾

8) mv#

mv 源文件 目標文件
-i 覆蓋前提示

9) cat#

concatenate
查看文件內容

-b 對非空輸出行編號
-n 對全部輸出行編號

10) more#

分頁顯示
用來查看大文件

操作快捷鍵和 man 一樣

11) grep#

強大的文本搜索工具

-n 顯示行號
-v 不包含文本內容的行(求反
-i 忽略大小寫

模式查找
^asdasd 行開頭匹配
asdasd$ 行尾匹配

12) echo#

在終端輸出

重定向:把本應該在終端輸出的內容輸出到文件裡

'>' 輸出到文件(覆蓋)

'>>' 追加

\ 就是換行
不僅可以用與 echo
ls 也可重定向

ls -lh >>a

13) |#

管道
一個命令的輸出通過管道作為另一個命令的輸入

ls -lha | more 分頁顯示
ls -lha | grep ds 篩選輸出

三、遠程管理#

1.shutdown#

shutdown 選項 時間

默認是一分鐘後關機
now 立即重啟

shutdown 20:25
shutdown +10 十分鐘後關機

-r 重啟

2. 查看配置網卡#

網卡
負責網絡通訊的硬體設備
ip 地址是設置在網卡上的地址信息

ifconfig 查看 / 配置網卡信息
ping 測試連接是否正常

ifconfig | grep inet 快速看 ip
一個物理網卡和多個虛擬網卡
物理網卡 ens..

ping
ctrl c 停止

3. 遠程登錄和複製#

1) ssh#

Secure Shell

域名 ip 地址別名
端口號 通過端口號可以找到計算機運行的應用程序
ssh 端口號默認 22 可缺省
ftp 21
web 伺服器 80

ssh [-p port] user@remote
remote 為遠程 ip
port 默認 22

exit 退出登錄

2) scp#

遠程拷貝文件

從遠程下到本地 scp -P (大寫!) 22 源文件 user@remote: 目標文件
從本地傳到遠程 scp user@remote: 源文件 目標文件
-r 傳送文件夾
-P 指定端口

3) ssh 高級#

免密碼登錄
配置別名

ssh 的配置信息都在.ssh 下

免密碼登錄:
本地 .ssh 目錄下執行 ssh-keygen 一路回車 生成兩個文件 (公鑰,私鑰)
然後 ssh-copy-id [-p] user@remote 會把一個授權文件傳到伺服器的.ssh 下

非對稱加密算法
使用公鑰加密的數據,需要用私鑰解密
用私鑰加密的數據,用公鑰解密

在本地通過私鑰加密數據,在伺服器的公鑰對數據解密

配置別名:
在.ssh 下創建 config 文件
在其中寫入

Host h1
HostName 202.182.115.91
User root
Port 22

四、用戶與權限#

用戶與權限的概念
用戶管理
組管理
修改權限

1. 用戶與權限#

讀 r 4
寫 w 2
執行 x 1

用戶組

1)#

​ 權限 用戶 組
drwxr-xr-x 3 kanikig kanikig 4.0K 5 月 18 16:45 Music
drwxr-xr-x 2 kanikig kanikig 4.0K 5 月 18 22:17 Pictures
drwxr-xr-x 3 kanikig kanikig 4.0K 7 月 8 22:58 PycharmProjects
-rw-r--r-- 1 kanikig kanikig 485 7 月 11 15:39 shadowsocks.json
-rw-r--r-- 1 kanikig kanikig 485 7 月 11 15:25 shadowsocs.json
-rw-r--r-- 1 kanikig kanikig 0 5 月 18 16:44 stale_outputs_checked
drwxr-xr-x 2 kanikig kanikig 4.0K 5 月 18 14:25 Videos

硬鏈接數 有多少種方式能夠訪問一個文件或目錄
文件一般是 1 即絕對路徑
文件夾 2 或以上 因為可以 cd. 或者從子目錄 cd..(這裡可以無數個)

所以硬鏈接數可以判斷子目錄個數

第一列 文件或文件夾
之後每 3 個字符一組
第一組 文件或目錄的擁有者
第二組 用戶組的權限
第三組 其他用戶

2) chmod#

修改文件或目錄權限
changemod

chmod +/-rwx 文件或目錄

對於目錄 可讀是閱讀目錄內容 可寫是修改目錄內容 可執行是在目錄下執行終端命令

3)root#

sudo
substitute user do
5 分鐘有效期限

2. 組管理#

groupadd 組名
groupdel 組名
cat /etc/group 確認組信息
chagrp -R 組名 文件 / 目錄 修改文件目錄所屬的組

3. 用戶管理#

useradd -m -g 組 用戶名
-m 自動建立用戶目錄
-g 指定用戶的組,否則自動建立一個同名組

passwd 設置用戶密碼
userdel -r 用戶名
-r 刪除用戶家目錄
cat /etc/passwd | grep 用戶名 確認用戶信息
passwd 文件
1 用戶名
2 密碼 x
3uid
4gid
5 用戶全名
6 家目錄
7 登錄使用的 shell

查看用戶信息
id 用戶名 查看用戶 id 和組 id
who 查看當前登錄的用戶列表
whoami 查看當前登錄的用戶名

usermod
設置用戶主組、附加組和登錄 shell

主組 建立用戶時指定的組
附加組 指定附加組

usermod -g 組 用戶名 修改用戶主組
usermod -G 組 用戶名 修改附加組
usermod -s /bin/bash 修改 shell

usermod -G sudo 用戶名 將用戶添加到 sudo

shell 輸入終端命令的軟體

dash
bash

which
查看執行命令的所在位置

/etc/passwd 保存用戶信息
/usr/bin/passwd 修改密碼的程序

su 用戶名 切換用戶
exit 退出

4. 修改文件權限#

chown 修改擁有者
chagrp 修改組
chmod 修改權限

chown 用戶名 文件或目錄
chgrp -R 組名 文件或目錄
chmod -R 755 文件或目錄

7 擁有者的權限
5 組成員權限
5 其他用戶權限

r=4
w=2
x=1

所以可以推測

五、系統信息#

1. 時間日期#

cal 本月日曆 -y 一年的日曆
date 當前系統時間

2. 磁碟信息#

df -h disk free 顯示磁碟剩餘空間
du -h [目錄名] 查看目錄的佔用空間

3. 進程信息#

進程:當前正在執行的程序

ps aux process status 查看進程詳細情況
top 動態顯示進程並排序 q 退出
kill [-9] 進程代號 -9 強行停止

ps 默認只能看到終端啟動的程序
a 所有用戶的進程
u 顯示進程詳細狀態
x 顯示沒有控制終端的進程

最好不要 kill root 的進程

4. 其他命令#

  • find 查找文件
  • ln 軟連接 (相當於快捷方式)
  • tar 打包壓縮
  • apt-get 軟件安裝

find [路徑] -name “*.py”
ln -s 源文件 連接文件
源文件要用絕對路徑
如果沒有 - s 會創建一個硬連接

對於軟連接,如果源文件被移動或刪除,則會失效,硬連接不會

硬連接:
linux 中,文件名和文件數據是分開存儲的
通過文件名訪問數據
而硬連接是和文件名等價的,直接訪問數據,相當於別名
軟連接是通過軟連接文件數據,訪問源文件的文件名,間接訪問數據
日常基本不會建立硬連接
硬連接數為 0 時,文件的數據才會刪除

5. 打包壓縮#

linux 常用 tar.gz
tar 只是打包,不壓縮

tar -cvf 打包文件.tar 被打包文件 / 路徑 打包
tar -xvf 打包文件.tar 解包

-v 列出打包詳細過程
-f 指定文件名(f 必須放最後)

gzip
壓縮打包後的文件

tar -zcvf 打包文件.tar.gz 被壓縮文件
tar -zxvf 打包文件.tar.gz 解壓縮
tar -zxvf 打包文件.tar.gz -C 目標路徑 解壓到指定路徑

bzip2(two)

tar.bz2

在選項最前加 - j

6.apt#

advanced packaging tool

sudo apt install 軟件包
sudo apt remove 軟件包
sudo apt upgrade 更新軟件包

sl 小火車
htop top 的升級版
linuxlogo
screenfetch

讓終端變得有意思
在終端輸入 sudo visudo
在 “Defaults” 末尾(文件的前半部分)添加一行 “Defaults insults”。
保存
之後當你使用 sudo,在輸入密碼的時候,如果輸入錯誤了,那麼終端開始胡說八道了

cmatrix 黑客帝國
rev 逆序輸出 一般用於管道後
lolcat 彩色輸出
cowsay 一頭牛說出輸出結果
aptitude moo 也是一頭牛,但是是用來玩的
fortune 隨機輸出一段話 -zh 輸出中國詩
toilet 打印出大字母
figlet 同上
aafire 這個會在屏幕上顯示除一團燃燒著的火焰 sudo apt install libaa-bin
oneko 一隻小貓追著鼠標跑
factor 分解質因數
espeak 朗讀

fork 炸彈。。指數自乘直到佔用所有系統資源

bb 一個不太一樣的播放器
ASCIIquarium 水族館

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。