去年學習 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 個命令:#
- ls list 查看當前文件夾下的內容
- pwd print work directoty 查看當前文件夾
- cd change directory 切換文件夾
- touch touch 如果文件不存在則新建文件
- mkdir make directory 創建目錄
- rm remove 刪除文件
- 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 水族館