Linux作为广泛使用的操作系统,其命令行工具提供了强大的功能,熟练掌握常用命令能显著提升工作效率,以下通过具体例子详细介绍Linux常用命令的使用方法和场景。

文件和目录操作是Linux最基础的功能。ls
命令用于列出目录内容,ls -l
以长格式显示文件权限、所有者、大小等信息,ls -a
会显示包括隐藏文件在内的所有文件,创建目录使用mkdir
,例如mkdir -p test/subdir
可递归创建多级目录,删除空目录用rmdir
,而rm -r
可递归删除非空目录,rm -f
则强制删除不提示,文件复制通过cp
实现,如cp source.txt dest/
将文件复制到目标目录,cp -r dir1 dir2
则复制整个目录,移动或重命名文件使用mv
命令,mv oldname.txt newname.txt
用于重命名,mv file.txt /tmp/
可将文件移动到/tmp目录,查看文件内容有多种方式,cat
适合查看小文件,如cat notes.txt
;less
支持分页浏览大文件,通过上下箭头或空键翻页;head -n 10 file.txt
查看文件前10行,tail -n 20 file.txt
查看末尾20行,tail -f log.txt
还可实时跟踪文件更新。
文本处理方面,grep
是强大的文本搜索工具,grep "error" log.txt
在日志文件中搜索包含"error"的行,grep -v "warning"
则排除包含"warning"的行。sed
用于流编辑文本,例如sed 's/old/new/g' file.txt
将文件中所有"old"替换为"new",sed -i '1d' file.txt
直接删除文件第一行。awk
适合复杂文本处理,awk '{print $1, $3}' data.txt
打印每行的第1和第3列,awk -F: '{print $1}' /etc/passwd
以冒号为分隔符显示用户名。
系统信息和管理命令中,top
实时显示进程资源占用,按P
按CPU排序,按M
按内存排序。ps aux
列出当前所有进程,ps -ef | grep nginx
查找nginx相关进程。df -h
查看磁盘使用情况,free -h
显示内存使用量。uname -a
显示系统详细信息,uptime
查看系统运行时间和负载,网络配置方面,ifconfig
或ip addr
显示网络接口信息,ping www.baidu.com
测试网络连通性,netstat -tuln
查看监听端口,ssh user@192.168.1.100
远程登录其他主机,文件权限管理使用chmod
,如chmod 755 script.sh
设置脚本为所有者可读写执行,其他用户可读执行;chown user:group file.txt
修改文件所有者和所属组。
压缩和解压命令中,tar -czf archive.tar.gz dir/
将目录压缩为tar.gz文件,tar -xzf archive.tar.gz
解压,zip -r archive.zip dir/
创建zip压缩包,unzip archive.zip
解压zip文件。

用户和权限管理方面,useradd -m username
创建新用户并创建家目录,passwd username
设置用户密码,userdel -r username
删除用户及相关文件。sudo
命令允许普通用户以超级用户权限执行命令,如sudo apt update
更新软件包列表(基于Debian/Ubuntu系统)。
进程管理中,kill PID
终止指定进程,kill -9 PID
强制终止进程,nohup command &
在后台运行命令且忽略挂断信号,jobs
查看后台任务,fg %1
将任务1调到前台。
软件包管理因发行版而异,Debian/Ubuntu使用apt
,如sudo apt install nginx
安装软件,sudo apt remove nginx
卸载软件;CentOS/RHEL使用yum
或dnf
,如sudo yum install httpd
安装Apache服务。
文件查找方面,find / -name "filename.txt"
在根目录下查找文件,find . -type f -size +10M
在当前目录查找大于10MB的文件,locate filename.txt
快速查找文件(需先更新数据库)。
相关问答FAQs:
-
如何查看某个命令的帮助文档?
答:Linux命令通常内置帮助信息,可通过man 命令名
查看详细手册,例如man ls
;或使用命令名 --help
查看简要用法,如cp --help
,部分命令还支持info 命令名
获取更结构化的帮助信息。 -
如何批量重命名文件?
答:可结合rename
命令(Perl版本)或for
循环实现,例如使用rename 's/old/new/g' *.txt
将当前目录所有.txt文件中的"old"替换为"new";或通过for f in *.txt; do mv "$f" "${f%.txt}_new.txt"; done
为每个.txt文件添加"_new"后缀。