Linux -初识 与基础指令2

博客主页:【夜泉_ly】
本文专栏:【Linux】
欢迎点赞👍收藏⭐关注❤️

在这里插入图片描述

文章目录

  • 📚 前言
    • 🔑 概念一
    • 🔑 概念二
  • 📖 man
  • 💬 echo
  • 📁 cp
  • 📂 mv
    • 🔑 概念三
    • 🔑 概念四
    • 🔄 输入输出重定向
    • 🏷️ Ctrl c

📚 前言

本文主要内容:
在这里插入图片描述

在Linux -初识 与基础指令1中,
我简单介绍了几个Linux的常见指令。其实啥也没讲
由于写得比较激动,把几个重要的概念给忘了,
所以本篇先补补之前涉及的相关概念,
后面继续讲基础指令。。加相关概念。

🔑 概念一

概念一:文件 = 文件内容 + 文件属性。
首先来看个东西:
在这里插入图片描述

touch test.txt
mkdir testdir

touch 创建了一个空文件,又 mkdir 创建了一个空目录。
那么这些 的文件/目录,占不占空间?
答案是要占空间,因为下面这些信息也是需要空间来存的:
在这里插入图片描述

🔑 概念二

概念二:Linux 中的任何文件操作,本质上都是对文件系统树的修改。
在前一篇,我通过不断 cd .. ,一直退到了 / 目录:

在这里插入图片描述
这个 / 目录就是 Linux 系统中树形结构的文件系统的起点。
在这颗树中,任何一个文件都可以被当作这颗树的节点。
因此,修改任何一个文件,等价于修改这颗多叉树。
举几个例子:

  • 创建文件或目录:在树中添加一个新节点。
  • 删除文件或目录:从树中移除一个节点。
  • 修改文件内容:修改树中某个节点的内容。

📖 man

接下来看看本篇的第一条指令:man
这是Linux中的手册,用来介绍指令是怎么用的。
比如,你现在连 man 都不会用,那你就直接输入:

man man

查看 man 怎么用:
在这里插入图片描述

往下翻翻可以看到 man 手册分了几个章节:
在这里插入图片描述
这个章节主要看一三就行,一是指令,三是库函数。
这个库函数主要是C语言的,比如你可以查 printf 怎么用。
不过 man 默认是顺着手册查,因此当你直接:

man printf

你会发现查到了第一章的指令:
在这里插入图片描述
是的,printf 也是一条指令,不过这里就不过多介绍了。
在这里插入图片描述
先要查看库函数里的 printf ,需要加上章节名:

man 3 printf

在这里插入图片描述

💬 echo

echo 指令用于将我们输入的内容加个换行后再输出。

echo "Hello World"

在这里插入图片描述
后面加个 > 可以用来写文件。

echo "Hello World" > test.txt

在这里插入图片描述
可以看见:

  • 屏幕上没有输出。
  • 文件大小被改变。

至于检查内容是否被写入,我们还需要一个指令:
cat,用于把文件内容显示到屏幕。
在这里插入图片描述

因此在 echo 后跟个 > 符号,再跟个文件名,发现本该输出到屏幕的东西进文件了,我们把这个叫做输出重定向

📁 cp

现在先来看看拷贝指令 cp

cp test.txt cp.txt

上面这条可以将 test.txt 的内容拷贝到 cp.txt:
在这里插入图片描述
也可以改改路径:

cp test.txt ./test/cp.txt

在这里插入图片描述
如果要拷贝整个目录,加个 -r 就行:

cp -r test cp

在这里插入图片描述

📂 mv

mv 指令,用来:重命名 + 剪切。
先来看看重命名( + 剪切):

mv test.txt test_mv.txt

在这里插入图片描述
再看看(重命名 + )剪切:

mv test_mv.txt d1

在这里插入图片描述
再看看重命名 + 剪切:

mv test_mv.txt ../test.txt

在这里插入图片描述
目录同理:

mv d2 d1

在这里插入图片描述

🔑 概念三

概念三:指令是可执行程序。
在了解了这么多指令的用法后,也应该了解一下指令的本质了:
指令就是可执行程序!
当我们输入了abcdefg后,会提示我们指令未找到:
在这里插入图片描述
这意味着想要运行一条指令,必须先找到它的位置。
当我们执行 rm -rf /* 后,再输入指令,就会显示它的位置:
在这里插入图片描述

🤣开个玩笑,你们可万万不能输 rm -rf /*

当我们输入 which 加指令,就能看见对应的位置:
在这里插入图片描述

可以看见,大多指令都是放在 /usr/bin 下的。
cd 过去看看:
在这里插入图片描述
上面这绿色的一片就是指令。
我又用C语言简单写段代码,并 gcc 出了可执行程序:
在这里插入图片描述
简单运行一下:
在这里插入图片描述
但如果想像指令那样运行,还是会提示未找到:
在这里插入图片描述
这好办,把它移到指令在的目录里面就行了:
在这里插入图片描述
看见了吧,我写的 Hello World 也可以像指令一样用。
那么问题来了:
指令和我们写的可执行程序有区别吗?
当然有!别人写得更好。。

🔑 概念四

概念四:Linux中一切皆文件。
在了解了指令不过就是可执行程序后,我们可以更深一步的理解:Linux中一切皆文件。
比如,显示器。
在Linux系统看来,显示器是个文件。
当直接 echo 时,相当于向这个文件写入。

比如,键盘。
在Linux系统看来,键盘也是个文件。
当我们打字时,就是在从这个文件读数据。

🔄 输入输出重定向

在简单了解了,或者说知道了Linux中一切皆文件后,我们再来看一下重定向。
首先是 echo ,我们可以看见它默认写是显示器:

echo Hello World

在这里插入图片描述
此时,加上 > ,可以向文件写入:

echo Hello World > test.txt

在这里插入图片描述
这个 > 我们叫做输入重定向。
再看看输入重定向的特点:

ls -l          // 确认当前目录没有test2.txt
echo Hello World > test2.txt
echo Hello World > test2.txt
echo Hello World > test2.txt
cat test2.txt  // 确认是否有test2.txt,以及其内容

在这里插入图片描述

  • 如果没有对应文件,会创建个新的
  • 如果有对应文件,会覆盖写

如果想要快速清空一个文件,可以直接 > 加文件名:

> test2.txt

在这里插入图片描述

如果想要追加,可以使用追加重定向 >>

echo Hello World >> test2.txt

在这里插入图片描述
再看看 cat,如果直接输入,不加文件:
在这里插入图片描述
可以看见,cat 默认从键盘读取,默认向显示器打印。
如果想让 cat 读取文件的内容,需要用到输入重定向 <

cat < test.txt

在这里插入图片描述

🏷️ Ctrl c

Ctrl c可以帮助我们中断程序,常用于完结死循环:
在这里插入图片描述

在这里插入图片描述


希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!
本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/482968.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIE IGP双栈综合实验

实验拓扑 实验需求及解法 本实验模拟ISP网络结构&#xff0c;R1/2组成国家骨干网&#xff0c;R3/4组成省级网络&#xff0c;R5/6/7组成数据中 心网络。 配置所有ipv4地址&#xff0c;请自行测试直连。 R1 sysname R1 interface GigabitEthernet0/0/0ip address 12.1.1.1 255.…

大模型微调论文阅读 LoRA:LOW-RANK ADAPTION OF LARGE LANGUAGE MODELS 大型语言模型的低秩自适应

论文link&#xff1a;https://arxiv.org/pdf/2106.09685 code&#xff1a;https://github.com/microsoft/LoRA LoRA&#xff1a;Low-Rank Adaptation of Large Language Models Abstract 自然语言处理的一个重要范例是对通用领域数据进行大规模预训练&#xff0c;并适应特定任…

Ubuntu24.04配置DINO-Tracker

一、引言 记录 Ubuntu 配置的第一个代码过程 二、更改conda虚拟环境的默认安装路径 鉴于不久前由于磁盘空间不足引发的重装系统的惨痛经历&#xff0c;在新系统装好后当然要先更改虚拟环境的默认安装路径。 输入指令&#xff1a; conda info可能因为我原本就没有把 Anacod…

Python 深度学习框架之Keras库详解

文章目录 Python 深度学习框架之Keras库详解一、引言二、Keras的特点和优势1、用户友好2、多网络支持3、跨平台运行 三、Keras的安装和环境配置1、软硬件环境2、Python虚拟环境 四、使用示例1、MNIST手写数字识别 五、总结 Python 深度学习框架之Keras库详解 一、引言 Keras是…

电机参数辨识算法(3)——基于三角波电流注入的SPMSM全参数辨识策略

1.引言 电机参数辨识对提高电机控制性能具有重要意义。在之前的参数辨识专题中&#xff0c;介绍了基于无差拍预测电流控制的高频正弦电流注入参数辨识。高频正弦电流注入的话需要你控制器的带宽比较高&#xff0c;因此这种方法不适用于传统PI控制的电流环&#xff0c;还是得用…

Vulnhub靶场 Matrix-Breakout: 2 Morpheus 练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 文件上传2. 提权 0x04 总结 0x00 准备 下载连接&#xff1a;https://download.vulnhub.com/matrix-breakout/matrix-breakout-2-morpheus.ova 介绍&#xff1a; This is the second in the Matrix-Br…

HTML5动漫主题网站——天空之城 10页 html+css+设计报告成品项目模版

&#x1f4c2;文章目录 一、&#x1f4d4;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站演示 五、⚙️网站代码 &#x1f9f1;HTML结构代码 &#x1f492;CSS样式代码 六、&#x1f527;完整源码下载 七、&#x1f4e3;更多 一、&#…

SpringMVC:入门案例

从此开始&#xff0c;我们步入SpringMVC的学习。 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 先来看一下web程序是如何工作的&#xff1a; 因为是异步调用&#xff0c;所以后端不需要返回view视图&#xff0c;将其去除前端如果通过异步调用的方式进行交互&#xff0…

【Windows 11专业版】使用问题集合

博文将不断学习补充 I、设置WIN R打开应用默认使用管理员启动 1、WIN R输入 secpol.msc 进入“本地安全策略”。 2、按照如下路径&#xff0c;找到条目&#xff1a; “安全设置”—“本地策略”—“安全选项”—“用户账户控制&#xff1a;以管理员批准模式运行所有管理员” …

Python学习38天

class Person:def __init__(self, name, age, job):self.name nameself.age ageself.job job# 重写函数返回属性def __str__(self):return f"{self.name}--{self.age}--{self.job}"# 冒泡排序法 def bubble_sort(my_list: list[Person]):"""冒泡排…

安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本

安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本。 原因是&#xff1a;当前操作系统版本为Windows Server 2016 Standard版本&#xff0c;其自带的Microsoft .NET Framework 版本为4.6太低&#xff0c;不满足要求。 根据报错的提示&#xff0c;点击链接…

鸿蒙开发:自定义一个任意位置弹出的Dialog

前言 鸿蒙开发中&#xff0c;一直有个问题困扰着自己&#xff0c;想必也困扰着大多数开发者&#xff0c;那就是&#xff0c;系统提供的dialog自定义弹窗&#xff0c;无法实现在任意位置进行弹出&#xff0c;仅限于CustomDialog和Component struct的成员变量&#xff0c;这就导致…

DTC控制,直接转矩控制详解

关于磁链矢量所在扇区及最优开关表的选择的思路分析和matlab/simulink实现 仿真参考袁雷老师的《现代永磁同步电机控制原理及MATLAB仿真》&#xff0c;但是由于书中所附代码和书中第四章中讲的实现不同&#xff0c;因此根据自己看的资料和理解重新整理并实现了一下。 这里采用…

css选择当前元素前面的一个元素

选择text-danger前面的ant-divider: .ant-divider:has( .text-danger) {display: none; }

Qt,如何从零开始入门!

Qt 是一个功能全面的跨平台开发框架&#xff0c;不仅可以用于开发桌面应用&#xff0c;还在嵌入式系统中扮演重要角色。即使没有图形化 IDE&#xff08;如 Qt Creator&#xff09;&#xff0c;你依然可以使用命令行工具和文本编辑器来快速构建功能强大的应用程序。本文将从手动…

oracle数据库的启动与关闭

一.oracle数据库的启动过程 启动实例&#xff08;Start the Instance&#xff09; 启动实例&#xff1a;一个Oracle数据库实例由内存结构和后台进程组成&#xff0c;启动实例时会加载这些内存结构和启动进程。实例是数据库的一个运行时环境&#xff0c;它包含了数据库的控制文…

最新版Chrome浏览器调用ActiveX控件之allWebOffice控件

allWebOffice控件概述 allWebOffice控件能够实现在浏览器窗口中在线操作微软Office及WPS办公文档的应用&#xff08;阅读、编辑、保存等&#xff09;&#xff0c;支持编辑文档时保留修改痕迹&#xff0c;支持书签位置内容动态填充&#xff0c;支持公文套红&#xff0c;支持文档…

AD软件如何快速切换三维视图,由2D切换至3D,以及如何恢复

在Altium Designer软件中&#xff0c;切换三维视图以及恢复二维视图的操作相对简单。以下是具体的步骤&#xff1a; 切换三维视图 在PCB设计界面中&#xff0c;2D切换3D&#xff0c;快捷键按住数字键盘中的“3”即可切换&#xff1b; 快捷键ctrlf&#xff08;或者vb快捷键也…

el-table 最简单的方法配置图片预览功能

el-table 最简单的方法配置图片预览功能 效果预览 1、安装插件 npm install v-viewernext viewerjs2、全局引入&#xff0c;配置main.js // main.js import VueViewer from v-viewer; import viewerjs/dist/viewer.css; app.use(VueViewer, {url: data-src, // 指定 data-* …

深度学习框架PyTorch中的Tensor详解

目录 ​编辑 引言 PyTorch Tensor基础 什么是Tensor&#xff1f; Tensor与NumPy ndarray Tensor的特性 多维数组 数据类型 设备兼容性 自动求导 广播机制 视图和副本 使用Tensor 创建Tensor 操作Tensor 移动Tensor 自动求导 结论 引言 在深度学习的浪潮中&a…