Linux基础篇(三)常见指令

news2024/12/23 18:37:53

目录

一、创建文件和目录

二、命令详解

0. 命令和选项

1. ls命令

2. cd命令

3. touch命令

4. mkdir命令

5. tree命令

6. rmdir命令

7. rm命令

8. man

9. nano

10. cat命令

11. cp 命令

12. mv 命令

13. echo命令

14. more命令

15. less命令

16. Ctrl + C

17. head 命令

18. tail 命令

19. date命令

20. find命令

21. which

22. alias 命令

23. grep命令

24. xagrs 命令

25. bc命令

26. uname命令

27. history命令

三、几个重要的热键

四、结语


导言:我们在Linux下敲击各种指令究竟是在做什么?

首先要明确,我们敲击指令就是在使用Linux。就好比使用鼠标和键盘操作Windows系统。

所以我们这次的学习目标就是:学习使用各种指令。


一、创建文件和目录

目标:学习以下指令,尝试在Linux下创建一个目录,并进入该目录。

1.ls:显示当前目录下的文件

        eg. 如果当前目录下没有文件

        

2.pwd: 显示当前路径

        

3.touch 文件名: 创建文件(注意指令和文件名间的空格)

        

4.mkdir 目录名: 创建文件夹(注意指令和目录名间的空格)

        

5.cd 目录名: 进入目录

        

        使用mkdir命令创建一个目录code,再使用cd命令进入code。接下来的操作我们都将在创建的目录中进行,因为即使误操作导致严重失误,我们也可以直接删除该目录,再重新创建一个。


二、命令详解

0.命令和选项

命令后面可以接多个选项。

1.ls命令

常用选项:


  • -l:显示文件的属性数据。

        

        ls  -l  可简写成  ll 

        

        拓:

        文件  =  内容数据  +  属性数据

        内容数据:文件里保存的内容

        属性数据:文件的大小,修改日期,类型……

        


  • -a:显示所有文件包括隐藏文件。

        

        拓:Linux下是有隐藏文件和目录的,创建方式是创建时以 . 开头。

        eg. 创建隐藏文件并查看                 

        

        eg. 创建隐藏目录

        

        隐藏文件的基本用途:隐藏一些配置文件。


  • -i :  查看文件的inode编号。(inode编号相当于身份证号)

        

         我们可以通过inode编号唯一标识文件和找到文件。


  • -1 : 查看文件和目录,一行显示一个文件或目录

        


拓:连续输入多个选项

        要输入多个选项时可以省去第一个选项外的选项的空格。

        eg. 以下两种方法等价:

        ls  -lai

        

        ls  -l  -a  -i

        

2.cd命令

作用:跳转到指定路径。


拓1:当前路径 和 直接上级路径

        当使用ls -a显示所有文件和目录时,会发现有不是被我们创建的 . 和 .. 且和目录的颜色一样这其实是当前路径 和 直接上级路径, . 是当前路径 ,..是直接上级路径。

  • cd .. 的作用

        我们可以使用cd .. (注意cd 和 ..间的空格)返回到上一级目录。(回退)

        

  • cd . 的作用 

        在Linux下执行一个程序我们必须要先找到这个程序,也就是必须带上这个程序的路径。

        所以 . 的用处在这时就体现了出来:

        使用 . 可以限定我们要执行的可执行程序在什么位置。


拓2:/ 的概念

  • / 是Linux下的路径分隔符。(windows下是 \ ) 

        eg. Linux下的路径

        

        eg. windows下的路径

        

  • / 是Linux下的根目录。

        eg. 使用ls命令查看根目录下的文件。

        


拓3:Linux下的目录结构

        Linux下的目录结构,本质上是一颗多叉树。

        


拓4:为什么采用路径的方式来定位一个文件/目录?

        因为靠路径我们能唯一确定一个文件/目录,如果把Linux下的目录结构看成是一颗多叉树,则文件/目录的父节点是唯一确定的,该父节点的父节点也是唯一确定的,直到根目录,所以可以顺着这条路径找到该文件。


拓5:绝对路径和相对路径

  • 绝对路径:从根目录开始,到目标文件/目录所经过的所有目录组成的路径。(pwd目录显示的就是绝对路径)

        

  • 相对路径:从当前路径开始,到目标文件/目录所经过的所有目录组成的路径。

        eg. code 到 test.txt 的相对路径

        


拓6:家目录(当前用户的工作目录)

        ~ 就表示家目录,使用cd ~ 进入家目录。

  •  对于普通用户而言:

        /home/XXX  就叫做XXX用户的家目录(工作目录)

        

  • 对于root用户而言:

        /root 就是root用户的家目录

        


拓7:cd - 回到上一次所访问的路径 

        

3.touch命令

  • touch 文件名 :创建文件 和 更新文件的最近修改时间。

        eg. 使用touch命令创建文件

        

        eg. 使用touch命令更新文件最近修改时间。

        

  • touch 文件名1 文件名2 文件名3:连续创建多个文件

        

  • touch 绝对路径:在指定路径下创建文件

        

  • touch .文件名 : 创建隐藏文件

        

4.mkdir命令

  • 创建目录(文件夹)

        

  • 创建隐藏目录:创建时在目录名前加上一个 .

        

  •  mkdir -p :创建一连串的目录

         

5.tree命令

作用:以树状图的形式打印目录,并显示目录和文件数量

注意:

1.tree命令不是Linux自带的命令需要用户自己安装
        使用:yum install -y tree 命令安装。

        

        但安装操作只能在root账户下进行

        

        出现Complete! 提示才表示安装成功。

2. tree -a 才会显示出隐藏目录和文件,并在计算文件和目录数量时加上隐藏文件和目录。

        

6.rmdir

作用:删除目录

注意:

1.rmdir只能删除空目录

2.rmdir无法删除文件

7.rm命令

作用 : 删除文件 和 目录。

        注意:不加选项的rm只能删除文件

        

1. rm -r :递归性的删除文件或目录

        

2.rm -i :在执行命令前进行询问

        在执行比较危险的命令(如删除)时建议加上选项 -i。

        输入y表示确定执行,n表示取消执行。

        

        eg. 只有输入y才表示确定执行。

        

3.连续删除多个文件

        rm 文件1 文件2

        


 拓1:通配符 *

        可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。

  •  rm *.txt :删除所有后缀是.txt的文件。

        

        注:不会删除隐藏文件

        

        

  •  rm  -r  * : 删除所处目录下的所有信息,但不会删除隐藏文件。

        

        该命令可用于清空文件夹。


拓2:通配符 ?

        也是通配符,用法和 * 一样。

8. man

作用:在线操作手册,我们可以通过询问man,查找到指令的使用方法。

要了解更多按h,离开按q 。


man也是一个命令,也可以通过man来查看:


自带的man手册是精简版的,可以在root下使用命令 : yum install -y man-pages

(安装过程中,yum会询问用户是否安装,使用yum -y 选项,表示自动回答为yes。)

eg. 在root下安装man手册完整版。(出现Complete提示表示安装成功)

9.nano

作用:以记事本的形式打开文件(文本编辑器)

1.nano也不是Linux自带的,需要在root下通过yum install -y nano 命令来安装。


2. 使用nano编辑文本:nano 文件名


3.退出nano

编辑完成后,按住 Ctrl + x,选择退出编辑。

 按y确定退出。

按下回车,退出nano。 

eg. 经过nano编辑过的test.txt文件

10.cat命令

作用:猫一眼文件,即将文件中的内容打印出来。

(若文件非常非常长,有上万行,查看时,前面的数据滚动输出,只将末尾部分显示到屏幕上。也可使用ctrl+s,ctrl+q,停止和恢复屏幕。)

cat -n 文件名:打印文件内容时加上行号

拓:

tac指令:从下到上打印文件内容

tac命令没有 -n 选项

应用场景:查看成绩表文件中成绩倒数几名的同学 

11. cp 命令

作用:拷贝

1. cp 文件a的路径  路径 : 以路径找到文件a,并将将文件a拷贝到指定路径下。

2. cp -r 目录b的路径  路径 : 以路径找到目录b,并将目录b和其中的文件拷贝到指定路径下。

拷贝目录时必须带上 -r 选项

eg. 拷贝目录不带上-r选项会报错

12. mv 命令

作用: 剪切 或 重命名

1.对文件进行剪切

        mv  要剪切的文件的路径  目的地的路径

        

2.对目录进行剪切(不用加-r)

        mv  要剪切的目录的路径  目的地的路径

        

3.对文件或目录进行重命名

        后面是一个不存在的名字时就是进行重命名。

        mv  要重命名的文件或目录  新名字

        

13.echo命令

作用:打印内容到屏幕上

原理:先把内容读入到缓冲区,再打印到屏幕上。


拓1:echo 可以和 >(输出重定向) ,>>(追加重定向)一起使用,用来修改文件内容。

1.echo "字符串" > 文件名 :(覆盖式写入)

        如果没有该文件,创建该文件,并将内容写入到文件中。

                 如果存在该文件,将之前的内容删除,并将新内容写入文件中。

        

2.echo "字符串" >> 文件名 :(追加式写入)

        如果没有该文件,创建该文件,并将内容写入到文件中。

        

         如果存在该文件,保留之前的内容,并将新内容追加写入到之前内容的末尾。

        


拓2:< 输入重定向

        使用cat指令可以将文件中的内容打印到屏幕上,它的原理是打开文件后,依次读取文件内容,然后再打印。

        如果我们使用 < 输入重定向可以简化这个步骤,用指针指向文件头,然后依次打印,从而省略了打开文件,读取内容的步骤。


拓3:输入重定向 < 和 输出重定向 > 混合使用

        将原来要打印到屏幕的内容直接输入到文件中。

        这样可以达到到文件备份 或 文件拷贝的效果。

        顺序是先把文件内容读出到缓冲区中,再写入到文件中。

        


拓4:输出重定向要保证要输出的内容在缓冲区中

        而 echo 在把键盘输入的内容打印到屏幕 或 cat读取文件内容 的过程中就实现了这一点,所以可以使用 输出重定。

        eg. 无法把键盘输入的内容直接输出重定向,因为要实现输出重定向必须先将内容先保存到缓冲区中。


拓5:在Linux中一切皆文件

        显示器,键盘,普通文件,在Linux下,这一切都是文件。

14.more命令

作用: 逐行查看文件。

        当文件较大时,我们使用cat命令打印会直接跳到最后面,要看中间的内容要不断往上翻,非常麻烦。这时可以使用more指令,逐行查看文件。

eg. 创建一个有一万行的文本,并用cat打印,会直接跳到最后面。

count=0; while [ $count -le 10000 ]; do echo "hello world ${count}"; let count++; done > file.txt

        使用more命令来查看文件,首先会打印一页内容,然后我们每按一次回车,会打印后续一行内容。按q退出查看

        more命令适合用来检查自己的代码或查看别人的代码。适合用来查看需要逐行阅读的长文本。

        缺点是只能向下翻,不能来回翻。  

15.less指令

作用:和more指令类似,但解决了more指令只能向下查看的缺陷。

        

操作:

        按回车 或 下 ,向下看。

        按上 ,向上看。

        按q ,退出。

more 和 less 的主要作用就是帮助我们逐行查看长文本。

16. Ctrl + C

作用: 终止执行命令或终止异常命令。

在遇到无法终止的命令时,使用Ctrl + C来退出执行。

17. head 命令

作用: 读取文件前若干行。

        eg. head -5 file.txt : 读取file.txt文件的前5行。(注意数字前有一个 - )

        

不带数字则默认输出前10行。

18. tail 命令

作用: 读取文件后若干行。

        eg. tail -5 file.txt : 读取file.txt文件的最后5行。

        

不带数字则默认输出后10行。


拓1:取出文件的中间部分

        现在我们学会了拿取一个文件的头和尾,那有没有办法直接取出文件的中间部分呢?如取出500 ~ 510行的内容。

        法1:创建临时文件。

                将前550行内容重定向写入一个临时文件中,再打印临时文件的后50行。

                

        

        法2:使用管道 |

                好处是不需要显示的开辟临时文件。

                   


拓2:| (管道符)

         | : 管道 ,当在两个命令之间设置管道时,管道符 | 左边命令的输出就变成了右边命令的输入。

        原理:生成一个内存级的管道文件,将左边命令的输出存入管道文件,并使管道文件成了右边命令的输入。

                

19. date命令

作用:显示时间

        


格式化输出时间:

        

        字母前有一个%,%Y前有一个+


拓1、date +%s : 获取时间戳

        

        Unix时间戳(英文为Unix epoch, Unix time, POSIX time Unix timestamp)是从197011日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。时间戳是单调递增的,具有唯一性。


拓2、选项-d : 时间戳转化为时间

        

        也可以格式化输出: 

        


拓3、cal指令:查看本月日历

        

        eg. cal 2023: 查看2023年的日历

        

        eg.cal -3:显示上个月,本月,下个月的日历 

        

20. find命令

作用:查找

find 路径1 -name 文件a : 以路径1为起点查找所有名字是a的文件。

        eg. find ~  -name  file.txt :以家目录为起点查找所有名字是file.txt的文件。

        

         eg. 查找所有文本文件。

        

21.which

作用: 查找指令所在的路径。(指令相当于一个可执行的程序,被放在特定的路径)

        

拓:whereis : 查找指令所在的路径。

        

22.alias 命令

作用: 给命令起别名。

alias 别名='要起别名的命令'

        

注意,本次登录所起的别名,只在本次登录时有效

我们下一次使用Xsell登录Linux时,上次起的别名无效了。

23.grep命令

作用: 按行在文件查找指定内容

grep  '要查找的内容str'  文件a : 在文件a中查找有str内容的行

        eg. grep '111' file.txt : 在文件file.txt中查找有111的行。

        


选项 -n : 打印出在原始文件中的行号

        grep -n '111' file.txt : 在文件file.txt在查找有111的行,并打印在原始文本中的行号。(在grep后面加上选项 -n)

        


选项 -v : 将条件之外的内容打印出来

        


 选项 -i :查找内容时忽略大小写

        


eg. 使用以上所学的命令将文件中倒数三个含有111的行,倒序放入文件cope.txt中:

        

24.xagrs 指令

作用: 将管道的输出结果,作为命令行参数,交给后面的程序。

        

25. bc命令

Linux下的计算器

26. uname命令

  • uname : 查看系统。
  • uname -a : 查看Linux的体系结构 和 内核版本。

        体系结构:用的是什么硬件,芯片。

  • uname -r : 仅查看内核版本。

面试题 :如何在Linux下查看Linux的体系结构,以及内核版本。

 27. history命令

作用:查看历史输入的指令。

        从用户创建初至今输入的所有指令。

        


三、几个重要的热键

1.tab : 命令补全和档案补齐

2.Ctrl + r : 搜索历史命令

进入后,输入要搜索代码的一些片段,会自动匹配出历史代码。

3.Ctril + d: 还可以快速退出

回退到上一个用户;退出云服务器的登录,退出Xsell。可以代替exit。

4.Ctrl + c : 终止执行命令或终止异常命令。

5.关机

云服务一般不关机,可以使用halt, shutdowm将云服务器关机。

使用reboot 进行重启。


四、结语

1.我们不但要知道这些指令怎么用,更应该知道它们的应用场景,这样才是真正知道这些“工具”该怎么使用。

2.在Linux中一切皆文件。 

3.如何看待Linux下的各种指令?其实这些指令本质上就是可执行程序。执行可执行程序的过程就是找到它,运行它。

4.在Linux或Windows下安装软件其实就是在把相关文件拷贝到磁盘中,再显示一个.exe文件。

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

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

相关文章

台灯的种类有哪些?国内热门护眼灯品牌推荐

台灯是我们日常生活中常见的电器之一&#xff0c;台灯不仅可以为人们照明&#xff0c;还可以用来家居装饰&#xff0c;根据人们不用的需求&#xff0c;台灯的种类也很多&#xff0c;有书房台灯、读写台灯、工艺台灯。 书房台灯&#xff1a;灯光的局部照明效果&#xff0c;以书写…

禅道OpenAI更新至1.2版本,超多实用功能惊喜上线!

广受欢迎的禅道OpenAI插件近日成功发布&#xff0c;截至目前已更新至1.2版本。 截至本版本发布&#xff0c;禅道OpenAI已经拥有了神奇海螺&#xff08;ChatGPT聊天&#xff09;、需求润色、任务润色、Bug润色及本次的需求一键生成用例功能&#xff0c;仍有更多实用的新功能正在…

Sentinel 工作主流程

Overview 在 Sentinel 里面&#xff0c;所有的资源都对应一个资源名称以及一个 Entry。Entry 可以通过对主流框架的适配自动创建&#xff0c;也可以通过注解的方式或调用 API 显式创建&#xff1b;每一个 Entry 创建的时候&#xff0c;同时也会创建一系列功能插槽&#xff08;…

2023年第1季社区Task挑战赛开启,等你来战!

社区Task挑战赛是面向社区开发者开展的代码或教程征集活动。该挑战赛为社区中热爱FISCO BCOS及周边组件的开发者提供了探索区块链技术、挑战技术难题的舞台。该挑战赛去年在社区成功举办了3季&#xff0c;共吸引了数百名开发者报名。 前3季都有哪些有趣的作品&#xff1f; 在…

【图数据挖掘】— 子图同构问题、单射函数和双射函数、同构(isomorphic)和同态(homomorphism)

子图同构问题 子图同构&#xff08;Subgraph Isomorphism&#xff09;是指在图论中&#xff0c;两个图之间是否存在一种关系&#xff0c;使得其中一个图的顶点集合和边集合可以通过对应的方式映射到另一个图的顶点集合和边集合上&#xff0c;且保持原来的边和顶点的关系不变。…

如何设计一个安全的对外接口?

对外接口安全措施的作用主要体现在两个方面&#xff0c;一方面是如何保证数据在传输过程中的安全性&#xff0c;另一方面是数据已经到达服务器端&#xff0c;服务器端如何识别数据。 1. 数据加密 数据在传输过程中是很容易被抓包的&#xff0c;如果直接传输&#xff0c;数据可…

elasticsearch 核心概念

1.近实时&#xff08;Near Real Time,NRT&#xff09; elasticsearch 是一个近实时的搜索和分析平台&#xff0c;这意味着从索引文档到可搜索文档都会有一段微小的延迟&#xff08;通常是1s以内&#xff09;。这种延迟主要是因为 elasticsearch 需要进行数据刷新和索引更新。 …

远程代码执行渗透与防御

远程代码执行渗透与防御1.简介2.PHP RCE常见函数3.靶场练习4.防御姿势1.简介 远程代码执行漏洞又叫命令注入漏洞 命令注入是一种攻击&#xff0c;其目标是通过易受攻击的应用程序在主机操作系统上执行任意命令。 当应用程序将不安全的用户提供的数据&#xff08;表单、cookie…

jQuery 基础入门速成上篇

jQuery 是目前使用最广泛的 javascript 函数库。提到 jQuery 你可能知道这句英文 &#xff1a; ———— Write Less&#xff0c;Do More ( 写的少&#xff0c;做的多 ) 引入jQuery jQuery是一个函数库&#xff0c;一个 js 文件&#xff0c;页面可以使用 script标签 引入使用&a…

JVM 类加载器

文章目录1 类加载器1.1 类加载器介绍1.2 类加载器的加载规则1.2 类加载器类型总结2 双亲委派模型2.1 双亲委派模型介绍2.2 双亲委派模型的执行流程2.3 双亲委派模型的好处回顾一下类加载过程&#xff1a;加载->连接->初始化。 其中连接又分为&#xff1a;验证->准备-&…

指针太难?手把手教你理解指针(传参、函数指针)

目录 前言 一、数组和指针的参数 1.一维数组传参 2.二维数组传参 3.一级指针传参 4.二级指针传参 二、函数指针 1.函数的地址 2.函数指针的形式 3.函数指针的使用 三、加深理解&#xff0c;两段有趣的代码 前言 之前的一篇文章讲到了指针的概念、指针和数组的关系&am…

【机器学习】随机森林预测泰坦尼克号生还概率

目录 前言&#xff1a; 【一】数据清洗及可视化 介绍 知识点 环境准备 数据特征介绍 检查数据 相关系数 缺失值 偏态分布 数值化和标准化 离群点 实验总结一 【二】分类模型训练及评价 介绍 环境准备 模型评估 模型选择 性能度量 实验总结二 【三】随机森…

机器学习入门(全连接神经网络-1)

机器学习入门(全连接神经网络-1) 目录 机器学习入门(全连接神经网络-1)一、神经元简介1.概念2.例子二、常见的激活函数从神经元开始进行讲述,从零开始搭建全连接神经网络。 一、神经元简介 1.概念 神经元是神经网络的基本组成单位。 神经元接受输入,对它们进行一些数学运…

自主机器人运动规划|地图相关概念总结

自主机器人运动规划|地图相关概念总结地图表示占用栅格地图八叉树地图&#xff08;Octo-map&#xff09;Voxel hashing(哈希表地图)点云地图TSDF mapESDF map地图表示 地图分成两个模块&#xff1a; 地图装在数据的数据结构地图信息融合方法 占用栅格地图 使用最为广范的是 …

用PyTorch训练模型识别captcha库生成的验证码

目录 制作训练数据集 用Dataloader加载自定义的Dataset 训练模型 识别验证码 总结与提高 源码下载 在本节&#xff0c;我们将使用深度学习框架PyTorch来训练模型去识别一种难度稍大一点的数字字母混合验证码&#xff08;我们可以使用第三方库captcha生成这种验证码&#…

4.2 换元积分法

思维导图&#xff1a; 学习目标&#xff1a; 学习换元积分法时&#xff0c;可以遵循以下几个步骤&#xff1a; 理解换元积分法的基本思想&#xff1a;将一个复杂的积分变成一个简单的积分&#xff0c;通过引入一个新的变量来实现。 掌握换元积分法的基本公式&#xff1a;如果…

reviewSpringBoot

1.springboot简介说明 Springboot简化新Spring应用的初始搭建以及开发过程 SpringBoot是基于Spring的框架&#xff0c;该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。 SpringBoot集成了绝大部分目前流行的开发框架&#xff0c;就像…

FISCO-BCOS链节点黑名单对共识的影响

目录一、前言二、测试过程三、PBFT一、前言 目的&#xff1a;在fisco-bcos&#xff08;v2.8.0&#xff09;环境下&#xff0c;测试黑名单对节点共识的影响。 部署搭建四节点的链&#xff0c;并部署console&#xff1a; https://fisco-bcos-documentation.readthedocs.io/zh_…

3 个自定义防抖 Hooks 的实现原理

前言— 本文通过实现 useDebounceFn、useDebounce、useDebounceEffect 3 种自定义防抖 Hooks&#xff0c;来介绍在日常开发过程中自定义 Hooks 的思路及实现&#xff0c;帮助大家完成通用 Hooks 来提高开发效率。 防抖— 防抖的概念已经司空见惯了&#xff0c;这里稍作简单介…

00后也太卷了吧!进厂起薪18K,原来面试时候都说了这些......

都说00后躺平了&#xff0c;但是有一说一&#xff0c;该牛的还是牛。 这不&#xff0c;前段时间公司来了个00后&#xff0c;工作都没两年&#xff0c;跳槽起薪18K。本来还以为是个年少有为的技术大牛呢&#xff0c;结果相处一个月下来发现技术也就那样。 问起他是如何做到和老…