文章目錄
- 一、文件與目錄操作
- 1.1 `ls` - 列出目錄內容
- 1.2 `cd` - 切換目錄
- 1.3 `pwd` - 顯示當前目錄
- 1.4 `mkdir` - 創建目錄
- 1.5 `rmdir` - 刪除空目錄
- 1.6 `rm` - 刪除文件或目錄
- 1.7 `cp` - 復制文件或目錄
- 1.8 `mv` - 移動或重命名文件或目錄
- 1.9 `touch` - 創建空文件或更新文件時間戳
- 二、文件內容查看與編輯
- 2.1 `cat` - 連接并顯示文件內容
- 2.2 `tac` - 反向顯示文件內容
- 2.3 `more` - 分頁顯示文件內容
- 2.4 `less` - 分頁顯示文件內容(支持向前翻頁)
- 2.5 `head` - 顯示文件開頭部分內容
- 2.6 `tail` - 顯示文件結尾部分內容
- 2.7 `nano` - 簡單易用的文本編輯器
- 2.8 `vim` - 功能強大的文本編輯器
- 三、文件權限管理
- 3.1 `chmod` - 修改文件權限
- 3.2 `chown` - 修改文件所有者
- 3.3 `chgrp` - 修改文件所屬組
- 四、系統管理
- 4.1 `ps` - 顯示當前進程
- 4.2 `top` - 實時顯示系統資源使用情況
- 4.3 `kill` - 終止進程
- 4.4 `df` - 顯示磁盤空間使用情況
- 4.5 `du` - 顯示目錄或文件的磁盤使用情況
- 4.6 `free` - 顯示內存使用情況
- 五、網絡管理
- 5.1 `ping` - 測試網絡連通性
- 5.2 `ifconfig` - 配置網絡接口(舊版工具,已被`ip`替代)
- 5.3 `ip` - 顯示或配置網絡接口
- 5.4 `netstat` - 顯示網絡連接、路由表、接口狀態等
- 5.5 `ssh` - 遠程登錄
- 六、打包與壓縮
- 6.1 `tar` - 歸檔文件
- 6.2 `gzip` - 壓縮文件
- 6.3 `gunzip` - 解壓縮文件
- 6.4 `zip` - 壓縮文件
- 6.5 `unzip` - 解壓縮文件
- 七、查找與搜索
- 7.1 `find` - 查找文件
- 7.2 `grep` - 搜索文本
- 7.3 `locate` - 快速查找文件
- 八、其他實用命令
- 8.1 `date` - 顯示或設置系統日期時間
- 8.2 `cal` - 顯示日歷
- 8.3 `history` - 顯示命令歷史
- 8.4 `alias` - 設置命令別名
- 8.5 `uname` - 顯示系統信息
- 8.6 `man` - 查看命令手冊
- 九、進階命令與腳本編寫
- 9.1 `awk` - 文本處理工具
- 9.2 `sed` - 流編輯器
- 9.3 `cron` - 定時任務
- 9.4 `ssh-keygen` - 生成SSH密鑰
- 9.5 `scp` - 安全復制文件
- 9.6 `rsync` - 同步文件和目錄
- 9.7 `iptables` - 配置Linux內核防火墻
- 9.8 `docker` - 容器管理
- 9.9 `kubernetes` - 容器編排
- 9.10 `ansible` - 自動化配置管理
- 十、總結與常見問題
- 10.1 常見問題
- 10.1.1 權限不足
- 10.1.2 文件不存在
- 10.1.3 命令未找到
- 10.2 提高效率的技巧
- 10.2.1 使用別名
- 10.2.2 使用命令歷史
- 10.2.3 自動補全
- 10.3 持續學習與進階
- 10.3.1 閱讀手冊頁
- 10.3.2 在線資源
一、文件與目錄操作
1.1 ls
- 列出目錄內容
ls
命令用于顯示目錄中的文件和子目錄。默認情況下,它僅顯示文件名。該命令支持多種選項,以提供更多信息。
ls [選項] [目錄]
常用選項:
ls -l
:以長格式顯示,包括文件的權限、所有者、文件大小和最后修改時間。
ls -l /home/user
輸出示例:
total 12
drwxr-xr-x 2 user user 4096 Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txt
ls -a
:顯示所有文件,包括隱藏文件(以.
開頭的文件)。
ls -a /home/user
輸出示例:
. .. .bashrc .profile Documents file.txt
ls -h
:以人類可讀的格式顯示文件大小(如K、M、G)。
ls -lh /home/user
輸出示例:
total 12K
drwxr-xr-x 2 user user 4.0K Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txt
組合使用選項:
ls -lah /home/user
輸出示例:
total 12K
drwxr-xr-x 3 user user 4.0K Jan 1 12:34 .
drwxr-xr-x 20 user user 4.0K Jan 1 12:34 ..
-rw-r--r-- 1 user user 220 Jan 1 12:34 .bashrc
-rw-r--r-- 1 user user 655 Jan 1 12:34 .profile
drwxr-xr-x 2 user user 4.0K Jan 1 12:34 Documents
-rw-r--r-- 1 user user 123 Jan 1 12:34 file.txt
1.2 cd
- 切換目錄
cd
命令用于在目錄之間導航。它改變當前工作目錄。
cd [目錄]
示例:
- 切換到用戶的主目錄:
cd ~
- 切換到上一級目錄:
cd ..
- 切換到指定目錄:
cd /home/user/Documents
- 返回到上一次所在的目錄:
cd -
1.3 pwd
- 顯示當前目錄
pwd
命令顯示當前工作目錄的完整路徑。
pwd
示例:
$ pwd
/home/user/Documents
1.4 mkdir
- 創建目錄
mkdir
命令用于創建新目錄。
mkdir [選項] 目錄名
常用選項:
- 創建單個目錄:
mkdir mydir
- 創建多級目錄:
mkdir -p parent/child/grandchild
1.5 rmdir
- 刪除空目錄
rmdir
命令用于刪除空目錄。如果目錄非空,則刪除失敗。
rmdir 目錄名
示例:
rmdir mydir
1.6 rm
- 刪除文件或目錄
rm
命令用于刪除文件或目錄。刪除操作是不可逆的,需謹慎使用。
rm [選項] 文件
常用選項:
- 刪除文件:
rm file.txt
- 遞歸刪除目錄及其內容:
rm -r mydir
- 強制刪除:
rm -f file.txt
1.7 cp
- 復制文件或目錄
cp
命令用于復制文件或目錄。
cp [選項] 源文件 目標文件
常用選項:
- 復制文件:
cp file1.txt file2.txt
- 遞歸復制目錄:
cp -r dir1 dir2
1.8 mv
- 移動或重命名文件或目錄
mv
命令用于移動或重命名文件或目錄。
mv [選項] 源文件 目標文件
示例:
- 移動文件:
mv file.txt /new/location/
- 重命名文件:
mv oldname.txt newname.txt
1.9 touch
- 創建空文件或更新文件時間戳
touch
命令用于創建新的空文件或更新現有文件的訪問和修改時間。
touch 文件名
示例:
- 創建新文件:
touch newfile.txt
二、文件內容查看與編輯
2.1 cat
- 連接并顯示文件內容
cat
命令用于連接文件并顯示其內容。它通常用于查看文件的內容,但也可用于合并文件。
cat [選項] 文件
常用選項:
- 顯示文件內容:
cat file.txt
- 顯示帶行號的文件內容:
cat -n file.txt
2.2 tac
- 反向顯示文件內容
tac
命令將文件內容按行反序顯示。與cat
相反。
tac 文件
示例:
tac file.txt
2.3 more
- 分頁顯示文件內容
more
命令用于分頁顯示文件內容,適合查看長文件。
more 文件
示例:
more file.txt
操作提示:
- 按
空格鍵
翻頁 - 按
Enter
鍵逐行滾動 - 按
q
退出
2.4 less
- 分頁顯示文件內容(支持向前翻頁)
less
命令類似于more
,但提供了更多功能,如向前翻頁。
less 文件
示例:
less file.txt
操作提示:
- 按
空格鍵
翻頁 - 按
上/下箭頭
鍵滾動 - 按
q
退出
2.5 head
- 顯示文件開頭部分內容
head
命令顯示文件的前幾行內容。
head [選項] 文件
常用選項:
- 顯示文件的前10行:
head -n 10 file.txt
2.6 tail
- 顯示文件結尾部分內容
tail
命令顯示文件的后幾行內容。
tail [選項] 文件
常用選項:
- 顯示文件的最后10行:
tail -n 10 file.txt
- 實時顯示文件新增內容:
tail -f file.txt
2.7 nano
- 簡單易用的文本編輯器
nano
是一個簡單易用的文本編輯器,適合新手。
nano 文件
示例:
nano file.txt
基本操作:
Ctrl + O
:保存文件Ctrl + X
:退出編輯器
2.8 vim
- 功能強大的文本編輯器
vim
是一個功能強大的文本編輯器,適合高級用戶。它有兩種模式:普通模式和插入模式。
vim 文件
示例:
vim file.txt
基本操作:
- 進入插入模式:按
i
- 保存文件:按
Esc
,輸入:w
- 退出編輯器:按
Esc
,輸入:q
三、文件權限管理
3.1 chmod
- 修改文件權限
chmod
命令用于更改文件或目錄的權限。權限由三部分組成:所有者、組和其他用戶。
chmod [選項] 權限 文件
權限表示法
:
- 數字表示法:如755
- 符號表示法:如
u+x
示例:
- 設置文件權限為755:
chmod 755 file.txt
- 增加文件擁有者的執行權限:
chmod u+x file.txt
3.2 chown
- 修改文件所有者
chown
命令用于更改文件或目錄的所有者和組。
chown [選項] 用戶:組 文件
示例:
- 將文件所有者和所有組改為root:
chown root:root file.txt
3.3 chgrp
- 修改文件所屬組
chgrp
命令用于更改文件或目錄的組。
chgrp [選項] 組 文件
示例:
- 將文件的組改為staff:
chgrp staff file.txt
四、系統管理
4.1 ps
- 顯示當前進程
ps
命令用于顯示當前系統的進程列表。
ps [選項]
常用選項:
- 顯示所有進程:
ps aux
4.2 top
- 實時顯示系統資源使用情況
top
命令實時顯示系統資源的使用情況,包括CPU、內存、進程等。
top
操作提示:
- 按
q
退出
4.3 kill
- 終止進程
kill
命令用于終止進程。
kill [選項] 進程號
示例:
- 終止指定進程:
kill 12345
- 強制終止進程:
kill -9 12345
4.4 df
- 顯示磁盤空間使用情況
df
命令顯示文件系統的磁盤空間使用情況。
df [選項]
常用選項:
- 以人類可讀格式顯示:
df -h
4.5 du
- 顯示目錄或文件的磁盤使用情況
du
命令顯示指定目錄或文件的磁盤使用情況。
du [選項] [文件]
常用選項:
- 以人類可讀格式顯示:
du -h
- 顯示總計:
du -s
4.6 free
- 顯示內存使用情況
free
命令顯示系統內存的使用情況。
free [選項]
常用選項:
- 以MB為單位顯示:
free -m
五、網絡管理
5.1 ping
- 測試網絡連通性
ping
命令用于測試與目標主機的網絡連通性。
ping [選項] 目標地址
示例:
ping google.com
5.2 ifconfig
- 配置網絡接口(舊版工具,已被ip
替代)
ifconfig
命令用于顯示和配置網絡接口。
ifconfig [接口]
示例:
- 顯示所有網絡接口:
ifconfig
5.3 ip
- 顯示或配置網絡接口
ip
命令是ifconfig
命令的替代工具,用于顯示和配置網絡接口。
ip addr
ip link set dev 接口名 up/down
示例:
- 顯示所有網絡接口和地址:
ip addr
- 啟用網絡接口:
ip link set dev eth0 up
- 禁用網絡接口:
ip link set dev eth0 down
5.4 netstat
- 顯示網絡連接、路由表、接口狀態等
netstat
命令用于顯示網絡連接、路由表、接口狀態等信息。
netstat [選項]
常用選項:
- 顯示所有連接:
netstat -an
5.5 ssh
- 遠程登錄
ssh
命令用于通過SSH協議遠程登錄到另一臺機器。
ssh 用戶名@遠程主機
示例:
ssh user@remotehost
六、打包與壓縮
6.1 tar
- 歸檔文件
tar
命令用于創建和管理歸檔文件。
tar [選項] 文件
常用選項:
- 創建tar歸檔文件:
tar -cvf archive.tar 文件
- 解壓tar歸檔文件:
tar -xvf archive.tar
- 查看tar歸檔文件內容:
tar -tvf archive.tar
6.2 gzip
- 壓縮文件
gzip
命令用于壓縮文件。
gzip 文件
示例:
- 壓縮文件:
gzip file.txt
6.3 gunzip
- 解壓縮文件
gunzip
命令用于解壓縮文件。
gunzip 文件.gz
示例:
- 解壓縮文件:
gunzip file.txt.gz
6.4 zip
- 壓縮文件
zip
命令用于將文件或目錄壓縮為zip格式。
zip [選項] 壓縮包名 文件
常用選項:
- 壓縮單個文件:
zip archive.zip file.txt
- 遞歸壓縮目錄:
zip -r archive.zip 目錄
6.5 unzip
- 解壓縮文件
unzip
命令用于解壓縮zip文件。
unzip 壓縮包名.zip
示例:
- 解壓縮文件:
unzip archive.zip
七、查找與搜索
7.1 find
- 查找文件
find
命令用于在指定目錄及其子目錄中查找文件。
find [路徑] [選項] [表達式]
常用選項:
- 按名稱查找文件:
find / -name "file.txt"
- 按文件大小查找文件:
find / -size +100M
7.2 grep
- 搜索文本
grep
命令用于在文件中搜索匹配的文本模式。
grep [選項] 模式 文件
常用選項:
- 搜索文件中的模式:
grep "pattern" file.txt
- 遞歸搜索目錄中的模式:
grep -r "pattern" 目錄
7.3 locate
- 快速查找文件
locate
命令用于快速查找文件。它基于預先構建的數據庫,速度很快。
locate 文件名
示例:
- 查找文件:
locate file.txt
八、其他實用命令
8.1 date
- 顯示或設置系統日期時間
date
命令用于顯示或設置系統日期和時間。
date
示例:
- 顯示當前日期時間:
date
- 設置系統日期時間(需管理員權限):
date -s "2023-01-01 12:34:56"
8.2 cal
- 顯示日歷
cal
命令用于顯示日歷。
cal
示例:
- 顯示當前月份的日歷:
cal
- 顯示指定年份的日歷:
cal 2023
8.3 history
- 顯示命令歷史
history
命令用于顯示命令歷史記錄。
history
示例:
- 顯示所有歷史記錄:
history
- 清空歷史記錄:
history -c
8.4 alias
- 設置命令別名
alias
命令用于創建命令別名,以簡化命令輸入。
alias 別名='命令'
示例:
- 創建
ll
的別
名為ls -l
:
alias ll='ls -l'
8.5 uname
- 顯示系統信息
uname
命令用于顯示系統信息。
uname [選項]
常用選項:
- 顯示所有系統信息:
uname -a
8.6 man
- 查看命令手冊
man
命令用于查看命令的手冊頁,提供詳細的命令使用信息。
man 命令名
示例:
- 查看
ls
命令的手冊頁:
man ls
九、進階命令與腳本編寫
9.1 awk
- 文本處理工具
awk
是一種強大的文本處理工具,適用于格式化報告和文本提取。
awk '模式 {動作}' 文件
示例:
- 打印文件中的第二列:
awk '{print $2}' file.txt
9.2 sed
- 流編輯器
sed
是一種流編輯器,適用于對文本文件的批量編輯。
sed '命令' 文件
示例:
- 將文件中的所有
foo
替換為bar
:
sed 's/foo/bar/g' file.txt
9.3 cron
- 定時任務
cron
用于在指定時間運行計劃任務。
crontab -e
示例:
- 每天凌晨2點運行備份腳本:
0 2 * * * /path/to/backup.sh
9.4 ssh-keygen
- 生成SSH密鑰
ssh-keygen
用于生成SSH公鑰和私鑰對。
ssh-keygen
示例:
- 生成密鑰對并指定文件名:
ssh-keygen -f ~/.ssh/mykey
9.5 scp
- 安全復制文件
scp
用于通過SSH在本地和遠程主機之間安全復制文件。
scp 源文件 目標文件
示例:
- 將本地文件復制到遠程主機:
scp file.txt user@remotehost:/path/to/destination
9.6 rsync
- 同步文件和目錄
rsync
用于在本地和遠程主機之間同步文件和目錄。
rsync [選項] 源 目標
示例:
- 同步本地目錄到遠程主機:
rsync -avz /path/to/local/ user@remotehost:/path/to/remote/
9.7 iptables
- 配置Linux內核防火墻
iptables
用于配置和管理Linux內核中的IP包過濾規則。
iptables [選項]
示例:
- 允許特定端口的入站連接:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
9.8 docker
- 容器管理
docker
用于管理應用容器,可以簡化應用的部署和管理。
docker [選項]
示例:
- 拉取Docker鏡像:
docker pull ubuntu
- 運行Docker容器:
docker run -it ubuntu /bin/bash
9.9 kubernetes
- 容器編排
kubernetes
用于自動化容器化應用的部署、管理和擴展。
kubectl [選項]
示例:
- 顯示當前集群中的所有Pod:
kubectl get pods
9.10 ansible
- 自動化配置管理
ansible
用于自動化配置管理和應用部署。
ansible [選項]
示例:
- 運行Ansible playbook:
ansible-playbook playbook.yml
十、總結與常見問題
10.1 常見問題
10.1.1 權限不足
- 錯誤示例:
bash: /etc/hosts: Permission denied
- 解決方法:使用
sudo
命令提升權限。
sudo nano /etc/hosts
10.1.2 文件不存在
- 錯誤示例:
ls: cannot access 'file.txt': No such file or directory
- 解決方法:檢查文件路徑是否正確,使用
find
或locate
命令查找文件。
10.1.3 命令未找到
- 錯誤示例:
bash: foo: command not found
- 解決方法:檢查命令是否正確輸入,或安裝相應的軟件包。
10.2 提高效率的技巧
10.2.1 使用別名
通過創建別名,可以簡化常用命令的輸入。
alias ll='ls -l'
alias gs='git status'
10.2.2 使用命令歷史
使用history
命令查看和重用以前輸入的命令。
history
使用!
加上命令編號重復執行命令:
!42
10.2.3 自動補全
使用Tab鍵自動補全命令和文件名,可以減少輸入錯誤和提高效率。
10.3 持續學習與進階
10.3.1 閱讀手冊頁
每個Linux命令都有詳細的手冊頁,可以通過man
命令查看。
man ls
10.3.2 在線資源
- Linux Documentation Project (LDP)
- Stack Overflow
- 各種Linux發行版的官方文檔和社區論壇