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 # 使用
全部评论

相关推荐

本人双9bg,目前在泡池子了3.23&nbsp;申请4.22&nbsp;机考5.20&nbsp;上午9点&nbsp;技术面,面完5min发短信5.20&nbsp;下午4点&nbsp;主管面,面完HR和我说通过了,但是25h之后官网才通过-----------------------------------------------------------------------------------------------------------------------------技术面:1、自我介绍,我本身没怎么准备,讲了自己专业和院校就结束了,面试官来了一句“没啦?”给我吓了一跳,心想要凉了,我就打开简历给他共享了一下,根据简历又给他讲了一遍。2、问简历相关内容,问我做的项目,具体怎么实现3、手撕代码环节让我推了一下我论文里的公式,没有问机考的内容,也没有再问其他的代码。4、我觉得可能是面试官不太了解我做的方向,并且有一篇一作一区Top+一篇共同作者的NC工作,这两个综合原因让他对我印象还可以,没有刁难我。全程40min,越往后面感觉印象越好,然后面完五分钟发短信一面通过-----------------------------------------------------------------------------------------------------------------------------主管面:1、有了上午的经验,准备了一下自我介绍,写了个稿子,直接读的2、和技术面一样,又问了我一遍项目怎么实现的3、项目有没有团队合作经验?每个人是怎么分工的?4、和别人合作意见不和怎么处理?你在团队里通常扮演什么角色?5、大学期间最让你感到沮丧,觉得没有做好的一件事。6、你觉得做的最成功的事情是什么?7、因为我有学生干部经历,根据我的简历又多问了一些团队管理经验和基本素养相关的问题8、最近让你最有压力的一件事是什么?平时怎么缓解压力?9、为什么想来华为?对华为的认识(华孝子环节,狠狠吹就行了)10、来华为可能需要加班,怎么看待加班(我说不鼓励但是认同,投其所好讲几句,然后他说华子加班其实没那么狠)后面就说他没什么问题了,就结束会议了。全程45min,可能是面的太专注了,我还以为只有二十分钟,结束了才发现累得不行。我遇到的两位面试官还都挺和蔼,很好说话的。一点小trick,双机位,但是我把一些问题的回答提前写好在txt上,然后在面试的时候只共享了简历,右下角放我的txt文档。主管面的所有问题都在我提前准备的回答中能对应到,所以回答起来比较流畅,基本没有支支吾吾的情况。这些问题也基本都是牛客各种面经上收集的,感谢各位,我也来发面经攒攒人品。预祝各位成功!!!
热情的废话选手面试中:你双九根本不用慌,我本科双非,研211,4.23入池,到现在都没消息,问了一下hr,说我有点难,直接转头就找了一家小厂沉淀去了,下半年秋招了,没个实习真不好搞
查看11道真题和解析
点赞 评论 收藏
分享
昨天 01:54
已编辑
北京理工大学 Java
记录一下,时隔两年,第三次投华为(半年前偷偷又挂了一次),这次投了od,并且从c++改为了Java方向5.17机考&nbsp;170+&nbsp;考前刷了两三天题,结果只有第一题会&nbsp;二三题蒙混了点分刚好过&nbsp;大概80+50+30第一题&nbsp;分割字符,string的split方法没考虑转义导致调试半天第二题&nbsp;麻将胡牌能有多少种方式,递归➕回溯,后来复盘发现过程错了但结果还对了一些第三题&nbsp;二叉树好久没刷了不熟,蒙了一点分5.18性格测试&nbsp;当天过5.21&nbsp;资格面&nbsp;基本闲聊&nbsp;当天过5.23&nbsp;技术一面&nbsp;约60min三天后过面试时摆双机位,没手机支架用了电脑支架,结果没摆稳把手机砸坏了😭基础八股答得七七八八,一两个没答上来运气好手撕简单题,但有一处写错了debug好一会才找到5.26&nbsp;技术二面&nbsp;约40min&nbsp;当天过基础八股依旧答得七七八八手撕bfs刚好练过&nbsp;问了题目变种情况也刚好有遇到过,勉强回答了思路5.27&nbsp;主管综面&nbsp;约30min&nbsp;当天过拷打上段工作经历时,回答了好多次没回答到点子上,导致面试官一直问多次回答问题后沉默很久,一度以为要挂了感觉自己运气很好,基本靠运气过的等待后续中,希望能得到3月离职以来收获的第一个offer,真的走投无路了😇对我来说这已经是很好的工作了目前不到半年工作经验,gap快3个月了,最近面了五六个了都没后续,希望能被收留
点赞 评论 收藏
分享
点评被问穿了,项目用点评的可以看,最近一直看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道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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