OS 工作原理
内核里有大量的驱动
操作系统使用硬件是因为有内核这些东西
GUI 图形化的用户接口
GUI--> graphical user interface 图形化的用户接口, 用户操作图形软件,软件通过内核请求资源,内核调用硬件资源,硬件处理,硬件返回信息给图形,用户看到图形显示。
命令行管理Linux(基础)
用户敲命令,命令向内核请求资源,内核调用硬件资源,硬件处理,硬件返回信息到命令行接口,用户看到命令行显示的结果。
Windows 能进行的管理:
文件管理(文件的增删改查)
进程(运行中的程序)管理(进程的增删改查)
软件管理(软件的增删改查)
权限管理
用户管理(同时一个用户使用系统)
网络管理(设置网络,配置ip,wiffi,有线)
防火墙管理
磁盘管理
Linux能进行的管理
文件管理(文件的增删改查)
进程(运行中的程序)管理(进程的增删改查)
软件管理(软件的增删改查)
权限管理
用户管理(同时一个用户使用系统)
网络管理(设置网络,配置ip,wiffi,有线)
防火墙管理
磁盘管理
以上内容,全都是操作系统的基本管理,只要是操作系统,理论上都需要具备以上功能。
无论GUI还是CLI,都叫做shell
用户操作的是shell,shell向内核请求资源,内核调用硬件资源,硬件处理,硬件返回到shell,用户通过shell查看结果
调整字体临时大小:右键,点open terminal, 打开命令行接口,变大 :ctrl+shift+"+" , 变小:ctrl+'-'
命令1:echo
命令2:bc (交互式命令)
命令3:expr (非交互命令)
命令4:date
命令5:cat
命令6:hostnamectl set-hostname rhel8
CLI命令行接口的shell
$: 表示普通用户
#:表示特权用户
我是谁 : whoami
我在哪儿:pwd (print woking directory)
我要干什么:
操作系统的目录结构
windows的目录结构介绍:
文件的路径
顶级目录: C D E F……
Linux的目录结构介绍:
Linux: 根目录
根目录
一级目录
Linux的目录结构:
“/”表示根目录,根目录是linux结构中最顶级的目录,类似windows 中的C D E 盘
/boot 目录 : 存放的系统的启动配置文件和内核文件
/dev目录:存放的是Linux的设备文件
/etc目录:存放的是Linux的配置文件
/home目录:存放的是Linux普通用户的家目录
/media目录:挂载点目录
/mnt目录:挂载点目录
/run目录:挂载点目录
/opt目录: 存放软件文件的目录
/proc目录: 存放的是进程文件
/srv目录:存放的是一些资源文件
/sys目录:存放一些资源文件(系统资源)
/tmp目录:存放的是一些临时文件(非常重要)
/usr目录:Linux 软件默认的安装目录。
/var目录:存放Log日志文件的目录(非常重要)
Linux通过图形查看到右下角有箭头
叫做Linux的快捷方式
/bin-->/usr/bin :存放的是普通用户执行的命令
/lib-->/usr/lib :存放的是32位的函数文件
/lib64-->/usr/lib64 :存放的是64位的函数文件
/sbin-->/usr/sbin :存放的是超级用户执行的命令
/root: 是root用户的目录
su命令详解:
su (switch user): 普通用户切换到任何一个用户都需要输入密码,root用户切换到任何用户都不需要密码
su - username
su 命令切换用户如果不加"-"的话只是shell层面的切换,用户的环境变量实际上是没有变的
su -
su - root 是一样的,没区别
Linux的文件管理
文件的增删改查
文件的创建(文本文件的创建,目录文件的创建)
文件的删除(文本文件的删除,目录文件的删除)
文件的修改(文件内容的修改,文件属性的修改)
文件的查看(文件内容的查看,文件属性的查看)
在讲文件管理之前,我们必须明白路径的概念,通过路径你能找到一个具体的文件
什么是绝对路劲 :以顶级目录开头的路径就是绝对路径,在linux里面“/”就是顶级目录,以/开头的路径就是绝对路径
什么是相对路径 :不以/开头的路径就是相对路径
cd (change directory)
cd path(相对路径或者绝对路径)
cd .. 表示切换到上级目录
cd ~ 表示切换到当前shell用户的家目录
cd - 表示切换到上次所在的目录 (反复的敲,会在两个目录下来回的切换)
ctrl+shit+t 多一个命令行的shell,然后alt+1~9来回切换,ctrl+d关闭当前的shell
查看
ls命令作用和基础用法
我要去哪儿
我要变成谁
我才能干什么
Linux的文件管理
文件的增删改查
文件的创建(文本文件的创建,目录文件的创建)
文件的删除(文本文件的删除,目录文件的删除)
文件的修改(文件内容的修改,文件属性的修改)
文件的查看(文件内容的查看,文件属性的查看)
文件属性的查看, ls (list)
ls 如果什么都不加,表示显示当前目录下的所有文件名称
ls 后面加路径,就能显示路径下面的文件内容,如果ls后面跟的是目录,就把目录下面的文件名字列出来,如果ls后面跟的是普通文件,就把普通文件的名字列出来。
ls 后面可以跟多个路径
如果想看文件的详细信息,需要加参数
ls -l 表示显示文件的详细信息
ls -a 参数表示显示以"."开头的文件,在Linux中,以“.”开头的文件是隐藏文件
ls -d 表示显示目录本身,而不是目录下的内容
参数在99%的命令里,参数的顺序是无所谓的。
ls -l 显示的内容,第一列表示文件的类别,“-”表示普通文件,"d"表示目录文件,“b”表示块设备(存储设备),“l”表示快捷方式(软链接)
文件拥有者 文件所属组
文件大小 单位:字节 (Byte)
1k=1024Byte
1MB=1024kB
-h参数必须和-l参数一起使用,-h参数可以显示大小
cat 命令查看文件的内容
文本文件内容
cat 文本文件的path1 文本文件的path2
head 文本文件的path,显示文件的前10行
head -n 5 /etc/passwd 显示文件的前5行
head -5 等于 显示文件的前5行
tail 文本文件的path ,显示文件的后10行内容
tail -n 5 文本文件的path,显示文件的后5行内容
tailf 文本文件的path,不断的查看文件的后10行内容
more 当文本内容非常多的时候,cat命令会一次性将所有的内容输出到屏幕上,对于文本文件内容比较多的文件,more命令可以分页显示这些内容。
回车:可以让你看下一行的内容
空格:可以让你看你下一页的内容
q: 退出more 的状态
more 不支持向前翻页
less 和more 差不多,less的好处是可以向前翻页,more 有的功能less 都有,more 没有的less也有
文件的创建(文本文件的创建,目录文件的创建)
touch 文件的path1, 文件的path2 …
touch 创建的文本文件默认都是空的
Linux和Windows里所谓的后缀名字都是扯淡的
为什么说windows里面有后缀名呢? 菜鸡保护机制
在Linux里面, path 查看文件的类型
touch 文本文件
mkdir 创建目录文件(mke directory)
-p 目录的递归创建
増 touch mkdir (mkdir -p)
删 rm -i
改 mv cp
查 cat more less head tail
目录文件的删除 rmdir (rm=remove, dir=directory)
删除目录很致命
rm (remove移除) 下岗命令,能不用就尽量不用
rm命令 path1 path2
rm -i参数可以提示是否删除一个文件 进入到交互模式
touch aa{1..100} 创建100个文件
如果是root删除文件,为了防止不断的提示是否删除,可以加-f参数,表示force
-r 参数能赋予rm删除目录的能力,递归删除
-f 强制删除
-r -f 一起用,文件目录都能在不提示的情况下,直接干掉
Linux命令的alias
直接在命令行上alias rm='rm -i',创建的命令是临时的,shell关闭后就没有了。如果想要创建永久的alias命令,需要修改环境变量配置文件
Linux的拷贝命令和剪切命令
cp (copy)
mv (move)
cp 源文件1 源文件2 … 目的目录path
cp 源文件 目的目录/aaaaaaa
cp如果最后一个文件并不是一个存在的目录,就将cp指定的文件拷贝到目标名字的上层目录,并且将名字更改为目标名字
cp -a 保留原有文件的属性
文件的移动mv
用法和cp基本一致
如果移动的源文件和目的文件路径一致,就可以实现改名的操作
Linux通配符的使用
通配符,是文件管理的神器。
rm -rf *
? 就是通配符的一个, "?"表示一个非空的任意字符
\转义字符,能让特殊字符失去原有的功能
[] 表示匹配一个字符
*表示匹配任意数量的字符
rm -rf
[a - z] 表示匹配所有的小写字母
[A -Z]表示匹配所有的大写字母
[1-9]表示匹配所有的数字
vim path (文件)
当使用vim指定一个文本文件的时候,会进入该文本文件,并查看到该文本文件的内容。此时,默认请侠士不能对文件内容进行修改的。
vim分为4大模式:
命令模式
编辑模式(插入模式)
末行模式
可视化模式
当vim指定文件然后回车,进入的第一个模式是命令模式
hjkl 分表代表 左 上 下 右
命令模式
gg: 将光标切换到行首 (文本的第一行的最前面)
G: 将光标切换到最后一行,shift+g=G
输入nG就能切换到第n行,3G,就能切换到第三行
光标所在位置按x,就能删除光标所在位置的字符。如果连续按x,就会不断的向右删除字符。
光标所在位置按X,就能删除光标所在位置左侧的第一个字符,如果连续按X,就会不断的向左删除字符。
按u能撤回上一次的操作,相当于windows里面的ctrl+z,windows的ctrl+z是有限制的。windows能撤回次数有限,取决
于编辑软件的缓冲区设置。vim命令模式下的u,几乎可以无限次的撤回到文件内容最开始的部分。按住u,就会一直撤回,直到恢复到你刚进入到文本的样子。
在命令模式下输入iIOo都能进去到编辑模式。
编辑模式:
命令模式下按i就会开始从光标所在位置的左侧开始插入文本
命令模式下按I,光标就会立刻到达光标所在行的行首开始插入文本
命令模式下按a,就会开始从光标所在位置的右侧开始插入文本
命令模式下按A,光标就会立刻到达光标所在行的行尾开始插入文本
命令模式下按o,就会在光标所在行下面另起一行开始插入文本
命令模式下按O,就会在光标所在行上面一行另起一行开始插入文本
让你在某个配置文件第486行配置下面另起一行,添加Listen 223
486G o
Listen 223
命令模式下还有很多命令
dd: 在命令模式下按dd就能删除光标所在行,在命令模式下按5dd就能删除包含光标所在行的下5行
yy:在命令模式下按yy就能复制光标所在行,在命令模式下按8yy就能复制包含光标所在行的下8行
p:如果在命令模式的上一次操作中包含dd或者yy这种命令,dd和yy所删除或者复制的那些行,都可以通过p命令粘贴出来。
P:在命令模式下输入P,会将上次dd或者yy指定的行,增加到所在行的上面
在命令模式下输入"/"或者":"就能进入末行模式
末行模式下常见的操作就如下几种:
1.查看指定的字符串
2.文本内容的替换
3.保存文本内容
4.退出vim编辑器 (如果修改的内容没有保存是不能正常退出编辑器的,如果强制退出会导致编辑的内容丢失)
由于Linux是一个多用户的操作系统,所以有可能出现多个用户同时编辑同一个文件的情况,所以要学会查看vim的异常状态。
:set number回车能显示行号
: set nonumber回车去掉行号
- 文本内容的替换
:n1,n2s/old content/new content/global
上面的操作会将第n1行开始,n2行结束,这些行之间且包含n1和n2行中old content替换成new content
:5,10/123/456/g 第5行到第10行的123全部替换成456
:1,$s/old content/new content/g
$就表示最后一行
vim 编辑器异常处理
export LANG=zh_CN.utf8
vi 编辑器和vim 编辑器
vim 相当于 vi plus
Linux的重定向和管道
输出重定向
当输入一个命令后,命令产生了结果,结果默认是输出到屏幕上的。
默认情况,无论一个命令执行正确与否,结果都会默认输出到屏幕上。
在有些情况下,可能需要保留命令或者脚本,当做Log 事后分析
将命令或者脚本产生的结果保存下来的意义。
- > 和 >>是正确的重定向,能将正确的结果重定向到文件中,区别是:
- > 相当于正确的覆盖
- >> 相当于正确的追加
2 > 就是错误的覆盖
2 >>就是错误的追加
&> 正确错误都覆盖
&>>正确错误都追加
&>> /dev/null
/dev/null是一个特殊的文件,如果将重定向指向这个文件,那么就相当于将执行结果送到黑洞中。直接没了。
有些时候,我们不想让这个命令产生结果,就送到黑洞中。
输入重定向 (可以将交互式的命令变成非交互式的命令)
mail 命令能发送邮件
<
<<
完全不一样
管道
(文件管理里面比较重要的概念)
1.管道的左边和右边都有命令 (左边任意命令 右边特定命令)
2.管道左边的命令会产生输出结果,经过管道后就变成了输入。
3.管道右边的命令总是接收输入的命令。
接收输入的命令:
cat
head 文件
tail 文件
more 文件
less 文件
ls | xargs cat
grep 命令 (抓) 过滤文件中的内容,如果过滤的内容存在,就将改行显示出来
grep 内容 普通文本文件
-i不区分大小写
-v 反向抓取
-A
-B
-n 显示行号
grep 正常操作只能抓取文件的内容,配合管道,可以抓任何内容。
正则表达式 (存在的意义是为了匹配文件内容) log(日志)分析
^ (^a) 表示以a开头
$ (c$) 表示以c结尾
. (a.)表示匹配任意一个非空字符
*(a*)
? (.?) 表示匹配任意两个非空字符
grep ^a | grep b$ (抓取以a开头以b结尾)
(.*) 表示匹配任意非空字符串
(.?)111
获取Linux帮助和快捷键
文件管理命令,Linux命令本身并不难,难的是命令包含非常多的参数
man
info
help
红帽官方文档 access.redhat.com
百度
谷歌
软件本身的帮助文档
man 手册中命令的级别
快捷键:
ctrl+l 清屏 (clear)
ctrl +a 将光标移到最左侧
ctrl+ e将光标移到最右侧
ctrl+u 将删除光标所在位置到最左侧
ctrl +y 还原删除操作
ctrl+w 删除光标到左侧的一个word
向上箭头 能列出上次使用的命令
向下箭头 和向上箭头相反
history 命令能查看历史命令
Linux支持路径的补全
按一下Tab 部分补全
按两下Tab 列出可以补全的命令