linux基础指令【上篇】


📙 作者简介 :RO-BERRY
📗 学习方向:致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识
📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持


请添加图片描述


引用

  • 01. ls 指令
  • 2. pwd命令
  • 3. cd 指令
    • 4.绝对路径
    • 相对路径
  • 4. touch指令
  • 5.mkdir指令
  • 6.rmdir指令 && rm 指令(重要):


01. ls 指令

🎄语法: ls [选项][目录或文件]
🎄功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

常用选项:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。

ls查看文件目录,ls -s 查看文件目录且更多文件信息

扩展知识
如果我今天在windows上,新建一个空文件,这个文件要占据磁盘/固态磁盘的空间吗
答案是一定会占据磁盘空间
其实文件名,文件的大小等文件的属性,属性也是数据,这些都是会被计算机记录下来的,下次关机再开机依然会看到这些文件
文件 =文件内容 + 文件属性 --> 全是二进制数据,都要被存储
所有的文件操作本质是:
1.要么对文件内容做操作
2.要么对文件属性做操作

请添加图片描述
请添加图片描述

现在可以更准确的说,ls显示的是文件属性
如果你觉的ls -l 太麻烦了
设计师也对这个取了一个别名 命令ll
ll就是 ls -l

前面学习了ls-s是显示更详细的文件属性
我们接下来来学习ls-a

ls-a: 显示当前目录下的隐藏文件
1.隐藏文件,在linux中隐藏文件以.开头
对应在windows里面其实也有隐藏文件,也是以.开头的文件
请添加图片描述
我们可以看到使用ls -l只能看到两个文件,这两个文件是我们刚才创造的,但是我们使用ls -al就可以看到出现了很多个以点开头的文件,这些都是隐藏文件
操作都是一样的没有任何差别
先介绍这两个
后面的操作后面会逐渐普及

2. pwd命令

🎄语法: pwd
🎄功能:显示用户当前所在的目录
具体实现上面已经有了
学了pwd,显示当前工作目录
那么在Windows有没有相同作用呢?请添加图片描述
我们随便打开了很多个文件,最顶上这就是Windows当前的工作目录


3. cd 指令

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
作为一个Windows用户,我们想进入c盘就点进c盘,想进d盘就点进d盘
那么在linux里怎么进入想进入的目录呢?

请添加图片描述
我们使用mkdir指令创建了两个文件:code以及code.txt
使用ll查看看到了我们刚创建的两个文件,再使用cd更改我们的当前目录,我们就进入到了code文件目录里面了,使用pwd指令可以看到我们进入了code文件目录里

有人会问一开始为啥还有一个以点命名的文件和一个以点点命名的文文件呢?
一个点其实代表的是当前路径
两个点其实代表的是上级路径

请添加图片描述
我们可以看到,我们一开始使用pwd指令,看得到我们现在处在目录/root/code下
我们使用cd .指令再使用pwd指令,发现目录没有变化,
我们再使用cd …指令再使用pwd指令,发现目录倒退了一个,也就是返回到了上级目录
我们在多重复几次倒退试试

请添加图片描述
我们会发现,最后到了只出现一个斜杠之后,就再也无法倒退了,在linux这个斜杠一般作为文件之间的分隔符
但是在这里只剩下斜杠,他就叫做根目录,那么,它既然叫做根目录,那它里面还能存东西吗?
请添加图片描述
我们使用ll指令可以看到里面确实还有许多的文件。
这里我们再引入一个概念:
其实linux的整体目录结构是一颗多叉树的样子请添加图片描述
也就是这样,目录里可以创建多个其它目录,子目录里又可以创建多个目录

🍁这里我们有一个基础结论:
1.叶子结点,一定是普通文件,或者是空目录
2.分支结点,非叶子节点,一定是目录
3.访问一个文件的本质是需要先找到它,找到一个文件的本质就是在一颗多叉树中进行节点的查找


路径的本质就是这一颗多叉树的搜索路径
几乎所有的操作系统,文件夹或者目录结构都是树状结构的

4.绝对路径

我们将我们从根目录开始(/),定位一个叶子文件的方式,叫做绝对路径
类似于
请添加图片描述
这就是绝对路径

相对路径

相对于自身当前所在的目录为参考点,我们定义一个文件的路径叫做相对路径
不多说,直接看实操:
请添加图片描述我们的root目录里不是有两个文件一个叫code,一个叫code.txt吗
我们也可以这样在code文件中进入code.txt
请添加图片描述
…代表了上级目录,我们就可以直接使用点点再进入上级目录里的文件
这就是使用了相对路径进入了code.txt文件
…代表了上级目录,我们就可以直接使用点点再进入上级目录里的文件
这就是使用了相对路径进入了code.txt文件
cd命令:cd 绝对路径/相对路径均可

cd … : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd …/day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录

4. touch指令

语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:

-a 或–time=atime或–time=access或–time=use只更改存取时间。
-c 或–no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或–time=mtime或–time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间.

touch +文件名可以在当前目录下创建一个文件。
在这里插入图片描述
我们也可以快速创建多组文件:
在这里插入图片描述
如果我们想要查看某个文件的详细属性时,我们可以输入stat +文件名。
在这里插入图片描述

5.mkdir指令

语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
mkdir指令与touch非常相似,是创建目录的指令。
在这里插入图片描述
创建的文件夹默认为空。那我们可以直接可以创建一个路径呢?
答案是不行。只能一个一个创建。
但是我们可以使用mkdir -p +创建路径即可。
在这里插入图片描述

6.rmdir指令 && rm 指令(重要):

🎄rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

🎄rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

rmdir只可以删除一个空的文件夹但不能删除文件。
在这里插入图片描述
在这里插入图片描述
它说dir不是一个空文件但是我们可以使用rm指令进行删除,但是为什么报错了呢?
但是为什么报错了呢?因为文件夹本来就是一个树状结构,就是递归定义的,所以得深度遍历在删除。

在这里插入图片描述
最后结果为:
在这里插入图片描述
所以得用递归一层层遍历,然后确定要删除即可将路径中的所有文件夹全部删除。但是只有root用户有询问交互,然后回答y/n。普通用户没有这个权限,所以直接就会删除。

rm -rf:这个指令是强制删除指令,界面就不会有交互直接删除。

删除文件直接使用rm -f + 文件名指令,强制删除不会有交互,但是用rm +文件名会有交互询问。

在这里插入图片描述
以上就是今天的linux基础指令的学习啦

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Selenium之路: UI自动化测试的必备指南

文章目录 一. 什么是自动化测试二. selenium的介绍1. Selenium是什么2. Selenium的工作原理3. Selenium 的环境搭建 三. webdriver API1. 元素的定位1.1 CSS 定位1.2 XPath 定位1.3 实现一个自动化需求 2. 操作测试对象2.1 clear 清除对象输入的文本内容2.2 submit 提交2.3 get…

四川思维跳动商务信息咨询有限公司可信吗?

在今天的数字化时代,抖音带货已成为一种全新的商业模式。许多公司都在通过这种形式进行产品推广和销售,其中,四川思维跳动商务信息咨询有限公司以其专业的服务和良好的信誉,在抖音带货领域赢得了广泛赞誉。 四川思维跳动商务信息…

Docker:容器网络互联

Docker:容器网络互联 1. 网络2. 自定义网络 1. 网络 默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上: [root172 demo]# docker inspect mysql [root172 demo]# docker inspect dd 在dd容器中ping mysql 但是存在问题&a…

算法通过村第十八关-回溯|白银笔记|经典问题

文章目录 前言组合总和问题分割回文串子集问题排序问题字母大小写全排列单词搜索总结 前言 提示:我不愿再给你写信了。因为我终于感到,我们的全部通信知识一个大大的幻影,我们每个人知识再给自己写信。 --安德烈纪德 回溯主要解决一些暴力枚举…

使用Go语言抓取酒店价格数据的技术实现

目录 一、引言 二、准备工作 三、抓取数据 四、数据处理与存储 五、数据分析与可视化 六、结论与展望 一、引言 随着互联网的快速发展,酒店预订已经成为人们出行的重要环节。在选择酒店时,价格是消费者考虑的重要因素之一。因此,抓取酒…

Pytorch tensor 数据类型快速转换三种方法

目录 1 通用,简单,CPU/GPU tensor 数据类型转换 2 tensor.type()方法 CPU tensor 数据类型转换 GPU tensor 数据类型转换 3 tensor.to() 方法,CPU/GPU tensor 数据类型转换 1 通用,简单, CPU/GPU tensor 数据类型转换 tensor.double():…

使用Keras建立模型并训练等一系列操作方式

由于Keras是一种建立在已有深度学习框架上的二次框架,其使用起来非常方便,其后端实现有两种方法,theano和tensorflow。由于自己平时用tensorflow,所以选择后端用tensorflow的Keras,代码写起来更加方便。 1、建立模型 …

玩转Apipost-Helper:代码编辑器内调试、生成文档

Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里…

SSM之spring注解式缓存redis

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 &#xff0c;越幸运。 1.Redis与SSM的整合 1.1.添加Redis依赖 在Maven中添加Redis的依赖 <redis.version>2.9.0</redis.…

axios请求的问题

本来不想记录&#xff0c;但是实在没有办法&#xff0c;因为总是会出现post请求&#xff0c;后台接收不到数据的情况,还是记录一下如何的解决的比较好。 但是我使用export const addPsiPurOrder data > request.post(/psi/psiPurOrder/add, data); 下面是封装的代码。后台接…

kubernetes (k8s)的使用

一、kubernetes 简介 谷歌2014年开源的管理工具项目&#xff0c;简化微服务的开发和部署。 提供功能&#xff1a;自愈和自动伸缩、调度和发布、调用链监控、配置管理、Metrics监控、日志监控、弹性和容错、API管理、服务安全等。官网&#xff1a;https://kubernetes.io/zh-cn…

算法记录|笔试中遇到的题

栈 394. 字符串解码730.统计不同回文子序列 394. 字符串解码 我自己写的方法 class Solution {public String decodeString(String s) {char[] chs s.toCharArray();LinkedList<Character> stack new LinkedList<>();for(char ch:chs){if(ch]){stack helper(st…

微信管理系统:让企业更轻松地管理客户和员工资源

在日常工作中&#xff0c;我们经常遇到以下问题&#xff1a; ①由于微信号众多&#xff0c;需要频繁地在不同设备之间切换&#xff0c;这严重影响了工作效率。 ②尽管我一直努力回复客户的消息&#xff0c;但有时还是无法做到即时回复&#xff0c;这给客户带来了一些不便。 …

fpga时序相关概念与理解

一、基本概念理解 对于数字系统而言&#xff0c;建立时间&#xff08;setup time&#xff09;和保持时间&#xff08;hold time&#xff09;是数字电路时序的基础。数字电路系统的稳定性&#xff0c;基本取决于时序是否满足建立时间和保持时间。 建立时间Tsu&#xff1a;触发器…

基于BP神经网络+Adaboost的强分类器设计实现公司财务预警

大家好&#xff0c;我是带我去滑雪&#xff01; Adaboost算法的思想是合并多个弱分类器的输出以产生有效分类。其主要步骤是先利用弱学习算法进行迭代运算&#xff0c;每次运算都按照分类结果更新训练数据权重分布&#xff0c;对于分类失败的训练个体赋予较大的权重&#xff0c…

HCIA-单臂路由-VLAN-VLAN间通信-OSPF 小型实验

HCIA-单臂路由-VLAN-VLAN间通信-OSPF 实验拓扑配置步骤第一步 配置二层VLAN第二步 配置VLANIF和IP地址第三步 配置OSPF 配置验证PC1可以ping通PC2 PC3 PC4 实验拓扑 配置步骤 第一步 配置二层VLAN 第二步 配置VLANIF和IP地址 第三步 配置OSPF 第一步 配置二层VLAN SW1 sysna…

Blender vs 3ds Max:谁才是3D软件的未来

在不断发展的3D建模和动画领域&#xff0c;两大软件巨头Blender和3ds Max一直在争夺顶级地位。 随着技术的进步和用户需求的演变&#xff0c;一个重要问题逐渐浮出水面&#xff1a;Blender是否最终会取代3ds Max&#xff1f;本文将深入探讨二者各自的优势和劣势、当前状况&…

SpringMVC使用AOP监听方法推送数据

导入aop的maven依赖 <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.6.12</version> </dependency>创建一个spring的XML文件编写aop配置 <?xml version"1.0" …

pytest+yaml实现接口自动化框架

前言 httprunner 用 yaml 文件实现接口自动化框架很好用&#xff0c;最近在看 pytest 框架&#xff0c;于是参考 httprunner的用例格式&#xff0c;写了一个差不多的 pytest 版的简易框架 项目结构设计 项目结构完全符合 pytest 的项目结构&#xff0c;pytest 是查找 test_.…

【ARM Coresight OpenOCD 系列 1 -- OpenOCD 介绍】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 1.1 OpenOCD 介绍1.1.1 OpenOCD 支持的JTAG 适配器1.1.2 OpenOCD 支持的调试设备1.1.3 OpenOCD 支持的 Flash 驱动 1.2 OpenOCD 安装与使用1.2.1 OpenOCD 代码获取及安装1.2.2 OpenOCD 使用1.2.3 OpenOCD 启用 GDB…