W...Y的主页 😊
代码仓库分享 💕
目录
[ls 指令](#ls 指令)
[cd 指令](#cd 指令)
[rmdir指令 && rm 指令](#rmdir指令 && rm 指令)
什么叫操作系统,我相信如果是学计算机的都听说过,但是还没有学习过的不知道具体是什么。操作系统就是一款进行软硬件资源管理系统。通俗来讲,我们使用的电脑设备都是由硬件、设备驱动、操作系统以及应用软件构成的。但是如果没有操作系统的承上启下,我们一般人就无法去驾驭并且灵活使用计算机。
那为什么要进行软硬件资源管理呢?我们可以将操作系统比作一个工具,对向上的软件提供良好的稳定服务。
那搭建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。
当出现一下字母证明成功进入Linux服务器:
Linux下基本指令
指令操作的理解
Linux在操作时是纯指令操作的,其实windows也是支持指令操作的,我们可以打开自己的菜单然后搜索cmd。 我们现在使用的windows系统都是可视化的图形化界面,我们通过鼠标的点击进行操作,但是在之前我们都是纯靠指令,就和键盘鼠标一样,一定是先出现键盘,慢慢发展在出现鼠标,最后又发展有了我们的触摸屏。
几个与用户操作符
当我们需要知道当前登录Linux系统的用户,我们可以输入whoami,系统返回的就是当前操作用户的用户名
我们也可以使用who来查看当前有几个用户使用这个IP下的服务器,以及登录的时间
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,可以打印当前文件目录下的文件名。
在ls后加 -l可以输出当前目录下的文件的详细属性:
ls -l也可以用ll直接替代,为什么呢?ll = ls -l
在ls后加入-a:列出目录下的所有文件,包括以 . 开头的隐含文件。
我们在使用ls时只可以看到没有被隐藏的文件,而在ls后加上 -a就可看到被隐藏的文件:
如果还想要看到的更加详细,我们可以进行组合添加。ls -al、ls -la、 ls -l -a、ls -a -l都可以展示所有文件的具体属性(包括被隐藏的)。 这就与我们Windows中的隐藏文件一样。隐藏文件,在Linux中的隐藏文件通常以.开头。
那我们就会发现,隐藏文件显示出来都有一个共同点,就是都有.与..,那这两个有什么区别呢?
一个.:当前路径
两个点:上级路径
我们先将概念说出,在继续往后学习我们就能知道它们的用途。
pwd命令
语法: pwd
功能:显示用户当前所在的目录
当我们想知道现在身处于哪个路径时,我们就可以使用pwd命令符进行。
我们原本身处于/home/why的路径中,当我们进入/home后再次获取路径,系统就会显示当前路径为/home。
这与Windows中的路径非常相似: 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 . :进入当前路径。这个一般是没有用的,因为我们本来就在当前路径中,所以对路径不会有影响。
cd ..:..的作用就是上一级路径,所以cd ..就是访问上一级路径。目前我们在/home路径中,当我们cd..就会返回上一级中。
这与windows中的返回到lnstalln功能相同。
现在文件路径已经到了/,如果再继续返回上级路径会是怎么样呢?
很显然没有改变,所以/就是linux下的根目录。几乎所有的文件系统就是一个多叉树,windows也是如此。
叶子节点:一定是普通文件,或者是空目录
路上节点,非叶子节点,一定是目录
访问一个文件的本质,需要先找到它,而找到文件的本质就是再一颗多叉树中进行节点的查找。
那什么是路径,为什么要有路径呢?路径:用一串特殊符号分割的字符串。两个分隔符之间的一定是目录或者文件夹,而最后一个分隔符后的可能是文件或目录。
而路径的本质就是多叉树的搜索路径。
路径又分为绝对路径与相对路径。
相对路径:相对于自身的当前所属的目录为参考点,我们定位一个文件的路径为相对路径。
绝对路径:我们将从/目录开始,定位一个叶子文件的方式,形成的路径成为绝对路径。其实也可以理解为自身在根目录的相对路径。
参考上面多叉树的图,我们想要寻找test.c,那绝对路径就是/home/bit/test.c。而如果使用相对路径,假设我们在dev的目录中,那相对路径就是../home/bit/test.c。
绝对路径的优势就是无论我们身处于哪个目录,使用绝对路径都可以找到。而相对路径的局限性就出来了,每一个目录所对应的绝对路径唯一。
为了证明我们的文件系统为树状结构,我们可以引出一个tree命令,在tree后面跟上 节点目录就可以将次目录下的内容以树状的形式表达出来。
我们打印出在/home/why下的树状结构。
我们需要在Linux中输入yum install -y tree指令,安装后才可以进行树的打印。
cd - 指令:返回最近访问目录
我们现在的路径为/home/why,当我们直接返回到根目录/,然后再cd -我们就可以直接回到/home/why中。cd ~:进入用户家目录。
我们无论进入到哪个目录中去,只要输入cd ~就会进入到家目录中去。什么是家目录呢?
如果我们的用户是主用户root,那进入的家目录就是/root。如果我们的用户为次用户,进入家目录就是/home/用户名。
我这个不是主用户,是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 +文件名可以在当前目录下创建一个文件。
我们也可以快速创建多组文件:
如果我们想要查看某个文件的详细属性时,我们可以输入stat +文件名。
mkdir指令
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 "dirname"的目录
常用选项:
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
mkdir指令与touch非常相似,是创建目录的指令。
创建的文件夹默认为空。那我们可以直接可以创建一个路径呢?答案是不行。只能一个一个创建。
但是我们可以使用mkdir -p +创建路径即可。
rmdir指令 && rm 指令
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
rmdir只可以删除一个空的文件夹但不能删除文件。
但是我们可以使用rm指令进行删除。
但是为什么报错了呢?因为文件夹本来就是一个树状结构,就是递归定义的,所以得深度遍历在删除。
所以得用递归一层层遍历,然后确定要删除即可将路径中的所有文件夹全部删除。但是只有root用户有询问交互,然后回答y/n。普通用户没有这个权限,所以直接就会删除。
rm -rf:这个指令是强制删除指令,界面就不会有交互直接删除。
删除文件直接使用rm -f + 文件名指令,强制删除不会有交互,但是用rm +文件名会有交互询问。
以上是本次Linux部分基本操作符,也是本次全部内容。更多Linux操作符在下次博客中,尽情期待!!!
感谢大家观看,一键三连支持一下吧!!!