1.软件,OS,驱动
我们看看计算机的结构层次
1.1.操作系统
操作系统是一款做 软硬件管理 的软件
操作系统(计算机管理控制程序)_百度百科 (baidu.com)
操作系统(英语:Operating System,缩写:OS)是一种内置的程序,用来协作计算机的各种硬件,以与用户进行交互。常见有Windows,macOS 和开源的 Linux。
一个好的操作系统的衡量指标:稳定,快速,安全
这些东西都是由操作系统层决定的:对下通过对下管理好软硬件资源的手段,达到对上提供良好(稳定,快速,安全)的操作/使用环境
我们来理解一下我们在计算机的所有操作
- printf->打印
- 文件->磁盘文件写入
- 游戏->向网络中发送数据
我们在计算机上的所有行为都会被转换为硬件行为
我们所有的软件行为都会自顶向下贯穿我们计算机的结构
即:信息按 应用软件->操作系统->设备驱动->硬件 路径进行执行
也就是所有的软件行为都和操作系统相关
1.2.驱动
驱动(计算机软件术语)_百度百科 (baidu.com)
驱动全称设备驱动程序,是添加到操作系统中的特殊程序,其中包含有关硬件设备的信息。此信息能够使计算机与相应的设备进行通信。
驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。
1.3.软件
应用软件是在操作系统之上的
软件(按照特定顺序组织的计算机数据和指令的集合)_百度百科 (baidu.com)
软件(中国大陆及香港用语,台湾称作软体,英文:software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。
软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。
2.Linux操作的特点
Linux操作的特点:纯命令行(注:linux也有图形化界面)
因为企业里面就是命令行,所以我们只学习命令行
Windows也是命令行/图形化界面,只不过它是面对大众的,所以图形化特别有必要,而Linux专门用于企业,所以纯命令行
Windows有个对应的系统软件,叫powershell,它支持了linux命令行
我们可以在这上面输入Linux命令行
我们也可以提供win+x,再点击终端管理员也可以打开
我们可以讨论一个问题
先有指令还是先有图形?为什么?
先有指令,所以指令更接近操作系统
键盘也比鼠标先出现
键盘字母的排序是起源打字机
3.Linux操作指令
我们采用Linux指令和Windows界面操作的对比来学习
3.1.快速学习5条指令
3.1.1.pwd指令和ls指令
我们使用纯ls
ls
显示的是当前目录下的文件
那当前目录是什么呢?
我们可以使用指令pwd来显示当前目录
我们的当前目录可能不一样,我是root账号,你们可能是普通用户,可能是/home/xxx
上面这个操作就像下面的
我们的pwd就相当于把上面的路径复制一下,拿到搜索界面去搜
3.1.2.mkdir
我们想要在桌面建立一个文件夹,我们在windows上操作起来很简单
谁都会是吧,我就不演示了
在linux下,我们也想创建文件夹
我们需要使用
mkdir 文件名
指令和文件夹名之间要有空格(可以不是1个)
没有空格,就会像下面一样报错
我们怎么知道有没有成功创建呢?
我们还是使用ls指令
显然我们已经创建成功了
所以在linux操作系统下
mkdir 108_class
相当于在Windows下的
3.1.3.cd
我们创建文件夹,就是为了存为东西,我们就要进去文件夹,我们在windows可以双击进去
那linux呢?
我们可以使用cd命令
cd 文件名
我们怎么知道我们进去了呢?
3.1.4.touch
创建文本文件
touch 文件名
跟windows下创建一个文本文件一样
3.2.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 一行只输出一个文件。
3.2.1.ls -l和ls -a
windows上也是可以的 ,打开powershell,自己去试试看
我们创建一个文件是要占据磁盘空间的
3.2.1.文件=文件内容+文件属性
文件的属性是数据吗?显然是
文件的操作=文件内容的操作+文件属性的操作
所以问题来了
这个ls指令是显示文件属性,只不过只显示文件名属性
ls -l显示更多文件属性
我们再看一个例子
这个信息和我们windows上面的好像啊
我们知道ls就是查文件属性的,后面的选项不就明白了吗!!
注意ls -l可以简化成ll
3.2.3.选项的写法
下面展示了多种风格的写法,它们都是等价的
我们看看第一列的第一个字符
它代表文件的类型
- d:的表示目录
- -:文件是一个普通文件
.和..文件
我们注意到这个ls -la比ls -l多了一个以.开头的,还有一个以..开头的
这个.开头的代表隐藏文件 ,我们可以验证一下
我们发现我们看不到这些创建的文件
我们换ls -la就能看到这些隐藏文件了
ls -a显示所有的文件,包括隐藏文件
windows里面也有隐藏文件,这个就不说了,自己去看
..开头的是什么呢?
我们打开我们创建的dir1文件夹
发现里面居然已经有了.和..文件了
Linux下,任何一个目录都有两个隐藏文件,一个.,一个..
我们可以去打开这个..文件
很明显,这是回退路径
..表示当前路径的上一级路径,即这个..代表回退,和cd的作用是相反的
下面这个是回到上一级路径的
cd ..
.表示的是当前路径
我们可以验证一下
.为什么代表当前路径呢,大家在学习路径的知识的时候,肯定看过./这个
比如./Adobe Premiere Pro 2020
3.2.5.ls -d
我们在root目录下查看108_class的属性,结果却之间给我查到了108_class里面文件的属性去了
这个时候我们就可以使用ls -dl来查看了
3.2.6.ls -F
很简单啊
3.3.pwd和cd指令
pwd指令就是查看当前路径
3.3.1.cd
cd就是打开文件/目录的功能
cd 目录名
cd..是回退
我们再看第二条
这些路径上的斜杠(/)是路径分隔符,在linux里用/来表示
在windows里面路径分割符(\)是反斜杠
我们发现一直回退,发现只能回退到/这里
这个/就是linux的根目录,也就是说/是一个文件
我们查看一下,发现里面的文件我们看不懂
我们换一个指令就明白了
我们发现这个/是一个d开头的,所以他是一个文件,所以他是根目录
在一个目录里,一个可以再放目录或者普通文件,所以linux文件结构是多叉树的结构
它的叶子节点一定是空目录或者非目录文件,路上节点一定是一个非目录
所以我们所有对文件或者目录的增删查改,本质都是对这棵多叉树的增删查改
我们定位一个文件用路径来定位,路径具有唯一性,因为任何结点都只有一个父节点
我们把从/开始定位到指定位置,具有唯一性的路径,叫绝对路径
我们便可使用cd来进入特定文件
我们再看第三条
这个..是上一级目录的意思,我们使用../就是回到了当前目录的上一级目录,../day02就代表回到当前目录的上一级目录里寻找day02的文件
我们以当前所处路径为起始参照位置,来进行特定文件的定位,这种路径叫相对路径
绝对路径和相对路径
- 绝对路径相对较长,但是不变,一般在一些固定场景,配置文件中使用
- 一般命令行输入,比较常用相对路径
我们可以看一下网站
https://baike.baidu.com/item/Linux/27050https://baike.baidu.com/item/Linux/27050我们只看com后面那个/item/Linux/27050,这个分隔符就是linux风格的分隔符,这就说明这个网站是用linux操作系统制作的
我们看一下例子
我们看第4条
我们退出xshell,重新登陆我们的云服务器
输入下面这个指令
我们就可以很清楚的知道默认目录就是/root,而且使用whoami可以知道我们登录的账号名是什么
用户分为两种
- 超级用户root
- 普通用户
centos系统里面,所有的普通用户都是放在/home目录下
我们可以使用ls /home来查看普通用户
windows的家目录
这个对应一个普通用户的家目录
windows也可以再添加用户,这个自己去搜
windows也有超级用户root,我们以管理员身份运行就是root账号运行
我们回到cd这里来
我们直接进入了登录的家目录
我们看第五条
我们看例子
这个就是返回上次访问的目录
3.4.touch指令
作用就是创建一个普通文件
语法:
touch [选项]... 文件...
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
- -a 或--time=atime或--time=access或--time=use只更改存取时间。
- -c 或--no-create 不建立任何文档。
- -d 使用指定的日期时间,而非现在的时间。
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
- -m 或--time=mtime或--time=modify 只更改变动时间。
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
- -t 使用指定的日期时间,而非现在的时间。
我们先看看
3.5.mkdir
创建一个目录(文件夹)
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项: -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录;
我们往往是创建一个目录,但是这样子在创建深层次的目录时未免太复杂了些
我们先执行这个命令
这个是安装tree命令的
注意要root账号
安装完了之后我们就可以使用tree命令了
这样子文件就按树的结构显示出来了
我们回到正题
这就创建好了
3.6.rmdir指令 && rm 指令(重要):
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
- -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
很好啊
我们接着看
rmdir只能删除空目录,其他的不能删除
这个时候,只能用rm命令
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
这个问我们要不要删除,我们回复y即可,n代表不想删除,普通账号可能没有这个提示
Linux默认情况下没有回收站哦
我们可以把那个提示关闭
注意一下
目录不能删除
我们换个选项即可
我们好烦这个提示,我们可以把这个提示给关了
rm -rf可以帮你
注意:没事不要执行下面这个语句
rm -rf /
整个操作系统都会被你删掉
未完待续......