当前位置: 首页 > news >正文

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

【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.mrgr.cn/news/68688.html

相关文章:

  • (蓝桥杯C/C++)——基础算法(下)
  • git中的gitignore文件
  • 是时候用开源降低AI落地门槛了
  • 道品科技智慧农业中的自动气象检测站
  • 实习冲刺Day16
  • pdf 添加页眉页脚,获取前五页
  • 建筑安全员题库分享
  • 免费 CRM 软件推荐:2025年国内外这10款系统值得试
  • 【HarmonyOS】not supported when useNormalizedOHMUrl is not true.
  • Hatcher代数拓扑教材
  • 05 SQL炼金术:深入探索与实战优化
  • 继承(c++)
  • 牛客小白月赛104(未补)
  • QT项目之推箱子
  • MySQL库操作
  • 英语介词的介绍
  • DB157S-ASEMI小贴片整流桥DB157S
  • PySide6百炼成真系列(1)
  • LocalDate日期加减一天,mysql日期加减一天
  • 制作游戏外挂的技术栈有哪些
  • 数学建模---利用Matlab快速实现机器学习(上)
  • 有哪些支撑你走了很远的励志句子
  • 电路设计中的防接反电路
  • 「Mac玩转仓颉内测版2」入门篇2 - 编写第一个Cangjie程序
  • 【AtCoder】Beginner Contest 377-B.Avoid Rook Attack
  • 信发系统选型 之 开放系统+商显硬件