1. 内核态(内核版本)与用户态(发行版本)
- 内核态(内核版本)是Linux的基础,本质上是一种软件,用来控制计算机的硬件自愿,并提供上层应用程序运行的环境,可以访问所有的内存和外围设备(如硬盘,网卡等)
- 用户态(发行版本)是上层应用的活动空间,仅能受限地访问内存,并且不允许访问外围设备。
- 用户态/发行版本可以有很多(Redhat,Ubuntu,CentOS等),但是内核态/内核版本始终只有一个(即Linux的内核)
2. Linux的目录结构
Windows上会对硬盘进行虚拟分区,分成C盘,D盘,E盘,F盘…,每个虚拟分区都为一个根节点,与其下面的子目录形成一棵树。Windows的前身是单用户系统,即每台计算机同时只能有一个用户使用,一个用户独占所有的硬件和软件资源。
Linux的初衷就是多用户系统,多个用户共享硬件和软件资源。因此,Linux下是没有盘符概念的,只有一个总的根目录,里面分别有\bin, \etc, \var, \home等子目录。而\home下又有各个用户的子目录,假设我们有三个用户分别叫cyoushika,zha,ub,那么\home下面就会有三个子目录分别对应这三个用户。而每个用户目录下面,又有\Documents, \Downloads, \Desktop等子目录。因此,Linux的子目录结构是一棵完整的树,而各个用户是这里面\home下的子树。
3. Linux常用命令
3-1 格式:
command [-options] [-parameter], "[]"表示可选,可以有,也可以没有。
3-2 辅助:
如果忘记了某个命令的使用方法,我们可以通过command --help 或者 man command的方式查阅命令的帮助信息。
3-3 相对路径和绝对路径的知识:
- 相对路径:开头不是/或者~,表示相对当前目录所在的目录位置
- 绝对路径:开头是/或者~,表示从根目录或家目录开始的具体目录位置
3-4 基础命令:
- ls:查看当前文件夹下的内容(选项操作见下文)
- ls -a :Linux中可以再文件或目录名字开头加一个".",来隐藏这个文件或者目录。而直接ls是看不到隐藏文件和隐藏目录的,因此想要查看文件,包括隐藏文件和目录时,需要用ls -a:
- ls -l :以列表的形式显示文件的详细信息
- ls -h :配合-l以人性化的方式显示文件大小
- ls+通配符:
- *代表任意个数个字符,可以是0个:
- ls 1*表示:显示名字以1开头的所有文件和目录
- ls *1表示:显示名字以1结尾的所有文件和目录(但需要注意,文件需要加上文件的扩展名(比如.txt)才能正确显示,否则会报错)
- ls *1*表示:显示名字中包含1的文件和目录
- ?表示任意1个字符,且必须是1个
- [] 可以陪陪的字符组中的任意一个:比如[abc]就是a,b,c中的任意一个,[abc]23的结果就是显示名字叫a23, b23, c23的文件或目录(如果存在的话),[a-f]表示a到f之间的字符中的任意一个,数字也可以用[1-3]表示1~3之间的任意一个数字。
- ls 1*表示:显示名字以1开头的所有文件和目录
- pwd:查看当前所在文件夹路径
- cd 目录名:切换到指定目录下(选项操作见下文)
- cd:切换到当前用户的主目录(/home/用户目录)
- cd ~: 和cd相同
- cd . : 保持在当前目录不变
- cd .. : 切换到上级目录
- cd - : 可以在最近两次工作目录之间来回切换
- touch 文件名:如果文件不存在,新建文件(如果已存在,则会更新文件的末次修改日期)
- mkdir 目录名:创建目录,不允许存在重复名
- -p:可以递归创建目录,比如mkdir -p a/b/c/d,就会创建a目录,在a中创建b,在b中创建c,在c中创建d)
- rm 文件名:删除指定文件,且不能恢复
- -f表示强制删除,忽略不存在的文件,无提示;
- -r表示递归地删除目录下的内容,删除文件夹时必须使用此参数),和ls一样支持通配符
- clear:清屏(清空终端显示的内容)
- tree 目录名:以树状图列出文件目录结果(-d 表示只显示目录)
- cp 源文件 目标文件:复制文件或目录,如果目标文件已经存在,则会直接覆盖
- -i 表示 如果目标文件已经存在,覆盖前显示提示;
- -r 表示递归地复制目录下的内容,复制文件夹时必须使用此参数)
- mv 源文件 目标文件:移动文件或目录,或者实现 文件或者目录的重命名,如果已经存在目标文件,则会直接覆盖(-i 表示 覆盖文件前显示提示)
- cat 文件名:查看文件内容(完整显示),创建文件,文件合并,追加文件内容等功能(适合查看内容不太多的文本文件)
- -b:输出内容时添加行号(忽略空行)
- -n:输出内容时添加行号(包括空行)
- more 文件名:查看文件内容(分屏显示,适合查看内容较多的文本文件)
- grep [选项] 指定文本 目标文件:在目标文件中搜索指定文本(相当于ctrl+F的搜索),注意,如果指定文本中包含空格,应该将文本用“”框起来
- -n:查找文本的同时,显示匹配行和行号
- -v:显示不包含匹配文本的所有行(相当于取反)
- -i:忽略大小写
- 同时grep还支持模式查找:
- ^a: 行首模式,搜索以“a”开头的行(可以将a替换成任何文字)
- ke$:行尾模式,搜索以“ke”结尾的行(可以将ke替换成任何文字)
- 支持正则表达式
- echo 文字内容:在终端中显示文字内容,通常和重定向配合使用
- 重定向>和>>:将本应显示在终端的内容输出/追加到指定文件中
- > : 表示输出,会覆盖文件原有的内容
- >>:表示追加,会将内容添加到已有文件的末尾
- 管道 | :Linux允许将一个命令的输出 可以通过管道 作为另一个命令的输入(可以理解为现实生活中的管子,从管子的一头塞进东西,从另一头取出来。|左右分为两端,左端塞东西(写),右端取东西(读),常与more,grep配合
- 比如:ls -lh | more,就可以把ls -lh的结果分屏显示
- 再比如:ls -lh | grep *K,就可以把ls -lh的结果中包含以K结尾的文本的行输出出来