1.操作系统介绍
计算机的层状结构:
操作系统:操作系统是一款进行软硬件资源管理的软件,它对软硬件资源进行管理本质是为了对上层的应用软件提供良好的运行环境。
2.指令操作的理解
指令操作和图形化界面操作本质上是没有区别的,只有形式上的不同,主要是对小白区别大。Linux的用户基本上都是工程师,它并不需要去专门的讨好小白用户,但是商业化发行版的Linux就可能需要服务好自己的用户,也慢慢的有了自己的图形化界面。 我们下面所学习到的指令操作也能在图形化界面操作里找到原型。
虽然指令操作这种方式已经很老了,但是对于工程师来讲指令操作是一个必要的能力,因为它更接近于底层,也更接近工程师的工作习惯。
3.基础指令+Linux基础知识
1.whoami
whoami指令介绍:该指令的作用是查看我当前是谁(Linux支持多个用户同时登录,想要查看自己当前用的是哪一个账号可以使用该指令)
2.who
who指令介绍:该指令的作用是查看有那些人正在登录该机器(Linux支持多个用户同时登录,使用该指令可以查看我使用的这台机器有多少人正在使用)
3.pwd
pwd指令介绍:该指令的作用是显示我当前所在的工作目录(不知道自己目前处于什么目录下的时候可以使用该指令,它的作用是打印出当前自己所处的目录)
4.ls
语法:ls [选项][目录或文件]
常用选项:
-a:打印目录下的所有文件,包括以.开头的隐藏文件
-l:列出文件的详细信息
-r:对目录反向排序
-t:以时间排序
-s:在文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
ls指令介绍:使用该指令可以查看当前目录或者是指定目录下的所有文件名,语法后面的选项和目录或者是文件可以省略,如果将目录或者是文件给省略了,那么打印出来的结果为当前目录下的所有文件名。(ls指令还有很多的选项,但是目前接触不到,只有在后续的学习中才能用到,现在不列出来)
Linux基础知识:Linux有很多的指令都有选项,如ls。我们在使用这些指令的时候可以使用多个选项,如ls -a -l,选项没有顺序如ls -a -l和ls -l -a这两个是没有区别的,甚至我们可以省略掉后面-,如ls -al。(注意,选项的第一个-是不能省略不写的)
Linux基础知识:Linux隐藏文件和隐藏目录(文件夹)都是以.开头的,如果想要自己的文件或者是目录不被他人看见可以在创建该文件时或者是改文件名时在文件的前面加上一个.,只有ls使用-a选项时才能看到该文件。
知识扩展:如果在Windows上创建一个空文件,这个文件会占据磁盘/固态硬盘的存储空间,因为文件名,文件大小,文件的属性等数据本质也是数据,也要被计算机记录下来,看到文件不要只看文件的大小,文件的内容,文件的属性也是数据。所以:文件 = 文件内容 + 文件属性。我们以前,现在,未来学习的所有文件操作本质是:1.要么对文件内容做操作,2.要么对文件属性做操作。
5.cd
语法: cd 目录名
cd指令介绍:更改工作目录,如果想切换到其他目录可以使用该指令。
Linux基础知识:在每一个目录中都会有两个隐藏目录,分别是.(一个点)和..(两个点),.(一个点)代表当前目录,..(两个点)代表上级目录。如果我们使用cd指令进入到.(一个点)这个目录时使用ls和pwd查看时会发现所处的工作目录没有发生改变,再使用cd指令进入到..(两个点)这个目录时使用ls和pwd查看时会发现所处的工作目录变为了上级目录(如果我们想要回到上级目录就可以使用 cd ..)。
计算机基础知识:什么是路径?由一个特殊符号分割的多个目录名所组成的字符串就是路径。Linux的路径:/home/Faiz/test,Windows的路径:D:\SteamLibrary\steamapps,/是Linux的路径分割符,\是Windows的路径分割符。两个路径分隔符之间的字符串一定是目录(文件夹),如:home,SteamLibrary,最后一个路径分割后面的字符串要么是目录,要么是文件,如:test,steamapps。
Linux基础知识:如果我们使用cd ..不断的返回到上级目录,再使用pwd查看当前的路径,当pwd所打印出来的结果为“/”时,即使后面再不停的使用cd ..,pwd打印出来的结果一直不变,还是“/”,是因为/是根目录,再往上已经没有了目录,根目录也是目录,里面可以存放目录和文件。Liunx的整体目录结构是一颗多叉树的样子,如下图所示:
由上图可以看出:1.叶子节点,一定是普遍文件或者是空目录。2.路上节点(非叶子节点),一定是目录。所以访问一个文件需要先找到该文件,而在找该文件的本质就是在一颗多叉树中进行节点的查找,路径的本质就是这一颗多叉树的搜索路径。几乎所有的操作系统它的目录结构都是树状的。
知识扩展:从根目录开始,定位到一个叶子文件所形成的路径被称为绝对路径,相对于自身所处的目录为参考点,定位一个文件的路径被称为相对路径。
补充:
cd ~:回到该账号的家目录
cd -:跳转回最近一次所处的目录
扩展知识:Windows中,桌面本质也是目录/文件夹,只不过当用户登录的时候,用户家目录里面有桌面这个文件夹,Windows把这个文件夹中的所有文件(夹),以图标的形式展示在显示器上,就有了桌面。在Linux中,默认登录的时候,所在的路径就是登录用户的家目录,未来你创建的文件、代码等都建议统一放在自己的家目录下。
6.touch
语法:touch 所要创建的文件名
touch指令介绍:创建文件,如果想要创建一个文件可以使用该指令。
7.mkdir
语法:mkdir [选项] 所要创建的目录名
常用选项:
-p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录。
mkdir指令介绍:创建目录,如果想要创建一个目录可以使用该指令,只创建一个目录时可以省略选项。
8.rm
语法:rm [选项] 所要删除的文件或者是目录
常用选项:
-r:删除目录及其下所有文件
-f:强制删除,不需要询问(root账号下删除root所创建的文件时,系统会去询问,如果不需要系统询问时可以加上该选项)
rm指令介绍:如果要删除目录或者文件时可以使用该指令,如果只删除文件时选项可以省略不写,如果要删除的是目录需要加上-r选项。
知识扩展:在Linux中,使用rm指令删除文件后该文件就真的被删除了,除非使用工具后才能找回来,在Windows中,我们删除一个文件时,系统会将文件给移动到回收站,其实回收站的本质是一个文件夹,只有选择清空回收站后文件才能被删除。
Linux基础知识:*号在Linux中是一个通配符,如果要删除该目录下的所有文件直接rm -rf *即可,但是隐藏文件不会被删除,需要去指定。
9.man
语法 : man 手册编号 指令/库函数man指令介绍:man一共有九种手册,如果是查指令的用法用的是1号手册,2号手册查的是系统调用的库(后面会经常用到),3号手册查的是C语言的库函数,剩下的手册用不到。man打开后按下q即可退出。可以省略手册,man会从1号手册开始查,直到查找到后停止。
10.cp
语法:cp [选项] 源文件或目录 目标文件或目录
常用选项:
-r:递归处理,将指定目录下的文件与子目录一并处理
-f: 强制复制文件,无论文件或者目录是否已经存在
cp指令介绍:如果要拷贝文件或者是目录可以使用该指令,如果拷贝的是普通文件选项可以省略,如果是目录需要加上-r选项。
Linux基础知识:在同一个目录下,不允许出现同名文件和目录。在不指定的情况下,使用cp指令拷贝指定目录下的所有文件到其他目录时,是不会拷贝隐藏文件的。
11.mv
语法:mv [选项] 源文件或目录 目标文件或目录
常用选项:
-f:如果目标文件已经存在,直接覆盖不用询问
-i:如果目标文件已经存在,会询问是否覆盖
mv指令介绍:如果要移动文件或者是目录,可以使用该指令,如果目标文件或目录不存在,就是给源文件或目录进行重命名。
12.which
语法:which 所有查找的指令
which指令介绍:查看指令所在的目录
Linux基础知识:指令的本质其实就是可执行文件,Linux的大部分指令是存在/usr/bin目录下,如果你写的代码经过编译形成可执行文件时,将形成的可执行文件移动到/usr/bin目录下可以像指令一样去执行你编写的代码(在将可执行文件移动到/usr/bin目录下过程其实就是安装,安装的本质就是将可执行文件移动到系统能识别到的目录下)。
13.cat
语法:cat [选项] [文件]
常用选项:
-n:显示行号
-b:对非空行显示行号
-s:不显示多行空行
cat指令介绍:如果要查看文件的内容,可以使用cat指令,如果文件的内容较多,不推荐使用该指令,选项可以省略,如果要从后往前看文件的内容可以使用tac(cat的反转)指令
14.echo
语法:echo 所要显示的字符串(可以用双引号给引起来)
cat指令介绍:单纯的在显示器上输出echo后面所跟的字符串,echo的输出默认是显示器。
Linux基础知识:> 是输出重定向,比如echo的输出默认是显示器,如果我们将echo的输出重定向到文件里,例如:echo "hello world" > test.txt,"hello world"并没有在显示器上显示,在使用cat查看test.txt文件时就会发现"hello world"已经被写入了该文件。输出重定向每次在写入时都会清空原始文件,再重新写入。
>> 是追加重定向,它会在目标文件中原有的类容里新增类容。
< 是输入重定向,比如如果我们直接使用cat指令不去指定文件的话,我们在键盘所输入的字符或者是字符串会被cat读取并且写到显示器里,也可以使用 < 输入重定向更改cat的输入,例如:cat < test.c,这样做把本该从键盘文件里读取内容重定向到指定文件里去读取内容再写入到显示器。
15 less
语法:less [参数] 文件
常用选项:
-i:搜索时忽略大小写
-N:显示行号
less指令介绍:查看文件,如果文件的内容比较多时可以使用该指令,按下键盘的上下键来前后翻看文件的内容,如果想要搜索文件按下/再输入所要搜索的字符串,它会向下进行搜索,输入q即可退出。
16 head
语法:head [参数] 文件
选项:
-n(行数)
head指令介绍:如果要查看文件前面的内容可以使用该指令,省略参数的情况下默认查看的是文件的前10行内容,如果要查看文件的前n行可以去指定参数,例如file.txt前100行:head -100 file.txt。
17 tail
语法:tail [参数] 文件
选项:
-n(行数)
tail指令介绍:如果要查看文件后面的内容可以使用该指令,省略参数的情况下默认查看的是文件的后10行内容。
Liunx基础知识:| 是命令行管道,它的作用是将前一个指令的输出变成后一个指令的输入,例如:如果我们要查看一个文件的1000-1010行的内容,先使用head指令读取该文件的前1010行内容,在使用命令行管道来使head的输出变成tail的输入,tail最后再读取最后的10行的内容即可,指令实现方法:head -1010 file.txt | tail -10。
18 date
date指令介绍:查看时间,如果要查看时间搓需要使用+%s选项,例如:date +%s,如果要将时间搓转为时间需要使用-d@n(n代表着具体的时间搓)。
19 cal
cal指令介绍:查看日历
20 find
语法:find 所要查找的路径 -name 所要查找的文件名
find指令介绍:如果要查找文件,可以使用该指令
21 grep
语法:grep [选项] 所要搜索的字符串 所要搜索的文件
常用选项:
-i:忽略大小的不同,可以理解为搜索时大小写的字符是同一个
-n:输出行号
-v:反向选择,可以理解为我们所要搜索的字符串不会被显示
grep指令介绍:如果要在文件中搜索相关的字符串可以使用该指令
22 zip/unzip
zip
语法:zip [选项] 压缩文件.zip 所要压缩的文件或者是目录
常用选项:
-r:递归处理,将指定目录下的文件或者是子目录一起处理
zip指令介绍:压缩文件,如果是普通文件,选项可以省略,如果是一个目录需要加上-r选项。
unzip
语法:unzip 所要解压的文件
unzip指令介绍:解压缩后缀为zip的压缩文件。
计算机基础知识:什么是打包压缩?打包的目的是为了将多个文件变成一个文件来防止文件丢失,压缩的目标是为了更节省空间,网络传输的时候,更节省时间。不同的压缩方案是根据后缀来进行区分的,比如我们最常见的zip方案。
23 tar
压缩:
语法:tar [选项] 压缩文件名.tgz 所要压缩的文件/目录
常用选项:
-c:创建一个压缩文件
-z:具有gzip压缩属性
-f:使用档名
压缩文件的方法:例如压缩file这个目录,tar -czf file.tgz file
解压:
语法:tar [选项] 所要解压缩的文件
常用选项:
-x:解压缩
-z:具有gzip压缩属性
-f:使用档名
解压缩的方法:例如解压缩file.tgz这个压缩文件,tar -xzf file.tgz
4.热键
1.键盘上的上下键:按下键盘上的上下建可以翻阅历史所使用的指令
2.tap键:tap具有命令自动补全的功能
3.ctrl + c:终止进程
4.ctrl + d:退出当前用户