Linux基本操作符(1)

简介: Linux基本操作符(1)

什么叫操作系统,我相信如果是学计算机的都听说过,但是还没有学习过的不知道具体是什么。操作系统就是一款进行软硬件资源管理系统。通俗来讲,我们使用的电脑设备都是由硬件、设备驱动、操作系统以及应用软件构成的。但是如果没有操作系统的承上启下,我们一般人就无法去驾驭并且灵活使用计算机。


那为什么要进行软硬件资源管理呢?我们可以将操作系统比作一个工具,对向上的软件提供良好的稳定服务。

34174b171f9b4a38a3c57678d36e0666.png

那搭建Linux平台的方法,博主已经给大家分享过了,如果有需要可以访问以下链接:


如何搭建Linux平台

https://blog.csdn.net/m0_74755811/article/details/132981688?spm=1001.2014.3001.5501


那我们就用博主最推荐的方法来——使用云服务器来开展Linux的内容分享。

Linux的登录

打开我们的xshell,进入页面后我们将我们所购买的云服务器ip地址复制,用shh. root@+ip即可登录,再输入密码就可以登录我们的Linux界面。


还有一种方法就是在xsheel的左上角有一个新建会话,我们可以新建一个属性,名称可以按照自己的意愿起,主机填入自己的IP地址,说明可有可无。点击确定就有自己的一个会话了。每当我们打开xshell都会弹出来这个会话框,我们点击连接然后输入密码即可登录Linux。

4eefc3753d97411db0d18a88137cfbaf.png

当出现一下字母证明成功进入Linux服务器

255d55a898004f37b8d8c44c4e21ebbe.png

Linux下基本指令

指令操作的理解

Linux在操作时是纯指令操作的,其实windows也是支持指令操作的,我们可以打开自己的菜单然后搜索cmd。

ee3814dec76b4fe0bcdd20f625e2dd92.png

我们现在使用的windows系统都是可视化的图形化界面,我们通过鼠标的点击进行操作,但是在之前我们都是纯靠指令,就和键盘鼠标一样,一定是先出现键盘,慢慢发展在出现鼠标,最后又发展有了我们的触摸屏。

几个与用户操作符

当我们需要知道当前登录Linux系统的用户,我们可以输入whoami,系统返回的就是当前操作用户的用户名

96ba0797347744b4b549d82c8ae37781.png

我们也可以使用who来查看当前有几个用户使用这个IP下的服务器,以及登录的时间

397b1dbc1d5247c1a1e1019895df80e0.png

 ls 指令

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

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


常用选项:

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。

-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录

-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件

-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件

-l 列出文件的详细信息。

-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)

-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表

示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)

-r 对目录反向排序。

-t 以时间排序。

-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

-R 列出所有子目录下的文件。(递归)

-1 一行只输出一个文件。

windows相信大家都比较熟悉,我们使用windows创建一个空文件,这个文件需要占据内存吗?建立一个0kb的文本文件还是要占据磁盘空间的。为什么呢?

因为一个文件还有文件名字、文件创建时间、文件类型……这些信息也是数据,当我们关键后再次打开时,这些东西都还是存在的。

所以文件 = 文件内容 + 文件属性。这些东西都是二进制数据,都要被存储。

所以我们在之前学习中一般都是文本操作,并没有对文件属性进行操作,或者说操作非常少,但是在Linux中我们就可以对文件的属性进行强有力的操作。


在Linux种,我们使用ls,可以打印当前文件目录下的文件名。

6d8e399142004ba094283ab1d72258c3.png

在ls后加 -l可以输出当前目录下的文件的详细属性:

9b7b184c3bb448d6a915f6afb69f7f67.png

ls -l也可以用ll直接替代,为什么呢?ll = ls -l

b907782eca354b298261cdd66543e823.png

在ls后加入-a:列出目录下的所有文件,包括以 . 开头的隐含文件。


我们在使用ls时只可以看到没有被隐藏的文件,而在ls后加上 -a就可看到被隐藏的文件:

477302d1010e4e34876af8d5579e1d51.png

f21697821ec34448b29ba40dde1a27fe.png

如果还想要看到的更加详细,我们可以进行组合添加。ls -al、ls -la、 ls -l -a、ls -a -l都可以展示所有文件的具体属性(包括被隐藏的)。

e538d147d3b544e1978a78b3735e747f.png

这就与我们Windows中的隐藏文件一样。隐藏文件,在Linux中的隐藏文件通常以.开头。

e5181c0a9600405f94ecb645ef4e77d0.png

那我们就会发现,隐藏文件显示出来都有一个共同点,就是都有.与..,那这两个有什么区别呢?


一个.:当前路径


两个点:上级路径


我们先将概念说出,在继续往后学习我们就能知道它们的用途。

pwd命令

语法: pwd

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


当我们想知道现在身处于哪个路径时,我们就可以使用pwd命令符进行。

54f6018a801a4578948a82eba5f18121.png

我们原本身处于/home/why的路径中,当我们进入/home后再次获取路径,系统就会显示当前路径为/home。


这与Windows中的路径非常相似:

3cbf124119504f99a32c6a202af8c98f.png693ed0ab20a848b3947a8afeb2b861a3.png

C:\Program Files (x86)\Microsoft Visual Studio\Installer\ko这个就是Windows中的路径


/home/why是Linux中的路径,它们的分隔符不同,Linux选择的是\正向斜杠分隔符,而Windows选择的是反向斜杠分隔符/。

cd 指令

语法:cd 目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下。


cd .. : 返回上级目录

cd /home/litao/linux/ : 绝对路径

cd ../day02/ : 相对路径

cd ~:进入用户家目

cd -:返回最近访问目录


cd可以让我们进入目录中,就如同在Windows中一个个点击目录去寻找我们目标文件。


cd . :进入当前路径。这个一般是没有用的,因为我们本来就在当前路径中,所以对路径不会有影响。

41161d4ba37b4566b23c3de853a29248.png

cd ..:..的作用就是上一级路径,所以cd ..就是访问上一级路径。目前我们在/home路径中,当我们cd..就会返回上一级中。

812987ca6d694baeb9fd2d40e6ea4213.png

这与windows中的返回到lnstalln功能相同。

d98e0f4947254409b7dc3922e0934642.png

现在文件路径已经到了/,如果再继续返回上级路径会是怎么样呢?

20d4ed31d0184c67b6d13272cd9032d2.png

很显然没有改变,所以/就是linux下的根目录。几乎所有的文件系统就是一个多叉树,windows也是如此。

d4ec26feb0584b79b1136954d80c89e5.png

叶子节点:一定是普通文件,或者是空目录

路上节点,非叶子节点,一定是目录

访问一个文件的本质,需要先找到它,而找到文件的本质就是再一颗多叉树中进行节点的查找。

那什么是路径,为什么要有路径呢?

路径:用一串特殊符号分割的字符串。两个分隔符之间的一定是目录或者文件夹,而最后一个分隔符后的可能是文件或目录。

而路径的本质就是多叉树的搜索路径。

路径又分为绝对路径与相对路径。

相对路径:相对于自身的当前所属的目录为参考点,我们定位一个文件的路径为相对路径。

绝对路径:我们将从/目录开始,定位一个叶子文件的方式,形成的路径成为绝对路径。其实也可以理解为自身在根目录的相对路径。

参考上面多叉树的图,我们想要寻找test.c,那绝对路径就是/home/bit/test.c。而如果使用相对路径,假设我们在dev的目录中,那相对路径就是../home/bit/test.c。

绝对路径的优势就是无论我们身处于哪个目录,使用绝对路径都可以找到。而相对路径的局限性就出来了,每一个目录所对应的绝对路径唯一。


为了证明我们的文件系统为树状结构,我们可以引出一个tree命令,在tree后面跟上 节点目录就可以将次目录下的内容以树状的形式表达出来。

ccb74110bb00453b9568ac6753bfc1d2.png

我们打印出在/home/why下的树状结构。


我们需要在Linux中输入yum install -y tree指令,安装后才可以进行树的打印。

cd - 指令:返回最近访问目录


我们现在的路径为/home/why,当我们直接返回到根目录/,然后再cd -我们就可以直接回到/home/why中。

148680b1a1404d2cb8e80f11ce1e62bf.png

cd ~:进入用户家目录。


我们无论进入到哪个目录中去,只要输入cd ~就会进入到家目录中去。什么是家目录呢?


如果我们的用户是主用户root,那进入的家目录就是/root。如果我们的用户为次用户,进入家目录就是/home/用户名。

6bdababa55244971a3fb9bbc4f472904.png

我这个不是主用户,是root的可以实验一下。


总结:默认登录时,默认登录的路径,就是当前登录的家目录。

touch指令

语法:touch [选项]... 文件...

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


常用选项:

-a   或--time=atime或--time=access或--time=use只更改存取时间。

-c   或--no-create 不建立任何文档。

-d 使用指定的日期时间,而非现在的时间。

-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m   或--time=mtime或--time=modify 只更改变动时间。

-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t 使用指定的日期时间,而非现在的时间。


touch +文件名可以在当前目录下创建一个文件。

93ee7ef11f224c78a24dadb130ea8173.png

我们也可以快速创建多组文件:

79681b8331254273b0c4d897dd705ee1.png

如果我们想要查看某个文件的详细属性时,我们可以输入stat +文件名。

73933345d7b640c8a3d1954fbe64f04f.png

mkdir指令

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname”的目录


常用选项:

-p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;


mkdir指令与touch非常相似,是创建目录的指令。

55b27041dc6446018c988f721b7e6eb2.png

创建的文件夹默认为空。那我们可以直接可以创建一个路径呢?答案是不行。只能一个一个创建。


但是我们可以使用mkdir -p +创建路径即可。

dc2fdb0e12b34ebcb7555afcc682b9e9.png

rmdir指令 && rm 指令

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。

语法:rmdir [-p][dirName]

适用对象:具有当前目录操作权限的所有使用者

功能:删除空目录


常用选项:

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。


rm命令可以同时删除文件或目录


语法:rm [-f-i-r-v][dirName/dir]

适用对象:所有使用者

功能:删除文件或目录

常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除

-i 删除前逐一询问确认

-r 删除目录及其下所有文件


rmdir只可以删除一个空的文件夹但不能删除文件。

0bc1f37f6f5e4522b474f025676f4aa5.png

c1038d5d651b4743b2ca0f2140720079.png

但是我们可以使用rm指令进行删除。

b9402388b9864802af31df6cca6b3c98.png

但是为什么报错了呢?因为文件夹本来就是一个树状结构,就是递归定义的,所以得深度遍历在删除。

8d163628dacd480ca4febe88b987995d.png

所以得用递归一层层遍历,然后确定要删除即可将路径中的所有文件夹全部删除。但是只有root用户有询问交互,然后回答y/n。普通用户没有这个权限,所以直接就会删除。


rm -rf:这个指令是强制删除指令,界面就不会有交互直接删除。


删除文件直接使用rm -f + 文件名指令,强制删除不会有交互,但是用rm +文件名会有交互询问。

aaa00e0ba3e245dbbe2c72aa179ba510.png


以上是本次Linux部分基本操作符,也是本次全部内容。更多Linux操作符在下次博客中,尽情期待!!!


感谢大家观看,一键三连支持一下吧!!!

目录
相关文章
|
7月前
|
机器学习/深度学习 存储 Linux
Linux基本操作符(2)
Linux基本操作符(2)
34 0
|
15小时前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是一个功能强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是Linux必学的60个命令的概览,但请注意,这里可能无法列出所有命令的完整语法和选项,仅作为参考
|
17小时前
|
监控 Linux 数据处理
|
17小时前
|
编解码 Ubuntu Linux
|
23小时前
|
JSON Linux 数据格式
Linux命令发送http
请注意,`curl`命令非常灵活,可以根据您的需求进行多种配置和自定义。您可以查看 `curl`命令的文档以获取更多详细信息。
4 0