【Linux第一弹】Linux基础指令(上)

  

目录

 1.ls指令

 1.1 ls使用实例

 2.pwd指令

3.cd指令 

3.1 cd使用实例

4.touch指令 

4.1touch使用实例 

5.mkdir指令

5.1mkdir使用实例

6.rmdir指令和rm指令

6.1 rmdir指令使用实例->:

 6.2 rm指令使用实例

7.man指令

8.cp指令

8.1 cp 使用实例

9.mv指令

9.1mv使用实例

10.cat指令

10.1cat使用实例

11.完结


每一个存在都有问鼎的机会


 1.ls指令

语法:ls [选项] [目录或文件]

功能:1.对于目录,列出该目录下所有子目录与文件

        2.对于文件,将列出文件名以及其他信息

注:所有的指令的选项都是在其基础上增加新的功能(并不会覆盖旧功能)

这里我想说的是不要看常用选项中没有写目录就以为不会列出目录


常用选项->:

-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 一行只输出一个文件。

 1.1 ls使用实例

单独使用 ls 讲解->:

这里的pwd是展示当前所处目录,我们使用ls意味着展开/root中的文件或目录,图片上展开的是root中的112目录(这里的112是自己创建的目录,如何创建后面会讲)


ls -a 讲解->:

我们会发现,使用ls -a会多了许多东西,这些其实都是隐藏文件,因为它们都带有隐藏文件的标识符,也就是一个小点,以小点开头的就代表了隐藏文件

所以,-a 的作用是,展示当前目录下的文件/目录(包含隐藏文件)


ls -l 讲解->:

这里多出来的部分其实是文件/目录的详细信息,也就是说 -l 会列出文件的详细信息

我们可以观察到详细信息是以d开头的,这意味着它是一个目录

如果是文件,它的详细信息就不是d开头的


ls -n 讲解->:

我们会发现两处有些不同,这是因为 -n 的作用是列出详细的信息时用数字的UID,GID代替名称(这里先不用管UID,GID)


注意:在Linux中,选项的顺序并不会影响实际效果,这就意味着我们可以一起使用,如下->:

我们会发现,它既打印出来隐藏文件,又打印出了详细信息,并且二者的结果一样,说明顺序不影响。

当然我们也可以使用 ls -aln,并不会有选项的数量限制

 2.pwd指令

pwd指令很简单,它的作用就是展示当前所处目录(不展示文件)

如图,我们当前处于root目录下

3.cd指令 

语法: cd 目录名

功能: 改变工作目录,将当前目录改变到指定目录下


由于cd的语法很少,我们直接举例展示


我们先讲一个知识点

在Linux下,所有的目录/文件都是从根目录开始的,因此我们可以顺着一条线找到目录或文件

而根目录的标识就是一个斜杠 /

3.1 cd使用实例


用法一: cd 绝对路径

接下来我们会细致的分析cd绝对路径,在使用cd绝对路径时,需要一层一层的写绝对路径,我们用图片展示->:

这里我们知道,root是根目录下的目录,因此我们可以直接跳到root目录

当然我们也可以这样写->:

这里最开始写上的 / 代表从根目录开始走,跳到根目录下的root目录,而上一种写法的意义为在当前目录下查找root目录,如果查找到了则进行跳转,否则报错


/只有在路径的开头时代表根目录,其余都表示分隔符)


接下来我们想跳到root下的112目录,我们可以这样写->:

我们发现我们使用/112会报错,这是因为 / 代表从根目录下开始查找,而我们不加 / 后,就会从当前目录下开始查找能否跳转,也就会成功

我们可以从root直接找到112吗?

这就要看我们怎么写了,如下图->:

可见,直接在根目录下找112是找不到的,会报错,而先进入root再进入112,就可以跳到112了


cd 可以跳到文件里吗?不可以,因为我们在功能上说了,它是跳到目录下

有道友问了?我们那么多文件,我怎么知道文件都叫什么啊?

这时就要用到 ls指令 了啊,用ls列表出当前目录下的所有文件,就知道都叫什么了


用法2: cd 相对路径

相对路径有两种,一种为 .. ——  一种为 . 没错,你没看错,就是点,两个点代表上级目录或文件,一个点代表 当前目录/文件,我们展示一下->:

我们可以看到,cd .代表跳到当前目录,也就是没跳别的地方,pwd也就没改变,

cd .. 代表跳到上级目录,也就从112中跳出去了,跳到了root


用法3: cd 相对路径+绝对路径

相对路径和绝对路径可以一起使用,如下->:

这里我们细致的讲一下如何实现的

我们首先看红色的,我们使用相对路径跳到上级目录,然后又执行了 /lesson2 , 此时,这里的/就不代表从根目录下查找,因为你一种是相对路径一种是绝对路径,/ 就相当于变为了一种分隔符类似的,变成了代表从当前目录下查找

所以实际上执行的是,先跳到上级目录(跳到目录112中),然后在目录112中查找lesson2目录


cd ../..,这是因为两个上级目录不可以连续使用,如cd ....,所以 / 也变成了一个分隔符,它是先跳到了上级目录112中,然后从112中跳到了root


用法4: cd /

我们上面提到过,/ 是根目录,而cd / 可以直接跳到根目录下,如下图->:


用法5: cd ~

cd ~ 可以让我们直接跳到家目录下,什么是家目录?就是我们当前用户的目录

如下图->:


用法6: cd - 

cd - 可以退回到上一次的所在目录,如下图->:

4.touch指令 

语法: touch [选项] [文件]

功能 : 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件


常用选项->:

-a : 只改变access time

-c : 只改变modification time

4.1touch使用实例 

用法1 ->: touch 文件名

我们先观察到,lesson2中并没有任何文件或目录,我们在当前目录下touch创建一个test2的文件,再用ls展开当前目录,发现,确实创建了,并通过ls -l 详细的看到确实是文件


nano +普通文件名字

指令:通过nano指令可以进入文件写代码;

输入nano test2后,我们会进入下面的画面

如果写完了可以使用 ctrl + x 进行保存,之后在最下面会弹出一个选项,摁Y确认,再摁回车保存即可

之后我们可以使用cat指令输出文件内容(后面讲cat指令)

5.mkdir指令

语法: touch [选项] dirname

功能 : 在当前目录下创建一个名为 "dirname" 的目录


常用选项->:

-p :可以一次建立多个目录

5.1mkdir使用实例

用法1->: mkidr 目录名

我们可以观察到,最开始的lesson2目录中只有一个test2文件,而我们mkdir后,新增了两个目录,这就是mkdir的使用


mkdir可以直接创建多个目录,如下->:


用法2->: mkdir -p 目录名/目录名/目录名/.......

但是,mkdir不可以直接递归创建多个文件,如下->:

解释一下,我们想在112中创建一个color目录,在color目录中创建一个red目录,在red目录中创建一个blue目录,但是直接用mkdir不可以创建,报错了,这是因为我们没有使用-p选项

我们使用mkdir -p 后,可以发现,递归创建成功了。这就是mkdir -p 的使用

6.rmdir指令和rm指令

rmdir 是一个与 mkdir 相对应的命令。 mkdir 是建立目录,而 rmdir 是删除命令。

语法: rmdir [-p] [dirName]

使用对象: 具有当前目录操作权限的所有使用者

功能: 删除空目录


常用选项:

-p 当子目录被删除后如果父目录变为空目录的话,就连带父目录一起删除(即递归删除)


rm 命令可以同时删除文件或目录

语法 : rm [-f-i-r-v][dirName/dir]

适用对象 :所有使用者

功能 :删除文件或目录

6.1 rmdir指令使用实例->:

用法1: rmdir 目录名

使用rmdir可以删除指定目录,但是有一些注意事项,我们下面讲:


看下图->:我们使用rmdir时有三种情况不可以删

第一种情况 ->: 删掉当前所在目录

第二种情况->: 删除所有上级目录

第三种情况->: 想要删除的目录中存在目录/文件

我们接下来举例,看下图->:

下图中,我们

这张图说明的是前两种情况,接下来的图是第三种情况:

我们想要删除112里面的color目录,但是因为color目录中存在东西,所以不可以删除此目录


用法2: rmdir -p 目录名/目录名/......

我们上述中无法直接删除color目录,难到我们要一步一步进去删再一步一步出来吗?

没这个必要,使用rmdir -p 递归删除,直接实现,如下图->:

可以观察到,color目录被全部删除了

 6.2 rm指令使用实例

用法1: rm -r 文件名/目录名

首先,rm的删除与rmdir类似,都是不可以删除当前目录或者一切的上级目录

但是如果rm删除的目录中存在其他东西,是可以删除的

效果如下->:

我们讲解一下上图,(别看话长但很简单)首先我们观察到,big目录中存在一个文件test999,我们返回上级目录112,接着删除big目录,它问我们,确定要删除big目录吗?我们回答y(yes),接着,它检测到big目录中存在test999文件,它就会又问我们,要删除test999文件吗?(因为如果不删除此文件,无法删除目录),我们回答yes。那么文件删掉了,它会递归回来,问我们确定要删除big目录吗?我们再回答y,此时成功删掉了。

声明: 不删除回答n


用法2: rm -rf 文件名/目录名

使用rm -rf可以无视文件权限,直接删除目录/文件,也就是不会再询问你,如下图->:


用法3: rm 文件名

使用rm 文件名可以删除文件,但是不可以删除目录,如下->:

可以观察到,rm直接加文件是不可以删除的,因为rm删除文件需要使用rm -r,但是rm 文件名可以删除文件

7.man指令

语法: man [选项] 命令

功能: 查找命令如何使用


常用选项:

-k 根据关键字搜索联机帮助

num 只在第num章节查找

-a 将所有章节显示出来,比如man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当摁下q退出,他会继续往后面搜索,直到所有章节都搜索完毕


解释一下 ,man 手册分为8章
1 是普通的命令
2 是系统调用 , 如 open,write 之类的 ( 通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数 , 如 printf,fread4 是特殊文件 , 也就是 /dev 下的各种设备文件
5 是指文件的格式 , 比如 passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的 , 由各个游戏自己定义
7 是附件还有一些变量 , 比如向 environ 这种全局变量在这里就有说明
8 是系统管理用的命令 , 这些命令只能由 root 使用 , 如 ifconfig

8.cp指令

语法: cp [选项] 源文件或目录  目标文件或目录

功能: 在当前目录下查找,并复制文件或目录


说明:

cp 指令用于复制文件或目录

如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中


常用选项:

-f 或 --force  强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

8.1 cp 使用实例

用法1: cp -r 源目录/文件 目标目录/文件

首先我们看一下下图,观察到112目录下有许多目录,我们想要实现目录的复制或者文件的复制就需要使用cp -r

比如,我们现在就想把lesson1目录复制进lesson2目录中,我们可以这样写:

可见,lesson1被复制到lesson2中了

额外补充:如果cp的目标文件/目录不存在,则会自己创建一个目标文件/目录,如下图->:


用法2: cp -i  文件名

上述讲解中,如果有同志自己尝试会发现cp其实没有 -r 是不可以复制目录的(源文件是目录不可以,目标目录无所谓),但是cp -r 既可以操作目录又可以操作文件,所以这里没有讲解,只需要记住无时无刻加 -r 即可

cp -i 的作用为在覆盖文件之前先询问用户,注意,我说的是 "覆盖" ,不是复制

覆盖是文件名重复的意义,如下->:

这里lesson1中的apple复制到lesson2中的apple就属于覆盖,加-i会在拷贝前询问你(其实不加也会询问)

9.mv指令

语法: mv [选项] 源文件或目录 目标文件或目录 

功能: 

1. 视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv 命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv 命令将各参数指定的源文件均移至目标目录中。


常用选项 :

-f  : force  强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i  :若目标文件  (destination)  已经存在时,就会询问是否覆盖!

9.1mv使用实例

用法1: mv 文件/目录名 文件/目录名(重命名功能)

mv 文件名 文件名可以实现文件名的重定义,也就是改名(即覆盖),这里演示一下

如图,我们将apple文件的名字更改为了peach


如果我们改的名字与别的文件名字重复了,那就会实现覆盖,演示一下->:

将peach更改为apple会进行覆盖,还询问了我们一下


用法2: mv 文件/目录 路径(转移功能)

可见,将lesson1中的apple文件转移到了上级目录中

再看一个->:


用法3: mv 文件名 路径+新名字

这个指令会将两个操作同时进行,结果就是转移到了新路径下并且更换了名字

将lesson2目录转移到了root目录下

10.cat指令

语法:  cat [ 选项 ][ 文件 ]

功能:  查看目标文件的内容


常用选项 :

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行

10.1cat使用实例

用法1: cat 文件名

11.完结

2a775d9141e049b28a499aa8c5166913.png

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

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

相关文章

性能测试测试策略制定|知名软件测评机构经验分享

随着互联网产品的普及,产品面对的用户量级也越来越大,能抗住指数级增长的瞬间访问量以及交易量是保障购物体验是否顺畅的至关重要的一环,而我们的性能测试恰恰也是为此而存在的。 性能测试是什么呢?性能测试要怎么测呢&#xff1f…

面试(进阶) —虚拟列表在什么场景使用,如何实现?

面试(进阶) —虚拟列表在什么场景使用,如何实现? 在前端开发中,当需要渲染大量数据时,传统的渲染方式往往会遇到性能瓶颈。一次性将大量数据渲染到DOM中,不仅会导致页面加载缓慢,还可能占用大量内存&#x…

力扣 寻找重复数

二分&#xff0c;双指针&#xff0c;环形链表。 题目 不看完题就是排序后&#xff0c;用两个快慢指针移动&#xff0c;找到相同就返回即可。 class Solution {public int findDuplicate(int[] nums) {Arrays.sort(nums);int l0;int r1;while(r<nums.length){if(nums[l]num…

爱普生汽车用显示控制器IC:ScalerIC,汽车接口IC,相机接口IC

爱普生汽车显示控制器IC&#xff0c;汽车显示控制器芯片可以分为三类&#xff1a;爱普生显示控制芯片Scaler IC &#xff0c;爱普生汽车接口IC&#xff0c;爱普生相机接口IC。下面就给大家分别介绍下这三类芯片的具体型号的特征及用途。 爱普生显示控制芯片 Scaler IC Scaler…

LIGHTRAG: SIMPLE AND FASTRETRIEVAL-AUGMENTED GENERATION

一、现状问题、解决方法 现状问题&#xff1a; 分块处理在促进检索增强生成过程中起着至关重要的作用(Lyu et al.&#xff0c; 2024)&#xff0c;分块可以显著提高信息检索的准确性。 但是RAG系统还有其他的问题限制他们的能力&#xff1a; 1.很多方法是用二维向量表示数据…

React的TSX中如何同时使用CSS模块的类名和字符串类名

1.有两种类名方法 import React from react; import styles from ./index.less; const Home: React.FC () > {return (<div><h1 classNamemain>Welcome to the Home Page</h1><p className{styles.list}>This is a simple home page.</p>&…

防火墙的智能选路与NAT实验

实验拓扑 配置IP 防火墙的安全区域划分 销售部和运维部不能互相访问&#xff0c;采取vlan的方式来进行隔离。 在配置vlan之后 &#xff0c;两个部门将不会通信。 以上是基础配置&#xff0c;只是演示在各个部门不通的情况下&#xff0c;使用什么技术来进行隔离网络&#xff0c;…

element-ui infiniteScroll 组件源码分享

简单分享 infiniteScroll 组件源码&#xff0c;主要有以下四个方面&#xff1a; 1、infiniteScroll 页面结构。 2、infiniteScroll 组件属性。 3、组件内部的方法。 4、存在的问题。 一、infiniteScroll 页面结构&#xff1a; 二、页面属性。 2.1 infinite-scroll-disab…

【Viewer.js】vue3封装图片查看器

效果图 需求 点击图片放大可关闭放大的 图片 下载 cnpm in viewerjs状态管理方法 stores/imgSeeStore.js import { defineStore } from pinia export const imgSeeStore defineStore(imgSeeStore, {state: () > ({showImgSee: false,ImgUrl: ,}),getters: {},actions: {…

Grafana使用日志7--开启Sigv4

背景 在Grafana中&#xff0c;有些data source是需要开启sigv4认证的&#xff0c;例如OpenSearch&#xff0c;这个配置项默认是关闭的&#xff0c;这里我们介绍一下怎么开启 步骤 传统方式 如果我们想在Grafana中开启sigv4认证&#xff0c;我们需要在grafana.ini中修改一个…

mac下载MAMP6.8.1;解决mac使用小皮面板安装php7.4

因为mac的小皮面板没有php7.4了 链接&#xff1a;c9cc270e6961c17c.dmg官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 鹅选一 附上大佬写的教程&#xff1a;MAMP PRO教程 - 牛奔 - 博客园 更新一下&#xff0c;2-27 昨天已经可以使用php7.4了&#xff0c;我就在想能…

本地部署deepseek大模型后使用c# winform调用(可离线)

介于最近deepseek的大火&#xff0c;我就在想能不能用winform也玩一玩本地部署&#xff0c;于是经过查阅资料&#xff0c;然后了解到ollama部署deepseek,最后用ollama sharp NUGet包来实现winform调用ollama 部署的deepseek。 本项目使用Vs2022和.net 8.0开发&#xff0c;ollam…

spring的15个经典面试题

总结Spring框架的15个经典面试题。 什么是Spring框架&#xff1f; Spring是一种轻量级框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说的Spring框架就是Spring Framework&#xff0c;它是很多模块的集合&#xff0c;使用这些模块可以很方便地协…

智能机器人加速进化:AI大模型与传感器的双重buff加成

Deepseek不仅可以在手机里为你解答现在的困惑、占卜未来的可能&#xff0c;也将成为你的贴心生活帮手&#xff01; 2月21日&#xff0c;追觅科技旗下Dreamehome APP正式接入DeepSeek-R1大模型&#xff0c;2月24日发布的追觅S50系列扫地机器人也成为市面上首批搭载DeepSeek-R1的…

在ubuntu 24.04.2 通过 Kubeadm 安装 Kubernetes v1.31.6

文章目录 1. 简介2. 准备3. 配置 containerd4. kubeadm 安装集群5. 安装网络 calico 插件 1. 简介 本指南介绍了如何在 Ubuntu 24.04.2 LTS 上安装和配置 Kubernetes 1.31.6 集群&#xff0c;包括容器运行时 containerd 的安装与配置&#xff0c;以及使用 kubeadm 进行集群初始…

二十三种设计模式

2 工厂方法模式 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 在工厂模式中&#xff0c;我们在创建对象时不会对客户端暴露创建逻辑&#xff0c;并且是通…

GitHub高效搜索工具

[GitHub项目搜索工具] 一款开发者专属的星矿探测仪&#xff01; 你是否还在用stars:>1000手动筛选GitHub项目&#xff1f; 你是否经常为了找一个合适的开源库翻遍搜索结果&#xff1f; 这个工具或许能改变你的代码资源发掘方式… &#x1f31f; 痛点洞察 在GitHub的3.28亿个…

C语言自定义类型:联合和枚举

在C语言中&#xff0c;联合&#xff08;Union&#xff09;和枚举&#xff08;Enum&#xff09;是两种重要的的自定义数据类型。它们分别适用于不同的场景&#xff0c;能够提升代码的效率和可维护性。。本文将结合代码示例&#xff0c;详细讲解它们的声明、特点及使用方法。 一、…

Java 大视界 —— Java 大数据在智慧能源微电网能量管理中的关键技术(100)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

NLP学习记录十一:位置编码

目录 一、位置编码的意义 二、位置编码方法 三、代码实现 一、位置编码的意义 在标准的注意力机制中&#xff0c;每个查询都会关注所有的键&#xff0d;值对并生成一个注意力输出&#xff0c;模型并没有考虑到输入序列每个token的顺序关系。 以["我&qu…