Linux基本指令

28 篇文章 2 订阅

在这里插入图片描述

🤖1. 为何使用命令行操作

Linux操作系统对于程序员来说,最好是采用命令行操作,在熟悉命令行的情况下,使用命令行工具可以比使用图形化界面(GUI)更快速和高效。命令行中的命令通常比GUI中的菜单和按钮更快捷,因为它们可以用更少的击键来完成相同的任务。通过命令行可以对Linux系统的每个方面进行控制,让我们更深入地了解Linux系统。

现在主流的操作系统(Windows Mac OS),都采用的是GUI,因为这对于普通用户更加友好,但早期的操作系统,都是采用纯命令行操作,没有GUI。所以Windows(Mac OS)也是可以用指令操作。
1
随着Linux的不断发展,Windows操作系统上也是兼容Linux指令的。
2

🫙2. Linux基本指令

Tips:
在xshell中,复制是ctrl + inert,粘贴是shift + insert

🐧2.1 pwd 指令

语法pwd

功能:显示当前用户所在目录
3

🐧2.2 mkdir 指令

语法mkdir [选项]dirname

功能:在当前目录下创建一个名为"dirname"的目录
4
我们也可以一次性建立多个目录,指令为mkdir -p dir1/dir2
5

Tips:

tree .指令是将当前目录结构以树状结构显示。

新系统里面是没有安装这个tree的,可用指令:yum install -y tree进行安装(需使用root账户进行安装)。

🐧2.3 ls 指令

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

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

常用选项

  • -a列出所有文件和子目录,包括以. 开头的隐藏文件。
  • -l以详细信息的格式列出文件和子目录,包括文件的权限、所有者、文件大小、创建时间等信息。
  • -F在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。
  • -r以相反的顺序列出文件和子目录,即逆序排序。
  • -t按时间排序列出文件和子目录,最新的在前面。
  • -s按文件大小排序列出文件和子目录,文件大小从大到小排序。
  • -R递归地列出子目录中的文件和子目录,包括隐藏文件。
  • G以彩色显示文件和目录,不同类型的文件和目录会以不同的颜色显示。

Tips:

文件里面什么都不写入,也是占据磁盘空间的

6
文件有它的文件名(text),有它的类型(.txt),这些都是属于文件的属性,属性也是数据,需要存储。

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

那么我们在对文件进行操作的时候,就是对其文件内容操作或者文件属性操作

7

我们这里发现,这些文件有drwxr-开头的,还有的是...,这些都是有区别的:

d开头表示这这是一个目录

-开头表示是一个普通文件

在Linux任何一个目录下,都有两个隐藏文件...

.表示当前路径,是用来定位当前目录的一个文件

..表示当前目录的上级目录
8

🐧2.4 cd 指令

语法cd 目录名

功能:进入指定目录

9

刚才讲到了..是回退到上一级目录,可是我们退到最后时却发现退到/就退不动了。

/表示Linux的根目录,目录里面又可以放目录或者普通文件,这就代表了Linux的整个目录结构,是一个多叉树结构

10

所以我们对所以文件或者目录的增删改查,本质都是对这棵多叉树的增删改查

那么我们就可以从/开始往下找到我们想要的位置,这种叫做绝对路径,该路径有唯一性,所以一般用于一些固定场景

反之,我们也可以以当前所处的路径作为参照,来进行特点位置的定位,这种叫相对路径,该路径比较短,我们在命令行输入时,比较常用。

常用

cd ..: 返回上级目录

cd /home/d1/d2/d3: 绝对路径

cd ../day02/: 相对路径

cd ~:进入用户家目

11

cd -:返回最近访问目录

12

🐧2.5 touch 指令

语法touch [选项]

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

13

🐧2.6 rmdir指令 && rm 指令

  • rmdir dirname,删除空目录

14

  • rm filename(dirname),删除文件夹

    rm -f ,直接删除,无需确认(root用户下,删除文件或目录会确认)

    rm -r,递归删除(目录是递归定义)

15

使用rm -rf需要谨慎,因为这是直接把目录删除了,在Linux系统中,删除的目录或文件,很难找回。

rm -rf /h或者rm -rf /*,这是直接删除根目录,意思就是把这个Linux系统文件全部删除了,因为博主的也是新服务器,所以实验了一下:

16

这个系统文件删除之后,就连接不上了,然后直接去网页端重装系统就行。

🐧2.7 man 指令

man指令就相当于一个“字典”,Linux里面的指令很多,全部记住是较困难的,我们可采用man指令进行查询。

语法:man [选项] 命令

常见示例

  • man man查询自己如何使用
    17

  • man ls

18

  • man -3 printf库里面的函数,例如C语言里面的printf函数

19

Tips:

man手册是需要安装的,同样也是需要root用户
man手册下载yum install man
man手册安装yum install man-pages

man手册章节

  1. 用户命令:包含用户常用的命令的手册,如ls,cd,cp等等。
  2. 系统调用:包含操作系统提供的系统调用的手册,如read,write,open等等。
  3. C库函数:包含C语言标准库函数的手册,如printf,scanf,malloc等等。
  4. 设备和特殊文件:包含设备驱动程序和特殊文件的手册,如/dev/null,/dev/tty等等。
  5. 文件格式和约定:包含文件格式和约定的手册,如/etc/passwd,/etc/group等等。
  6. 游戏和演示:包含游戏和演示程序的手册,如tetris,snake等等。
  7. 其他杂项:包含其他一些杂项的手册,如troff,groff等等。
  8. 系统管理命令:包含系统管理员使用的命令的手册,如mount,fsck,passwd等等。
  9. 内核例程:包含内核例程的手册,如fork,exec等等。

🐧2.8 echo 指令

语法:echo [optoin] [str]

功能:向终端输出,文本或变量值

常用示例:

  • echo "hello world"

    20

  • echo "hello world > test.txt",将echo输出内容重定向到文件中(会将原文件内容清空,再继续写入)

    21

  • echo "linux" >> test.txt,追加重定向。

    22

🐧2.9 cat 指令

功能: 将一个或多个文件连接起来,或者显示文件内容。

常用示例:

  • cat
    23

    Tips:

    在Linux中,一切皆文件,比如显示器(向显示器写入数据,然后显示器读出来)、键盘(从键盘读取内容)、普通文件。

  • cat test.txt,指定了内容,从指定文件读取,输入重定向,显示文件内容。

    24

  • cat > newtest.txt,创建一个新文件,并在终端上显示一个空白的行,用户可以在该行输入内容,按 Ctrl+D 键表示输入结束。

    25

🐧2.10 cp 指令

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

**功能:**复制文件或目录

常用命令选项:

  • -r:递归复制整个目录树。
  • -i:在复制前询问是否覆盖目标文件。
  • -u:仅复制源文件中更新的文件到目标目录。
  • -p:保留文件的权限、所有者和时间戳等属性。
  • -f:强制复制,不询问是否覆盖目标文件。

常用示例:

  • cp test.txt test_backup.txt,复制文件

    26

  • cp test.txt ../mytest.txt,拷贝到指定路径

    27

  • cp -r d1 ../dd1,拷贝目录到指定路径(目录是递归定义的,所以要采用-r)

    28

🐧2.11 mv 指令

语法:mv [options] source destination

**功能:**用于移动或重命名文件或目录。

常见选项:

  • -f:强制移动,即使目标文件已经存在也不会提示。
  • -i:交互式移动,如果目标文件已经存在,会提示用户是否覆盖。
  • -n:不覆盖已经存在的文件。
  • -u:只会在源文件比目标文件新的时候才会执行移动。

常用示例:

  • mv test_backup.txt mytest.txt ,重命名文件(目录)名

    29

  • mv rd1 ../,剪切到指定位置

    30

这里的mv,既能重命名,又能剪切,哪我们该如何分辩呢?

31

如果源文件或目录和目标文件或目录在同一个文件系统内,那么 mv 命令执行后只是进行重命名操作;如果源文件或目录和目标文件或目录在不同的文件系统内,那么 mv 命令执行后会进行剪切操作。
如果在当前文件(目录)重命名,可理解为mv test.txt ./mytest.txt,那这样的话,我们就可以默认为mv指令就是剪切并重命名

🐧2.12 more 指令

功能:more指令可以将文本内容显示按需求显示一部分。

cat能将文本内容显示,但是如果文本内容过大,cat一次性显示完毕,那我们看这个文本的话就比较头疼。

常用选项:

  • -n 对输出的所有行编号
  • q 退出more

🐧2.13 less 指令

less指令和more指令类似,但是more指令只能向下翻,无法向上翻,less指令更加强大,支持前后滚动。

常见选项:

  • less filename: 查看指定文件的内容
  • less +num filename: 从文件的第num行开始查看
  • less -N filename: 显示行号
  • /pattern: 在文件中搜索指定的字符串pattern
  • n: 查找下一个匹配的字符串
  • N: 查找上一个匹配的字符串
  • g: 跳转到文件的开头
  • G: 跳转到文件的结尾
  • q: 退出less程序

🐧2.14 head 指令

**功能:**按下去显示开头内容

语法:```head [参数] [文件]

常用示例:

  • head test.txthead -3 test.txt

    32

🐧2.15 tail 指令

功能: 用于查看文件的末尾内容,默认情况下,它会输出文件的最后10行。tail还支持实时追踪文件的变化,非常适合用于日志文件的实时监控。

语法:tail [OPTION]... [FILE]...

常用命令:

  • tail filename: 查看文件的最后10行内容
  • tail -n num filename: 查看文件的最后num行内容
  • tail -f filename: 实时追踪文件的变化,输出新增的内容
  • tail -F filename: 实时追踪文件的变化,当文件被删除或重命名后,会自动重新打开文件

知道了headtail指令,再加上前面的重定向,我们就可以将一个文本的部分内容节选出来。

🐧2.16 时间指令

时间这个概念,在计算机里是十分重要的,很多大型的工程,都是需要用日志来记录的,日志可以记录我们程序运行的情况。如果程序出现问题,我们可以通过查看日志来很快的排除问题,查看出现问题的时间、事故的等级和基本信息。

在Linux中date指令可以显示时间:

33

这个时间不是按我们习惯的形式显示的,可用这些格式进行调整:

  • %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

例如:date +%Y-%m-%d_%H:%M:%S就可以按我们习惯的格式显示

34

时间这个概念,其实也是人为定义的,我们现在所采用的公历时间,其实是从1970年1月1日午夜00:00分开始所经过的秒数,这个叫时间戳

  • 时间->时间戳:date +%s

    35

  • 时间戳->时间:date -d@1684112488

    36

    当我们@0的时候,如图我们发现,显示的时间是1970年1月1日8时00分,这其实是我们因为我们国家和定义这个时间的地区有8小时的时差。

    37

我们发现这个时间戳,一直是在单调递增的,那么这肯定是会溢出的,通过查询当时间到达2038年1月19日3时14分08秒(北京时间2038年1月19日11时14分08秒)时,数值位全部向前进1,导致符号位被置1,其余31位为0。介时,将出现“时间回归”的情况,系统时间变为1901年12月13日20时45分52秒,系统将会出现错误。

有兴趣的可以查看此篇文章了解详情:时间溢出问题及解决办法

🐧2.17 cal 指令

功能:cal指令可以显示一年的日历、一个月的日历或指定时间段的日历(显示的是公历)。

命令格式: Cal [参数] [月份] [年份]

常用选项:

  • -m: 将周从星期一开始显示(默认是从星期日开始)。
  • -3: 在输出日历的上一个月和下一个月显示上一个月和下一个月的日期。
  • -y: 将一整年的日历显示出来。

38

🐧2.18 find 指令

功能: 用于在文件系统中查找符合条件的文件和目录。

语法:find [path] [expression]

常用示例:

  • find ~ name "*.txt"查找该路径下后缀为.txt的文件

    39

find 命令的功能非常强大,可以实现各种复杂的查找操作,例如按文件权限、文件属主、文件内容等等。需要注意的是,由于 find 命令的语法比较复杂,使用时需要仔细阅读帮助文档,并且小心使用 -delete 等危险选项,以免误删除文件。

🐧2.19 grep 指令

功能: 用于在文本文件中查找符合模式的行,并将其输出到屏幕或者保存到文件中。

语法:grep [options] pattern [file]pattern 表示要查找的模式,可以是一个字符串或者正则表达式;file 表示要查找的文件名,可以省略,省略时默认从标准输入中读取数据。

常用选项:

  • -i:忽略大小写。
  • -v:输出不匹配的行。
  • -w:仅匹配整个单词。
  • -n:输出匹配的行号。
  • -r:递归查找子目录。

常用示例:

  • grep '999' log.txt

    40

  • grep -i 'abc' log2.txt忽略大小写过滤

    41

  • grep -n '999' log.txt,将匹配到的过滤行附上编号

    42

🐧2.20 zip/unzip 指令

功能: zipunzip是用于压缩和解压缩文件的命令行工具。

语法:zip [options] zipfile.zip file1 file2 ... filen压缩;unzip zipfile.zip解压

在疫情时期,经常会有通知,将核酸采用截图发给XX,然后再由XX打包压缩发给上一级

43

这样的就是将所以截图打包,但是还未进行压缩,例如现在的微信、QQ,一般的打包文件都是需要进行压缩才能进行发送

44

打包的作用就是将多个文件汇总成一个文件,这样不容易造成文件的缺失

压缩可使体积变小,减少占据内存。

使用示例:zip -r d1.zip d1压缩,unzip d1.zip解压

45

这里的zip/unzip指令是需要安装的(root用户):

zip安装:yum install zip
unzip安装:yum install unzip

🐧2.21 tar 指令

tar也是属于一个打包压缩指令。

常用选项:

  • -c:创建归档文件。
  • -x:解包归档文件。
  • -z:使用 gzip 压缩和解压缩。
  • -j:使用 bzip2 压缩和解压缩。
  • -f:指定归档文件名。
  • -v:显示操作过程。
  • -C:解包时指定解压缩目录。

常用示例:

  • tar czf dd1.tar.gz d1,打包压缩

    46

  • tar tzf dd1.tar.gz,不解压,预览

    47

  • tar xzf dd1.tar.gz,解压

    48

    tar xzf dd1.tar.gz -C ..,解压到指定路径

    49

🐧2.22 bc 指令

bc指令是Linux里面的计算器:

50

🐧2.23 uname 指令

**功能:**获取电脑和操作系统的信息

语法:uname [选项]

常用选项:

  • -a:查看所以系统信息。
  • -r:显示操作系统版本。

示例:

51

🐧2.23 uname 指令

功能: 获取电脑和操作系统的信息

语法:uname [选项]

常用选项:

  • -a:查看所以系统信息。
  • -r:显示操作系统版本。

示例:

52

🧮3. 结语

这一篇讲解了Linux的一些指令,在我们平时写的一些程序,是可执行的,而这些指令也是可以执行的,所以指令本质上也是属于可执行程序。当我们胡乱输入指令时,会显示该指令不存在,这表明在执行这些指令时,系统会进行查找。

我们可用指令ls /usr/bin/查看这个系统中默认的指令。
53
知道了这些知识,指令这东西也没啥高科技,本质上就是一个文件,只不过它可以执行并达到某种效果。
感谢大家收看,如果有帮助的话三连支持一下,我们下期再见,如果还有下一期的话。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加法器+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值