菜鸟科技网

Linux常用命令有哪些?

Linux 作为一种广泛使用的操作系统,其强大的命令行工具是系统管理和日常操作的核心,熟练掌握常用命令能够显著提升工作效率,无论是文件管理、系统监控还是网络配置,命令行都提供了高效、灵活的解决方案,以下将详细介绍 Linux 中最常用的命令,涵盖文件操作、文本处理、系统管理、网络工具等多个方面,帮助用户全面了解 Linux 命令行的功能与使用方法。

Linux常用命令有哪些?-图1
(图片来源网络,侵删)

文件与目录操作命令

文件和目录管理是 Linux 最基础的操作,以下命令几乎每天都会用到。

  • ls:列出目录内容,通过选项可以显示详细信息,如 ls -l 以长格式显示(包含权限、所有者、大小、修改时间等),ls -a 显示隐藏文件(以 开头的文件),ls -h 以人类可读格式显示文件大小(如 K、M、G)。
  • cd:切换目录。cd / 切换到根目录,cd ~cd 切换到用户主目录,cd .. 返回上一级目录,cd - 在最近两次目录间切换。
  • pwd:显示当前所在的工作目录,输出绝对路径,如 /home/user/documents
  • mkdir:创建新目录。mkdir dir1 创建单层目录,mkdir -p parent/child 递归创建多级目录(若父目录不存在则自动创建)。
  • rm:删除文件或目录。rm file.txt 删除文件,rm -r dir 递归删除目录及其内容,rm -f file 强制删除(不提示确认),rm -rf dir 强制递归删除(需谨慎使用,数据无法恢复)。
  • cp:复制文件或目录。cp source.txt dest.txt 复制文件,cp -r source_dir dest_dir 递归复制目录,cp -p source.txt dest.txt 保留文件权限、时间戳等属性。
  • mv:移动或重命名文件/目录。mv old.txt new.txt 重命名文件,mv file.txt /path/to/dest/ 将文件移动到目标目录,mv dir1 dir2 若 dir2 不存在则为重命名,存在则移动。
  • touch:创建空文件或更新文件时间戳。touch newfile.txt 创建空文件,touch -t 202301011200 file.txt 修改文件时间为指定时间。
  • ln:创建链接文件。ln -s source.txt link.txt 创建软链接(符号链接,类似 Windows 快捷方式),ln source.txt link.txt 创建硬链接(与原文件共用 inode,删除原文件链接仍可用)。

文本处理命令

Linux 提供了强大的文本处理工具,适合处理日志、配置文件等文本内容。

  • cat:查看文件内容,一次性输出全部内容,适合小文件。cat file.txt 显示文件内容,cat -n file.txt 显示行号,cat file1.txt file2.txt > combined.txt 合并多个文件。
  • more/less:分页查看文件内容。more file.txt 向下翻页(空格键),无法后退;less file.txt 支持上下滚动、搜索(/keyword)、跳转(G 到末尾,g 到开头),更适合大文件。
  • head/tail:查看文件开头或末尾内容。head -n 5 file.txt 查看前 5 行,tail -n 10 file.txt 查看末尾 10 行,tail -f log.txt 实时跟踪文件更新(常用于监控日志)。
  • grep:文本搜索工具。grep "keyword" file.txt 在文件中搜索包含关键词的行,grep -i "KEYWORD" file.txt 忽略大小写,grep -v "keyword" file.txt 反向匹配(输出不包含关键词的行),grep -n "keyword" file.txt 显示匹配行号。
  • sed:流编辑器,用于文本替换、删除等。sed 's/old/new/g' file.txt 将文件中所有 "old" 替换为 "new"(原文件不变,输出到屏幕),sed -i 's/old/new/g' file.txt 直接修改原文件,sed '1d' file.txt 删除第 1 行。
  • awk:文本分析工具,按列处理文本。awk '{print $1, $3}' file.txt 输出每行的第 1 列和第 3 列,awk -F: '{print $1}' /etc/passwd 以 为分隔符,输出 /etc/passwd 的用户名列,awk '$1 > 100 {print $1}' file.txt 输出第 1 列大于 100 的行。

系统与管理命令

系统管理命令用于监控系统状态、管理进程、管理用户等。

  • top:动态显示系统进程状态,包括 CPU、内存使用率,默认按 CPU 占用排序,P 按 CPU 排序,M 按内存排序,q 退出。
  • ps:静态查看进程。ps aux 显示所有进程的详细信息(用户、CPU、内存等),ps -ef 以标准格式显示进程,ps -ef | grep nginx 查看 nginx 相关进程。
  • kill/killall:终止进程。kill -9 PID 强制终止进程(9 为信号码),killall nginx 通过进程名终止所有 nginx 进程。
  • df/du:磁盘使用情况。df -h 以人类可读格式显示磁盘分区及使用率(h 表示 Human-readable),du -sh /path 显示目录总大小(s 表示 summarizeh 表示 Human-readable)。
  • free:查看内存使用情况。free -h 以 GB/MB 显示内存、交换分区使用情况。
  • useradd/userdel:用户管理。useradd username 创建新用户,userdel -r username 删除用户及主目录(-r 表示删除家目录),passwd username 设置用户密码。
  • chmod/chown:文件权限与所有者管理。chmod 755 file.txt 设置文件权限(7 为所有者读写执行,5 为组用户和其他用户读执行),chmod u+x script.sh 为所有者添加执行权限,chown user:group file.txt 修改文件所有者和所属组,chown -R user:group dir/ 递归修改目录及其内容的所有者。

网络相关命令

网络工具用于配置网络、诊断连接问题等。

Linux常用命令有哪些?-图2
(图片来源网络,侵删)
  • ifconfig/ip:查看或配置网络接口。ifconfig 显示所有网络接口信息(部分系统需安装 net-tools),ip addr show 显示 IP 地址(现代 Linux 推荐 ip 命令),sudo ifconfig eth0 192.168.1.100 设置 IP 地址(需 root 权限)。
  • ping:测试网络连通性。ping www.baidu.com 向目标主机发送 ICMP 包,显示响应时间和丢包率,ping -c 4 www.baidu.com 只发送 4 个包后退出。
  • netstat/ss:查看网络连接状态。netstat -tuln 显示所有监听端口(t TCP,u UDP,l 监听,n 数字形式),ss -tuln 功能类似,但速度更快(现代 Linux 推荐)。
  • wget/curl:下载文件。wget https://example.com/file.zip 下载文件到当前目录,curl -O https://example.com/file.zip 保存原文件名,curl -I www.baidu.com 只获取 HTTP 头信息(查看响应状态码)。
  • ssh:远程登录。ssh username@remote_ip 通过 SSH 连接远程主机,ssh -p 22 username@remote_ip 指定端口号(默认 22),scp file.txt username@remote_ip:/path/to/dest/ 通过 SSH 复制文件到远程主机。

压缩与解压命令

Linux 常用压缩格式包括 .zip.tar.tar.gz.tar.bz2 等。

  • zip/unzip:处理 .zip 文件。zip -r archive.zip dir/ 将目录压缩为 zip 文件(r 表示递归),unzip archive.zip 解压 zip 文件,unzip -l archive.zip 查看 zip 文件内容列表。
  • tar:处理 .tar 打包文件(可结合其他命令压缩)。tar -cvf archive.tar file1 file2 打包文件(c 创建,v 显示过程,f 指定文件名),tar -xvf archive.tar 解包,tar -tzvf archive.tar.gz 查看 tar.gz 文件内容(t 列出内容,z 解压 gzip)。
  • gzip/gunzip:处理 .gz 压缩文件。gzip file.txt 压缩文件(生成 file.txt.gz,原文件删除),gunzip file.txt.gz 解压(生成 file.txt),gzip -d file.txt.gz 解压(与 gunzip 等价)。

常用命令速查表

功能类别 命令示例 说明
列出目录 ls -l 长格式显示目录内容
切换目录 cd /home/user 切换到指定目录
创建目录 mkdir -p dir/subdir 递归创建多级目录
删除文件 rm -rf dir 强制递归删除目录
复制文件 cp -r source dest 递归复制目录
查看文件内容 less file.txt 分页查看大文件
搜索文本 grep -n "error" log.txt 搜索含 "error" 的行并显示行号
查看进程 ps aux 显示所有进程详细信息
终止进程 kill -9 1234 强制终止 PID 为 1234 的进程
查看磁盘使用 df -h 显示磁盘分区使用率(人类可读格式)
测试网络连通 ping www.baidu.com 测试与目标主机的网络连通性
下载文件 wget https://example.com/file.zip 下载文件到当前目录
压缩目录 tar -czf archive.tar.gz dir/ 将目录压缩为 tar.gz 文件
解压 tar.gz tar -xzf archive.tar.gz 解压 tar.gz 文件

相关问答 FAQs

Q1:如何快速查找包含特定关键词的文件?
A:可以使用 find 命令结合 grep 实现,在当前目录及其子目录中查找所有包含 "error" 的 .log 文件,命令为:find . -name "*.log" -exec grep -l "error" {} \;find . -name "*.log" 查找所有 .log 文件,-exec grep -l "error" {} \; 对每个文件执行 grep 搜索,-l 表示输出包含匹配内容的文件名,若只需显示匹配行号,可改为 -exec grep -n "error" {} \;

Q2:如何查看系统运行的服务的状态?
A:不同 Linux 发行版使用不同的服务管理工具,对于使用 systemd 的系统(如 Ubuntu 16+、CentOS 7+),可用 systemctl 命令:systemctl status nginx 查看 nginx 服务状态(active running 表示运行中),systemctl start nginx 启动服务,systemctl stop nginx 停止服务,systemctl enable nginx 设置开机自启,对于旧版系统(如 CentOS 6),使用 service 命令:service nginx status 查看状态,service nginx start 启动服务。

Linux常用命令有哪些?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇