Shell是Linux和Unix系统中用户与系统交互的重要接口,通过命令行操作可以高效管理文件、进程、系统资源等,以下是Shell常见命令的详细介绍,涵盖文件操作、文本处理、系统管理等多个方面,并辅以表格说明常用命令的格式与功能。

文件与目录操作命令
文件和目录管理是Shell最基础的功能。ls
命令用于列出目录内容,常用选项包括-l
(显示详细信息)、-a
(显示隐藏文件)、-h
(以人类可读格式显示文件大小)。ls -lah
会以长格式、显示隐藏文件、并带可读大小的方式列出当前目录所有文件。cd
命令用于切换目录,如cd /var/log
进入/var/log
目录,cd ..
返回上级目录,cd ~
进入用户主目录。mkdir
用于创建目录,mkdir -p parent/child
可递归创建多级目录。rm
命令删除文件或目录,rm -rf
强制递归删除(需谨慎使用)。cp
复制文件或目录,cp -r
递归复制目录;mv
用于移动文件或重命名,如mv old.txt new.txt
将文件重命名。
文本处理命令
文本处理是Shell的核心能力之一。cat
命令用于查看文件内容,cat file.txt
直接输出文件内容,cat -n
显示行号。grep
用于文本搜索,grep "error" log.txt
在log.txt
中搜索包含"error"的行,-i
选项忽略大小写,-r
递归搜索目录。sed
是流编辑器,用于文本替换,如sed 's/old/new/g' file.txt
将文件中所有"old"替换为"new"。awk
用于文本分析,awk '{print $1}' file.txt
打印每行的第一列,-F
可指定分隔符,如awk -F, '{print $2}' csv.txt
处理CSV文件。sort
对文本行排序,sort -n
按数字排序,-r
降序排列;uniq
去除重复行,需与sort
配合使用,如sort file.txt | uniq
。
系统管理与监控命令
系统管理命令帮助用户监控和管理系统资源。top
和htop
(需安装)实时显示进程状态,包括CPU、内存占用,top -p <PID>
可监控特定进程。ps
命令查看当前进程,ps aux
显示所有进程的详细信息,grep
结合使用可过滤进程,如ps aux | grep nginx
。kill
终止进程,kill -9 <PID>
强制终止,killall
通过进程名终止,如killall nginx
。df
查看磁盘使用情况,df -h
以人类可读格式显示;du
统计目录大小,du -sh *
显示当前目录下各文件及目录的总大小。free
查看内存使用,free -h
以GB/MB格式显示。tar
用于文件打包与解压,tar -czf archive.tar.gz files
打包并压缩,tar -xzf archive.tar.gz
解压。
权限与用户管理命令
Linux通过权限控制文件访问。chmod
修改文件权限,chmod 755 script.sh
设置所有者可读写执行,组和其他用户可读执行;chmod +x script.sh
添加可执行权限。chown
修改文件所有者,chown user:group file.txt
将文件所有者改为user,组改为group。sudo
以超级用户身份执行命令,sudo apt update
更新软件包列表(需配置sudo权限)。useradd
和userdel
分别用于创建和删除用户,如useradd -m newuser
创建用户并创建主目录,userdel -r newuser
删除用户及其主目录。

网络相关命令
网络命令用于诊断和管理网络连接。ping
测试网络连通性,ping google.com
向Google发送ICMP包。ifconfig
或ip addr
查看网络接口信息,ip addr show eth0
显示以太网接口配置。netstat
查看网络连接状态,netstat -tuln
显示监听的TCP/UDP端口,ss
是netstat
的替代品,功能更强大。curl
和wget
用于下载文件,curl -O url
下载文件并保持原文件名,wget url
直接下载。ssh
远程登录,ssh user@host
以user身份登录到host主机。
常用命令速查表
命令 | 功能 | 常用选项 | 示例 |
---|---|---|---|
ls | 列出目录内容 | -l , -a , -h |
ls -lah |
grep | 文本搜索 | -i , -r , -n |
grep "error" log.txt |
sed | 流编辑器(文本替换) | s/old/new/g |
sed 's/test/example/g' file |
ps | 查看进程 | aux , -ef |
ps aux | grep nginx |
tar | 文件打包/解压 | -czf (打包), -xzf (解压) |
tar -czf backup.tar.gz dir |
chmod | 修改文件权限 | 755 , +x |
chmod +x script.sh |
ping | 测试网络连通性 | -c (次数) |
ping -c 4 google.com |
相关问答FAQs
Q1: 如何查找大文件并删除?
A1: 使用du
和sort
组合查找大文件,例如du -sh * | sort -rh | head -10
显示当前目录下最大的10个文件/目录,删除时需谨慎,建议先确认文件路径,再用rm -rf
命令删除,如rm -rf large_directory
。
Q2: 如何后台运行长时间执行的命令?
A2: 可通过nohup
或&
实现。nohup command > output.log 2>&1 &
在后台运行命令,并将标准输出和错误输出重定向到output.log
,即使终端关闭命令也会继续执行;直接使用command &
可在后台运行,但关闭终端后命令可能终止。
