Linux初探:从零开始的命令行冒险

Linux初探:从零开始的命令行冒险
头像

🔥 码途CQ:个人主页
✨ 个人专栏:《Linux》 | 《经典算法题集》《C++》《QT》
✨ 追风赶月莫停留,无芜尽处是春山!

💖 欢迎关注,一起交流学习 💖
📌 关注后可第一时间获取C++/Qt/算法干货更新

🌟

在这里插入图片描述

🐧 第一章:欢迎来到Linux的世界

一、Linux:不只是企鹅,更是程序员的乐园

大家好!今天我们来聊聊 Linux —— 这个让无数程序员又爱又恨的操作系统。你是否曾对那个黑色的命令行窗口感到恐惧?是否觉得输入一行行指令像是和机器对话?别担心,今天我们就一起推开Linux的大门,从零开始,轻松上手!

二、Linux的前世今生:一个芬兰学生的“业余项目”

Linux的故事充满了传奇色彩。1991年,赫尔辛基大学的一名研究生Linus Torvalds在自己的电脑上写了一个小小的操作系统内核。当时他可能没想到,这个“业余爱好”会成长为如今影响世界的开源操作系统。

有趣的是,Linus最初只是在Minix(一个教学用操作系统)的基础上进行改进,后来他决定:“嘿,我要写一个比Minix更好的系统!”于是Linux诞生了。

小趣闻:Linux的吉祥物是一只叫做Tux的企鹅。据说Linus在澳大利亚动物园被一只企鹅咬了一口,对这个小家伙印象深刻,于是选择了企鹅作为Linux的吉祥物。

三、为什么你应该学习Linux?

1. 无处不在的Linux
  • 服务器领域:全球75%以上的服务器运行在Linux上
  • 移动设备:Android系统基于Linux内核
  • 嵌入式系统:路由器、智能电视、车载系统…
  • 云计算:86%的企业使用Linux构建云平台
2. 开源的力量

Linux遵循GPL协议,这意味着:

  • 你可以自由使用、修改和分发
  • 全球开发者共同维护,安全漏洞修复迅速
  • 完全免费,不需要支付昂贵的授权费用
3. 命令行:效率的终极武器

虽然图形界面很友好,但命令行才是程序员的“神兵利器”。一旦掌握,你的工作效率将成倍提升!

四、准备环境:告别图形界面

在开始之前,有个重要观念需要转变:真正的Linux高手几乎不用图形界面。为什么?

  1. 资源消耗:图形界面占用大量系统资源
  2. 远程工作:服务器通常只有命令行接口
  3. 效率:命令行操作比点击鼠标快得多
  4. 可脚本化:可以编写脚本自动化任务

推荐工具:XShell(Windows)或Terminal(Mac/Linux),让我们开始真正的冒险吧!


🛠️ 第二章:基础文件操作指令

一、第一印象:ls —— 看看这里有什么

当你第一次打开终端,可能会有点迷茫:“我在哪?这里有什么?”别担心,ls命令就是你的“眼睛”。

基本用法

ls
在这里插入图片描述

ls的真正威力在于它的选项:

ls -l # 详细列表,显示权限、大小、时间等信息ls -a # 显示所有文件,包括隐藏文件(以.开头的文件)ls -lh # 人性化显示文件大小(KB、MB、GB)ls -la # 详细显示所有文件ls -ltr # 按时间倒序排列,最新的在最后ls -R # 递归显示子目录内容

实用技巧

# 只想看目录本身,不看内容ls -ld /home # 按文件大小排序(最大的在前面)ls -lS # 只显示目录ls -d */ 

二、定位导航:pwdcd

1. pwd:告诉我,我在哪里?
pwd
在这里插入图片描述

这个命令会输出你的绝对路径,比如/home/username/Documents

2. cd:带我去我想去的地方
cd /home # 绝对路径:前往/home目录cd Documents # 相对路径:前往当前目录下的Documentscd..# 返回上一级目录cd../..# 返回上两级目录cd ~ # 回到你的家目录(/home/username)cd - # 回到上一个所在的目录(太有用了!)cd# 不跟参数,也回到家目录

路径小知识

  • 绝对路径:从根目录/开始的完整路径,如/home/user/file.txt
  • 相对路径:相对于当前目录的路径,如./docs../parent

三、创建与删除:Linux的“造物”与“毁灭”

1. touch:创建文件或更新时间戳
# 创建新文件touch file1.txt touch file1.txt file2.txt file3.txt # 一次创建多个# 更新时间戳(文件已存在时)touch existing_file.txt # 只修改访问时间或修改时间touch -a file.txt # 只改访问时间touch -m file.txt # 只改修改时间
2. mkdir:创建目录
mkdir new_folder mkdir folder1 folder2 folder3 # 创建多个目录# 创建多层目录(超实用!)mkdir -p project/src/main/java/com/example 
3. rmdirrm:删除操作

小心!这是最危险的命令之一!

# 删除空目录rmdir empty_folder # 删除非空目录rm -r folder_with_content # 强制删除,不问确认rm -rf dangerous_folder # 交互式删除,每次询问rm -ri folder 
⚠️ 血泪教训:永远不要执行rm -rf /rm -rf /*!这会删除系统所有文件!

四、查看文件内容:不同的“阅读方式”

1. cat:一次性展示全部内容
在这里插入图片描述
cat file.txt # 显示文件内容cat -n file.txt # 显示行号cat file1.txt file2.txt # 合并显示多个文件cat> newfile.txt # 创建新文件(按Ctrl+D结束)
2. moreless:分页查看

more是基础版,less是增强版(less is more!)。

# 查看大文件more large_log.txt less huge_file.txt # less的实用功能less file.txt # 在less中你可以:# 空格键:向下翻页# b键:向上翻页# /keyword:搜索关键词# n:下一个匹配项# q:退出
3. headtail:只看开头或结尾
head -n 20 file.txt # 查看前20行tail -n 30 file.log # 查看最后30行# 监控日志文件(实时查看新增内容)tail -f application.log 

实用组合

# 查看文件的第50-70行head -n 70 file.txt |tail -n 21

🎯 第三章:实用技巧与小贴士

一、查找文件:Linux的“寻宝游戏”

1. find:强大的文件搜索
# 按名称查找find /home -name "*.txt"# 查找所有txt文件find. -name "config*"# 查找config开头的文件find /var/log -name "*.log" -type f # 只找文件,不找目录# 按时间查找find. -mtime -7 # 7天内修改过的文件find. -size +100M # 大于100MB的文件
2. whichwhereis:查找命令位置
whichls# 查看ls命令的位置whereis python # 查找python的所有相关文件

二、命令帮助:man —— 你的随身手册

记不住命令选项?没关系!

manls# 查看ls的完整手册manman# 查看man命令自己的手册(套娃!)man2open# 查看系统调用open(第2章)man3printf# 查看C库函数printf(第3章)# 按章节搜索man -f printf# 查看printf在所有章节的情况man -k network # 搜索所有与network相关的手册

三、快捷键:让你的操作飞起来

  1. Tab键:命令/文件名补全(按两次显示所有选项)
  2. Ctrl+C:终止当前命令
  3. Ctrl+D:结束输入或退出终端
  4. Ctrl+L:清屏(等价于clear命令)
  5. Ctrl+R:搜索历史命令
  6. 上下箭头:浏览命令历史

🌟 总结

恭喜!你已经掌握了Linux最基础也最核心的文件操作命令。让我们回顾一下今天的学习成果:

导航查看pwd, ls, cd
文件操作touch, mkdir, rm, rmdir
内容查看cat, more, less, head, tail
查找定位find, which, whereis
获取帮助man

记住,学习Linux就像学习一门新语言。开始时可能会觉得别扭,但一旦掌握,你就会发现它的美妙之处。

如果觉得文章有帮助,欢迎:

  • 👍 点赞支持
  • 💾 收藏备用
  • ➕ 关注作者
  • 💬 留言交流问题

让我们一起进步加油呀!🐧


Read more

LeetCode 112. 路径总和:两种解法详解

LeetCode 112. 路径总和:两种解法详解

二叉树的路径问题算是高频考点之一,今天拆解 LeetCode 简单难度的 112. 路径总和,不仅搞懂题目核心,还会对比两种常用解法(迭代 DFS + 递归 DFS),帮助理清思路、避坑易错点,适合刚接触二叉树路径题的小伙伴入门。 一、题目解读 题目很直白,给定二叉树的根节点 root 和目标和 targetSum,判断是否存在一条从 根节点到叶子节点 的路径,这条路径上所有节点的值相加等于 targetSum。 这里有两个关键细节,一定要注意(否则容易踩坑): * 路径必须是「根节点 → 叶子节点」,中间不能中断,也不能是叶子节点到其他节点、非根节点到叶子节点; * 叶子节点的定义:没有左、右子节点的节点(即 left === null 且 right === null),这是判断路径终点的核心条件。 举个简单例子:如果二叉树只有根节点,值为 5,

By Ne0inhk

Costmap2d 膨胀层算法:从原理到实践

1. 为什么机器人导航需要“膨胀”地图? 想象一下,你开着一辆小轿车在狭窄的巷子里穿行。你心里很清楚,你不能紧贴着墙壁开,必须和墙壁保持一定的安全距离,否则后视镜或者车身很容易刮蹭。对于机器人来说,这个道理完全一样。 在ROS的导航框架里,机器人通过激光雷达、深度相机等传感器感知世界,生成一张代价地图(Costmap)。这张地图把环境划分成一个个小格子(栅格),每个格子都有一个“代价”值,用来表示机器人到达这个位置的“风险”或“难度”。障碍物所在的格子代价最高(比如254),完全自由的区域代价最低(0)。 但问题来了:如果机器人只是一个没有体积的“点”,那么它贴着障碍物走是没问题的。可现实是,机器人有实实在在的“身体”(我们称之为Footprint,即机器人的垂直投影轮廓)。如果只把障碍物本身标记为高风险,机器人规划路径时,它的“中心点”可能会紧贴着障碍物划过,而它的“身体”早就撞上去了。 这就是 Costmap2d膨胀层(InflationLayer)

By Ne0inhk
路径排序算法(Path Ranking Algorithm, PRA)是知识图谱推理中一种经典的基于随机游走的归纳式推理方法

路径排序算法(Path Ranking Algorithm, PRA)是知识图谱推理中一种经典的基于随机游走的归纳式推理方法

路径排序算法(Path Ranking Algorithm, PRA)是知识图谱推理中一种经典的基于随机游走的归纳式推理方法,主要用于预测知识图谱中缺失的三元组(如头实体+关系→尾实体)。其核心思想是:两个实体之间若存在多条符合特定关系路径的“语义路径”,则它们更可能具有某种隐含关系。PRA通过在图上进行受限随机游走(限定路径长度和关系序列),统计从头实体出发、按给定关系序列到达尾实体的路径数量(或概率),并用逻辑回归等分类器对路径特征进行加权学习,从而实现关系预测或链接预测。 在因果推理方面,PRA本身并非原生的因果推断方法(它主要建模相关性与路径共现),但可被扩展用于因果场景:例如,将知识图谱构建为因果图(节点为变量,有向边表示潜在因果关系),结合do-演算约束或干预路径筛选(如仅保留前门/后门路径),再用PRA评估干预路径的稳健性;或与因果发现算法(如PC、GES)联合,利用PRA增强稀疏因果结构中的长程依赖推理能力。 实践应用包括: * 推荐系统:挖掘用户→交互→商品→属性→类目等多跳路径,提升可解释性推荐; * 生物医学知识补全:预测“药物→靶点→

By Ne0inhk
【优选算法必刷100题】第007~008题(双指针算法):三数之和、四数之和问题求解

【优选算法必刷100题】第007~008题(双指针算法):三数之和、四数之和问题求解

🔥艾莉丝努力练剑:个人主页 ❄专栏传送门:《C语言》、《数据结构与算法》、C/C++干货分享&学习过程记录、Linux操作系统编程详解、笔试/面试常见算法:从基础到进阶 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬艾莉丝的算法专栏简介: 目录 007  三数之和 1.1  题目解析 1.2  思路1:暴力 1.3  思路2:排序 + 双指针 1.3.1  算法思路 1.3.2  代码实现 1.4  过程推算 1.5  反思 008  四数之和

By Ne0inhk