【Linux系统】—— 基本指令(二)

news2024/11/26 3:31:51

【Linux系统】—— 基本指令(二)

  • 1 「alias」命令
    • 1.1 「ll」命令
    • 1.2 「alias」命令
  • 2 「rmdir」指令与「rm」指令
    • 2.1 「rmdir」
    • 2.2 「rm」
      • 2.2.1 「rm」 删除普通文件
      • 2.2.2 「rm」 删除目录
      • 2.2.3 『 * 』 通配符
  • 3 「man」 指令
  • 4 「cp」 指令
    • 4.1 拷贝普通文件
    • 4.2 拷贝目录
  • 5 「mv」 指令
    • 5.1 普通文件
    • 5.2 目录
  • 6 nano 编辑器
  • 7 echo
  • 8 「cat」 指令
    • 8.1 初识 「cat」
    • 8.2 命令行选项
    • 8.3 「tac」命令
  • 9 时间相关指令
    • 9.1 显示时间
    • 9.2 时间戳
    • 9.3 「cal」 指令

1 「alias」命令

1.1 「ll」命令

  在讲 「alias」命令之前,我们先来看下 「ll」命令
  我们来看下「ll」命令有什么效果

在这里插入图片描述

  我们发现「ll」命令也是显示当前目录的各个文件,它的效果与 「ls -l -a」相同

在这里插入图片描述

  

1.2 「alias」命令

  在 Linux 中,「alias」 指令用于创建一个命令的别名,即给变量取别名。这样我们就可以用一个简短的字符串来代替一个较长或复杂的命令。
  
  比如现在我们给「 ls」命令取别名 m o n k e y monkey monkey

在这里插入图片描述

  
  再比如给「ls -l -a」起别名

在这里插入图片描述

  :alias 后的 ‘=’ 左右两边不能加空格
  
  实际上,「 ll 」就是「 ls -l -a」,「 ll 」本质alias ll='ls -l -a --color=auto'
  
   --color=auto 是什么呢?
   实际上,我们直接通过路径执行「ls」指令,文件名是没有颜色

在这里插入图片描述

   只有加上 --color=auto 才会显示颜色

在这里插入图片描述

  
  那为什么我们直接输入「ls」,又有颜色呢?
  那是因为这里的 「ls」也是一个别名。本质:alias ls='ls --color=auto'

  那如果我们起了别名有不想要了呢?
  不用担心,我们所起的别名是临时的,当我们重新登录时,起的别名就失效了
  
  

2 「rmdir」指令与「rm」指令

2.1 「rmdir」

  「rmdir」是一个与「mkdir」相对的指令,「mkdir」是创建目录,「rmdir」是用来删除删除目录的

  • 语法:「rmdir」 [dirName]
  • 功能:删除空目录
  • 使用对象:具有当前目录操作权限的所有使用者

在这里插入图片描述

  但是「rmdir」默认只能删除空目录,非空目录和普通文件它是不能删除的

在这里插入图片描述

  

2.2 「rm」

  「rmdir」使用起来有诸多限制,因此我们了解即可,平常我们更多的是用 「rm」 命令
  「rm」 命令可删除文件或者目录

  • 语法:「rm」 [dirName/dir]
  • 功能:删除文件或目录
  • 使用对象: 所有使用者

  

2.2.1 「rm」 删除普通文件

在这里插入图片描述

  

2.2.2 「rm」 删除目录

  我们创建一个空目录888,并用 「rm」 删除试试看

在这里插入图片描述

  不是说rm啥都能删吗,怎么连一个空目录都删不了呢?

  这是因为「rm」默认只能删普通文件,就跟「rmdir」一样默认只能删空目录。
  但是「rm」的选项更丰富
  如果想要删目录,需要加上 「-r」命令行选项

在这里插入图片描述

  
  目录本身的定义是多叉树当中的节点,在多叉树中做各种操作都是递归式进行定义的,所以「-r」就代表着递归(recursion)的意思。不管这个目录是否为空都能删除

在这里插入图片描述

  :删除的时候一定要仔细,不要一不小心把根目录给删了!
  

2.2.3 『 * 』 通配符

  在 Linux 中有一个 『 * 』 符号,这个 『 * 』 叫做通配符
  所谓通配符就是可以去匹配任意的内容

在这里插入图片描述

  比如:『ls *.txt』 表示显示所有后缀为 .txt 的文件;『test. *』 『*.*』也是同理

  这样我们就可以利用通配符,将某一类型文件一次性删除啦

在这里插入图片描述

  
  :如果直接『rm -r *』 的话,会直接将当前所在目录的所有内容删掉。这点一定要小心使用,确定自己在哪个目录下,不要一不小心把根目录所以内容删了

在这里插入图片描述

  :Linux 并没有所谓的回收站,删了就是删了。所以删除要谨慎

  
  

3 「man」 指令

  Linux 当中的命令有很多参数,我们不可能全部记住。我们可以通过查看 Linux 手册获取帮助。访问 Linux 手册的命令是「man」

  • 语法:「man」 [选项] 命令

  
  比如「pwd」指令我不会用,可查阅「man」手册

在这里插入图片描述

  直接输入『man pwd』就能跳转到对应的手册位置(按 Q 退出手册

在这里插入图片描述

  
  既然是一个手册,它就有第一章、第二章……
  我们输入『man man』可以看到该手册一共有九章

在这里插入图片描述

  我们默认都是在第一章去查找
  

我们学习 Linux 大部分只会用到前三章手册:

  • 第一章:普通的命令
  • 第二章:系统调用
  • 第三章:C语言库函数

  
  命令中有 printf 命令,同样 C语言 也有 printf函数
  两个 p r i n t f printf printf 并没有任何关系

printf 命令 使用:
  在这里插入图片描述

  
  「man」手册的查找原则是:从前往后寻找,找到了就返回
  像查找 「printf」命令可以:man printf
  也可以指定章节去查找:「man 1 printf」
  
  而如果想查找 C语言 中的 printf函数,则必须要指定章节去查找才能找到,不然 「printf」命令在前,系统搜索到「printf」命令是直接返回的
  指定章节查找:「man 3 printf」

  注:部分系统可能没安装「man」手册,ubunto可以输入命令 apt install -y man-pages 下载,centos可以输入命令 yum install -y man-pages 下载
  
  

4 「cp」 指令

  • 语法:「cp」 [选项] 源文件或目录 目标文件或目录
  • 功能:拷贝文件或目录

  

4.1 拷贝普通文件

  • 「cp」 源文件 目标文件

  在当前目录下拷贝生成目标文件,拷贝出的文件名为目标文件名
  在这里插入图片描述

  

  • 「cp」 源文件 目标目录

  如果后面跟的是目录,将会将源文件拷贝至目标目录下,拷贝出的文件名为源文件名,即与源文件名相同
  在这里插入图片描述

  同一个目录下不能有同名文件,但是不同目录可以
  

  不过当然,也可以指定文件名
  在这里插入图片描述

  

「cp」 拷贝普通文件

  • 「cp」 srcfile dstfile
  • 「cp」 srcfile dstdir/
  • 「cp」 srcfile dstdir/dstfile

  

4.2 拷贝目录

  那拷贝目录又是怎么拷贝的呢?

比如像拷贝 lesson1 目录。在这里插入图片描述

在这里插入图片描述

  发现直接拷贝目录是拷贝不了的
  
  因为目录是递归式定义的内容,所以这里需要带 「-r」命令行选项

在这里插入图片描述

  上述情况,目标目录是不存在的目录,是拷贝在当前目录下

  我们将 lesson1 中的内容再拷贝一次给 lesson2 ,此时的 lesson2 是已经存在的目录,这时拷贝会发生什么呢

在这里插入图片描述

  发现新拷贝出的目录名还是 lesson1,但是拷贝出来的目录是在 lesson2 目录下

  所以结论是当进行拷贝目录时:如果目标目录不存在,则在当前目录下拷贝;如果目标目录已经存在,会将目录拷贝到目标目录的内部

  那如果再将 lesson1 拷贝到 lesson2 里面呢?此时新拷贝的 lesson1 会将原来的 lesson1 覆盖
  
  

5 「mv」 指令

  「mv」 指令是 move 的缩写,可以用来移动文件或者将文件改名(move(rename)files),是 Linux 系统下常用的命令,经常用来备份文件后或者目录

  • 语法:「mv」 [选项] 源文件或目录 目标文件或目录
  • 功能:
    1. 在指定目录下,对一个文件或目录进行重命名
    2. 将指定目录下的目标或文件,剪切到指定目录下
    3. 不仅仅可以剪切,还可以在剪切时进行重命名

5.1 普通文件

  • 剪切功能

    • 当「mv」 src dst 中的 src 是普通文件时,就是对普通文件进行操作

  将 hello.txt 文件剪切动 lesson1 目录下

语法:「mv」 srcfile dstdir
  
在这里插入图片描述

  

  • 重命名功能

  将 test.txt 重命名为 1.txt
  
在这里插入图片描述

  那如何判断「mv」是剪切还是重命名呢?
  取决于「mv」 src dst 中的 dst,如果 dst 是目录并且不存在,那他就是重命名;如果是目录且存在就是剪切
  

5.2 目录

  当「mv」 src dst 中的 src 是目录时,就是对目录进行操作

  • 剪切功能

「mv」 srcdir dstdir

  
  我们将 a 目录从当前目录剪切到 lesson1 目录下

在这里插入图片描述

  其实剪切文件和剪切目录不用再可以去区分,因为 Linux 下一切皆文件
  

  • 重命名功能

  那目录可以重命名吗?
  与文件一样的道理
  当 「mv」 src dst 中的 dst 是一个已经存在的目录时,为剪切功能;是一个不存在的目录时,为重命名功能

  我们将 a 目录重命名成 222

在这里插入图片描述

  
  

6 nano 编辑器

  「nano」 是 Linux 操作系统中一款简单易用的文本编辑器,它提供了一个用户友好的界面和一系列快捷键,使用户能够轻松地进行文本编辑和修改。

  • 语法:nano 文件名(文件不存在则新建文件)
  • 功能:给用户提供文本编辑页面

  
使用方法:

在这里插入图片描述

  在这里插入图片描述
  
  
退出方法:
  

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  :有部分小伙伴没有安装 nano,centos 可以输入yum install -y nano(centos),ubunto 可以输入 apt install -y nano(ubunto)来安装 nano
  
  

7 echo

  「echo」 指令非常简单,我们这里简单提一下

  • 语法:echo [选项] [字符串]
  • 功能:将后续内容以字符串的形式打印出来

  
使用方式:

在这里插入图片描述

  :这里来我们建议将要打印的内容用单引号括起来,如果用双引用可能有时会出问题。
  
  当然,前面我们讲过的「printf」命令也是可以打印的

在这里插入图片描述

  所以我们如果想单纯的在显示器中回显一个字符串可以用「echo」也可以用「printf」
  
  

8 「cat」 指令

8.1 初识 「cat」

  • 语法:cat [选项][文件名]
  • 功能:显示指定文件名里面的内容

  
  例如:我们用「cat」将刚刚写入 hello.txt文件 中的内容打印出来

在这里插入图片描述

  
  那「echo」可以打印文件中能内容吗?

在这里插入图片描述

  不行
  可以看到「echo」将 hello.txt 当做字符串打印出来了
  所以如果要打印文件中的内容,还是要用「cat」命令

  需要注意的是:「cat」命令比较适合看短文件
  

8.2 命令行选项

  「cat」指令的命令行选项如下:

  • 「-b」:对非空输出行编号
  • 「-n」:对输出的所有行编号
  • 「-s」:不输出多行空行

  
  其中,最常用的就是 「-n 」选项。「-n 」可以帮我们把行号加上

在这里插入图片描述

  

8.3 「tac」命令

  「cat」命令有一个伙伴指令:「tac」命令
  「tac」命令也是显示文件内容,只不过他是 反向显示文件内容

在这里插入图片描述

  但是反向打印有什么用呢?

  当我们想看一个大型文件最开始的信息,如果用「cat」打印,那么最前面的信息都被刷屏刷掉了,这时我们就可以用「tac」进行反向打印,就能看到最前面的信息
  
  

9 时间相关指令

9.1 显示时间

  • 语法:「date」 选项 格式
  • 功能:用于显示时间、设置时间、完成时间与时间戳之间的相互转换等。

  
  Linux中,我们可以直接通过 「date」指令查看当前时间

在这里插入图片描述

  但是这样的显式格式看起来不太好,它是系统的默认时间格式
  如果我们想要修改格式,我们可以增加选项
  
  下面是「date」常用选项:

  • 「%H」:小时(00…23)
  • 「%M」:分钟(00…59)
  • 「%S」:秒(00…61)
  • 「%X」:相当于%H%M%S
  • 「%d」:如(01…31)
  • 「%m」:月份(01…12)
  • 「%Y」:完整年份(0000…9999)
  • 「%F」:相当于%Y-%m-%d

  
如:

在这里插入图片描述

  :「+」是固定的语法格式,但是选项之间的「-」和「_」是分隔符可以根据需要自己修改
  
  为什么我们可以查到时间呢?因为时间对于计算机来说是非常重要的,系统本身就要帮我们记录时间
  
  这里问一个小问题:
  计算机关机后,再次开机为什么还能准确的显示时间呢 ?
  大家有没有想过,电脑关机后都断电了,没有电源,为什么还能记录准确时间呢?

  其实不管是笔记本电脑还是台式机,在其主板上都会有一个纽扣电池,这个纽扣电池就可以让系统主板一直给我们记录时间。
  所以当电脑关个一年半载,再次开机时间就不对了,因为纽扣电池早就没电了,主板也就不能记录时间,

在这里插入图片描述

  
  

9.2 时间戳

  我们往系统中输入:『date +%s』 看看会发生什么

在这里插入图片描述

  
  这一串数字式什么呢?不懂,别急我们多输入几次,看看有什么发现

在这里插入图片描述

  我们发现,随着我们的不断查看,这串数字在不断增加

  这个东西是什么呢?
  这里就要引入一个新的概念:时间戳

  上述显示出的17279…一串的数字是格林威治时间戳

  Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从 1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

  我们所有的计算机记录时间,并不是按年月日来记录的,因为维护一个字符串太复杂了。计算机内部会维持一个线性递增的计数器,每过一秒(其实是微妙)让这个计数器++ ,而计数的时间是从1970年1月1日的午夜开始。我们把1970年1月1日的午夜到现在所经过的秒数称为时间戳
  而英国的格林威治是世界时间的约定点,因此也叫格林威治时间戳
  
  时间戳有什么用呢?

  • 转化为年月日的时间
  • 日志中记录的时间是时间戳。
  • 区间查找,锁定一个时间范围

  
  那时间戳怎么转换成对应的标准时间呢?如下

在这里插入图片描述

  
  那我们是不是可以查看时间戳为 0 的时间呢?

在这里插入图片描述

  因为北京在东八区,与格林威治有 8 小时的时间差,所以这里显示的是 1970年1月1日早上8点
  

9.3 「cal」 指令

  「cal」命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 “阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

  • 语法:cal [选项] [月份] [年份]
  • 功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。

在这里插入图片描述

  
选项:

  • 「-3」: 显示系统前一个月,当前月,下一个月的月历。
  • 「-j」 :显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)。
  • 「-y」: 显示当前年份的日历。

  
  
  
  


  好啦,本期关于基本指令的知识就介绍到这里啦,希望本期博客能对你有所帮助。同时,如果有错误的地方请多多指正,让我们在 Linux 的学习路上一起进步!

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

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

相关文章

面向对象技术简述(含设计模式)

6.9.2 面向对象技术 面向对象 对象 分类 继承 通过消息的通信 面向对象 对象 分类 继承 通过消息的通信 面向对象对象分类继承通过消息的通信其中包括: 对象 运行的实体;既包含属性/数据,又包含方法/行为/操作数据的函数;…

【信号处理】基于联合图像表示的深度学习卷积神经网络

Combined Signal Representations for Modulation Classification Using Deep Learning: Ambiguity Function, Constellation Diagram, and Eye Diagram 信号表示 Ambiguity Function(AF) 模糊函数描述了信号的两个维度(dimensions):延迟(delay)和多普勒(Doppler)。 …

【C++练习】两个实型数的加法运算

题目: 编写一个C程序,实现两个实型数的加法运算并输出结果。 要求: 定义一个函数 dadd,该函数接收两个 double 类型的参数,并返回它们的和。在 main 函数中,提示用户输入两个实型数(double 类…

【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)

博主说明:本文项目编号 T 061 ,文末自助获取源码 \color{red}{T061,文末自助获取源码} T061,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

Sql面试题二:请查询出用户连续三天登录的所有数据记录

问题: 现有用户登录记录表,请查询出用户连续三天登录的所有数据记录 id dt 1 2024-04-25 1 2024-04-26 1 2024-04-27 1 2024-04-28 1 2024-04-30 1 2024-05-01 1 2024-05-02 1 2024-05-04 1 2024-05-05 2 2…

科研绘图系列:R语言分组堆积图(grouped stacked barplot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包准备画图主题数据链接导入数据画图数据准备图例图1图2合并图系统信息介绍 分组堆积图(Grouped Stacked Bar Chart)是一种数据可视化图表,它结合了分组柱状图和堆积柱状图…

世界技能竞赛大数据应用开发环境1:1还原

集群情况 模块A搭建环境,在容器中搭建大数据平台 Pc机,安装安装比赛需要软件 模块B中使用idea快速开发完成数据处理 模块E包含了接口数据,使用vs code快速搭建vue数据可视化

【网络协议大花园】应用层 http协议的使用小技巧,用好了都不用加班,效率翻两倍(下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

SpringBoot源码解析(一)

SpringBoot自动装配原理 SpringBootApplication注解 我们在使用SpringBoot时,通常使用的是SpringBootApplication这个注解,比如: 而这个注解的定义为下图,可以发现这个注解上有另外三个注解:SpringBootConfiguration…

流类库与输入输出

来源:《C语言程序设计》 像C语言一样,C语言也没有输入输出语句。 但C标准库中有一个面向对象的输入输出软件包,即I/O流类库。 流是I/O流类的中心概念。 ------ I/O流类库是C语言中I/O函数在面向对象的程序设计方法中的一个替换产品。 -…

k8s图形化显示(KRM)

在master节点 kubectl get po -n kube-system 这个命令会列出 kube-system 命名空间中的所有 Pod 的状态和相关信息,比如名称、状态、重启次数等。 systemctl status kubelet #查看kubelet状态 yum install git #下载git命令 git clone https://gitee.com/duk…

理解鸿蒙app 开发中的 context

是什么 Context是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用文件路径)、area(文件分区…

ML1:sklearn env

sklearn: 中文参考: https://scikit-learn.cn/stable/modules/linear_model.html#ordinary-least-squares https://scikit-learn.org.cn/view/4.html ——》为主,不懂地方参考上面中文以及下面英文 英文参考: https://scikit…

五分钟入门双拼!

‍这是从零开始学双拼的第一篇:概述 双拼的原理 如果你使用全拼,想要完整敲出一个字的读音,需要敲出这个字拼音的每个字母。 虽然简拼能简化一点步骤,但除非是很常见的成语、俗语,否则重码率很高,选词很…

基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路

一、项目概述 随着电动车的普及,充电桩作为关键基础设施,其智能化、网络化管理显得尤为重要。本项目旨在基于STM32微控制器开发一款智能充电桩,能够实现高效的充电监控与管理。项目通过物联网技术,提供实时数据监测、远程管理、用…

毕业后如何查找获取文献

当我们毕业后就无法再使用自己学校的数据库资源了,如果需要查找文献该从哪里获取资源呢?下面这个方法很简单而且有效: 一、首先选对科研工具 文献党下载器,把大量数据库资源整合在一起,直接去文献来源数据库查找获取…

串口接收,不定长数据接收

###1.CUBE-MX配置串口 2.我采用串口中断接收,打开中断接口 3.时钟同样8倍频,1分频,使用内部时钟 打开串口中断 main() { __HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE); // 启用空闲中断__HAL_UART_ENABLE_IT(&huart1, UART_IT_R…

2024 高质量 Java 面试题集锦:高级 Java 工程师面试八股汇总

最近感慨面试难的人越来越多了,一方面是市场环境,更重要的一方面是企业对 Java 的人才要求越来越高了。 基本上这样感慨的分为两类人,第一,虽然挂着 3、5 年经验,但肚子里货少,也没啥拿得出手的项目&#x…

express 使用JWT认证

1、JWT的理解 JWT 的组成部分: 分别是 Header(头部)、Payload(有效荷载)、Signature(签名) 三者之间使用英文的"."分隔, Pyload 部分才是真正的用户信息,他是用户信息经过加密之后生成的字符串 Header 和 Signature 是 安全性相关的部分,只是为了保证 Tok…

linux将mysql加到systemctl命令中

linux中,想将mysql加到systemctl命令中,首先需要确定mysql的安装位置 在/etc/systemd/system目录下新建mysql.service vim /etc/systemd/system/mysql.service 复制如下内容:确保你自己的mysql路径是否正确 [Unit] DescriptionMySQL Server…