大家好!这篇开始,我开始说一些Linux的知识,Linux是非常重要的。希望我们能够一起学习,一起加油!
首先,我们在平时使用的鼠标,键盘,显示器…这些都是属于硬件。
而我们能操控这些硬件其实是因为计算机里有一个叫做软件驱动层。
软件驱动层的作用其实就是帮上层实现对硬件的访问。
一般而言,一种硬件都会有厂商给我们提供对应的驱动软件。获取驱动的方式,一般而言,是由os帮我们进行获取和安装。
而在软件驱动层上面的就是我们的操作系统。
操作系统有4种管理:1.进程管理。2.文件管理。3.内存管理。4.驱动管理。
而在操作系统上的就是我们的应用层。
操作系统在这里的作用就是:对上给用户提供一个良好的,稳定的,高效的运行环境。对下要管理好底层的软硬件资源。
那么,现在什么是操作系统:操作系统是一款软件,用来进行对软硬件资源进行管理的软件。管理目的:对上,对下,提高效率。
首先,在学习指令之前。我们要知道:为什么要学习指令?
这是因为执行距离OS更近,便于我们更好的掌握OS。
我先创建一个lesson1目录,我们后面的内容在这个lesson1目录下演示。
mkdir这个命令后面再说。
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
下面,我将演示一段代码并解析:
从上图,我们创建了一个.c文件,这个touch我们后面再说。然后,当我们输入ls时,只会显示所有文件名。而ls -l 这个命令会显示文件的更多属性。
现在有一个问题:一个空文件,在磁盘占据空间吗?
答案肯定是要占用的。因为文件是有属性数据的。它也是数据,也要保存起来。所以,文件=文件内容+文件属性。
以后,我们要学习的所有文件操作无非两类:
1.对文件内容的操作
2.对文件属性的操作
我为什么要说这个,因为 ls 显示的是文件名就是文件的一种属性。而 ls -l 这个命令会显示文件的更多属性。其实这个 -l 也被叫做指令的选项。下面,我们就要学习一些常用选项。
常用选项:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件
以 . 开头的文件我们称之为隐藏文件。-a:显示Linux操作系统中的隐藏文件。
ls -a -l 可以这样写,也可以合在一起写,都是一样的。也就是把lesson1目录下的所有文件(包含隐藏文件)都显示出来了。
这两个是什么意思呢?在任意目录下,都会存在两个隐藏文件。
. 表示的是当前路径。
. . 表示的是上级路径。
. . (上级路径)有什么用呢?
从这段代码中,我解释一下:
pwd这个命令的意思是:表示当前路径。
cd . . 这个命令的意思是:回到上级路径。
回到 / 的时候,就不能进行回退了。只剩 / 时,也被叫做根目录。
在windows下的路径分隔符是:\ 。
在Linux下的路径分隔符是:/ 。
. (当前路径)有什么用呢?
它的作用是:执行当前路径下的a.out程序。(以后再说)
ls 指令最重要的就是我上面说的这些。下面的一些指令,大家可以看看,不懂的可以演示一下:
-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 一行只输出一个文件。
语法: pwd
功能:显示用户当前所在的目录
它没有什么常用选项。
语法: cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
我先说一些补充知识:Linux的目录结构本质是一颗多叉树。它的入口目录是 / 根目录。
1,每一个子节点,既可以是一个目录(再放目录或者普通文件,递归式的定义),也可以是一个普通文件。
2,这颗多叉树的叶子节点,一定是一个普通文件或者空目录。
如果我们要找一个文件,我们一般是通过路径定位的方式来找文件的。
为什么我们都是通过路径方式定位文件的呢?
因为任何一个节点,可以有多个子节点,但是任何一个子节点都只有一个父节点。所有,常规的路径定位具有唯一性。
假如我们要找test.c,那么/home/wyw/test.c叫做Linux下的"绝对路径"。
那么我们就演示一下,如何使用这个绝对路径:
首先,我们在这个wyw目录下,创建了一个lesson2目录。然后我们进入lesson2目录下:
我们现在需要在lesson2目录下找到我的mytest.c文件,该怎么找:
这样,我们就找到了我们需要的那个文件。
其实,还有一种叫做相对路径的方式:
这个意思是:查询上级路径下的文件。也就是wyw目录下的文件,也就有lesson1和lesson2两个文件。
那么,我们也可以这样去写:
就是查询上级目录下的lesson1目录下的mytest.c文件。这个就叫做相对路径。也就是相对于我当前所处的路径。
常见选项:
cd ~:进入用户家目录
从这里,你就可以看到:此时的路径已经来到了wyw用户目录下。
cd -:跳转至上一次我所处的路径
从这里,我们可以看到:cd - 又回到上一次的路径了。
总结:
cd . . : 返回上级目录
cd ~:进入用户家目录
cd -:返回最近访问目录
语法: touch [选项]… 文件…
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
我们现在只需要知道可以新建文件就行了,其余的以后再说。
常用选项:
-a 或–time=atime或–time=access或–time=use只更改存取时间。
-c 或–no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或–time=mtime或–time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
举个例子:
我们可以看到成功的创建了code目录。那么我们想一次性创建多个目录呢?
你会发现,发生了错误。我们应该这样:
如果,我们加 -p 就会创建成功。
mkdir :创建一个目录。
mkdir -p :创建一串路径。
我们学会这两个就行了。
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
你会发现,我们将lesson2删除了。
这时,你会发现:dir1没有删除,因为dir1不是空目录。
所以,rmdir:只能删除空目录,我们不常用。
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
举个例子:
你会发现,mytest.c删除了,rm它的作用就是删除普通文件。
常用选项:
-r 删除目录及其下所有文件
这样,我们上面的问题就能删除了,它是递归删除目录文件。
-f 即使文件属性为只读(即写保护),亦直接删除
这是一种强力删除。