1. 文件和目录操作
ls
:列出目录内容。- 例如:
ls -l
列出详细信息,ls -a
列出包括隐藏文件的内容。
- 例如:
cd
:切换目录。- 例如:
cd /home/user
切换到/home/user
目录。
- 例如:
pwd
:显示当前工作目录。mkdir
:创建目录。- 例如:
mkdir newdir
创建一个名为newdir
的目录。
- 例如:
rmdir
:删除空目录。rm
:删除文件或目录。- 例如:
rm -r dir
递归删除目录及其内容。
- 例如:
cp
:复制文件或目录。- 例如:
cp file1 file2
将file1
复制到file2
。
- 例如:
mv
:移动或重命名文件或目录。- 例如:
mv file1 file2
重命名file1
为file2
,或者将file1
移动到指定目录。
- 例如:
2. 文件内容查看与处理
cat
:显示文件内容。- 例如:
cat file.txt
显示file.txt
的内容。
- 例如:
more
:分页显示文件内容。less
:类似于more
,但支持上下滚动。head
:显示文件的前面几行。- 例如:
head -n 10 file.txt
显示file.txt
的前10行。
- 例如:
tail
:显示文件的最后几行。- 例如:
tail -n 10 file.txt
显示file.txt
的最后10行。
- 例如:
grep
:搜索文件内容。- 例如:
grep "text" file.txt
在file.txt
中查找包含 “text” 的行。
- 例如:
sed
:流编辑器,用于处理文件的文本替换。- 例如:
sed 's/old/new/g' file.txt
将file.txt
中的 “old” 替换为 “new”。
- 例如:
awk
:用于处理和分析文本文件的内容,常用于按列处理数据。- 例如:
awk '{print $1}' file.txt
打印file.txt
中的第一列。
- 例如:
3. 系统信息和资源监控
top
:显示当前系统的进程及资源使用情况。htop
:top
命令的增强版,提供更直观的交互界面。ps
:列出当前正在运行的进程。- 例如:
ps aux
列出所有进程。
- 例如:
free
:查看内存使用情况。- 例如:
free -h
以人类可读的方式显示内存使用情况。
- 例如:
df
:查看磁盘空间使用情况。- 例如:
df -h
以人类可读的方式显示磁盘使用情况。
- 例如:
du
:查看目录或文件的磁盘使用情况。- 例如:
du -sh /home/user
查看/home/user
目录的磁盘使用情况。
- 例如:
uptime
:显示系统的运行时间和负载情况。
4. 网络相关命令
ping
:测试网络连接。- 例如:
ping google.com
测试与 Google 的网络连接。
- 例如:
ifconfig
:显示或配置网络接口(旧版命令,已被ip
命令取代)。ip
:显示或配置网络接口、路由等。- 例如:
ip addr show
显示所有网络接口信息。
- 例如:
netstat
:显示网络连接、路由表等信息。ss
:类似于netstat
,但更现代高效。traceroute
:追踪数据包经过的路由路径。wget
:从网络上下载文件。- 例如:
wget http://example.com/file
下载文件。
- 例如:
5. 文件权限管理
chmod
:改变文件或目录的权限。- 例如:
chmod 755 file
设置文件权限为rwxr-xr-x
。
- 例如:
chown
:改变文件或目录的所有者。- 例如:
chown user:group file
改变文件的所有者和所属组。
- 例如:
chgrp
:改变文件的组所有权。- 例如:
chgrp group file
改变文件的所属组。
- 例如:
6. 用户管理
useradd
:添加新用户。- 例如:
useradd newuser
创建一个新用户newuser
。
- 例如:
usermod
:修改用户信息。- 例如:
usermod -aG sudo user
将用户user
添加到sudo
组。
- 例如:
userdel
:删除用户。- 例如:
userdel -r user
删除用户user
及其主目录。
- 例如:
passwd
:修改用户密码。- 例如:
passwd user
修改用户user
的密码。
- 例如:
7. 进程管理
kill
:终止进程。- 例如:
kill -9 PID
终止指定进程。
- 例如:
killall
:根据进程名称终止进程。- 例如:
killall process_name
终止所有process_name
进程。
- 例如:
nohup
:在后台运行进程,即使用户注销后进程也会继续运行。- 例如:
nohup command &
将command
放到后台运行。
- 例如:
8. 文件查找
find
:查找文件。- 例如:
find /home -name "*.txt"
在/home
目录下查找所有.txt
文件。
- 例如:
locate
:快速查找文件(需要更新数据库)。- 例如:
locate file.txt
查找名为file.txt
的文件。
- 例如:
which
:查看命令的位置。- 例如:
which python
显示python
命令的完整路径。
- 例如:
9. 压缩与解压
tar
:打包和解包文件。- 例如:
tar -czvf file.tar.gz /path/to/dir
压缩文件夹为.tar.gz
格式。 - 例如:
tar -xzvf file.tar.gz
解压.tar.gz
文件。
- 例如:
zip
:压缩文件。- 例如:
zip file.zip file1 file2
将file1
和file2
压缩为file.zip
。
- 例如:
unzip
:解压.zip
文件。- 例如:
unzip file.zip
解压file.zip
。
- 例如:
10. 包管理
apt
(Debian/Ubuntu):用于安装、更新、删除软件包。- 例如:
sudo apt install package
安装软件包。
- 例如:
yum
(CentOS/RHEL):用于安装、更新、删除软件包。- 例如:
sudo yum install package
安装软件包。
- 例如:
dnf
(Fedora):用于安装、更新、删除软件包。- 例如:
sudo dnf install package
安装软件包。
- 例如:
11. 文件系统操作
mount
:挂载文件系统。- 例如:
mount /dev/sdb1 /mnt
将/dev/sdb1
挂载到/mnt
目录。
- 例如:
umount
:卸载文件系统。- 例如:
umount /mnt
卸载/mnt
目录上的文件系统。
- 例如:
fsck
:检查和修复文件系统。- 例如:
fsck /dev/sdb1
检查并修复sdb1
上的文件系统。
- 例如:
tune2fs
:调整 ext2/ext3/ext4 文件系统的参数。- 例如:
tune2fs -l /dev/sda1
显示文件系统的详细信息。
- 例如:
12. 磁盘管理
fdisk
:磁盘分区工具。- 例如:
fdisk /dev/sda
对磁盘/dev/sda
进行分区。
- 例如:
parted
:用于创建、删除、修改磁盘分区的工具。- 例如:
parted /dev/sda
启动分区管理工具。
- 例如:
mkfs
:格式化文件系统。- 例如:
mkfs.ext4 /dev/sda1
将/dev/sda1
格式化为 ext4 文件系统。
- 例如:
lsblk
:列出块设备信息。- 例如:
lsblk
显示系统的磁盘及分区信息。
- 例如:
blkid
:查看设备的 UUID 和文件系统类型。- 例如:
blkid /dev/sda1
显示/dev/sda1
的 UUID 和文件系统类型。
- 例如:
13. 日志管理
dmesg
:查看内核环缓冲区的消息,通常用于查看硬件信息和内核日志。journalctl
:查看系统日志(针对使用 systemd 的系统)。- 例如:
journalctl -xe
查看系统日志中的错误信息。
- 例如:
tail -f
:实时查看日志文件内容。- 例如:
tail -f /var/log/syslog
实时查看系统日志。
- 例如:
logger
:将消息添加到系统日志。- 例如:
logger "This is a test message"
向系统日志添加一条消息。
- 例如:
14. 定时任务
crontab
:配置定时任务。- 例如:
crontab -e
编辑当前用户的定时任务。 - 定时任务格式:
* * * * * /path/to/command
(分钟、小时、日、月、星期、命令)。
- 例如:
at
:运行定时任务一次。- 例如:
echo "backup.sh" | at 10:00
在10:00执行backup.sh
脚本。
- 例如:
15. 环境变量和配置
export
:设置环境变量。- 例如:
export PATH=$PATH:/usr/local/bin
将/usr/local/bin
添加到PATH
环境变量中。
- 例如:
env
:显示当前的环境变量。- 例如:
env
显示所有环境变量。
- 例如:
alias
:创建命令别名。- 例如:
alias ll='ls -l'
创建ll
的别名,等价于ls -l
。
- 例如:
source
:重新加载配置文件。- 例如:
source ~/.bashrc
重新加载用户的.bashrc
文件。
- 例如:
16. 文件和目录查找
locate
:通过更新的数据库查找文件。- 例如:
locate filename
查找名为filename
的文件。
- 例如:
updatedb
:更新locate
数据库。- 例如:
updatedb
更新文件数据库。
- 例如:
find
:根据条件查找文件。- 例如:
find /home -name "*.log"
在/home
目录下查找.log
文件。
- 例如:
xargs
:将标准输入转换为命令行参数。- 例如:
find . -name "*.txt" | xargs wc -l
查找所有.txt
文件并统计行数。
- 例如:
17. 文本处理和编辑
cut
:按列分割文本文件。- 例如:
cut -d ',' -f 1 file.csv
从 CSV 文件中提取第一列。
- 例如:
sort
:排序文件内容。- 例如:
sort file.txt
将文件file.txt
排序。
- 例如:
uniq
:去重文件中的重复行。- 例如:
sort file.txt | uniq
将文件file.txt
排序并去除重复行。
- 例如:
tr
:替换字符。- 例如:
echo "abc" | tr 'a' 'z'
将abc
中的a
替换为z
。
- 例如:
tee
:读取标准输入并将其内容输出到文件。- 例如:
echo "Hello" | tee file.txt
将 “Hello” 写入文件file.txt
并输出到屏幕。
- 例如:
18. 远程操作和管理
ssh
:远程登录到另一台计算机。- 例如:
ssh user@hostname
通过 SSH 协议连接到hostname
主机。
- 例如:
scp
:安全复制文件。- 例如:
scp file.txt user@hostname:/path/to/destination
将文件复制到远程主机。
- 例如:
rsync
:用于同步文件和目录。- 例如:
rsync -av source/ destination/
同步目录。
- 例如:
sftp
:安全的文件传输协议。- 例如:
sftp user@hostname
与远程主机建立 SFTP 连接。
- 例如:
19. 系统启动与关机
reboot
:重新启动系统。shutdown
:关闭系统。- 例如:
shutdown -h now
立即关机。
- 例如:
halt
:立即停止系统。init
:改变系统的运行级别(用于 SysVinit 系统)。- 例如:
init 0
关机,init 6
重启。
- 例如:
20. 安装与包管理
-
Debian/Ubuntu 系统:
apt-get
:包管理命令。- 例如:
sudo apt-get install package
安装软件包。 sudo apt-get update
更新包列表。sudo apt-get upgrade
升级已安装的软件包。sudo apt-get remove package
卸载软件包。
- 例如:
-
CentOS/RHEL 系统:
yum
:包管理工具。- 例如:
sudo yum install package
安装软件包。 sudo yum update
更新所有安装的包。sudo yum remove package
卸载包。
- 例如:
-
Fedora 系统:
dnf
:包管理工具。- 例如:
sudo dnf install package
安装软件包。 sudo dnf update
更新所有安装的包。sudo dnf remove package
卸载软件包。
- 例如:
21. 磁盘和文件系统性能
iostat
:查看磁盘 I/O 性能。- 例如:
iostat -x
显示详细的磁盘 I/O 性能数据。
- 例如:
vmstat
:查看虚拟内存的使用情况。- 例如:
vmstat 1
每秒钟显示一次虚拟内存的状态。
- 例如:
sar
:收集、报告和保存系统活动信息。- 例如:
sar -u 1 3
显示 CPU 使用情况,每秒更新一次,3 次。
- 例如:
22. 系统备份
tar
:压缩和打包文件。- 例如:
tar -czvf backup.tar.gz /path/to/dir
打包并压缩目录为.tar.gz
文件。
- 例如:
rsync
:备份和同步文件。- 例如:
rsync -av /path/to/dir /backup/dir
将文件同步到备份目录。
- 例如:
23. 安全管理
iptables
:设置防火墙规则(基于 Linux 内核的包过滤工具)。- 例如:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
允许通过 TCP 端口 80 的流量。
- 例如:
ufw
:简单的防火墙配置工具(Ubuntu/Debian 系统)。- 例如:
sudo ufw allow 80/tcp
允许 HTTP 端口流量。
- 例如: