Linux:基本指令与内涵理解

1.文件操作指令

1.1 ls

ls指令用于查看指定层级文件夹下的文件或文件夹

基本格式:ls (选项) (查看层级)

其中选项处不写就默认是显示文件名,查看层级默认是当前层级

选项1: -l

作用:将查找文件的详细信息显示出来

我们看到这里有些是以d开头的,有些是-开头的。

用d带头的是目录(文件夹), - 开头的是普通文件

选项2: -a

作用:将隐藏的文件显示出来(隐藏文件前面有一个' . ')

选项3:-d

作用:将目录名字显示出来,而不显示其下面的文件

这里我们的t1文件夹(目录)有一个test.c文件,正常来说我们会将t1中的文件test.c显示出来,使用-d选项后,我们就只显示目录本身

1.2pwd

 作用:显示用户当前所在的目录层级

格式:pwd

这表示我们现在在一个普通用户的根目录下

1.3cd 与whoami

作用:用于进入不同的目录中

格式: cd (目录名)

目录名可以用绝对路径,也可以用相对路径

其中绝对路径是从/根目录开始定位的,相对路径是从当前目录开始定位的

绝对路径:

这里我们cd后面跟的就是绝对路径,是从根目录开始定位的

相对路径:

这里我们进入的就是当前目录的上一级目录,..表示上一级,.表示当前级,/后面接文件表示进入该文件

特殊目录名:~

我们用cd ~可以快速进入到家目录,而家目录就是用whoami指令查找到的目录层级位置

我们用whoami指令查找到家目录是Ubuntu,然后cd ~就跳转到了Ubuntu为止

特殊用法: -

可以进入上一次访问的路径


补充:对于linux与Windows系统的目录结构的理解(系统皆文件)

两个系统的结构都是树状结构,也就是多叉树结构。

对于叶子结点:一定是空目录或文件

对于非叶子节点:一定是目录

linux:

绝对路径具有唯一性:因为每个文件只有一个直接上级目录,这种定位准确且直观,但是如果我们的树状结构层级很深,那么绝对路径就会显得很麻烦,此时我们就应该使用相对路径

接下来我们使用相对路径从t1位置跳转到test位置

原本我们在t1目录中,然后我们..进入上一级目录ubuntu,再/test进入test中

需要注意的是,从当前目录到某个文件的相对路径也是唯一的

Windows:

我们可以把此电脑当成一个根目录文件夹,而本地磁盘c,d,e可以当成是文件夹

我们都知道,在进入系统桌面时我们需要登录账号,而这个登录其实就是进入用户文件夹,而admin就是Windows系统中的一个管理员用户的账号,还可以创建其他的普通用户。

而桌面其实也是一个user中的文件夹,只是用图形化界面显示而已

1.4touch与stat

 我们知道文件是由文件属性和文件内容构成的,对文件的操作分为内容操作和属性操作

stat指令

可以查看文件的更多属性

这里我们先看其中三个属性

1.Access 最新访问时间 2.Modify 内容修改时间 3.Change 最新变动时间

我们可以用不同的选项更改这三个时间

用touch再操作一次已有文件:三个时间都更新为这次操作的时间

用touch -a :修改access和change

用touch -m: 修改modify和change

用touch -c:修改三个时间

touch指令

作用1:更改文件的存取或更改时间,这是对文件的属性的操作

作用2:创建;一个新文件

我们可以看到这里新建了一个newtext文件

1.5mkdir与tree

(1)mkdir

作用:创建新的目录

格式:mkdir (选项)新目录名

这里我们用mkdir在ubuntu目录下创建一个新目录newdir,然后进入到该新目录中

选项1:-p

作用:创建一连串的目录

这里我们原本是没有目录存在的,后面利用-p选项实现了一次创建多个连续目录

(2)tree

作用:利用树状图的形式将我们当前目录下的子文件和子目录显示出来

格式:tree 目录名(默认当前目录)

不过tree不是默认安装的指令,如果要使用还需要联网用指令安装,具体的指令可以用大模型搜索问一下

1.6rmdir,rm,alias

 (1)rmdir

作用:删除目录

格式:rmdir 目录名

原本当前目录中有一个t3目录,我们利用rmdir删除t3目录

(2)rm

作用:删除目录或文件

格式:rm (选项)目录/文件名

删除文件:

删除文件的时候可以随意删除,但是默认情况下(没给特定选项),它无法删除目录

默认情况无法删除目录:

选项1:-r

作用:递归的删除该目录及该目录的所有子目录与子文件

格式:rm -r 目录名

加了-r之后我们就可以实现对目录以及目录的子目录、文件的删除

选项2:-i

作用:让系统每次执行访问或删除操作前对我们进行指令确认

格式: rm -i 目录名

这里我们加了-i之后,系统提示我们是否需要删除t3.txt,我们输入y表示yes,输入n表示no

作为普通用户,我们的删除一般是不会弹出确认提示的

不过如果我们是root账号登录,任何删除指令都会问我们进行确认

此时如果我们确认需要删除,但是删除的层级又太深,就需要输入很多次y,很繁琐,所以我们还有一个选项可以去除指令确认步骤,直接删除

选项3:-f

作用:免除指令确认步骤,直接执行对应指令

格式:rm -f 目录名

由于ubuntu系统不建议使用root账号,所以这里我们其实是使用普通账号进行操作,仅供参考代码。


思考:我们使用-r可以删除一连串的目录或文件,那么我们可不可以将-r和-i选项结合使用,实现删除链路上的指定文件呢?

这里我们前两行指令确认是访问指令,我们同意进入t1/t2,第三行指令询问我们是否删除delete.txt,我们选择y,然后后面的t2和t1删除指令我们选择n。这样子我们就实现了只删除delete.txt的操作了。


补充:alias

作用:给某个指令取别名

格式:alias 别名=‘原名’

其实涉及指令结合的时候我们可以不用-r -i这样分开来书写,而是直接-ri

目的:当出现选项和文件名繁多的时候简化指令书写,提高可读性

实现原理:利用了alias指令对原本复杂的名字取别名

注意:别名,=,原名之间不能加空格


思考:我们是否可以一次性建立多个文件,然后又一次性删除多个文件呢?

创建多个文件的格式:touch 文件名{编号1..编号n}.文件属性(.c/.txt)

删除的格式:rm 文件名{编号1..编号n}.文件属性(.c/.txt)

1.7指令手册man

 作用:查找对应指令的作用

格式:man (选项:手册编号)指令名

输入完指令后按回车键进入手册

退出手册按q字母键

手册编号:在选项位置输入不同的数字就会查找对应指令在该编号手册的信息

手册编号有多个,其中

1:普通指令

2:系统调用

3:库函数

4:。。。。

一个指令可能会在多个手册中同时存在,并记载着他的不同作用

1.8which

 作用:查找指令所处的目录
格式:which 指令名

eg:查找ls的目录

这里我们看到ls所处的目录是user路径下的bin文件夹中,在该文件夹中的可执行程序其实就是指令,我们自己也可以写一个程序放进bin文件夹中,放进去后我们的程序编译后的名字就是一个我们自己实现指令了,可以在linux中当成指令使用,不过平时不要图方便乱加指令进去污染指令库


对指令格式的理解:我们平时如果要执行一个程序,第一步就是找到这个程序的位置,然后才能执行命令,但是为什么指令可以直接输入指令名,而不需要查找指令程序的位置?

这是因为我们有一个默认的指令位置:user/bin,所有指令都存在这个默认目录下,所以我们可以直接使用指令

而安装软件其实也就是从网络上下载到bin目录下

1.9cp

作用:将对应文件或目录复制到目标目录或文件中

格式:cp (选项)文件、目录    目标文件、目录

这里我们原本test.txt是和test目录同级的,然后我们用cp指令把test.txt复制到了test文件夹中,从而test目录中也有了test.txt

我们这里同样也可以用相对路径实现,如果我们还需要更改名字,我们可以在后面加个/然后写个新文件名

2.linux中一切皆文件

 我们在linux的显示器上输出数据相当于是将数据输入到显示器文件中,而从键盘中读取数据相当于从键盘文件中获取数据。

我们用echo命令来加深这个理解

echo的作用:将指定信息写入显示器文件中

格式: echo 文件/目录、字符串等信息 

1.输出重定向:>

作用:将原本应该写在显示器文件中的数据写在另一个文件或目录中(先清空再写入)

格式:echo(也可以是任意写入信息到显示器的指令,比如ls) 信息>目录/文件

这里我们就把原本应该写在显示器上的信息重定向给了log.txt

2.追加重定向:>>

作用:将原本应该写在显示器文件中的数据追加到另一个文件或目录中(不用先清空)

格式:写入内容在显示器的指令 >>指定文件

3.清空指定文件/新建文件

格式:>文件名

若对应文件不存在,他还可以新建一个这个文件

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

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

相关文章

SpaceSync智能排班:重构未来办公空间的神经中枢

文心智能体平台可免费使用DeepSeek 满血版啦,使用DeepSeek模型创建并提交智能体,即有机会瓜分万元奖金!有这等好事还不快冲! 文心智能体官网:文心智能体平台AgentBuilder | 想象即现实 本片文章为作者参加文心智能体平…

flutter dio库 源码赏析

1. factory函数 //调用factory构造方法后,实际返回的是Dio的子类 Dio dio Dio();abstract class Dio {factory Dio([BaseOptions? options]) > createDio(options); } 2. CancelToken 作用:取消操作 CancelToken cancelToken CancelToken();//监听取消 ca…

RGV调度算法

1、基于时间窗 https://wenku.baidu.com/view/470e9fd8b4360b4c2e3f5727a5e9856a57122693.html?_wkts_1741880736197&bdQuery%E7%8E%AF%E7%A9%BF%E8%B0%83%E5%BA%A6%E7%AE%97%E6%B3%95 2.2019年MathorCup高校数学建模挑战赛B题 2019-mathorcupB题-环形穿梭机调度模型&a…

基于CATIA VBA与Python的自动化音乐生成技术对比研究

在工程软件二次开发领域,CATIA 也可以许多另类的玩法。通过CATIA自带的VBA可以演奏歌曲,但实际效果往往差强人意。为了进一步优化实际演奏效果,本文以自动生成林宥嘉《说谎》钢琴前奏旋律为案例,探讨两种语言在多媒体控制领域的技…

最大数位置(信息学奥赛一本通-2038)

【题目描述】 输入n个整数,存放在数组a[1]至a[n]中,输出最大数所在位置(n≤1000)。 【输入】 第一行,数的个数n; 第二行,n个正整数,每个数在232−1之内。 【输出】 最大数所在位置。 【输入样例】 5 67 43 90 78 32 【输出样例】 …

【AIGC】OpenAI 集成 Langchain 操作实战使用详解

目录 一、前言 二、前置准备 2.1 安装 Langchain必须的依赖 2.1.1 python环境 2.1.2 langchain openai 环境 2.1.3 准备一个apikey 2.1.4 langchain 核心组件 三、Langchain 各组件使用 3.1 Chat models组件 3.1.1 Invocation 使用 3.1.1.1 结果解析 3.2 提示词模板…

【C#学习笔记04】深入掌握C语言格式化输出

引言 ​​printf()​​函数不仅可以将数据输出到控制台,还可以通过格式化字符串灵活地控制输出的格式。​​printf()​​​函数的使用规则,包括标志说明、字段宽度、转换精度、长度修饰、转换说明、转义字符和返回结果等内容。 1. ​​printf()​​函数…

python-leetcode-定长子串中元音的最大数目

1456. 定长子串中元音的最大数目 - 力扣(LeetCode) 可以使用 滑动窗口 方法来解决这个问题。步骤如下: 初始化:计算前 k 个字符中元音字母的个数,作为初始窗口的值。滑动窗口:遍历字符串,每次右…

蓝桥真题讲解

第一题 题目链接 0贪吃蛇长度 - 蓝桥云课 题目解析 题意:数#个数和个数再加上首尾 代码原理 略 代码编写 略 填空题技巧 眼看手数 当然并不是真的一个一个数,我们需要借助一些工具,不过各位小伙伴们放心,我们借助的工具…

【C++ 函数模板】—— 模板参数推导、实例化策略与编译优化

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…

Java基础入门流程控制全解析:分支、循环与随机数实战

引言 流程控制是编程语言的核心逻辑结构,决定了程序的执行顺序与逻辑判断能力。本文以 分支结构、循环结构 和 随机数生成 为核心,结合代码示例与底层原理,全面解析Java中流程控制的应用场景与实战技巧。 一、分支结构 1. if分支 作用&am…

Redis 数据持久化之RDB

Redis数据持久化策略 持久化策略之RDB RDB:在指定的时间间隔,执行数据集的时间点快照。 实现类似照片记录效果的方式,就是把某一时刻的数据和状态以文件的形式写到磁盘上,也就是读快照。这样一来即使故障宕机,快照文件也不会丢失&…

数据分析与AI丨AI Fabric:数据和人工智能架构的未来

AI Fabric 架构是模块化、可扩展且面向未来的,是现代商业环境中企业实现卓越的关键。 在当今商业环境中,数据分析和人工智能领域发展可谓日新月异。几乎每天都有新兴技术诞生,新的应用场景不断涌现,前沿探索持续拓展。可遗憾的是&…

MyBatis - XML 操作动态 SQL

目录 1. 前言 2. 动态插入 2.1 if 标签 2.2 trim 标签 2.2.1 注解完成动态 SQL 3. 动态查询 3.1 添加 1 1 3.2 where 标签 4. 动态更新 4.1 set 标签 5. foreach 标签 6. sql 标签 & include 标签 1. 前言 之前博文所讲的 MyBatis SQL 操作, 都必须按照注解或…

【最佳实践】Go 责任链模式实现参数校验

这里我们使用责任链模式来创建一个参数校验的示例。在这个示例中,我们将实现一个简单的责任链来校验不同的参数条件。这种模式允许我们将多个校验步骤串联在一起,以便可以在不同的条件下进行灵活的校验。 设计思路 接口定义 (Validator) 目的&#xff1…

深入理解Tomcat:Java Web服务器的安装与配置

大家好!今天我们来聊聊Java Web开发中最重要的工具之一——Apache Tomcat。Tomcat是一个开源的Java Servlet容器和Web服务器,它是运行Java Web应用程序的核心环境。无论是开发、测试还是部署Java Web应用,Tomcat都是不可或缺的工具。本文将详…

小程序酒店:如何实现智能预订与在线支付?

在移动互联网快速发展的今天,酒店行业面临着前所未有的机遇与挑战。用户需求日益多样化,市场竞争愈发激烈,传统酒店预订方式已经难以满足现代消费者的需求。而小程序作为一种轻量化、便捷化的移动应用形式,正在成为酒店行业数字化转型的重要工具。通过小程序开发,酒店可以…

C#实现AES-CBC加密工具类(含完整源码及使用教程)

一、AES-CBC加密应用场景 AES(Advanced Encryption Standard)作为全球公认的安全加密标准,广泛使用在以下场景: API通信加密:保护HTTP接口传输的敏感数据(如身份令牌、支付信息)文件安全存储&…

docker-compose部署MongoDB分片集群

前言 MongoDB 使用 keyFile 进行 节点间身份验证,我们需要先创建一个 keyFile 并确保所有副本集的节点使用相同的 keyFile。 openssl rand -base64 756 > mongo-keyfile chmod 400 mongo-keyfiledocker-compose部署分片集群 无密码方式 # docker-compose-mongodb.yml s…

3-003:在 MySQL 中建索引时需要注意哪些事项?

在 MySQL 中创建索引时,需要注意以下事项,以确保索引高效且合理: 1. 选择合适的索引类型 主键索引(PRIMARY KEY):每个表只能有一个,默认是聚簇索引。唯一索引(UNIQUE)&…