Linux -初识 与基础指令1
博客主页:【夜泉_ly】
本文专栏:【Linux】
欢迎点赞👍收藏⭐关注❤️

文章目录
- 📚 前言
- 🖥️ 初识
- 🔐 登录 root用户
- 👥 两种用户
- ➕ 添加用户
- 🧑💻 登录 普通用户
- ⚙️ 常见用户操作
- 📝 基础指令1
- 1️⃣ pwd
- 2️⃣ ls
- 3️⃣ touch/mkdir
- 4️⃣ cd
- 5️⃣ rm
📚 前言
终于开始学Linux了,我先买了个华为云的云服务器,装的Ubuntu:

又下载了Xshell。
然后就可以开始正式的学习了!
🖥️ 初识
🔐 登录 root用户
-
打开 Xshell

-
输入
ssh+ 空格 +root@+ 公网IP

-
第一次登录会跳出下面这段,点击 接受并保存

-
然后输密码,点击确定

-
只要提示
Welcome...,说明登录成功


👥 两种用户
在Linux中,只有两种用户:
- 第一种是超级用户,也叫 root 用户,这种用户拥有系统最高权限,可以执行任何操作
- 第二种是普通用户,这种用户。。就是很普通,权限有限,常用于日常操作和开发
我们学的时候用哪种呢?
用普通用户
如上图,如果你是 root 用户,你又执行了著名的 删库跑路 命令,那完了,你可以重装系统了。
(顺带一提,我在购买服务器后,不到十分钟就重装了系统,因为我一登陆就 rm -rf /* 了🤣)
而普通用户权限有限,所以相对比较安全。
接下来看看怎么添加用户,需注意,root用户只有一个,因此这里添加的全是普通用户:
➕ 添加用户
添加用户:
-
adduser+ 空格 + 用户名

-
按
Enter后,会让我们输入密码:

-
输入密码时,并不会显示我们输的是什么。
不过别担心,它会要求再输入一次进行确认:

- 如果输错了也会有提示:

- 此时选择y会重复上面的步骤:

- 如果输错了也会有提示:
-
输好密码,会提示设置用户信息,我就先全
Enter了:

-
输好信息,会要求确认信息是否正确:

-
输
Y确认,然后会返回到一开始的位置:

如果尝试添加重名用户,会添加失败:

🧑💻 登录 普通用户
此时,用户添加成功,我们再来看看怎么访问。
-
首先,还是打开Xshell:

-
之前是输入
ssh root@公网IP
现在是输入ssh 用户名@公网IP:

-
按
Enter后,会提示输入密码,
此时输入刚刚设置的密码就行,
最后点击确认:

出现Welcome...说明登录成功。
⚙️ 常见用户操作
更改用户密码
passwd+ 空格 + 用户名

删除用户
userdel+ 空格 + 用户名

删除成功不会有提示,
删除失败会有提示。
📝 基础指令1
在浅浅了解了。。好像也没了解什么。。。
就如前文演示的一样,Linux主要是以纯命令行的形式操作的,
虽然Linux也有图形化界面,但是和windows有命令行一样,不常用。
因此我们想要掌握Linux操作,就需要学习Linux的指令。
我们先回到开头:

1️⃣ pwd
来到一个陌生的环境,我们得先清楚我们在哪儿:
-
pwd
pwd指令可以告诉我们目前所在的位置:


这个/root就是当前所在的目录,这个可以和windows的进行一个对应,就是下图红色箭头指的那个:

2️⃣ ls
现在我们知道了在哪儿,还得知道这里有啥吧:
-
ls []ls指令可以告诉我们这里有什么:

em。。只有个snap。

对应windows,差不多就是红框里的东西:

不过别急,Linux有的指令后面是可以加选项的,这个选项可以让指令更加灵活。
比如这里,加个-a,就可以列出所有文件,包括.开头的隐藏文件-
ls -a
这个隐藏文件window也有:

而加个
-l,则可以显示更详细的信息:-
ls -l
对应windows:

选项也可以混合使用
-
ls -la 或者: ls -al
-
3️⃣ touch/mkdir
在windows中,添加新的文件和目录只需要点击右键,然后新建。
而Linux中,需要使用指令来完成操作:
-
touch [] 文件名 mkdir [] 目录名
可以用刚刚学的ls -l看看是否添加成功:


也可以使用
tree打印:

不过可能提示未安装,这时根据提示安装就行:

然后会跳出一堆东西,这里省略,直接看看tree有什么用:


打印当前目录的树形结构,挺好玩的。而目录也可以递归创建,大概就像这样:
-
mkdir -p 目录名/目录名/目录名看看效果:


如果目录存在,沿着目录创建
如果不存在,创建新的
总之就是弄出一条你想要的路径
-
4️⃣ cd
现在可以创建目录了,那怎么进去呢,windows下双击就行,这里同样还是指令:
-
cd [] 路径选项是什么呢?
别急,先看看我们的现在的路径有什么:

我们再去 dir1 目录,这个直接cd加目录名就行:
-
cd 目录名

看看路径:

再看看这里有啥:

可以看见,每个目录下都有两个奇怪的东西,一个是.,还有一个是..。因为这是Linux每个目录下都会有的两个隐藏文件。
简单讲:.表示当前目录。..表示当前目录的上级目录。 -
ls -dls的 选项d,用来显示当前目录自身
搭配l,显示详细信息:

-
cd ..而 cd
..可以返回上级目录:

类似于在windows下的这个:

一直
cd ..,会来到Linux文件系统的根目录/

- 根目录管了很多东西,可以简单看看:


cd 后可以加绝对路径(就是贼长的那种),规定从根目录
/开始

但一般会用相对路径,这种是以当前所处路径作为起始参考位置,来进行特定文件的定位。

这里还有两个比较有意思的选项:~- - 根目录管了很多东西,可以简单看看:
-
cd ~~可以进入用户家目录,root用户是 /root


普通用户是 /home/用户名


-
cd --可以让我们回到上一次所处的目录
比如我们从一个很深的位置~到了/root,再一个-就能回去


-
5️⃣ rm
现在我们已经知道了如何创建文件,但万一我们建错了呢?
因此来看看怎么删除吧
先回到 /root:

看看有什么:

试试删dir1,与创建目录的指令mkdir对应,删除目录可以用rmdir
-
rmdir 目录名
如果目录不空,会删除失败。

如果删的不是目录,也会删除失败。
因此,一般用的不是rmdir,用的是rm:
-
rm [] 文件名/目录名试试删文件:

删除成功,不会有提示(有的系统可能会有提示),并且linux没有回收站,所以删了就是删了。


试试删目录:

不能直接删。-
rm -r可以添加选项
-r,递归删除该目录中的所有东西。 -
rm -i同时也可以搭配选项
-i,提示删的是什么:


试试删snap,虽然我到现在也不知道这是什么


cd ..来到根目录,试试删root 和 home。。额。。好像也直接删了


登录了一下小号,发现家没了🤣:

最后试试删除/

终于提示删除不成功了,此时,可以加个选项-f,不询问,直接删 -
rm -rf /如果还不行,那就再加个
*,最终变为我们熟悉的rm -rf /*
之后就是愉快的刷屏环节,再之后你会发现几乎刚刚学的所有指令都失效了:

如果有其他人也在用这台服务器,他们也会发现几乎所有指令都失效了:

并且,如果退出,你会发现你再也连不上了:

-
怎么办!?
此时,云服务器的好处体现出来了!




希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!
本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!
相关文章:
Linux -初识 与基础指令1
博客主页:【夜泉_ly】 本文专栏:【Linux】 欢迎点赞👍收藏⭐关注❤️ 文章目录 📚 前言🖥️ 初识🔐 登录 root用户👥 两种用户➕ 添加用户🧑💻 登录 普通用户⚙️ 常见…...
页的初步认识
关于准备 我们在之前的学习中,已经学习了相当一部分有关段的知识,CPU提供了段的机制来给我们的内存进行保护,但实际上我们在x86下的段base是0,实际上并没有偏移 两种分页模式 我们有两种分页模式,29912分页和101012…...
[C++]:IO流
1. IO 流 1.1 流的概念 在C中,存在一种被称为“流”的概念,它描述的是信息流动的过程,具体来说就是信息从外部输入设备(比如常见的键盘)传输到计算机内部(像内存区域),以及信息从内…...
Excel如何批量导入图片
这篇文章将介绍在Excel中如何根据某列数据,批量的导入与之匹配的图片。 准备工作 如图,我们准备了一张员工信息表以及几张员工的照片 可以看到,照片名称是每个人的名字,与Excel表中的B列(姓名)对应 的卢易…...
TCP socket api详解
文章目录 netstat -nltpaccept简单客户端工具 telnet 指定服务连接connect异常处理version 1 单进程版version 2 多进程版version 3 -- 多线程版本version 4 ---- 线程池版本 应用-简单的翻译系统服务器细节write 返回值 客户端守护进程化前台和后台进程的原理Linux的进程间关系…...
《C++搭建神经网络基石:开启智能编程新征程》
在人工智能的璀璨星空中,神经网络无疑是最为耀眼的星座之一。而 C以其卓越的性能和高效的执行效率,成为构建神经网络模型的有力武器。今天,就让我们一同探索如何使用 C构建一个基础的神经网络模型,踏上智能编程的奇妙旅程。 一、…...
if (条件) { return true; } return false; 简写为 return 条件 详解
在 Java 中,将以下代码: if (条件) {return true; } return false;简写为: return 条件;原理 在 Java 中,条件 是一个布尔表达式,它直接返回 true 或 false。所以,if-else 结构中的逻辑判断和返回值的逻…...
Pytorch使用手册-Datasets DataLoaders(专题三)
数据集与数据加载器(Datasets & DataLoaders) 在 PyTorch 中,torch.utils.data.Dataset 和 torch.utils.data.DataLoader 是数据处理的两种核心工具。它们通过模块化的方式,将数据加载与模型训练分离,提高代码的可读性和可维护性。 1. 加载数据集 以 Fashion-MNIST …...
【数据结构】双向链表、单向循环链表、双向循环链表、栈、链栈
目录 一、双向链表 定义类和封装函数以及测试样例如下: 注意事项: 二、循环链表 单循环列表的类和函数封装如下: 注意事项: 三、双向循环链表 结点类和双循环链表的定义部分 函数封装之判空和尾插 双循环链表遍历 双循…...
(动画)Qt控件 QProgressBar
文章目录 QProgressBar1. 介绍一、基本特性二、核心属性 2. 代码实现3. 动画效果 QProgressBar 1. 介绍 QProgressBar是Qt框架中的一个控件,主要用于显示进度条,以图形化的方式表示任务的完成进度或操作的进度。 一、基本特性 显示方向:…...
【AI】基础原理
文章目录 前言1. AI 是如何学习的?2. AI 怎么做决定?3. AI 的“大脑”是什么样的?4. AI 为什么会犯错?5. AI 的不同类型总结:AI 的本质是什么? 前言 人工智能(AI)这个词对很多人来说…...
多模态大型语言模型(MLLM)综述
目录 多模态大语言模型的基础 长短期网络结构(LSTM) 自注意力机制 基于Transformer架构的自然语言处理模型 多模态嵌入概述 多模态嵌入关键步骤 多模态嵌入现状 TF-IDF TF-IDF的概念 TF-IDF的计算公式 TF-IDF的主要思路 TF-IDF的案例 训练和微调多模态大语言模…...
计算机的错误计算(一百六十六)
摘要 探讨 MATLAB 关于算式 的计算误差。 例1. 已知 计算 直接贴图吧: 然而,16位的正确结果为 -0.9765626220703239e-21(ISRealsoft 提供)。这样,MATLAB输出的有效数字的错误率为 (16-2)/16 87.5% . 注&…...
typeof 和 as 关键字
在编程语言中,类型系统是确保代码正确性和可维护性的关键。JavaScript和TypeScript作为现代前端开发的两大支柱,它们在处理类型方面有着不同的机制。本文将探讨typeof和as这两个关键字在JavaScript和TypeScript中的应用,帮助开发者更好地理解…...
Python酷库之旅-第三方库Pandas(237)
目录 一、用法精讲 1116、pandas.tseries.offsets.BusinessHour.is_year_end方法 1116-1、语法 1116-2、参数 1116-3、功能 1116-4、返回值 1116-5、说明 1116-6、用法 1116-6-1、数据准备 1116-6-2、代码示例 1116-6-3、结果输出 1117、pandas.tseries.offsets.Cu…...
git提交到远程仓库如何撤回?
git提交到远程仓库如何撤回? 要撤回已经提交到远程仓库的更改,你可以使用以下步骤: 首先,确保你的本地仓库是最新状态。如果不是,请先执行 git pull 来更新你的本地仓库。 使用 git log 查看提交历史,找到你想要撤回…...
微信小程序常用全局配置项及窗口组成部分详解
微信小程序常用全局配置项及窗口组成部分详解 引言 微信小程序作为一种新兴的应用形态,凭借其轻量级、便捷性和丰富的功能,已成为开发者和用户的热门选择。在开发小程序的过程中,了解全局配置项和窗口组成部分是至关重要的。本文将详细介绍微信小程序的常用全局配置项及窗…...
ThingsBoard规则链节点:Azure IoT Hub 节点详解
目录 引言 1. Azure IoT Hub 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 数据传输 3.2 数据分析 3.3 设备管理 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台,提供了设备…...
「Mac玩转仓颉内测版32」基础篇12 - Cangjie中的变量操作与类型管理
本篇将深入探讨 Cangjie 编程语言中的变量操作与类型管理,涵盖变量的定义、作用域、类型推断、常量、变量遮蔽、类型转换等方面的知识。通过这些概念的学习,开发者将更好地理解和灵活掌握变量的使用与管理技巧。 关键词 变量定义类型推断常量变量作用域…...
【Android】RecyclerView回收复用机制
概述 RecyclerView 是 Android 中用于高效显示大量数据的视图组件,它是 ListView 的升级版本,支持更灵活的布局和功能。 我们创建一个RecyclerView的Adapter: public class MyRecyclerView extends RecyclerView.Adapter<MyRecyclerVie…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
