作者:IvanCodes
日期:2025年7月28日
專欄:Linux教程
思維導圖
一、Linux 簡介
-
1.1 什么是 Linux?
Linux 是一種自由、開源的類Unix操作系統內核,由林納斯·托瓦茲 (Linus Torvalds) 在1991年首次發布。我們通常所說的 “Linux 系統”,指的是基于 Linux 內核并集成了各種軟件和工具的操作系統發行版 (Distribution)。 -
1.2 常見的 Linux 發行版:
常見的發行版包括 Debian 系 (如 Debian, Ubuntu, Mint),Red Hat 系 (如 RHEL, CentOS, Fedora),以及 Arch Linux, SUSE Linux 等。 -
1.3 Linux 的特點:
開源免費、安全穩定、多用戶多任務、強大的命令行,以及“一切皆文件”的設計哲學。
二、Linux 文件系統結構
Linux 文件系統采用樹形結構,所有文件和目錄都始于根目錄 /
。
重要的目錄及其作用:
/
- 根目錄,所有路徑的起點。
/bin
- 存放所有用戶可用的基本命令 (如 ls
, cp
)。
/sbin
- 存放僅限系統管理員使用的管理命令 (如 ifconfig
)。
/etc
- 存放系統和應用的配置文件。
/home
- 普通用戶的家目錄。
/root
- 超級用戶 (root) 的家目錄。
/usr
- 用戶安裝的應用程序和文件。
/var
- 存放經常變化的文件,如日志 (/var/log
)。
/tmp
- 臨時文件目錄。
/dev
- 設備文件目錄。
/boot
- 系統啟動相關文件 (如內核)。
/proc
- 內核和進程信息的虛擬文件系統。
三、基本的 Shell 命令
Shell 是一個命令行解釋器,它接收用戶輸入并交給操作系統內核執行。Bash 是最常用的Shell。
3.1 目錄操作命令:
ls
: 列出目錄內容。- 語法結構:
ls [選項] [目錄路徑]
- 常用選項:
-l
: 長格式顯示,包含權限、所有者、大小、修改時間等詳細信息。
-a
: 顯示所有文件,包括以.
開頭的隱藏文件。
-h
: 人性化顯示文件大小 (如 KB, MB, GB)。通常與-l
配合使用。
-t
: 按修改時間排序,最新的在前面。
-R
: 遞歸列出子目錄內容。
代碼示例:
ls
ls -l /home
ls -alh
ls -lt /var/log
pwd
: 顯示當前工作目錄的絕對路徑。
語法結構: pwd
代碼示例:
[root@redhat ~]# pwd
/root
cd
: 切換目錄。
語法結構: cd [目錄路徑]
常用用法:
cd /dir
: 切換到絕對或相對路徑。
cd ..
: 切換到上一級目錄。
cd ~
或 cd
: 切換到當前用戶的家目錄。
cd -
: 切換到上一次所在的目錄。
代碼示例:
cd /etc/sysconfig/
cd ..
cd
cd -
mkdir
: 創建新目錄。
語法結構: mkdir [選項] 目錄名
常用選項:
-p
: 遞歸創建。如果要創建的目錄的父目錄不存在,會自動創建。
代碼示例:
mkdir project_a
mkdir -p workspace/code/java
rm
: 刪除文件或目錄。
語法結構: rm [選項] 文件或目錄
常用選項:
-f
: 強制刪除,不進行任何提示。
-r
: 遞歸刪除目錄及其所有內容。
-i
: 刪除前進行交互式確認。
代碼示例:
rm temp.log
rm -f temp.log
rm -r old_backup
rm -rf /path/to/very/dangerous/dir
3.2 文件操作命令:
touch
: 創建空文件或更新時間戳。
語法結構: touch 文件名
代碼示例:
touch my_note.txt
cp
: 復制文件或目錄。
語法結構: cp [選項] 源 目標
常用選項:
-r
: 遞歸復制目錄。
-p
: 保留源文件的屬性 (如修改時間、權限)。
代碼示例:
cp file1.txt file1.bak
cp file2.txt /home/user/documents/
cp -r my_app /opt/backup/
mv
: 移動或重命名文件或目錄。
語法結構: mv 源 目標
代碼示例:
mv old_file.txt new_file.txt
mv large_file.zip /tmp/
cat
: 查看文件全部內容。
語法結構: cat [選項] 文件名
常用選項:
-n
: 顯示行號。
代碼示例:
cat /etc/hostname
cat -n /etc/profile
head
: 查看文件的開頭部分。
語法結構: head [選項] 文件名
常用選項:
-n <行數>
: 指定顯示的行數,例如 -n 20
顯示前20行。
代碼示例:
head /var/log/dmesg
head -n 20 /var/log/dmesg
tail
: 查看文件的結尾部分。
語法結構: tail [選項] 文件名
常用選項:
-n <行數>
: 指定顯示的行數。
-f
: 實時跟蹤文件的新增內容 (Follow)。
代碼示例:
tail /var/log/messages
tail -n 100 /var/log/messages
tail -f /var/log/secure
3.3 幫助命令:
man
: 查看命令的詳細手冊。
語法結構: man 命令名
代碼示例:
man ls
--help
: 顯示命令的簡要幫助。
語法結構: 命令名 --help
代碼示例:
cp --help
四、常用的快捷鍵
4.1 自動補全與屏幕控制
Tab
: 自動補全命令、文件名或路徑,按一次嘗試補全,按兩次列出所有可能選項。
Ctrl + L
: 清屏,效果等同于 clear
命令。
4.2 光標移動與編輯
Ctrl + A
: 將光標移動到行首。
Ctrl + E
: 將光標移動到行尾。
Ctrl + U
: 剪切從光標處到行首的全部內容。
Ctrl + K
: 剪切從光標處到行尾的全部內容。
Ctrl + W
: 剪切光標前的一個單詞。
Ctrl + Y
: 粘貼 (Ctrl + U
, K
, W
剪切) 的內容。
Alt + B
: 光標向左移動一個單詞。
Alt + F
: 光標向右移動一個單詞。
4.3 進程控制
Ctrl + C
: 強制中斷當前正在運行的程序。
Ctrl + Z
: 暫停 (掛起) 當前前臺運行的程序,并將其放入后臺。
Ctrl + D
: 輸入文件結束符 (EOF),通常用于退出當前Shell會話或結束某些程序的輸入。
4.4 歷史命令
上/下箭頭
: 瀏覽上一個或下一個歷史命令。
Ctrl + R
: 反向搜索歷史命令,輸入關鍵字即可查找。
!!
: 執行上一條命令。
!n
: 執行歷史記錄中第n條命令。
!string
: 執行最近一次以 “string” 開頭的命令。
五、總結
本章初步介紹了Linux的基本概念、文件系統結構以及最核心的命令行操作。熟練掌握這些基礎命令及其常用選項和快捷鍵是高效使用Linux系統的第一步。
練習題
請在您的Linux環境中完成以下操作,并寫出所使用的命令。
題目:
- 在當前用戶的主目錄 (
~
) 下,創建一個名為linux_practice
的新目錄。 - 進入你剛剛創建的
linux_practice
目錄。 - 在
linux_practice
目錄中,創建一個名為level1
的子目錄,并在level1
目錄中再創建一個名為level2
的子目錄 (要求使用一條命令完成)。 - 在
linux_practice
目錄中,創建一個名為notes.txt
的空文件。 - 將
notes.txt
文件復制一份,命名為notes_backup.txt
。 - 將
notes.txt
文件重命名為study_notes.txt
。 - 查看
study_notes.txt
文件的詳細信息(包括權限、所有者、大小、修改時間等)。 - 將
study_notes.txt
文件移動到level1/level2/
目錄下。 - 不切換目錄,直接列出
level1/level2/
目錄下的所有文件。 - 刪除
linux_practice
目錄及其下的所有內容 (包括子目錄和文件)。
答案與解析:
- 創建
linux_practice
目錄:
mkdir ~/linux_practice
解析: mkdir
是創建目錄的命令。~/
代表當前用戶的主目錄。
- 進入
linux_practice
目錄:
cd ~/linux_practice
解析: cd
是切換目錄的命令。
- 遞歸創建多級子目錄:
mkdir -p level1/level2
解析: mkdir
命令配合 -p
(--parents
) 選項可以創建不存在的父目錄,實現一次性創建多級目錄。
- 創建空文件:
touch notes.txt
解析: touch
命令用于創建空文件或更新文件時間戳。
- 復制文件:
cp notes.txt notes_backup.txt
解析: cp
命令用于復制文件,格式為 cp source destination
。
- 重命名文件:
mv notes.txt study_notes.txt
解析: mv
命令在同一目錄下使用時,效果就是重命名。
- 查看文件詳細信息:
ls -l study_notes.txt
解析: ls
是列出命令,-l
(--long
) 選項使其以長格式(詳細信息)顯示。
- 移動文件:
mv study_notes.txt level1/level2/
解析: mv
命令將文件移動到指定的目標目錄。
- 不切換目錄列出子目錄內容:
ls -l level1/level2/
解析: ls
命令可以接受一個路徑作為參數,來列出該路徑下的內容,而不需要先 cd
過去。
- 遞歸刪除目錄:
rm -rf ~/linux_practice
解析: rm
是刪除命令。-r
(--recursive
) 選項用于刪除目錄及其內容。-f
(--force
) 選項用于強制刪除,不進行任何提示。此命令非常危險,使用前務必確認路徑是否正確!
rm -r ~/linux_practice # 會逐個文件提示確認