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

Linux系统 --- 指令

指令

  • 前言
  • 一、基本指令
    • pwd
    • whoami
    • mkdir
    • touch
    • cd
    • ls
    • clear
  • 二、详细介绍指令
    • 1、ls
      • ls -l
      • Linux系统下的文件类型
      • ls -a
      • ls -l - a / ll
    • 2、cd
      • Linux的文件系统和路径
      • cd . / ..
      • cd 绝对路径/相对路径
      • cd -
      • cd ~
    • 3、mkdir
      • mkdir -p
    • 4、rm
      • rm -i
      • rm -f
      • rm -r (rm -ri)
      • rm -rf
    • 5、man
    • 6、cp
      • scp
    • 7、mv
    • 8、echo
      • echo >
      • echo >>
    • 9、cat
      • cat <
      • tac <
      • cat -n/-b/-s
    • 10、more && less
      • more
      • less
    • 11、head && tail
      • head
      • tail
      • 管道
    • 12、find
    • 13、alias
    • 14、grep
      • grep -v/-n/-i
    • 15、zip / unzip
    • 16、tar
    • 17、rz / sz
    • 18、date / cal / top / bc
      • date
      • cal
      • top
      • bc
    • 19、uname

前言

在Linux系统下,指令就是在命令行界面中输入指定的字符串序列,以用来完成文件管理、系统监控等的一系列操作。它是用户和Linux系统内核进行交互的主要方式。

学习Linux系统时,有些地方会对照着Windows系统进行类比学习。
本篇指令学习所用到两种用户,root用户和普通用户(dyj),所使用的Linux发行版本是Ubuntu22.04。
在这里插入图片描述

一、基本指令

所谓基本指令也就是非常基础的指令,学习后面的指令必须要掌握这里提到的基本指令。

pwd

学习此指令之前,在Windows系统下,我们开机之后所见到的页面,也就是桌面,它其实也是一个文件夹,是在C盘用户(Users)下自己的用户名(hahah)这个文件夹内的桌面(Desktop)这个文件夹里面,由于此文件夹里面的内容做了图形化处理,所以也就有了我们桌面的样子。也就是说我们一开始就是所处在一个特定的路径之下。
Windows系统下桌面文件夹的路径
回到Linux系统下,我们完成登录后,在界面输入pwd,即可知道我们当前是所处在哪一个目录。
root用户:
在这里插入图片描述

普通用户:
在这里插入图片描述
这上述两条路径就是Linux系统登录成功后,用户默认处在的目录里。为什么会有两条不同的路径,因为用户不同,所处的默认目录也会不同。
当然,这只是pwd的用法之一,我们在任意目录下,pwd同样也可以知道我们当前是所处在哪一个目录。
在这里插入图片描述

whoami

此命令是用来确认当前登录的用户是谁
root用户:
在这里插入图片描述

普通用户:
在这里插入图片描述

mkdir

此命令是用来创建一个空的目录(文件夹),在Linux系统下,目录就是Windows系统的文件夹。
在这里插入图片描述
上述指令是在test01这个目录下又创建了一个test02的空目录,cd指令是进入test02此目录,详情请在下文cd部分观看,之后再使用pwd输出我当前在哪一个目录里。

touch

此命令是用来创建一个普通文件的指令。例如创建.c源文件,.txt文本文件等。
在这里插入图片描述
上述指令是在test02这个目录里面创建了一个名叫code.c的普通文件,ls指令是输出当前目录下内容,详情请在下文ls部分观看。

cd

此指令是指定目标目录,并跳转至指定目录。例如上文的cd test02,就是跳转至test02这个目录。
在这里插入图片描述
上述指令是从默认目录跳转至test01这个目录里面去了。

ls

此指令是=显示当前目录里面的内容,此内容可以是普通文件,也可以是此目录里面的子目录
在这里插入图片描述
上述指令是对test01使用ls之后,显示出子目录test02,进入test02这个目录里面,对其使用ls之后,显示出普通文件code.c。

clear

此指令就是一个清空屏幕的操作。

二、详细介绍指令

1、ls

上文说过ls是罗列、显示出当前目录里的内容。

在细讲ls指令之前,需要了解一个概念,在Windows系统里,我们创建了一个内容为空的空的文本文件XXX.txt,尽管这个文件内容为空,但是它依旧是占内存空间的,文件创建的时间,文件名,文件创建的用户,就是这之类的文件属性在占用内存空间,所以有一个结论,一个文件 = 文件属性 + 文件内容
现在再回看ls,会发现罗列出的只是文件的名称,所以ls是罗列当前目录下的子目录或者文件的名称

ls -l

ls -l这种样式的指令是ls(指令本身)加上-l(选项)组成的,其作用是罗列出当前目录下更加详细的文件属性或者子目录
在这里插入图片描述
在这里插入图片描述
上面罗列出的就是一些创建时间,文件大小,文件名称,所创建的用户,还有一个接下来要介绍的文件类型。

(了解)stat指令更加详细的罗列文件属性信息在这里插入图片描述

Linux系统下的文件类型

众所周知,在Windows系统下,标识一个文件的类型是通过文件的后缀来标识的,例如C源文件XXX.c,文本文件XXX.txt,可执行文件XXX.exe,等等很多的文件后缀;而在Linux系统下,标识一个文件类型不由文件后缀来决定,是通过文件属性最前面的一串英文的第一个字符所决定的

例如上文ls -l中演示的test02文件,它最前面的一个字符是d,所以d就代表目录文件;演示的code.c文件,它最前面的一个字符是-,所以小横杠就代表普通文件

尽管Linux系统不是通过后缀来标识文件类型的,但是不代表用户不能使用后缀来标识文件类型,在对文件进行命名的时候可以加上后缀,以增加可读性。

(了解)file指令可以显示出更加详细的文件类型。
对于目录文件:
在这里插入图片描述

对于普通文件:
在这里插入图片描述

ls -a

在讲此指令之前,需要了解在Windows系统里面是有隐藏文件(相较于正常文件,此类文件颜色更淡)存在的,在Linux系统下也是一样的存在着,隐藏文件是用一个点来标识的,在Linux下,空目录都会有一个点,两个点的隐藏文件。
ls指令加上-a选项,就是显示此目录下所有的内容,包括隐藏文件
在这里插入图片描述
以至于一个点,两个点是什么,有什么用,我放在详细介绍cd指令里面去介绍。

ls -l - a / ll

这种样式的指令其实是指令本身选项的组合,-l是显示更多的文件属性,-a是显示隐藏文件,两者加起来就是显示包括隐藏文件的所有文件属性。也可以直接使用两个ll,这种写法也是可以的。
在这里插入图片描述

2、cd

上文曾说,cd是指定一个目标目录,并跳转至目标目录。

Linux的文件系统和路径

在细说cd指令之前,需要了解不论是Windows还是Linux系统,它们的文件系统都是一颗多叉树,并且标识文文件唯一性的都是通过路径来标识的,多叉树很好理解,就是我们学习的数据结构里的树状结构,通俗讲就是一个目录里嵌套子目录的这种情况;路径就是/root/test01/test02,这种样式的写法,在第一个命令pwd里面,Win和Linux的路径都有展示过。
在这里插入图片描述
既然Linux文件系统是一颗多叉树,此时就有两个显而易见的结论:
结论1:其叶子节点一定是空目录或者普通文件。
结论2:其非叶子节点的本质是目录。

那么既然认识到了文件系统是多叉树,此时就又有一个问题,为什么路径能唯一标识文件,这是因为,树的每一个节点的双亲节点都唯一
所以也就能够引申出两种路径,绝对路径和相对路径。
绝对路径:以根节点(‘/’)为起点,到任意文件或者目录的路径。
相对路径:以当前目录或者文件为起点,到任意文件或者目录的路径。

上述两种路径都能唯一标识文件,不过绝对路径只有一条,而相对路径有可能有多条。

(了解)如何证明Linux的文件系统是树状结构? — tree命令
此命令一般在系统里面是没有安装的,安装命令如下:
Ubuntu:apt install -y tree
Centos:yum install -y tree

演示tree一下/root目录:
在这里插入图片描述

cd . / …

回到cd指令本身,在详细介绍ls部分,见到了一个点.和两个点…,一个点代表着当前路径,两个点代表上级路径。所以:
cd . :进入当前目录。
cd … :进入上级目录。

在这里插入图片描述
在这里插入图片描述
这个cd . 指令看起来没有什么区别,但是在我们要编译运行代码文件的时候,就需要它的出现了,因为在编译运行文件时候,首先的一步就是要找到它,所以前面就会接上 ./ 来表示在当前这个目录下寻找此文件。

cd 绝对路径/相对路径

我们也可以接绝对或者相对路径来进入目标目录。
假设当前我们在根目录下:

cd 绝对路径:
在这里插入图片描述

cd 相对路径:
在这里插入图片描述
相对路径这里,本身我就在test02这个目录下,现在想去test01目录下的子目录test03,相对路径如图所示。

cd -

cd - 是返回到上次所处的目录下,反复执行cd -命令,就可以在两个目录间反复跳跃。
在这里插入图片描述

cd ~

cd ~ 是返回家目录。

root用户家目录:
在这里插入图片描述

普通用户家目录:
在这里插入图片描述

3、mkdir

mkdir -p

单一个mkdir是创建一个空目录,mkdir -p是创建一连串的路径
在这里插入图片描述

(不重要)rmkdir用来删除空的目录。

4、rm

rm是Linux系统下的删除命令,而且Linux下没有所谓的“回收站”,也就是删除不可恢复。

单一个rm是用来删除普通文件的,并且不会进行询问是否要删除此文件。
在这里插入图片描述

rm -i

需要进行询问删除是rm -i选项,此时需要按下y(yes)或者n(no)
在这里插入图片描述

rm -f

rm -f是强制删除文件指令,也就是不会产生上面的询问是否需要删除。

rm -r (rm -ri)

rm -r是用来删除目录的,由于文件系统是一个树状结构,所以要删除目录就是使用递归删除,这个也会提醒。
在这里插入图片描述

rm -rf

rm -rf是强制删除目录。 这个需要特别注意一下,别使用它时删除了特别重要的目录。

5、man

此指令的作用是相当于帮助手册,详细罗列出需要了解的例如指令,系统调用等的用法、作用,不过都是英语,若要退出手册按q。

用法:
man 指令/系统调用/C库函数(此使用较少),并且man本身也是有分类的。

man + 指令(举例whoami):
在这里插入图片描述
在这里插入图片描述

man + C库函数(举例printf):
在这里插入图片描述
在这里插入图片描述

man本身分类:
在这里插入图片描述
只需要了解前三个,1就是指令(默认的,平常不用写),2是系统调用,3是C库函数,使用后两个的语法是:man 2/3 + XXX。

6、cp

此指令就是Linux系统下的拷贝,复制指令

拷贝普通文件:cp 源文件 目标文件
在这里插入图片描述
上述指令是在test01目录下有我们的源文件code.c,使用了nano指令编辑了code.c的内容,现在在此目录下的子目录test04里有我们的目标文件testcp.c,拷贝语法就如上图所示,cat指令是用来查看文件的内容,后面我会介绍的。

拷贝目录:cp -rf 源目录 目标目录
在这里插入图片描述

scp

指令用于远程拷贝,用于两个Linux系统下的文件网络传输。

用法:
scp 指定文件 username@目标用户服务器IP:目标目录 (传输文件)
scp -r 指定目录 username@目标用户服务器IP:目标目录 (传输目录)

使用scp回车后会要求输入目标云服务器下此用户的密码,密码输入时不回显。

7、mv

此指令有两个用法一是移动目标文件或者目录,类比Win下的剪切功能,二是重命名

移动普通文件:mv 源文件 目标目录。
在这里插入图片描述

移动目录文件:mv 源目录 目标目录,这个不用加 -rf。
在这里插入图片描述

重命名:mv 源文件/目录文件 新的文件/目录名。
命名规则是系统中不存在,不可查找的新的文件名或者目录名。
在这里插入图片描述

8、echo

在了解此命令之前需要了解Linux系统的一个概念,就是在Linux系统下,一切皆“文件”,在计算机里常常有这两个操作,一个是向显示器打印,例如C语言的printf,另一个是从键盘获取数据,在Linux里就变成了向显示器文件写入,从键盘文件获取数据。

回到指令本身,echo指令是向显示器文件打印
在这里插入图片描述

echo >

echo后面跟上一个大于号,是讲内容从显示器文件打印更替为输出到指定文件。
在这里插入图片描述
针对上面的一个大于号,我们叫它为输出重定向,有两个特点,一是若指定文件不存在,则会先新建文件,再将内容输入进去;二是重复向一指定文件输出重定向,则是先请空旧内容,再输入进文件。

echo >>

两个大于号的就叫做追加重定向,也就是内容在文件内追加输出。
在这里插入图片描述

上述两个输出重定向和追加重定向不止可以向文件进行输出,也可以在不同的Linux用户的终端上进行输出。
在这里插入图片描述
在这里插入图片描述

在Linux系统里的根目录下有一个终端文件目录dev/pts,里面存储着你相同IP下用户的标识,例如我这里的root账号就是0,我又登录了一个普通账号,标识就多了一位,也就是普通账号是1,向着终端’0’,输出重定向,那么root账号的这个屏幕就会显现内容,向着终端’1’,输出重定向,那么普通账号的这个屏幕就会显现内容,追加重定向也是如此。

9、cat

此指令有两种用法,一个直接使用,另一个是cat + 文件。
先说cat + 文件,这个是用来查看短小文件的内容的,在上面的指令演示过程中已经演示过了。

直接使用cat是从键盘上获取数据,并回显到出来。退出按Ctrl c即可。
在这里插入图片描述

cat <

cat后面跟一个小于号,这个小于号就是输入重定向,是将文件的内容正序输出到屏幕上
在这里插入图片描述

tac <

此指令是将文件的内容倒序输出到屏幕上
在这里插入图片描述

cat -n/-b/-s

-n选项是将输出结果自动带有编号,空行也会被编号。
在这里插入图片描述

-b选项是对有效的内容进行编号。
在这里插入图片描述

-s选项会将连续的空行保留为一行。
在这里插入图片描述

10、more && less

这两个指令都是用来查看文件的内容的,与cat的区别在于这两个是用来查看长文件(例如日志文件)的内容。两个都是按q退出。

日志文件目录
Centos:/var/log/messages
Ubuntu:/var/log/syslog

more

此指令只支持空格向下翻,也就是按一次空格向下翻阅一次内容。

less

此指令支持方向键上下翻阅,也支持搜索匹配翻阅。
匹配: /搜索内容, N(向上匹配查找),n(向下匹配查找)
更加推荐使用这个。

11、head && tail

这两个指令是用来查看指定位置的文件内容。

head

此指令查看文件前几行的内容,没有给定选项,则默认只查看10行的内容。head -x,查看指定的x行内容
在这里插入图片描述
上述图片就是利用head查看前10行的日志信息。

tail

此指令查看文件末尾几行的内容,没有给定选项,则默认只查看10行的内容。tail -x,查看指定的x行内容。使用效果和head同理,这里不再举例。

管道

学习了上面两个指令,这里就可以衍生出管道这一种语法。
举例一种情景,在一个1000行的文件中,你想要准确获得中间500行到515之间这15的内容时,先前所学的指令不能直接到达我们所需要的要求,这时管道就可以然我们提取到文件中间的内容。
在这里插入图片描述
所谓的管道就是指令head和指令tail之间的 ‘|’ ,先前不是说Linux系统下一切皆“文件”,这里的管道也可以看成管道文件,并且结合实际,管道肯定是有入口出口的,结合上述指令,先将head -515这515行的内容输出给管道文件,再将管道文件内的515行文件内容经tail -15,选出最后15行的内容,这样就形成了读取文件中间内容的操作。

管道可以组合指令(不仅仅是这里的head和tail),以形成流水线处理。

12、find

此指令是查找的功能,是真的会在目录树里面去查找的。
语法是:find 查找的路径 -name(选项) 文件或者目录
在这里插入图片描述

find也可以去查找指令:
在这里插入图片描述
这是会发现出现的都是一条一条的路径,所以就可以得出结论我们所学的绝大多数指令,其本质都是在Linux系统里固定目录内的二进制可执行文件。(固定目录:/user/bin/xxx)

(延申)which && whereis
which指令是专门用来查找指令的,而whereis指令是用于找到系统中的源、二进制文件或者手册。

which指令:
在这里插入图片描述

whereis指令:
在这里插入图片描述

13、alias

指令是取别名
语法:alias 别名 = ‘指令’
不熟悉Linux系统的新手建议少用,并且这个起的别名是内存级的,也就是退出系统后会自动销毁。若有别名,则使用搜索指令时,会先去搜索别名,并不会其固定的目录下去搜索。

14、grep

此指令是行文本过滤工具,本身是区分大小写的,所谓的行文本过滤工具,其实就是让满足给定条件的内容显示输出出来

单一输入使用grep:
在这里插入图片描述
上述指令的意思是将htcode.c文件里面出现99的内容给输出显示出来。

grep -v/-n/-i

-v选项是和上面反过来,例如上面是只要出现99的就输出显示,这个是除开99选项的都输出出来。
-n选项是将输出的内容带上编号
-i选项是不区分大小写进行输出
在这里插入图片描述

15、zip / unzip

此指令是压缩/解压的作用。 此指令和下面的tar指令都是压缩/解压的作用,在Linux系统下压缩,打包不分家。

下载指令:
Centos:yum install zip / unzip
Ubuntu:apt install zip / unzip

zip语法:
zip xxx.zip 指定文件 - - - (压缩普通文件)
在这里插入图片描述

zip -r xxx.zip 指定目录 - - - (压缩目录)
在这里插入图片描述

unzip语法:
unzip xxx.zip - - - (解压在当前目录下)
解压至当前目录会覆盖源文件,导致看不出来什么区别,所以不做演示。

unzip xxx.zip -d 指定目录 - - - (解压在指定目录下)
在这里插入图片描述
上述指令是将test02.zip这个压缩文件解压至test01这个目录下的子目录test05。

16、tar

此指令是打包和解包的作用

用法:
tar czf或者cvzf xxx.tgz 指定文件或者目录 - - - (压缩打包成tgz文件)
在这里插入图片描述

tar xzf xxx.tgz - - - (解压至当前目录)
解压至当前目录会覆盖源文件,导致看不出来什么区别,所以不做演示。

tar xzf xxx.tgz -C 指定目录 - - - (解压至指定目录)
在这里插入图片描述

17、rz / sz

指令用于Windows和Linux系统下通过Xshell实现双系统的网络传输。

用法:
rz:是Windows传给Linux,可以输入指令传输,也可以直接将Win的文件拖拽进Linux进行传输。
sz:是Linux传给Windows,这个只能输入指令传输,并且需要安装。

下载指令:
Centos:yum install lrzsz
Ubuntu:apt install lrzsz

18、date / cal / top / bc

date

指令是默认输出Linux系统时
在这里插入图片描述

也可以格式化输出系统时
格式:date +%Y_%m_%d_%H:%M:%S,中间的连接符可以随意更换。
在这里插入图片描述

date +%s:获取时间戳
在这里插入图片描述
这里的时间戳是一个计数器,是从1970年1月1日午夜0点开始计算。

也可以和上面结合起来格式化将时间戳转化为时间:
格式:date +%Y_%m_%d_%H:%M:%S -d @时间戳。
在这里插入图片描述

cal

指令是输出日历。此指令需要安装。

下载指令:
Centos:yum install ncal
Ubuntu:apt install ncal

cal -3:输出上个月的日历。
cla 某年(例如2025):显现出2025年一整年的日历。

top

此指令相当于Windows里面的任务管理器,这里可以查看进程,cpu,内存等,若要退出按q。
在这里插入图片描述
也有升级的htop,当然这个要安装,这里有兴趣的可以自己去搜搜。

top -d 数字 -n 数字:按照一定的频率时间间隔来刷新。
例如:top -d 1 -n 5,就是每秒刷新一次,总共刷新5次。

bc

此指令是Linux系统下内置计算器,可以进行浮点数计算,这个了解即可。

19、uname

指令是用来输出显示系统信息的,常用的两个选项-a和-r
-a是输出显示机器的所有系统信息,例如,内核版本,架构等。
-r是只输出显示机器的内核版本。
在这里插入图片描述

(了解)cat /proc/cpuinfo 或者 lscpu ,显示cpu信息。
在这里插入图片描述

(了解)cat /proc/meminfo,显示内存信息。
在这里插入图片描述

(了解)查看系统版本

lsb_release -a
在这里插入图片描述
cat /etc/os-release
在这里插入图片描述

http://www.dtcms.com/a/346486.html

相关文章:

  • CMake link_directories()详细介绍与使用指南
  • 算法题(188):团伙
  • 【0基础PS】蒙版与剪贴蒙版详解
  • `strchr` 字符串查找函数
  • 信息结构统一论:物理世界与人类感知、认知及符号系统的桥梁
  • 嵌入式-时钟树和时钟树编程-Day20
  • 大宗商品、股票指数及ETF期权五档买卖分时tick级历史交易数据深度解析
  • zynq的vitis工程烧录到Winbond(华邦)型号W25Q256JVEQ的QSPI FLAHS
  • 2025最新版mgg格式转MP3,mflac转mp3,mgg格式如何转mp3?
  • FastText 词向量全景指南(没那么全)
  • 【论文】Zotero文献管理
  • [e3nn] docs | 不可约表示(Irreps)
  • AI 大模型 “进化史”:从参数竞赛到场景落地,技术突破藏着哪些逻辑?
  • C#_异步编程范式
  • kvcache比赛记录
  • JavaScript Object 操作方法及 API
  • GEO优化专家孟庆涛发布:《GEO内容优化的四大黄金标准》
  • 20250822 组题总结
  • 车辆方向数据集 - 物体检测
  • 深度学习:入门简介
  • 本地部署DeepSeek实战
  • 工作后的总结和反思1
  • Huggingface入门实践 Audio-NLP 语音-文字模型调用(一)
  • FPGA 在情绪识别领域的护理应用(四)
  • 【电子通识】芯片生产考验“三重门”之CP、FT与WAT测试
  • Excel表格指定数据读取写入到另一个Excel表中(指定列指定行)
  • 使用配置文件恢复开启Telnet端口(IndivKey方式)
  • 20250822给荣品RD-RK3588开发板刷Rockchip原厂的Android14时点亮荣品的8寸屏
  • 情绪感知+低延迟,声网语音在实战里太稳了
  • WindowsAPI|每天了解几个winAPI接口之网络配置相关文档Iphlpapi.h详细分析八