操作系统简述
操作系统概念:一款进行软硬件资源管理的软件。
为什么这么说?比如买来一台电脑,电脑的硬件是直接存在的,但是操作系统只有在开机后,才会被加载,这就说明操作系统是一个软件。
再看下图:
操作系统处于软硬件之间,起承上启下的效果。对上给应用提供接口,所以软件可以被编写出来。
而操作系统存在的意义就是:对软硬件进行合理的管理。以达到为上层用户提供良好的、稳定的、安全的运行环境的目的。
学习指令的原因
从时间上看,我们是先有键盘才有鼠标的,没有鼠标就代表着当时的操作系统并不需要鼠标来点击,即并没有图形化界面,这就意味着先有命令行才有图形化界面。
那么学习命令行指令究竟是在干什么?其实就相当于我们小学刚接触电脑时,信息课上教的打开文件,创建文件夹等基本操作。
对于 Linux操作系统,我们大多就是依靠指令来进行操作,所以学习指令是必不可少的!
接下来,我们就开始学习~
ls 指令
语法:ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
[root@VM-4-3-centos ~]# ls // 显示当前路径下的文件或目录名称 homework1 testdel1
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,就是使用列表的形式,列出文件的更多信息。
[root@VM-4-3-centos ~]# ls -ll total 8 drwxr-xr-x 2 root root 4096 Nov 13 22:07 homework1 drwxr-xr-x 3 root root 4096 Nov 12 20:54 testdel1
文件 = 内容 + 属性
这些文件信息就相当于文件属性,如文件名,修改时间等。
简写为ll
也可以:
[root@VM-4-3-centos ~]# ll total 8 drwxr-xr-x 2 root root 4096 Nov 13 22:07 homework1 drwxr-xr-x 3 root root 4096 Nov 12 20:54 testdel1
ls -l -a:显示出更多的隐藏文件(./…)
ls -l -a 可简写为:ls -al / ls -la
[root@VM-4-3-centos blogtest]# ls -la total 8 drwxr-xr-x 2 root root 4096 Nov 13 23:08 . dr-xr-x---. 7 root root 4096 Nov 13 23:08 .. -rw-r--r-- 1 root root 0 Nov 13 23:08 hello.txt
. 和 … 为隐藏文件,我们手动创建一个 隐藏目录 和 隐藏文件 试试:
// 初始状态 [root@VM-4-3-centos blogtest]# ll total 0 -rw-r--r-- 1 root root 0 Nov 13 23:08 hello.txt [root@VM-4-3-centos blogtest]# touch .oops.txt // 创建文件 [root@VM-4-3-centos blogtest]# mkdir .hiddendir // 创建文件夹 [root@VM-4-3-centos blogtest]# ll // 显示信息,没有隐藏文件 total 0 -rw-r--r-- 1 root root 0 Nov 13 23:08 hello.txt [root@VM-4-3-centos blogtest]# ls -la // 显示隐藏信息,就有了 total 12 drwxr-xr-x 3 root root 4096 Nov 13 23:17 . dr-xr-x---. 7 root root 4096 Nov 13 23:08 .. -rw-r--r-- 1 root root 0 Nov 13 23:08 hello.txt drwxr-xr-x 2 root root 4096 Nov 13 23:17 .hiddendir -rw-r--r-- 1 root root 0 Nov 13 23:17 .oops.txt
其中 .
为当前路径,..
为上级路径。
拓展:
stat
获取文件的所有属性
[root@VM-4-3-centos ~]# stat blogtest File: ‘blogtest’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd01h/64769d Inode: 655920 Links: 3 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-11-13 23:17:39.312325048 +0800 Modify: 2022-11-13 23:17:37.527325030 +0800 Change: 2022-11-13 23:17:37.527325030 +0800 Birth: -
stat 指令列出的信息中有三个时间:Acess 、Modify 、Change,它们被戏称为"acm"时间,它们的意思分别为:
access time:最后一次 访问 (仅访问,没有改动)文件的时间
modify time:最后一次修改 文件 的时间
change time:最后一次 文件属性改变 的时间,包括权限,大小,属性等
pwd 指令
语法: pwd
功能:显示用户当前所在路径
[root@VM-4-3-centos blogtest]# pwd /root/blogtest
Linux 下的路径和 Windows 下有所不同:
Linux:/root/blogtest
Windows:D:\Anduin_code\data-structure\日常代码
Linux 下路径分隔符为 /
,Windows 下路径分隔符为 \
。
cd 指令
c - change d - directory
语法:cd 目录名
功能:更改路径,进入或退出某些目录。
cd
的指令的本质就是切换路径,对于 Linux 操作系统的目录结构,整体就是一个多叉树的样子:
我们平常标识文件位置的最好方式就是使用 路径,因为 路径具有唯一性。
而路径又分为两种:绝对路径、相对路径
绝对路径:从根目录开始,定位文件的路径,为绝对路径。(准确但麻烦,无论在哪个目录下都有效)
相对路径:由当前文件所在的路径引起的跟其它文件(或文件夹)的路径关系。(方便,在不同目录下可能会无效)
绝对路径演示:
[root@VM-4-3-centos blogtest]# pwd /root/blogtest [root@VM-4-3-centos blogtest]# cd /root/blogtest/blogtt [root@VM-4-3-centos blogtt]# pwd /root/blogtest/blogtt [root@VM-4-3-centos blogtt]# cd ~ [root@VM-4-3-centos ~]# pwd /root [root@VM-4-3-centos ~]# cd /root/blogtest/blogtt [root@VM-4-3-centos blogtt]# pwd /root/blogtest/blogtt
相对路径演示:
[root@VM-4-3-centos blogtest]# pwd /root/blogtest [root@VM-4-3-centos blogtest]# cd ../testcd [root@VM-4-3-centos testcd]# pwd /root/testcd [root@VM-4-3-centos testcd]# cd ~ [root@VM-4-3-centos ~]# cd ../testcd -bash: cd: ../testcd: No such file or directory
归纳:
绝对路径:麻烦,一般是在某些配置文件中,进行对某种文件进行配置的时候采用。
相对路径:用起来简单,后续指令操作的时候,常用的路径定位方案。
cd 的其他用法:
cd .
:进入当前目录,相当于路径不变
[root@VM-4-3-centos blogtest]# pwd /root/blogtest [root@VM-4-3-centos blogtest]# cd . [root@VM-4-3-centos blogtest]# pwd /root/blogtest
cd ..
:回退到上级路径
[root@VM-4-3-centos blogtest]# pwd /root/blogtest [root@VM-4-3-centos blogtest]# cd .. [root@VM-4-3-centos ~]# pwd /root
cd 最多只能回退到根目录 /
(长得和路径分隔符一样,但不是)
[root@VM-4-3-centos ~]# pwd /root [root@VM-4-3-centos ~]# cd .. [root@VM-4-3-centos /]# pwd / [root@VM-4-3-centos /]# cd .. [root@VM-4-3-centos /]# pwd /
cd ~
:直接进入当前用户的家目录
root(超级用户):
[root@VM-4-3-centos /]# cd ~ [root@VM-4-3-centos ~]# pwd /root
普通用户:
[lx@VM-4-3-centos ~]$ cd ~ [lx@VM-4-3-centos ~]$ pwd /home/lx
(注:当前只需要知道 root 用户权限更大,它们是不同的用户,用户之间的区别之后我会在权限管理部分讲)
cd -
:回退到上一次所处路径
[root@VM-4-3-centos blogtt]# pwd /root/blogtest/blogtt [root@VM-4-3-centos blogtt]# cd ~ [root@VM-4-3-centos ~]# pwd /root [root@VM-4-3-centos ~]# cd - /root/blogtest/blogt