文章目录
1.Linux概述
Unix系统
- Linux操作系统可以追溯到1969年,Unix是较早被广泛使用的计算机系统之一,第一版于1969年由肯汤普森实现,1973年肯汤普森和丹尼斯里奇用c语言重写了unix的第三版内核。
- Unix是个强大的多用户、多任务操作系统
- Unix的商标权由国际开放标准组织所拥有
- Unix操作系统商业版,收费
Linux发展历史
-
Linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月5日,也是第一次正式向外公布,由芬兰学生Linus 和后来陆续加入的众多爱好者共同开发完成
-
Linux这个词本身只表示Linux内核,但人们习惯用Linux形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
-
那么GNU计划是什么呢
-
GNU计划和自由软件基金会FSF是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似UNIX并且是自由软件的完整操作系统。
-
GPL协议
-
即GNU通用公共许可协议,是 GNU General Public License 的简写。它是由自由软件基金会(FSF)公布的自由软件许可证。
-
规定了使用遵循了GPL协议软件时,使用者的权力和义务如下
-
权力:获取源码的权力;修改源码的权利;自由处理衍生作品的权利。
-
义务:
-
(1)使用了遵循GPL协议发布的软件,自身也必须遵守GPL协议。这也是GPL被人称为有传染性的原因。
-
(2)必须开放源代码;允许使用者自由获取(复制)、修改、发布的产品,即拥有获取源码、修改源码、分发软件的自由。
系统特点
(1)开放性:系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准;
(2)多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响;
(3)多任务:指计算机同时执行多个程序,而且各个程序的运行相互独立;
(4)良好的用户界面:Linux向用户提供了两种界面(用户界面和系统调用)。Linux还为用户提供了图形用户界面。它可利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面;
(5)设备独立性:指操作系统将所有外部设备统一当作文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力。
(6)提供了丰富的网络功能:完善的内置网络是Linux一大特点。
(7)可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境的用户提供了必要的安全保障。
(8)良好的可移植性:是指将操作系统从一个平台转移到另一个平台,使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。
(9)支持多文件系统:linux系统可以把许多不同的文件系统以挂载形式连接到本地主机上,包括Ext2/3、FAT32、NTFS、OS/2等文件系统,以及网络上其他计算机共享的文件系统NFS等,是数据备份、同步、复制的良好平台。
Linux和Windows的区别
(1)内核不同
Linux操作系统使用Linux内核,Windows操作系统使用NT内核。Linux操作系统是开放源码系统,可以对其程序进行编辑修改。而微软的windows系统受微软版权保护,只允许微软内部进行开发及修改。
(2)价格
Linux是免费的,Windows是收费的,不过不代表所有Linux都是免费的,有一部分进行商业运作的Linux是收费的,比如Redhat Linux。
(3)支持软件
Windows软件支持丰富,而Linux软件支持就很少了,因为Windows硬件驱动厂商支持全面,Linux驱动这块不如Windows全面,比如百分之九十九的游戏都可以在Windows上运行,而Linux上只有很简陋的游戏。
(4)易用性
Windows易用性高,Linux操作系统有一定的门槛,Linux使用命令行字符模式为主要操作方式,Windows使用窗口、图标、鼠标点击形象化的方式为主要操作方式,如果不懂命令行,基本使用Linux是寸步难行的。
(5)操作方式
windows操作主要以图形界面为主,linux操作主要以命令行为主。
linux命令行区分大小写,windows在dos界面命令下不区分大小写。
(6)市场和安全性
Linux系统主攻服务器市场,Windows系统主打桌面市场,Linux主要应用于网络,而Windows操作系统最开始应用于打印服务。Linux安全性比Windows安全性高,要求它更加可靠。
应用领域
(1)服务器系统
Web应用服务器、数据库服务器、游戏服务器、接口服务器、DNS、FTP;
(2)嵌入式系统
路由器、防火墙、手机、PDA、IP分享器、交换器、家电用品的微电脑控制器;
(3)高性能运算、计算密集型应用
Linux有强大的运算能力。IBM的Watson超级计算机就是使用了Linux系统;
(4)桌面应用系统
很多桌面操作系统的底层也是Linux;
(5)移动手持系统
安卓系统就是基于Linux;
版本
介绍
继承了Unix的版本定制规则
分类
(1)内核版本
内核就是一个核心,其他软件都基于这个核心,不能直接使用,该版本统一在 http://www.linux.org发布
分类
稳定版——偶数
开发版——奇数
区分方式:根据此版本的奇偶判定
(2)发行版本
由Linux发行商发布,Linux发行商有权选择Linux的内核版本。
常见
Debian——运行极其稳定,非常适合用于服务器。
redhat——第一款面向商业市场的Linux发行版,有服务器版本,支持众多处理器架构。全球最大的linux发行厂商,功能全面、稳定。
ubuntu是Debian的一款衍生版,侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行的移动设备上常见。
centos——一款企业级Linux发行版,使用红帽企业级linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。
Fedora——发行版,有庞大用户论坛,软件库中还有为数不少的软件包,同样使用YUM管理软件包。
2.虚拟机
概述:通过软件模拟的具有完整硬件功能的运行在一个完全隔离环境中的完整计算机系统;
常用虚拟机
(1)VMware Workstation
VMware公司销售的商业软件产品之一。该工作站软件包含一个用于英特尔x86相容电脑的虚拟机套装,其允许用户同时创建和运行多个x86虚拟机;
(2)VirtualBox
一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBo;
(3)Virtua* PC
是Microsoft 最新的虚拟化技术。主要适合做微软自己产品的服务
图示
3.Linux命令的使用
基本命令的使用
(1)常用的快捷键
键位 | 作用 |
---|---|
tab键 | 命令或者路径提示及补全 |
ctrl+c | 放弃当前输入,终止当前任务或程序 |
ctrl+l | 清屏 |
ctrl+insert | 复制 |
鼠标右键 | 粘贴 |
alt+c | 断开连接 |
ctrl+shift+R | 重新连接 |
alt+1/2/3/4/5… | 切换会话窗口 |
上下键 | 查找执行过的命令,或者history命令 |
(2)终端命令格式
command [-options] [parameter]
command——命令名,相应功能的英文单词或者单词的缩写
[-options]——选项,可用来对命令进行控制,也可省略
[parameter]——传给命令的参数,可以是零个、一个或者多个
(3)帮助命令
帮助命令
介绍:因为一个命令有很多可选项,可借助手册查阅
–help 帮助信息
命令 | 说明 |
---|---|
command --help | 显示command命令的帮助信息 |
缺点——虽然可查询命令的帮助信息,但没有提供翻页、搜索功能
man 手册
命令 | 说明 |
---|---|
man command | 查询command命令的使用手册 |
man是manual的缩写,是linux提供的一个手册,包含了大部分的命令、函数的详细使用说明 |
操作键
其他常用命令
目录操作命令
Linux中没有文件夹的概念,应该叫目录;
切换目录
命令 | 说明 |
---|---|
pwd | 查看当前所在路径 |
cd … | 切换到上级目录 |
cd - | 后退到上一次所在目录 |
cd / | 去根目录 |
绝对路径:/ 开始的目录,从根目录开始;
相对路径: 直接目录,从当前目录开始;
查看目录内容
命令 | 说明 |
---|---|
ls | 查看目录下内容 |
ls -a | 查看全部内容,包含隐藏文件 |
ls -l | 查看内容的详细信息,效果等同于 ll 命令 |
ls -lh | 显示文件大小 |
创建目录命令
命令 | 说明 |
---|---|
mkdir [-p] 要创建的目录 | parent,可递归创建目录 |
rmdir删除一个空的目录
rmdir 要删除的空目录,remove即移除
注意:若该目录中存在文件或其他目录时该命令是不能删除的
文件操作命令
touch创建文件
touch 文件名称
注意:touch 文件名1,文件名2… 可创建多个文件
rm删除文件
rm [-参数] 文件/目录 (递归删除目录中所有内容)
复制拷贝命令
通过cp实现将指定文件或目录复制到一个文件或目录中;
命令 | 说明 |
---|---|
cp source dest | 复制source文件到 dest |
cp -r sourceFolder targetFolder | 递归复制整个文件夹 |
-r | recursive,递归复制目标目录的内容 |
mv(move)
通过mv命令可以用来移动文件或目录,也可以为其重命名;
命令 | 说明 |
---|---|
mv oldNameFile newNameFile | 重命名 |
mv /temp/movefile /targetFolder | 递归复制整个文件夹 |
cat查看文件内容
查看文件内容,从第一行开始显示;
cat [选项] 要查看的文件
选项
more查看文件内容
查看文件内容,一页一页显示文件内容
more 要查看的文件
功能说明
less查看文件内容
les的作用与more相似,都可以浏览文字档案的内容,不同的是less允许使用[pageup] [pagedown]往回滚动;
less 要查看的文件
功能说明
head查看文件内容
查看文件内容,只看头几行
优点:对于大文件不必都加载,只显示头几行即可
命令 | 说明 |
---|---|
head 文件名 | 查看前10行 |
head -n 3 文件名 | 查看文件的前3行 |
head -c 3 文件名 | 查看文件的前3个字符 |
tail查看文件内容
查看文件内容,只看尾巴几行;
优点:可以查看文件实时追加的内容
命令 | 说明 |
---|---|
tail -n 10 | 查看文件头(从末尾开始数) 10行内容,10可以是任意行行数 |
tail -f 文件 | 实时追加的内容 |
组合命令
一共有三种
(1)重定向输出 > 和 >>
(2)管道 |
作用:将一个命令的输出作为另一个命令的输入;
配合使用的命令
ps(Proces Status) 进程状态 ps-ef
grep(Global Regular Expression Print) 全局正则表达式版本(搜索)
(3)逻辑控制 &&
举例:因为 启动软件通常不会打印启动的日志信息, 所以需要再打开对应的日志信息查看.
分
tail -100f catalina.out
./startup.sh
使用合并指令
./startup.sh && tail -100f catalina.out
history查看所敲命令历史
压缩、解压缩命令
打tar包
概述:类似将 冬天的衣服 放到 袋;打包之后的大文件 需要以 .tar 结尾
命令格式
tar -cvf 打包名.tar 被打包的目录
tar -cvf 打包名.tar 被打包的文件1 被打包的文件2 被打包的文件3
选项 | 说明 |
---|---|
c | create ,生成档案文件,创建打包文件 |
v | verbosely,像唐僧一样报告进度 |
f | file,指定档案的文件名称,f后面一定是.tar文件,所以须放到最后 |
解压tar包
概述:类似将 冬天的衣服 从 袋子里取出来
命令格式
tar -xvf 打包名.tar
将一个打包后的 分解成 一系列小文件,分解位置为当前目录
tar -xvf 打包名.tar -C 解包路径位置
选项 | 说明 |
---|---|
x | extract(提取),解包 |
C | directory(目录),默认保存到当前目录,通过-C更改解压目录,注意解压目录必须存在 |
gzip格式 压缩 和 解压缩
概述:打包 和 压缩 是两件事;
类似与 先将冬天衣服放到压缩袋, 再抽取里面的空气;在 Linux 中, 最常用的压缩文件格式是 xxx.tar.gz;
在 tar 命令中有一个选项 -z 可以调用 gzip , 从而可以方便的实现压缩和解压缩的功能
命令 | 说明 |
---|---|
tar -zcvf 打包压缩文件名.tar.gz 被压缩的文件/目录 | 压缩文件 |
tar -zxvf 打包文件名.tar.gz | 解压缩文件 |
tar -zxvf 打包文件.tar.gz -C 目录路径 | 解压缩到指定路径 |
选项 | 说明 |
---|---|
z | gzip,使用gzip压缩和解压缩 |
j | bzip2,使用bzip2压缩和解压缩 |
bzip2 格式 压缩 和 解压缩
命令 | 说明 |
---|---|
tar -jcvf 打包压缩文件名.tar.bz2 被压缩的文件/目录 | 压缩文件 |
tar -jxvf 打包文件名.tar.bz2 | 解压缩文件 |
tar -jxvf 打包文件.tar.bz2 -C 目录路径 | 解压缩到指定路径 |
注意
如果报错tar (child): bzip2:无法 exec: 没有那个文件或目录,要安装bzip2的包
yum install -y bzip2
搜索查找
find查找文件或者目录
介绍
根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
基本格式——find path [options]
三种方式查找
(1)按照文件名查找
命令 | 说明 |
---|---|
find /etc -name yum.conf | 在/etc目录下文件yum.conf |
find /etc -name ‘yum’ | 使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘yum’的文件 |
find . -name ‘yum*’ | 表示当前目录下查找文件名开头是字符串‘yum’的文件 |
(2)按照文件特征查找
命令 | 说明 |
---|---|
find / -atime -2 | 查找系统中最后48小时访问的文件(Access Time 文件读取访问时间) |
find / -empty | 查找系统中为空的文件或者文件夹 |
find / -group susan | 查找系统中属于group为susan的文件 |
find -mtime -1 | 查找在系统中最后24小时里修改过的文件 (modify time) |
find /user susan | 查找在系统中属于susan这个用户的文件 |
find / -size +10000c | 查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB) |
find / -size -1000k | 查找出小于1000KB的文件 |
(3)使用混合查找方式查找
参数
! -and(-) -or(-o)
命令 | 说明 |
---|---|
find /tmp -size +10c -and -mtime +2 | 在/tmp目录下查找大于10字节并在最后2分钟内修改的文件 |
find / -user root -or -user susan | 在/目录下查找用户是root或者susan的文件文件 |
find /tmp ! -user suan | 在/tmp目录中查找所有不属于susan用户的文件 |
grep过滤查找
根据文件的内容进行查找,对文件的每一行按照给定模式进行匹配查找。
基本格式——grep [options] 范围
主要参数
参数 | 说明 |
---|---|
-c | 只输出匹配行的计数 |
-i | 不区分大小写 |
-n | 显示匹配行及行号 |
-w | 显示整个单词 |
-r | 递归查询 |
举例
统计jdbc的个数
grep -c jdbc applicaton.xml
vi编辑器
介绍
在Linux下一般使用vi编辑器来编辑文件;
vi既可以查看文件也可以编辑文件;
而vim是vi的升级版本,具备更多的功能;
vi如果目标文件不存在,会创建新的文件;
但是如果新文件没做编辑,退出后还会消失。
vi的三种模式
(1)编辑模式(插入模式)
对文本进行输入和修改
具体:
i——光标不动
o——另起一行
a——光标到下一个字符
命令模式下按下i、o、a进入编辑模式;
按ESC退出编辑模式,进入命令模式;
(2)底行模式
退出vim或者查找、替换功能
具体:
命令模式下,按 :或者 / 进入底行模式,可以输入命令;
五种
退出vim
命令 | 说明 |
---|---|
:q | 未编辑时退出vim |
:q! | 编辑后,退出并且不保存 |
:wq | 编辑后,退出且保存 |
:x | 编译后保存 |
撤销上次操作
命令 | 说明 |
---|---|
u | 撤销上一次操作(ctrl + z windows操作) |
ctrl + r | 恢复上一次被撤销的操作 (ctrl + y windows操作) |
设置行号
命令 | 说明 |
---|---|
:set nu | 显示行号 |
:set nonu | 不显示行号 |
替换文本
命令 | 说明 |
---|---|
: s/old/new/ | 用new替换old,替换当前行的第一个匹配 |
: s/old/new/g | 用new替换old,替换当前行的所有匹配 |
:%s/old/new/ | 用new替换old,替换所有行的第一个匹配 |
:%s/old/new/g | 用new替换old,替换整个文件的所有匹配 |
查找
命令 | 说明 |
---|---|
/文本 | 搜索指定文本,高亮显示,按n显示下一个,按N显示前一个 |
:整数 | 快捷跳转到指定行 |
(3)命令模式(一般模式)
通过快捷命令操作数据,打开vi默认就是命令模式
分类
命令 | 说明 |
---|---|
p(pause) | 将之前dd或yy的数据粘贴到光标位置 |
yy | 复制光标所在行 |
5yy | 复制光标及下面共5行 |
dd | 剪切当前行 |
5dd | 剪切光标及下面共5行 |
文件权限
概述
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限;
为了保护系统的安全性Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定;
在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组。
权限分段
每一段代表不同用户
(1)属主权限——当前文件所属用户的权限,在linux中每一个文件都有所属的用户;
(2)属组权限——当前文件的用户所在组的其他成员的权限
(3)其他用户权限——跟文件所属用户不再同组的其他用户的权限
样式:
权限 | 说明 |
---|---|
rwx 7 | 具备所有权限(421) |
rw- 6 | 具备读写权限(420) |
r-x 5 | 具备读和执行权限(401) |
r-- 4 | 具备只读权限(400) |
-wx 3 | 具备写和执行权限(021) |
-w- 2 | 具备写权限(020) |
–x 1 | 具备执行权限(001) |
— 0 | 000 |
举例
777
所属用户具有 读写执行权限, 所属同组用户具有 读写执行权限, 其他人具有 读写执行权限
644
所属用户具有 读写权限, 所属同组用户具有 读权限, 其他人具有 读权限
755
所属用户具有 读写执行权限, 所属同组用户具有 读执行权限, 其他人具有 读执行权限
chmod修改文件权限
chown改变所有者
语法
chown 最终用户
改变文件或者目录的所有者
案例
[root@linux121 test]# chown hadoop test1.txt
[root@linux121 test]# ls -al
chgrp改变所属组
语法
chgrp 最终用户组
改变文件或者目录的所属组
案例
[root@linux121 test]# chgrp hadoop test1.test
[root@linux121 test]# ls -al
-rwxr-xr-x. 1 root hadoop 551 4月 23 13:02 test1.java
YUM使用
全称Yellow dog Updater , Modified,本质上也是一个软件包管理器;
特点:基于RPM包管理,能够从指定的服务器自动下载,自动安装,自动处理依赖性关系。
原理
常用命令
测试安装httpd
安装httpd——yum -y install httpd;
启动httpd服务——service httpd start;
测试——http://192.168.80.100:80
关闭防火墙——systemctl stop firewalld 查看防火墙状态
发现无法访问这个地址,是因为linux的防火墙禁止他人 访问自己的80端口,我们需要 通知 防火墙放行
参考(侵删):
1.
https://blog.csdn.net/weixin_45941099/article/details/122612110
2.
https://blog.csdn.net/qq_45439217/article/details/104742678
3.
https://blog.csdn.net/zyqyz520/article/details/108575173
4.
https://blog.csdn.net/qq_25414997/article/details/127336208
5.
https://blog.csdn.net/dark_souls/article/details/90522855