操作系统的作用
- 是现代计算机系统中最基本和最重要的系统软件
- 是配置在计算机硬件上的第一层软件,是对硬件系统的首次拓展
- 主要作用是管理好硬件设备,并为用户和应用系统提供一个简单的接口,便于使用
-
而其他的如编译程序、数据库管理系统、以及大量的应用软件,都直接以来于操作系统的支持
不同应用领域的主流操作系统
1.桌面操作系统
- Windows
用户群体大 - macOS
适合开发人员 - Linux
应用程序少
2.服务器操作系统
- Linux
安全、稳定、免费
占有率高
为什么安全?
Linux开源,有漏洞容易被发现,用户量小,黑客不care,权限严格,一般以非root身份使用。Windows付费,只有微软团队,用户量大,黑客care,以管理员权限运行。 - Windows Server
付费
占有率
3.嵌入式操作系统
- Linux
4.移动设备操作系统
- iOS
- Andriod(基于Linux)
虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
- 虚拟系统通过生成现有操作系统的全新虚拟景象,具有真实操作系统完全一样的功能
- 进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统中进行的,可以独立安装软件,保存数据,对真正的操作系统不会产生任何影响
- 能够在现有系统和虚拟景象之间灵活切换的一类操作系统
操作系统的发展历史
1.Unix
2.Minix
3.Linux
Linux内核及发行版
1.Linux内核版本
- 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层
- Linux内核版本又分为稳定版和开发版,两种版本是互相关联、互相循环
- 稳定版:具有工业级强度,可以广泛地应用和部署,新的稳定版相对于旧的稳定版只是修正一些bug或加入新的驱动程序
- 开发版:由于要试验各种解决方案,所以变化很快
- 内核源码网址:https://www.kernel.org
所有来自全世界的对linux源码的修改最终都会汇总到这个往后在哪,由Linuxd领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中
2.Linux发行版本
- Linux发行版(也叫GNU/Linux发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件
- 常见的发行版本如下:
- Ubunntu
- Redhat
- Fedora
- openSUEE
- Linux Mint
- Debian
- Manjaro
- Mageia
- CentOS //用的比较多
- Arch
Linux的应用领域
1.服务器领域
- Linux在服务器领域的应用是其重要分支
- Linux免费、稳定、高效等特点在这里得到很好的体现
2.嵌入式领域
- 近年来,Linux在嵌入式领域的应用得到飞速的提高
- 运行稳定,对网络的良好支持性、低成本、且可以根据需要进行软件裁剪,内核最小可以达到几百KB
- 主要应用:机顶盒、数字电视、网络电视、手机、PDA等
3.个人桌面领域
- 传统Linux最薄弱的环节
- 由于传统Linux界面简单、操作复杂、应用软件少,一直被Windows压制
- 近年来随着Ubuntu、Fedora等优秀桌面环境的兴起,各大硬件厂商对其支持的加大,Linux在个人桌面领域的占有率在逐渐的提高
Linux文件和目录
1.Windows和Linux文件系统区别
-
Windows下有多个驱动器盘符,每个驱动器都有自己的根目录结构,这样就形成了多个树并列的情形
- Linux下只有一个根目录
/:
,在Linux操作系统下插入U盘,也只会显示到某个目录下
常用Linux命令的基本使用
职场中,大量的服务器维护工作都是在远程通过SSH客户端来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成。如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ls | list | 查看当前文件夹下的内容 |
02 | pwd | print work directory | 查看当前所在文件夹 |
03 | cd[目录名] | change directory | 切换文件夹 |
04 | touch[文件名] | touch | 如果文件不存在,新建文件 |
05 | mkdir[目录名] | make directory | 创建目录 |
06 | rm[文件名] | remove | 删除指定的文件名 |
07 | clear | clear | 清屏 |
终端命令格式
command [options] [parameter]
- command 命令名 相应功能的英文单词或缩写
- option 选项,可以用来对命令进行控制,也可以省略
- parameter 传给命令的参数,可以是0个,一个会多个
- [ ] 代表可选
查阅命令帮助信息
-- help
-
man command
man是manual的缩写,是Linux提供的一个手册,包含了绝大部分的命令、函数的详细使用说明- 使用
man
命令时的操作
操作键 功能 空格键 显示手册页的下一屏 Enter键 一次滚动手册页的一行 b 回滚一屏 f 前滚一屏 q 退出 /word 搜索word字符串 - 使用
熟练使用以下命令
快捷键
上下键--上一个/下一个命令
ctrl+c 退出命令ls
>ls -l
drwxr-xr-x 5 leitianxiao staff 160 6 14 21:42 GitHub
文件类型 - 权限 - 硬连接数- 用户名 - 用户名组 - 大小 - 文件修改时间 - 文件夹名
- 文件类型
d代表文件夹,-代表文件
- 权限 :
rwx r-x r-x 分为三组权限,第一组指文件拥有者的权限,第二组指用户拥有组的权限,第三组指其他人的权限
r代表可读,w代表可写, x代表可执行, -代表非
>ls 任意路径 查看任意路径下的文件和目录
>ls a*
展示以a开头的文件、目录 ,*代表任意个任意字符
>ls a?
展示以ax的文件、目录 ,?代表1个任意字符
>ls [abc]b
匹配[ ]中任意字符
clear
清屏,其实就是把滚动条往下拉。cd
cd ..
返回上级目录
cd ~
返回home目录
cd /
返回根目录ls
ls -a
显示所有文件 .xxx .开头的都是隐藏文件
ls -l
显示文件夹的详细信息,权限、大小
ls-lh
h-human,以人性化的方式显示详细信息,显示文件大小的单位pwd
当前路径mkdir
创建的路径一定是要有权限的
mkdir /home/admin/不存在的父级目录/不存在的文件夹
会报错没有这个文件或目录
mkdir /home/admin/不存在的父级目录/不存在的文件夹 -p
就会按层级创建文件夹
mkdir red blue
在当前目录下创建red
和blue
文件夹
mkdir color1/red color2/blue
在当前目录下创建color1/red
和color2/blue
文件夹
mkdir color {red blue}
在当前目录下创建color/red
和color/blue
mkdir .abc
创建隐藏文件夹
只要创建的文件夹,必然会有隐藏的.
和..
,代表当前目录和上级目录,无法删除。所以可以进行cd ..
、cd.
touch
touch a.txt
在当前目录下创建.txt文件a
touch
命令只能在存在的目录下创建文件
touch .abc
创建一个隐藏文件
gedit hello.txt
用记事本打开文件,有hello.txt就打开文件,没有就创建并打开rm
rm hello.txt
删除文件
rm a
删除文件夹,会报错,无法删除一个目录
rm a -r
删除目录
rm *
删除当前目录下所有文件、无法删掉隐藏文件
rm * -r
删除当前目录下所有目录、无法删掉隐藏文件
rm .abc
隐藏文件只能一个一个的删除-
cp
将给出的文件或目录复制到另一个文件或目录中,相当于DOS的copy命令- 常用选项说明
选项 含义 -a 通常在复制目录时使用,它保留链接、文件属性、并递归地复制目录,简单而言,保持文件原有属性 -f 覆盖已存在的目标文件而不提示 -i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认 -r 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须一个目录名 -v 显示拷贝进度 mv 移动命名、重名名
mv 123.txt hello.txt
相当于把123重命名为hello-
软链接(常用)
软链接:不占磁盘空间,源文件删除则软链接失效
软链接格式:ln -s 源文件 链接文件
> ln -s hello.json link lrwxr-xr-x 1 leitianxiao staff 10 7 17 21:51 link -> hello.json
link 指向了hello.json
链接文件的文件大小很小,只记录源文件的名称,如果删除源文件,新建同名文件,链接仍然生效。同样也因此原因,如果要将软链接和源文件放在不同文件目录下,需要使用绝对路径
ln -s ~/admin/hello.json ~/link
能链接文件,也能链接目录 -
硬链接
硬链接:只能链接普通文件,不能链接目录
硬链接格式:ln 源文件 链接文件
>ln hello.json link -rw-r--r-- 2 leitianxiao staff 1085 7 17 21:42 hello.json -rw-r--r-- 2 leitianxiao staff 1085 7 17 21:42 link
硬链接是记录所有的内容,文件大小也一样,可以删除源文件,不影响硬链接文件,
ls -l
权限后面的数字是硬链接数,表示改这个文件有几个文件会产生同步变化,硬链接不能链接目录 -
chmod 修改文件权限
chmod修改权限有两种使用格式:字母法和数字法
字母法 :chmod u/g/o/a +/-/= rwx 文件【u/g/o/a】 含义 u user 表示该文件的所有者 g group 表示与该文件所有者所属的同一组,即用户组 o other 表示其他以外的人 a all 表示这三者皆是 【+/-/=】 含义 + 增加权限 - 撤销权限 = 设定权限 【rwx】 含义 r read可读,可以通过ls查看该目录的内容 w write可写,可以在该目录下创建新文件 x excute可执行,可以通过cd进入这个目录 - 没有任何权限 //给所有者u 增加+ 可执行权限x chmod u+x 1.txt //给所有者u 设置= 可执行权限x,此时所有权限只有x chmod u=x 1.txt //撤销所有者所有权限 chmod u=- 1.txt //给三种角色不同的权限 chomod u+w,g-r,o=xr 1.txt //三个角色同样的权限 chmod a+rwx 1.txt
数字法:
字母 说明 r read可读,数字代号4 w write可写,数字带号2 x excute可执行,数字带号1 - 没有任何权限,数字带号0 格式:
chmod abc 文件名
,abc各为一个数字,为权限代号之和,a代表所所有者的权限,b代表用户组的权限,c代表其他人的权限。//给三个角色所有权限,4+2+1=7 chmod 777 1.txt //不给三个角色任何权限 chmod 000 1.txt //给用户可读,给用户组可写,给其他人可执行 chmod 421 1.txt
-
find
特定目录下搜索符合条件的文件,也可以用来搜索特定属主的文件
常用用法:命令 含义 find . -name test.sh 查找当前目录下所有名为test.sh的文件,.代表当前目录 find . -name *.sh 查找当前目录下所有后缀稳为.sh的文件 find ~ -name *.txt 查找家目录下以.txt结尾的文件 -
tar 归档管理
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
使用格式:tar [参数] 打包文件夹 文件
打包 tar cvf a.tar *.txt 解包 tar xvf a.tar -C atar
tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
常用参数:参数 含义 -c 生成档案文件,创建打包文件 -v 列出归档解档的详细过程,显示进度 -f 指定档案文件名称 -t 列出档案中包含的文件 -x 解开档案文件 tar -cf dabao.tar 1.txt hello.txt
把1.txt、 hello.txt打包(-c)为文件(-f)dabao.tar,但是此时没有压缩。
每个命令都要加f
,加在参数最后cvf xvf xf cf ……
解包到其他目录,在目录前要加-C
-
gzip 压缩
tar和gzip的结合实现文件的打包、压缩。tar只负责打包,gzip压缩tar打包后文件,其拓展名一般为.tar.gz
gzip使用格式:gzip [选项] 被压缩文件
常用选项:-d
--> 解压-r
--> 压缩所有子目录
压缩解压步骤总结:- 压缩
1.打包
tar cf a.tar 1.txt
生成a.tar文件
2.压缩
gzip -r a.tar
生成a.tar.gz文件 - 解压
1.解压
gzip -d a.tar.gz
生成a.tar文件
2.解包
tar xf a.tar -C ~/atar
解包到指定文件夹
一步到位的压缩和解压:
-z
tar zcf b.tar.gz 1.txt
以gzip的方式打包并且压缩
`tar zxf b.tar.gz -C ~/btar 以gzip的方式解压并且解包
- 压缩
bzip2
跟gzip命令一样使用。其拓展名为xxx.tar.bz2。
tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩功能,实行一个先打包后压缩的过程。
压缩用法:tar -cjf a.tar.bz2 1.txt
解压用法:tar -xjf a.tar.bz2 -C ~/btar
zip、unzip
通过zip压缩文件的目标文件不需要指定扩展名,默认拓展名为zip。
压缩文件:zip [-r] 目标文件(没有拓展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
解压时,如目录不存在,会自动创建目录。
实际使用时,考虑压缩率和通用性,一般使用 gzip
压缩率:zip<gzip<bzip2
通用性:zip>gzip>bzip2
-
shutdown、reboot 关机重启
命令 含义 reboot 重新启动操作系统 shutdown -r now 重新启动操作系统,shutdown会给别的用户提示 shutdown -h now 立刻关机,其中now相当于时间为0的状态 shutdown -h 20:25 系统会在今天20:25关机 shutdown -h +10 系统会在10小时后关机 -
which
查看命令在哪里
语法:which 任意命令
> which zip /usr/bin/zip
命令是一个可执行文件,win中要双击才能启动可执行文件,linux中使用命令就可以
who 查看登陆用户
查看当前所有登陆用户的信息exit 退出当前账户
如果是图像界面,退出当前终端
如果是使用ssh远程登录,退出登陆账户
如果切换后登陆用户,退出则返回上一个登陆账号passwd 设置用户密码
su 切换到管理员账号
切换到root用户,使用su
命令
linux命令加强
- grep 文本搜索
Linux系统中grep命令是一种强大的文本搜索工具,允许对文本进行模式查找,如果找到匹配模式,grep打印包含模式的所有行
一般格式为:grep [-选项] ‘搜索内容串’ 文件名
选项 含义 -n 显示匹配行及行号 -v 显示不包含匹配文本的所有行 -i 忽略大小写 grep -n 'hello' hello.txt
grep -i 'hello' hello.txt
grep -v 'hello' hello.txt
grep -in 'hello' hello.txt
在当前目录下搜索:grep -n 'hello' . -r
grep的搜索字符串可以是正则表达式,常用正则表达式:参数 含义 ^a 行首,寻找以a开头的行 ke$ 行尾,寻找以ke结尾的行 [sS]sign[aA] 匹配[ ]中一系列字符中的一个,可以是ssigna,ssignA…… . 匹配一个非换行字符,匹配e.e之间任意一个字符,可以是eve,eae,eee…… - 重定向
>
将命令执行的结果重定向到一个文件,本应显示在终端的内容保存在一个文件中
ls > text.txt
(text.txt不存在就创建,存在就覆盖)
>
输出重定向会覆盖原来的内容,>>
输出重定向会追加到文件内容的尾部 - cat
cat text.json
查看文件内容,展示在终端上
cat text1.json text2.json
查看多个文件内容
cat text1.json text2.json > text3.json
合并多个文件的内容 - more
文件内容过长时,打开文件会显示到内容末尾。使用more
可以从第一行开始显示,可用来查看比较大的文件
more hello.json
b往回翻页,enter键向下翻页 - 管道 一个命令的输出可以作为另一个命令的输入,左端写东西,右端取东西
ls ~ | more
展示ls ~的结果,按more命令的方式,从第一行开始展示
cat hello.json | more
编辑器vim
"vi"是visual interface的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,vi不是一个排版程序,它不像word或者wps那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序,vi没有菜单,只有命令,而且命令繁多。
vi的三种基本工作模式
插入模式
命令模式
末行模式
1.vim基础操作
"vim"是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能丰富。
在shell环境输入vi命令打开文件时,属于命令模式
- 进入插入模式:
i 插入光标前一个字符
I 插入首行
a 插入光标后一个字符
A 插入行未
o 向下新开一行,插入行首
O 向上新开一行,插入行首
- 插入模式时,按ESC进入命令模式
移动光标:
j 向下每行行尾
k 向上每行行尾
l 向右
h 向左
M 光标移到中间行
L 光标移到屏幕最后一行行首
数字行号+shift +G 移动到指定
(末行模式:set nu 显示行号)
w 向后一次移动一个字
b 向前一次移动一个字
{ 按段移动,上移
} 按段移动,下移
ctrl+d 向下翻半屏
ctrl+u 向上翻半屏
ctrl+f 向下翻一屏
ctrl+b 向上翻一屏
gg 光标移到文件开头
G 光标移到文件末尾
删除命令:
x 删除光标后一个字符
X 删除光标前一个字符
dd 删除光标所在行
d0 删除光标前本行所有内容
dw 删除光标开始位置的字
撤销命令:
u 一步一步撤销
ctrl+r 反撤销
重复命令:
. 重复上一次操作的命令
文本行移动
>> 文本行右移
<< 文本行左移
复制粘贴:
yy 复制当前行, n yy 复制n行
p 在光标所在位置向下新开辟一行,粘贴
可视模式:
v 按字符移动,选中文本
V 按行移动,选中文本可视模式可以配合 d,y >>
替换操作:
r 替换当前字符
R 替换当前行光标后的字符,直到按esc
查找命令:
/ str查找
n 下一个
N 上一个
- 命令模式时,按:进入末行模式
w 存盘
wq 保存并退出
q! 不存盘,强制退出