初识Linux
Linux是一个开源的、稳定的、安全的、灵活的操作系统,Linux下的操作都是通过指令来实现的
一、Linux基本命令
先简单了解一下Linux的命令
这里的mkdir是一个相当于Windows上新建文件夹的操作,创建一个名为super_little_monster的目录,使用ls可以显示出该目录下的所有子目录与文件,如果是文件,则会列出文件名以及其他信息
(这里中间的sl是我按错了~)
最高目录为/,进到里面(cd)就是~,创建一个文件夹slm,ls显示出当前目录下有两个文件夹,进到slm文件夹中(cd),显示用户当前所在的目录(pwd)
mkdir:创建目录
ls:显示当前目录下的所有子目录和文件
pwd:显示用户当前所在的目录
cd:将工作目录改到当前指定的目录下
一般来说指令是直接操作文件的,对文件的操作包括对文件内容的操作和对文件属性的操作
接下来我们来开始学习指令
1、ls指令
c
ls[选项][目录或文件]
选项 | 说明 |
---|---|
-a | 列出目录下的所有文件,包括以 . 开头的隐含文文件 |
-d | 将目录像文件一样显示,而不是显示其下的文件 |
-i | 输出文件的i节点的索引信息 |
-k | 以k字节的形式表示文件的大小 |
-l | 列出文件的详细信息 |
-n | 用数字的UID,GID代替名称 |
-F | 在每个文件名后附上一个字符以说明该文件的类型: * 表示可执行的普通文件; / 表示目录; @ 表示符号链接; | 表示FIFOs; = 表示套接字 |
-r | 对目录反向排序 |
-t | 以时间排序 |
-s | 在l文件名后输出该文件的大小 |
-R | 列出所有子目录下的文件 |
-1 | 一行只输出一个文件 |
下面简单来展示一下:
ls可以显示非隐藏文件
-a选项可以显示目录下所有的文件,包括隐藏文件
ls -la 相当于ls -l -a
选项是可以叠加使用的,然后它们的功能也可以叠加实现,就像下面这段指令 ls -l 就只会将非隐藏文件的详细信息显示出来,而上面这段指令就可以实现所有文件的详细信息显示
其中以 . 开头的文件是隐藏文件,隐藏文件在一般情况下是不可见的,只有在-a条件下可以显示
通过观察我们可以看到在目录中除了一些像slm这样的显式文件和.cache这样的隐藏文件外还有像 . 和. . 这样的隐藏文件,slm是我自己创建的一个文件夹,这个文件夹是一个空文件夹,但是里面还是有. 和. .这两个目录,其实,所有文件夹中都有这两个目录,并且它们两个是有一定的功能的
其中,. .的作用是回退到上级路径类似于我们电脑上文件夹的这个按钮(配合cd指令使用)
其中,. 的作用是帮助用户定位当前目录下的一个文件,因为在Linux中我们跑我们写出的c代码后会产生可执行程序,此时我们就需要使用 ./a.out 来执行a程序,这里的 . 就是告诉系统我要执行的是当前路径下的可执行程序(out是可执行程序的后缀)
2、pwd命令
pwd指令的作用是显示用户当前所在的目录
3、cd指令
cd指令的作用是将工作目录转移到指定的目录下
指令 | 作用 |
---|---|
cd 目录名 | 将工作目录转移到指定的目录下 |
cd . . | 返回上级目录 |
cd /slm | 绝对路径打开目录 |
cd . ./slm | 相对路径打开目录 |
cd ~ | 进入用户主目录 |
cd - | 返回最近访问目录 |
上图是对cd的简单使用,要注意的是,绝对路径下的地址是从要转到的目录开始向上一直到根目录的下一级目录,相对路径下的指令其实相当于. .先退出目录然后再cd 文件名进入到该目录中,但是要更快
4、touch指令
touch命令参数可更改文档或目录的日期时间,包括存取和更改时间,或者新建一个不存在的文件
c
touch [选项] 文件
选项 | 作用 |
---|---|
-a | 更改存取时间 |
-c | 不建立任何文档 |
-d | 使用指定的日期时间 |
-m | 更改变动时间 |
-r | 把指定文档的日期时间改成参考文档的日期时间 |
-t | 使用指定的日期时间 |
最开始学习时,我们主要用touch来创建文件
touch -t用于指定时间戳来修改文件的时间。它允许您按照指定的格式设置文件的访问时间(atime)和修改时间(mtime),格式为[[CC]YY]MMDDhhmm[.ss],其中CC是世纪,YY是年份的后两位,MM是月份,DD是日期,hh是小时,mm是分钟,ss是秒
touch -d用于根据指定的日期时间字符串来修改文件的时间。它的参数可以是多种日期时间格式,如相对时间(如 "-d '2 days ago'")或者绝对时间(如 "-d '2024 - 01 - 01'"),它比touch -t更灵活,因为它可以理解一些自然语言格式的日期时间描述
5、mkdir指令
c
mkdir [选项] name
用来创建目录,名为name
常用选项有一个 -p
它可以一次创建多个目录
为了方便我们查看一次创建多个目录的效果,我在Linux上安装了tree,因为我们整个Linux是一个多叉树的结构,这个tree可以帮助我们查看我们的目录
通过分隔符分隔,就会创建出一系列的目录
6、rmdir指令
rmdir用来删除空目录
rmdir [name]
类似于mkdir,它也有一个常用选项-p,当子目录被删除后如果父目录也变成空目录的话,就连带着父目录一起删除,使用方法也类似于mkdir,上下级目录名用分隔符分开
7、rm指令
rm命令可以同时删除文件或目录,相比rmdir,rm指令可以删除文件以及非空目录,而rmdir只能删除空目录
rm [选项][name]
选项 | 作用 |
---|---|
-f | 强力删除,即使文件属性为只读 |
-i | 删除前逐一询问确认 |
-r | 删除目录及其下所有文件,其方式为递归 |
递归删除也会询问
我们有一个快速删除的办法就是 -rf ,会将该目录下所有的文件以及目录全部删除,并且不会一遍一遍的问询
8、man指令
man指令是用来查看联机手册的,可以帮助我们快速了解某个命令的参数以及作用
比如说man ls
这里有名称、作用、参数和使用
在这个窗口中翻页是通过上下键来翻页的,使用鼠标滚轮式实现不了的,通过按q键退出
在这里可以看到左上角ls(1),其中的1代表着它是在一号手册里被找到的,也就是普通命令
我们也可以通过man man的方式来查看手册
可以看到这里的手册一共有从1到9九个,我们可以看到手册1是普通命令,手册2是系统调用,手册3是库函数等等
在我们查某一个参数的时候,是按照1-9的顺序从手册中查找的,也就是说先从1号手册开始查,没有再去找2号手册,这样就会出现这样的情况:man printf
我们发现是在1号手册中找到的,这说明printf是一个命令,但是按照我之前的知识储备,我在学习Linux的过程中并不知道有printf这个命令,我想查找的是printf这个c关键字就要通过 man 3 printf来查找,这样查到的就是3手册也就是库函数中的printf了
9、cp指令
cp指令用于复制文件或目录,如果同时指定多个文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中
若目的地并非是一个已存在的目录,则会出现错误信息
cp [选项] 目录或文件
选项 | 作用 |
---|---|
-f | 强行复制文件或目录,不论目的文件或目录是否已经存在 |
-i | 覆盖文件之前先询问用户 |
-r | 将指定目录下的文件和子目录一并递归处理,如果源文件和目录的形态不属于目录或符号链接,则一律视为普通文件处理 |
这里介绍两个指令,echo和cat,echo用来打印后面的内容,加上>就可以将内容写到文件中,这种行为叫做输出重定向,本来该显示到屏幕上的内容打印到了文件中,cat用来打印文件的内容
10、mv命令
mv命令的作用就是剪切重命名
mv [选项] 文件或目录
选项 | 作用 |
---|---|
-f | 强行覆盖不询问 |
-i | 覆盖文件之前先询问用户 |
文件重命名:文件名后面跟着改后的文件名
剪切文件:文件名后面跟着路径
剪切并重命名文件:文件名后面跟着路径和改后的文件名
今日分享就到这里了~