1.操作系统
操作系统概念:一款进行软硬件资源管理的软件。
比如买来一台电脑,电脑的硬件是直接存在的,但是操作系统只有在开机后,才会被加载,这就说明操作系统是一个软件。
看下图:操作系统处于软硬件之间,起承上启下的效果。对上给应用提供接口,所以软件可以被编写出来。
而操作系统存在的意义就是:对软硬件进行合理的管理。以达到为上层用户提供良好的(稳定的、安全的、快速的)运行环境的目的。
从时间上看,我们是先有键盘才有鼠标的,没有鼠标就代表着当时的操作系统并不需要鼠标来点击,即并没有图形化界面,这就意味着先有命令行才有图形化界面。
对于 Linux操作系统,我们大多就是依靠指令来进行操作,所以学习指令是必不可少的
2.Linux 基本指令
2.1 ls 指令
语法:ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。ls 为命令,后面可以跟 命令选项,如-a,-d…
常用指令:
-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 一行只输出一个文件。
常见选项:
ls -l:显示出更多的文件信息
ls -l 的 l 相当于 list,就是使用列表的形式,列出文件的更多信息。
文件 = 文件内容 + 文件属性
这些文件信息就相当于文件属性,如文件名,修改时间等(也是数据,存储也会占用磁盘空间) 因此,文件操作 = 文件内容操作 or 文件属性操作
简写为ll也可以:ls -l -a:显示出更多的隐藏文件(./…)
ls -l -a:显示出更多的隐藏文件(./…)
. 和 … 为隐藏文件,我们手动创建一个 隐藏目录 和 隐藏文件 试试:
其中 .为当前路径,存在的意义帮助用户定位当前目录下的一个文件;.. 为上级路径
拓展:stat 获取文件的所有属性
stat 指令列出的信息中有三个时间:Acess 、Modify 、Change,它们被戏称为"acm"时间,它们的意思分别为:
access time:最后一次 访问 (仅访问,没有改动)文件的时间
modify time:最后一次修改 文件 的时间
change time:最后一次 文件属性改变 的时间,包括权限,大小,属性等
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
2.2 pwd 指令
语法: pwd
功能:显示用户当前所在路径
Linux 下的路径和 Windows 下有所不同:
Linux:/root/test
Windows:D:\code\test_-c\2023-4-20
Linux 下路径分隔符为 /,Windows 下路径分隔符为 \ 。
2.3 cd 指令
c - change d - directory
语法:cd 目录名
功能:更改路径,进入或退出某些目录。
cd 的指令的本质就是切换路径,对于 Linux 操作系统的目录结构整体是一个多叉树:
我们平常标识文件位置的最好方式就是使用 路径,因为 路径具有唯一性。
而路径又分为两种:绝对路径、相对路径
绝对路径:从根目录开始,定位文件的路径,为绝对路径。(准确但麻烦,无论在哪个目录下都有效)
相对路径:由当前文件所在的路径引起的跟其它文件(或文件夹)的路径关系。(方便,在不同目录下可能会无效)
绝对路径演示:
相对路径演示:
归纳:
绝对路径:麻烦,一般是在某些配置文件中,进行对某种文件进行配置的时候采用。
相对路径:用起来简单,后续指令操作的时候,常用的路径定位方案。
cd 的其他用法:
cd .:进入当前目录,相当于路径不变
cd …:回退到上级路径;cd 最多只能回退到根目录 /(长得和路径分隔符一样,但不是)
cd ~:直接进入当前用户的家目录
root(超级用户):
普通用户:
注: root 用户权限更大,它们是不同的用户,用户之间的区别之后会在权限管理部分学习
cd -:回退到上一次所处路径
2.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 使用指定的日期时间,而非现在的时间。
touch :在当前路径下,创建一个普通文本文件。
touch 也可以 指定路径 创建,如在 上级目录(相对路径) 创建一个文本文件:
使用 绝对路径 创建:
2.5 tree 命令
tree:使当前目录往后的文件夹和文件以树状结构呈现出来
root 账户下安装 tree 命令:
yum install -y tree
1
Linux 目录是树状结构,这个指令很好理解:
2.6 mkdir 指令
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
mkdir 目录名:在 当前路径 下,创建一个目录(相当于 Windows 下的文件夹)
mkdir -p dir1/dir2/dir3…:递归创建一段路径
dir1/dir2等为目录名,名字随意。
2.7 rmdir 和 rm 指令
rmdir:
语法:rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除 空目录
注意 rmdir 只能删除空目录:
rm:
语法:rm [-f-i-r-v] [dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
rm 文件名:删除文件(仅文本文件,无法删除目录)
删除文件时,会让你确定是否删除文件,确认删除为 y,不删除为 n。
rm -r 文件名:递归删除,目录(包括 非空目录)和文件都能删除
rm -rf 文件(目录名):无视权限强制删除。
此时删除无提示出现
或者在 普通用户 在 root 用户的目录下以 sudo命令创建文件 test.txt ,由于 test.txt 是以 sudo命令创建的,所以这个文件是被保护的,会给出提示,如果不想给提示,就可以用 rm -rf 进行 无视权限强制删除 。
rm -rf ./* :删除当前目录下文件及其所有子文件
rm -rf/ :把从根目录开始的所有文件删除,也就是删库跑路,大家可以试试,很刑的~
2.8 nano 指令
在没有学习 vim 之前,可以先用 nano 在 Linux 上编写代码。
root 账户下安装 nano:
yum install -y nano
nano 文件名:对文件进行编辑
注:如果 nano 的文件不存在,会保存该文件。
ctrl + x 为退出,ctrl + x 后会提示是否保存,y(保存),n(不保存),c(取消),然后按下回车 enter 退出。
ctrl + x 后:
选择 y 保存,按 enter 退出。
接着编译代码,并输出:
这里我们发现了 test.c 被创建了,还有编译产生的 a.out 文件。
注:gcc test.c 为使用 gcc 编译器对 test.c 进行编译,./a.out 是执行当前路径下的 a.out 程序。
clear 指令
clear :清理屏幕
whoami 指令
whoami:显示当前用户
root:
普通用户:
3.Linux 常用键位
alt + enter:全屏,退出全屏也是 alt + enter
tab:智能补全
当指令忘记时,例如 mkdir,只输入了 mk,这时快速按两次 tab 就会列出和 mk 相关的指令,并保留输入。相当于一个查字典的热键。
cd + tab 可以列出目录下的内容
遇到路径问题时,可以尝试不断的tab,没有出来就说明路径写错了。
ctrl + c:处理疯狂刷屏的情况,终止程序运行
4.总结:
今天我们初识了什么是操作系统,对Linux的部分基本指令有了一定的认识,还学习了几个 Linux 常用键位。接下来,我们将继续学习Linux的的相关知识。希望我的文章和讲解能对大家的学习提供一些帮助。
当然,本文仍有许多不足之处,欢迎各位小伙伴们随时私信交流、批评指正!我们下期见~