Linux命令的基础操作:

Linux 作为服务器和开发环境的主流操作系统,其命令行界面(CLI)是高效管理和操作系统的核心。掌握 Linux 命令的基础操作,是每一位开发者、系统管理员乃至技术爱好者必备的技能。本文将系统性地介绍 Linux 命令行的基本概念、常用命令、操作技巧以及学习路径,帮助你从零开始,逐步构建起使用命令行的信心和能力。

1. 认识 Linux 命令行

1.1 什么是 Shell?

Shell 是用户与 Linux 内核进行交互的接口。它接收用户输入的命令,解释并执行,然后将结果返回给用户。常见的 Shell 有:

  • Bash (Bourne Again Shell):Linux 系统默认的 Shell,功能强大,兼容性好。
  • Zsh (Z Shell):在 Bash 基础上增强,拥有更强大的自动补全和主题配置,是 macOS Catalina 及以后版本的默认 Shell。
  • Fish (Friendly Interactive Shell):以易用性和友好交互为设计目标,语法高亮和智能提示出色。

打开终端(Terminal)应用程序,你就进入了一个 Shell 会话。

1.2 命令提示符

命令提示符通常包含以下信息:

[用户名@主机名 当前目录]$

例如:

alice@ubuntu:~$

  • alice:当前登录的用户名。
  • ubuntu:主机名。
  • ~:表示当前位于用户的家目录(/home/alice)。
  • $:普通用户提示符。如果是 #,则表示当前是 root(超级用户)身份。

1.3 命令的基本结构

一条 Linux 命令通常由以下几部分组成:

命令 [选项] [参数]

  • 命令:要执行的操作,如 ls, cd, cp
  • 选项:用于修改命令行为的标志,通常以 -(短选项)或 --(长选项)开头,如 ls -l, ls --all
  • 参数:命令操作的对象,如文件名、目录名。

2. 文件与目录操作

2.1 浏览目录结构

  • pwd (Print Working Directory):显示当前所在目录的绝对路径。
  • ls (List):列出目录内容。
  • cd (Change Directory):切换当前工作目录。

2.2 创建与删除

  • mkdir (Make Directory):创建新目录。
  • touch:创建空文件或更新文件的时间戳。
  • rm (Remove):删除文件或目录。警告:rm -rf 命令极其危险,一旦执行,数据将无法恢复。尤其是在根目录(/)下使用时。
  • rmdir:删除空目录。

2.3 复制、移动与重命名

  • cp (Copy):复制文件或目录。
  • mv (Move):移动文件或目录,也可用于重命名。
  • rename:批量重命名文件(需要安装,非所有系统默认自带)。

3. 查看与编辑文件内容

3.1 查看文件

  • cat (Concatenate):连接文件并打印到标准输出。常用于查看短小文件内容。
  • less / more:分页查看文件内容,适合长文件。
  • head:显示文件开头部分(默认10行)。
  • tail:显示文件末尾部分(默认10行)。常用于实时查看日志。

3.2 编辑文件

  • nano:简单易用的命令行文本编辑器。 常用快捷键:Ctrl+O 保存,Ctrl+X 退出,Ctrl+W 搜索。
  • vim / vi:功能强大的模态编辑器,学习曲线陡峭但效率极高。 基本操作: 按 i 进入插入模式(Insert Mode)开始编辑。按 Esc 键退出插入模式,回到普通模式(Normal Mode)。在普通模式下,输入 :wq 保存并退出,输入 :q! 不保存强制退出。

4. 权限与所有权管理

Linux 是一个多用户系统,文件和目录的权限至关重要。

4.1 理解权限表示

使用 ls -l 查看文件详细信息时,第一列显示权限:

-rwxr-xr-- 1 alice developers 4096 May 28 09:30 script.sh

权限字符串 -rwxr-xr-- 分解如下:

  • 第1位:文件类型(- 普通文件,d 目录,l 符号链接)。
  • 第2-4位:文件所有者(user)的权限(rwx:读、写、执行)。
  • 第5-7位:文件所属组(group)的权限(r-x:读、执行)。
  • 第8-10位:其他用户(others)的权限(r--:只读)。

4.2 修改权限 (chmod)

使用符号模式或数字模式修改权限。

  • 符号模式
  • 数字模式(八进制): r (读) = 4w (写) = 2x (执行) = 1

4.3 修改所有者和所属组 (chown, chgrp)

5. 进程管理

5.1 查看进程 (ps, top, htop)

  • ps (Process Status):查看当前进程快照。
  • top:动态、交互式地查看系统进程和资源占用(按 q 退出)。
  • htoptop 的增强版,界面更友好(可能需要安装)。

5.2 控制进程

  • &:在命令末尾加上 &,让命令在后台运行。
  • jobs:查看当前终端后台运行的作业。
  • fg / bg:将后台作业切换到前台(fg %作业号)或继续在后台运行(bg %作业号)。
  • kill:向进程发送信号以终止它。

6. 网络相关命令

6.1 连接与下载

  • ping:测试与目标主机的网络连通性。
  • curl:强大的网络数据传输工具,常用于测试 API、下载文件。
  • wget:非交互式网络下载器,适合递归下载和断点续传。

6.2 网络诊断

  • ifconfig / ip addr:查看和配置网络接口信息(ifconfig 较老,推荐使用 ip 命令)。
  • netstat / ss:查看网络连接、路由表、接口统计等信息(ss 是更现代的替代品)。
  • traceroute / mtr:追踪数据包到达目标主机所经过的路由。

7. 系统信息与性能监控

7.1 系统信息

  • uname:打印系统信息。
  • df (Disk Free):报告文件系统磁盘空间使用情况。
  • du (Disk Usage):估算文件和目录的磁盘使用量。
  • free:显示内存使用情况。

7.2 性能监控

  • uptime:显示系统运行时间、当前用户数和平均负载。
  • vmstat:报告虚拟内存统计信息、进程、块 IO 等。
  • iostat:报告 CPU 统计信息和设备、分区的输入/输出统计信息。

8. 管道、重定向与命令组合

这是 Linux 命令行强大威力的核心。

8.1 管道 (|)

将一个命令的输出作为另一个命令的输入。

ps aux | grep python        # 从所有进程中筛选出包含 “python” 的行
cat log.txt | grep ERROR | wc -l # 统计 log.txt 中 “ERROR” 出现的行数

8.2 重定向

  • >:将标准输出重定向到文件(覆盖)。
  • >>:将标准输出追加到文件。
  • 2>:将标准错误重定向到文件。
  • &>:将标准输出和标准错误都重定向到文件。
  • <:将文件内容作为命令的标准输入。

8.3 命令组合

  • ;:顺序执行多个命令,无论前一个命令是否成功。
  • &&:只有前一个命令成功执行(返回状态码为0),才执行下一个命令。
  • ||:只有前一个命令执行失败(返回状态码非0),才执行下一个命令。

9. 查找与搜索

9.1 查找文件 (find)

功能最强大的文件查找工具。

find /home -name "*.txt"           # 在 /home 目录下查找所有 .txt 文件
find . -type f -size +10M          # 在当前目录下查找大于 10MB 的普通文件
find /var/log -mtime -7            # 在 /var/log 目录下查找过去7天内修改过的文件
find . -name "*.tmp" -delete       # 查找并删除所有 .tmp 文件(危险!先不加 -delete 测试)

9.2 在文件中搜索文本 (grep)

强大的文本搜索工具。

grep "error" server.log            # 在 server.log 中搜索包含 “error” 的行
grep -r "TODO" /home/alice/project # 递归搜索 /home/alice/project 目录下所有文件中的 “TODO”
grep -i "warning" log.txt          # 忽略大小写搜索 “warning”
grep -v "success" output.txt       # 搜索不包含 “success” 的行
grep -E "^[0-9]{3}-[0-9]{4}" data.txt # 使用
全部评论

相关推荐

点评被问穿了,项目用点评的可以看,最近一直看Agent了,点评都忘了,回答很烂,但是面试官人很好,一直在教我怎么思考,怎么做技术选型,面试都不白面啊1.先讲一下你的项目的架构,怎么组织的,为什么这样组织2.多级缓存怎么做的,考虑了哪些缓存一致性问题,多个服务器本地缓存、redis缓存、DB之间数据一致性怎么解决3.旁路缓存太low了,而且你是高并发,并不能很好的解决这个问题,面试官举例了很多数据一致性实现方案4.秒杀问题,redis做预扣减,问题在哪里5.宕机了你怎么解决,容灾处理之后,还是有一部分数据丢失了你该怎么办6.对账补偿之后还是有一部请求的数据丢失了,这时候怎么办?7.redis一直宕机起不来,甚至你的容灾策略都出问题了,你该怎么办8.为什么采用kafka?9.你说的这些点RocketMQ也能做,RabbitMQ也能做,甚至redis&nbsp;stream也能做,为什么不用这些?10.你选kafka,kafka有什么缺点?11.共同关注计算,5000量级耗时多少,10万,100万呢?12.对于两个个亿万粉丝的大V,共同关注计算该怎么优化,用什么技术选型13.除了分页还有别的吗,在底层做优化?14.商户搜索是怎么做的,都包含哪些模式?15.这些模式的搜索用的什么技术,怎么优化搜索的方案能保证快,稳,准?16.布隆过滤器的缺点是什么?17.怎么优化,你是怎么重建的,存的数据量级有多大?18.布隆过滤器你用的哈希是几种,都是什么,为什么用这几种?
查看18道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务