文章目录
1.Linux概述
(1)Linux是一个内核,安装完成后没有用户界面和软件,是提供硬件抽象层、硬盘以及文件系统控制
的核心程序;
(2)linux发行版是在内核的基础上加入了用户界面和各种软件的支持。
Linux的主要发行版有Ubuntu(乌班图)、RedHat(红帽)、CentOS、Fedora等
(3)Linux的主要应用领域
1)个人桌面领域的应用
此领域是传统Linux应用薄弱的环节,但近些年来随着Ubuntu、fedora等优秀桌面环境的兴起,Linux在
桌面领域的占有率在逐渐的提高
2)服务器领域
①Linux在服务器领域的应用是最强的
②Linux的免费、稳定、高效特点在这里得到了很好的体现 ,尤其是在一些高端领域尤为广泛(例如c/c++/
php/java/python/go等)
3)嵌入式领域
①Linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到
几百KB等特点,使其近些年来在嵌入式应用得到非常大的提高
②主要应用:数字电视、网络电话、手机、智能家居等都是其应用领域。以后在物联网应用中会更加
广泛。
2. Linux和Windows目录对比
Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录(在Linux世界里,一切皆为文件,把硬件也当做文件)
(1)/bin目录,这个目录存放着经常使用的命令
(2)/sbin目录,这里存放的是系统管理员使用的系统管理程序
(3)/home,存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名(每创建一
个用户,/home目录下就会有一个文件夹)
(4)/root(也可表示为~),该目录为系统管理员,也称作超级权限者的用户主目录
(5)/lib,系统开机所需要的最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
(6)/lost+found,这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
(7)/etc,所有的系统管理所需要的配置文件和子目录,比如安装MySQL数据库中的my.conf
(8)/usr,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录
(9)/boot,存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
(10)/opt,这是给主机额外安装软件所存放的目录。比如安装oracle数据库就可以放到该目录下
(11)/usr/local,这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
(12)/proc,这个目录是一个虚拟目录,它是系统内存的映射,访问这个目录获取系统信息(不能动)
(13)/srv,该目录存放一些服务启动之后需要提取的数据(不能动)
(14)/sys,这是Linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统(不能动)
(15)/tmp,这个目录是用来存放一些临时文件的
(16)/dev,类似于Windows的设备管理器,把所有的硬件用文件的形式存储
(17)/opt,这是主机额外安装软件所存放的目录。如安装Oracle数据库就可以放到该目录下。
(18)/media,Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下
(19)/mnt,系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在/mnt/上,然后进入
该目录就可以查看里面的内容了
(20)/var,这个目录存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件
3. Vi和Vim编辑器
Linux系统会内置vi文本编辑器,Vim具有程序编辑的能力,可以看做是Vi的的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补全、编译以及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用
(1)正常模式
以vim打开一个文档就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以通过使用【上下左右】按键来移动光标,你可以使用【删除字符】或者【删除整行】来处理文档内容,也可以使用【复制、粘贴】来处理你的文件数据
(2)插入模式
按下i,I,o,O,a,A,r,R等任何一个字母之后就会进入编辑模式,一般来说按i即可
(3)命令行模式
按esc键再输入: 在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中完成的
(4) vi和vim模式的切换
(5)正常模式下的快捷键
①复制当前行 yy,并粘贴输入p(例如复制当前行向下5行:5yy)
②删除当前行 dd,删除当前行向下5行:5dd
③在文件中查找某个单词【命令行下 /关键字,回车查找,按n就是查找下一个】
④设置文件的行号(:set nu),取消文件的行号(:set nonu)
⑤使用快捷键到该文档的首行(gg),最末行(G)
⑥撤销上一个动作(u)
⑦移动到指定行:输入行数,再输入shift+g(例如输入20,再输入shift+g,就是移动到20行 )
4. 开机、重启和用户登录注销
4.1 关机、重启命令
(1)基本介绍
①shutdown -h now 立刻进行关机
②shutdown -h n分钟 n分钟后关机
③shutdown -r now 重新启动计算机
④halt 关机
⑤reboot 重新启动计算机
⑥sync 把内存的数据同步到磁盘
(2)注意细节
①不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中
②目前的 shutdown/reboot/halt 等命令均已经在关机前进行了 sync
4.2 用户登录和注销
(1)登录时尽量少使用root账号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再使用“su - 用户名
”命令来切换成系统管理员身份
(2)切换到其他用户后,输入 logout 即可再次返回到原来的用户
(3)首次登录的账号,输入logout是注销账号
4.3 用户管理
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统
4.3.1 添加/删除用户
(1)基本用法:useradd 用户名
(2)在创建用户时加上-m参数即可自动创建家目录,命令格式为:useradd -m 用户名。
(3)也可以通过useradd -d 指定目录 用户名,给新创建的用户指定家目录(创建后会显示目录名,不显示用户名)
(4)删除用户,但是保留家目录:userdel 用户名
(5)删除用户以及用户家目录:userdel -r 用户名
(6)一般情况下,我们建议保留家目录
4.3.2 指定/修改密码
(1)基本语法:passwd 用户名(没有写用户名就是给当前用户进行修改密码)
(2)显示当前用户所在目录:pwd
4.3.3 查询用户信息
(1)基本语法:id 用户名
(2)当用户不存在时,返回无此用户
4.3.4 切换和查看当前用户
在操作Linux时,如果当前用户的权限不够,可以通过su -指令,切换到高权限用户,比如root
(1)基本语法:su - 切换用户名
(2)细节说明
①从权限高的用户切换到权限低的用户,不需要输入密码,反之则需要
②当需要返回到原来用户时,使用exit/logout指令
(3)查看当前用户/登录用户基本语法:whoami 或者who am i
4.3.5 用户组
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理
(1)新增组:groupadd 组名
(2)删除组:groupdel 组名
(3)增加用户时直接加上组:useradd -g 用户组 用户名
(4)修改用户的组:usermod -g 用户组 用户名
4.3.6 用户和组相关文件
(1)/etc/passwd
①用户的配置文件,记录用户的各种信息
②每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
(2)/etc/shadow 文件,口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
(3)/etc/group文件
①组的配置文件,记录Linux包含的组的信息
②每行含义:组名:口令:组标识号:组内用户列表
5.Linux指令
(1)在执行Linux命令时,提示信息如果显示为乱码,这是由于编码问题导致的,只需要修改Linux的编码即可,命令如下:
①echo ‘LANG=“en_US.UTF-8”’ >> /etc/profile 把单引号下的内容追加到 /etc/profile 文件中
②source /etc/profile 重新加载,让 /etc/profile 生效
(2)Linux命令使用技巧
①Tab键自动补全
②连续两次Tab键,给出操作提示
③使用上下箭头快速调出曾经使用过的命令
④使用clear命令或者Ctrl + L 快捷键实现清屏
(3)Linux命令格式
command [-options] [parameter]
①command:命令名
②[-options]:选项,可用于对命令进行控制(如 rm -f 1.txt 强制删除,不在询问)
③[parameter]:传给命令的参数,可以是零个,一个或者多个
注意:[] 代表可选,命令名、选项、参数之间由空格进行分割
6.Linux磁盘分区
6.1 原理介绍
(1)对于Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
(2)Linux采用了一种叫做”载入“的处理方式,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
(3)示意图
(4)查看所有设备挂载情况
命令:lsblk或者lsblk -f (-f 看的更加清晰)
6.2 硬盘说明
(1)Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
(2)对于
7.软件安装
7.1.软件安装方式
(1)二进制发布包安装:
软件已经针对具体平台编译打包发布,只要解压,修改配置即可
(2)rpm安装:
软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
(3)yum安装:
一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题
(4)源码编译安装:
软件以源码工程的形式发布,需要自己编译打包
7.2.常用软件安装
(1)安装jdk
(2)安装Tomcat
1)安装步骤
2)验证Tomcat启动是否成功
3)防火墙操作
(3)安装MySQL
⑧测试MySQL数据库是否正常工作
show databases;
(4)安装lrzsz
8.项目部署
8.1.手工部署项目
(1)在idea中开发SpringBoot项目并打成jar包
(2)将jar包上传到Linux服务器
①创建任意目录,将jar包放到此目录
mkdir /usr/local/app
②使用rz命令,上传jar项目文件
(3)使用java -jar jar包名来命令启动SpringBoot项目
注意:检查防火墙,确保8080(项目的端口号)端口号对外开放,可以访问到SpringBoot项目
(4)目前程序运行退出终端就不能访问了,应改为后台运行SpringBoot程序,并将日志输出到日志文件
(5)停止SpringBoot项目
①通过 ps -ef | grep java
可以查看jar包的进程
②进而通过 kill -9 进程号
来强制杀掉进程
8.2 通过Shell脚本自动部署项目
操作步骤:
2.1 在Linux中安装Git
2.2 在Linux中安装maven
2.3 编写Shell脚本(拉取代码、编译、打包、启动)
3.4 为用户授权执行Shell脚本的权限
3.5 执行Shell脚本
(1)在Linux中安装Git
yum list git // 列出git安装包
yum install git // 在线安装gi
转自:
https://blog.csdn.net/y516369/article/details/127159303