Linux 作为服务器操作系统和许多开发者的主力工具,其强大的命令行是高效工作的基石。无论是文件管理、系统监控、网络操作还是软件部署,熟练掌握 Linux 命令都能让你事半功倍。
本文将为你整理 100 条在日常工作和学习中高频使用的 Linux 命令,从文件系统操作到进程管理,从网络配置到权限控制,助你快速上手
一、文件和目录操作
这是 Linux 命令行的基础,也是最常用的部分。
-
ls
:列出目录内容。-
ls -l
:长格式列出,显示详细信息。 -
ls -a
:列出所有文件,包括隐藏文件。 -
ls -lh
:以人类可读格式显示文件大小。
-
-
cd
:改变当前工作目录。-
cd ~
或cd
:切换到用户主目录。 -
cd ..
:切换到上级目录。 -
cd -
:切换到上一个工作目录。
-
-
pwd
:显示当前工作目录的完整路径。 -
mkdir
:创建目录。-
mkdir -p dir1/dir2
:递归创建目录。
-
-
rmdir
:删除空目录。 -
cp
:复制文件或目录。-
cp file1 file2
:复制文件。 -
cp -r dir1 dir2
:递归复制目录。 -
cp -a dir1 dir2
:归档复制,保留文件属性。
-
-
mv
:移动文件或目录,也可用于重命名。-
mv file1 new_file_name
:重命名文件。 -
mv file1 dir1
:移动文件到目录。
-
-
rm
:删除文件或目录。-
rm file1
:删除文件。 -
rm -r dir1
:递归删除目录。 -
rm -f file1
:强制删除文件(不提示)。 -
rm -rf dir1
:强制递归删除目录(危险操作,慎用!)。
-
-
touch
:创建空文件或更新文件时间戳。 -
cat
:连接文件并打印到标准输出(查看文件内容)。-
cat file1
:显示文件内容。 -
cat -n file1
:显示文件内容并显示行号。
-
-
more
:分页显示文件内容。 -
less
:更强大的分页显示文件内容,支持前后滚动。 -
head
:显示文件开头几行(默认10行)。-
head -n 5 file1
:显示文件前5行。
-
-
tail
:显示文件末尾几行(默认10行),常用于查看日志。-
tail -n 5 file1
:显示文件后5行。 -
tail -f file1
:实时跟踪文件末尾新增内容(常用于日志)。
-
-
ln
:创建链接文件。-
ln file1 link1
:创建硬链接。 -
ln -s file1 link1
:创建软链接(符号链接)。
-
-
find
:在文件系统中搜索文件。-
find . -name "file*.txt"
:在当前目录查找名字匹配的文件。 -
find /var/log -size +1G
:查找/var/log
下大于 1GB 的文件。 -
find . -type d -name "my_dir"
:查找目录。 -
find . -type f -mtime +7
:查找 7 天前修改过的文件。
-
-
which
:查找命令的完整路径。-
which ls
:显示ls
命令的路径。
-
-
grep
:在文件中搜索文本模式。-
grep "pattern" file1
:搜索文件中的字符串。 -
grep -i "pattern" file1
:不区分大小写搜索。 -
grep -r "pattern" dir1
:递归搜索目录。 -
grep -n "pattern" file1
:显示行号。
-
-
wc
:统计文件字数、行数、字符数。-
wc -l file1
:统计行数。 -
wc -w file1
:统计单词数。 -
wc -c file1
:统计字符数。
-
-
tar
:打包和解包文件。-
tar -cvf archive.tar dir1
:打包目录。 -
tar -xvf archive.tar
:解包。 -
tar -zxvf archive.tar.gz
:解压 .tar.gz 文件。 -
tar -jxvf archive.tar.bz2
:解压 .tar.bz2 文件。
-
-
zip
/unzip
:压缩和解压 .zip 文件。-
zip archive.zip file1 dir1
:压缩文件和目录。 -
unzip archive.zip
:解压文件。
-
-
gzip
/gunzip
:压缩和解压 .gz 文件。-
gzip file1
:压缩文件。 -
gunzip file1.gz
:解压文件。
-
二、权限管理
Linux 中文件和目录的权限是安全的重要组成部分。
-
chmod
:改变文件或目录的权限。-
chmod 755 file1
:所有者读写执行,组用户读执行,其他用户读执行。 -
chmod +x script.sh
:添加执行权限。 -
chmod -w file1
:移除写权限。
-
-
chown
:改变文件或目录的所有者。-
chown user1 file1
:改变文件所有者为 user1。 -
chown user1:group1 file1
:改变文件所有者和所属组。 -
chown -R user1 dir1
:递归改变目录所有者。
-
-
chgrp
:改变文件或目录的所属组。-
chgrp group1 file1
:改变文件所属组为 group1。
-
三、用户和用户组管理
管理系统用户和组。
-
useradd
:创建新用户。-
useradd -m newuser
:创建用户并创建其主目录。
-
-
passwd
:设置或修改用户密码。-
passwd username
:为指定用户设置密码。
-
-
userdel
:删除用户。-
userdel -r username
:删除用户及其主目录。
-
-
usermod
:修改用户属性。-
usermod -aG groupname username
:将用户添加到指定组。
-
-
groupadd
:创建新用户组。 -
groupdel
:删除用户组。 -
id
:显示用户和组信息。 -
who
:显示当前登录的用户。 -
w
:显示当前登录用户及他们正在做什么。
四、系统信息和进程管理
监控和管理系统资源及运行中的程序。
-
top
:实时显示进程活动和系统资源使用情况。 -
htop
:更友好、更强大的交互式进程查看器(需要安装)。 -
ps
:显示当前进程快照。-
ps aux
:显示所有用户的进程。 -
ps -ef
:显示所有进程的完整格式。 -
ps -ef | grep process_name
:查找特定进程。
-
-
kill
:终止进程。-
kill PID
:发送终止信号(TERM)。 -
kill -9 PID
:强制终止进程(KILL)。
-
-
killall
:通过名称终止所有匹配的进程。-
killall process_name
:终止所有名为 process_name 的进程。
-
-
df
:显示磁盘空间使用情况。-
df -h
:以人类可读格式显示。
-
-
du
:估算文件或目录的磁盘使用空间。-
du -sh dir1
:显示目录的总大小(人类可读)。 -
du -h --max-depth=1 dir1
:显示目录下一级子目录大小。
-
-
free
:显示内存使用情况。-
free -h
:以人类可读格式显示。
-
-
uname
:显示系统信息。-
uname -a
:显示所有系统信息。
-
-
uptime
:显示系统运行时间、登录用户和平均负载。 -
hostname
:显示或设置系统主机名。 -
reboot
:重启系统(需要root权限)。 -
shutdown
:关机或重启系统。-
shutdown -h now
:立即关机。 -
shutdown -r now
:立即重启。
-
-
poweroff
:立即关机(类似shutdown -h now
)。 -
date
:显示或设置系统日期和时间。 -
cal
:显示日历。
五、网络操作
管理网络连接和进行网络诊断。
-
ifconfig
(或ip addr
):显示或配置网络接口信息。-
ifconfig
:显示所有网卡信息。 -
ip addr
:现代 Linux 系统推荐使用。
-
-
ping
:测试网络连通性。-
ping www.baidu.com
:ping 百度。 -
ping -c 4 www.baidu.com
:ping 4 次。
-
-
netstat
:显示网络连接、路由表、接口统计等。-
netstat -tulnp
:显示所有监听的 TCP/UDP 端口及对应进程。
-
-
ss
:更快速、更现代的netstat
替代品。-
ss -tulnp
:类似netstat -tulnp
。
-
-
ssh
:远程登录到其他 Linux 服务器。-
ssh user@hostname_or_ip
:连接远程服务器。
-
-
scp
:在本地和远程服务器之间复制文件。-
scp file.txt user@remote_host:/path/to/remote/
:复制本地文件到远程。 -
scp user@remote_host:/path/to/remote/file.txt .
:复制远程文件到本地。
-
-
wget
:从网络下载文件。-
wget https://example.com/file.zip
:下载文件。 -
wget -c https://example.com/file.zip
:断点续传。
-
-
curl
:传输数据或测试 API。-
curl https://www.baidu.com
:获取网页内容。 -
curl -O https://example.com/file.zip
:下载文件到当前目录。 -
curl -X POST -d "key=value" http://localhost:8080/api
:发送 POST 请求。
-
-
nslookup
:查询 DNS 信息。 -
dig
:更强大的 DNS 查询工具。 -
route
:显示或操作 IP 路由表。 -
traceroute
(或tracert
):显示数据包到目标的路径。
六、软件安装与管理
在不同发行版中,包管理工具不同。
-
Debian/Ubuntu (apt):
-
sudo apt update
:更新包列表。 -
sudo apt upgrade
:升级已安装的包。 -
sudo apt install package_name
:安装软件。 -
sudo apt remove package_name
:卸载软件(保留配置)。 -
sudo apt purge package_name
:卸载软件(清除配置)。 -
sudo apt autoremove
:删除不再需要的依赖。
-
-
CentOS/RHEL (yum/dnf):
-
sudo yum update
(或sudo dnf update
):更新所有包。 -
sudo yum install package_name
(或sudo dnf install package_name
):安装软件。 -
sudo yum remove package_name
(或sudo dnf remove package_name
):卸载软件。
-
-
Snap (通用包管理):
-
sudo snap install package_name
:安装 snap 包。
-
-
Flatpak (通用包管理):
-
flatpak install package_name
:安装 flatpak 包。
-
七、压缩与解压 (续)
除了 tar
、zip
,还有其他常见的压缩格式。
-
bzip2
/bunzip2
:压缩和解压 .bz2 文件。-
bzip2 file1
:压缩。 -
bunzip2 file1.bz2
:解压。
-
-
xz
/unxz
:压缩和解压 .xz 文件。-
xz file1
:压缩。 -
unxz file1.xz
:解压。
-
八、文本处理
强大的文本处理工具。
-
echo
:打印字符串或变量。-
echo "Hello World"
:打印字符串。 -
echo $PATH
:打印环境变量。
-
-
sort
:对文本文件内容进行排序。-
sort file1
:按行排序。 -
sort -r file1
:倒序排序。
-
-
uniq
:删除或报告重复行。-
sort file1 | uniq
:去除重复行。 -
sort file1 | uniq -c
:统计重复行并计数。
-
-
cut
:从文件行中提取字段。-
cut -d ':' -f 1 /etc/passwd
:以:
为分隔符,提取第一列。
-
-
sed
:流编辑器,用于文本替换、删除行等。-
sed 's/old/new/g' file1
:替换所有old
为new
。 -
sed '/pattern/d' file1
:删除包含pattern
的行。
-
-
awk
:强大的文本处理工具,按列处理。-
awk '{print $1}' file1
:打印每行的第一列。 -
ps aux | awk '{print $1, $2, $11}'
:打印用户、PID、命令。
-
九、文件内容比较
-
diff
:比较两个文件的差异。-
diff file1 file2
:显示两个文件差异。
-
-
cmp
:逐字节比较两个文件。
十、计划任务与定时执行
-
crontab
:管理用户定时任务。-
crontab -e
:编辑当前用户的 crontab。 -
crontab -l
:列出当前用户的 crontab。
-
-
at
:在指定时间执行一次性任务。-
echo "command" | at now + 5 minutes
:5分钟后执行命令。
-
十一、其他常用工具
-
man
:查看命令的帮助手册。-
man ls
:查看ls
命令的手册。
-
-
history
:显示命令历史记录。-
history | grep "docker"
:搜索历史命令。
-
-
clear
:清空终端屏幕。 -
echo $PATH
:显示环境变量 PATH。 -
export
:设置环境变量。-
export MY_VAR="my_value"
:设置变量。
-
-
source
(或.
):在当前 shell 中执行脚本。-
source ~/.bashrc
:重新加载 bash 配置文件。
-
-
whoami
:显示当前用户。 -
sudo
:以超级用户权限执行命令。-
sudo apt update
:以 root 权限执行更新。
-
-
su
:切换用户。-
su - username
:切换到指定用户并加载其环境。 -
su -
:切换到 root 用户。
-
-
df -i
:显示 inode 使用情况。 -
pstree
:以树状图显示进程。 -
lsof
:列出打开的文件和进程。-
lsof -i :8080
:查看占用 8080 端口的进程。
-
-
nc
(netcat):网络工具,可用于端口扫描、数据传输等。-
nc -vz localhost 80
:测试 80 端口是否开放。
-
-
rsync
:远程文件同步工具。-
rsync -avz /path/to/local/ user@remote:/path/to/remote/
:同步文件。
-
-
xargs
:将标准输入转换为命令行参数。-
find . -name "*.log" | xargs rm
:删除所有.log
文件。
-
-
nohup
:在后台运行命令,即使关闭终端也不会停止。-
nohup command &
:后台运行命令。
-
-
bg
:将停止的进程放到后台运行。 -
fg
:将后台运行的进程放到前台。 -
jobs
:查看当前 shell 的后台作业。 -
alias
:创建命令别名。-
alias ll='ls -lh'
:将ll
设置为ls -lh
的别名。
-
-
unalias
:删除命令别名。 -
clear && history -c && exit
:清空屏幕、清空历史命令并退出终端(危险操作,慎用!)。
结语
掌握这些 Linux 命令,你将能更高效地操作服务器、管理文件、部署应用、解决问题。它们是你在 Linux 世界中自由驰骋的“利器”。建议多加练习,将这些命令融入你的日常工作流,相信你很快就能成为一名真正的命令行高手!