Linux学习

Linux学习

一.Linux介绍

1.1 引言

  1. 开发环境: Win10 / Mac, 开发环境会安装大量软件, 会导致环境的稳定性和安全性降低.

  2. 生产环境: 程序运行的环境, 供用户使用. 有专业的维护人员, 一般人没有权限去操作

  3. 测试环境: 一般是克隆一份生产环境, 会将开发环境中的程序部署到测试环境中, 这个环境的主要目的是对程序进行检测, 收集程序中的各种问题, 交给开发人员进行修改.

生产环境中, 常用的操作系统: Linux, Win Service, Unix 等

Linux操作系统, 在生产环境中占据了大量的市场份额, Linux主要以稳定, 可靠, 免费的特点成为主流

Linux操作系统现在已经成为后台开发人员必备的技能, 后期学习的各种知识都会涉及到Linux操作系统.

1.2 Linux介绍

在Linux操作系统出现之前, 还有一个OS, 叫做Minix, Minix操作系统是由Andrew教授研发出来. 最初是为了给学生上课, 参考 Unix, 自己写了一个操作系统, 并且命名为Minix. 同时将Minix开源. 供学校内部的研究和教学. 到2000年, Andrew将Minix操作系统完全对外开源.

Minix 由于完全对外开源后,在互联网上迅速传播, 但大家在使用时, 发现Minix不是很完美, 内部存在各种问题.用户将问题解决后, 编写了一个补丁, 将补丁以 e-mail发送给Andrew, 但是Andrew教授最初目的只是为了教学和研究.

与此同时,一位芬兰大学生Linus,在Minix基础上,自己添加了一些补丁和插件, 将其命名为Liunx操作系统, 并且完全对外开源, 并开始了Linux维护.

Git 也是 Linus 研发的.

1.3Linux内核版本

1.Linux的内核版本

https://www.kernel.org/

2.Linux的发行版本

1.4 Linux和Windows区别

  1. Linux是严格区分大小写的, Windows无所谓.

  2. Linux中一切皆是文件.

  3. Linux中文件没有后缀的, 但是他有一些约定俗成的后缀

    1. tar, tar.gz: 压缩包; conf: 配置文件 ....

  4. Windows下的软件一般是无法直接运行在Linux中.

我们在学习Linux时, 参考Windows下做了什么, 就在Linux中做什么.

二.Linux安装

安装Linux, 需要一个虚拟机来搭建

1.推荐软件: VMware 或 Virtual Box

2.需要一个Linux镜像文件: Cent OS 7

3.安装一个连接Linux的图形化界面: Xterm, SSH, XShell (选用: Xterm)

2.1 安装VMware

傻瓜式安装

2.2 安装Xterm

解压即可使用

2.3 Vm中安装Linux

  1. 选择新的虚拟机, 典型, 下一步

  1. 选择稍后安装OS

 

  1. 选择Linux, 并且选中 CentOS 7

  1. 自定义虚拟机名称 和 安装位置

  1. 拆分成多个文件存储

  1. 编辑虚拟机设置

7.开启虚拟机, 开始CentOS 7 的安装,设置语言项

  1. 配置安装位置, 网络和主机名(开启即可)

  1. 开始安装后, 设置ROOT用户的密码

  1. 安装成功, 并成功登录

2.4 使用Xterm 连接 Linux

  1. 通过 ip a 的命令, 查看当前Linux的ip地址, 通过Xterm连接

  1. 打开Xterm, 选择左上角 Session, 选择 SSH 连接方式, 输入查询到的 Linux 的 ip 地址, 再输入用户名: root[你自己的用户角色], 确定.

  • 输入密码, 敲击回车确认

 

三.Linux基本操作

3.1 Linux的目录结构

Windows的目录结构是带有盘符的. D: C: E:

在Xtrem中输入 ls / 查看 Linux的顶级目录

Linux 目录树状图

  1. root: 该目录为系统管理员 HOME 目录

  2. bin: 这个目录下放置着经常使用的命令

  3. boot: 这里存放的是启动Linux时的一些核心文件

  4. etc: 存放系统关系所需要的配置文件和子目录

  5. home: 普通用户的 HOME 目录

  6. usr: 默认安装软件的目录, 类似 Windows 中的 Program Files 目录

  7. opt: 主机额外安装软件摆放的目录

P.S: Linux 中文件引用, 建议写为相对位置, 方便应用使用, 查找

3.2 获取Linux中的信息

#1.我是谁

who am i

#2.我在哪, 返回当前用户所在文件位置

pwd

#3.查看 ip 地址

ip a | ip address

#4. 清屏

clear

#5. ping 域名| ip

ping 地址

#6. 强制停止

Ctrl + C

 

四.Linux命令

Linux 中的命令基本格式: 命令[选项] [参数]

需要注意, 个别命令时不遵循这种格式

当命令中有多个选项时, 可以写在一起, 并且选项也是有简写方式。 命令 -选项A -选项B

4.1 目录的命令

# 1. 列出目录

ls [-a -l -d] 目录名 ; 多个选项写法: ls -al

# 目录名不填写, 默认为当前目录

# -a:列出全部文件, 包括隐藏文件

# -l:列举出全部的信息

# -d:仅查看目录本身

# Linux中的隐藏文件: 是以 .开头, 当前目录用 .表示, 上一级目录用 ..表示

# 2.切换目录
cd 具体路径 | 符号
# 路径可以填写的内容
符号表达的路径
   
. 当前目录
.. 上一级目录
/ 根目录
~ 当前登录用户的 HOME 目录
返回

# 3.创建目录
mkdir [-p] 目录名
# -p:代表创建多级目录时, 使用

# 4.删除目录
rmdir 目录名
# 只能删除空目录
rm [-rf] 目录名
# 删除非空目录
# -r:代表递归删除目录下的全部内容
# -f:不询问,直接删除

# 5.复制目录
cp -r 来源目录 目标目录
# -r:代表递归复制目录下的全部内容

# 6.移动、重命名
重命名: mv 目录名 新目录名
移动: mv 目录名 路径
# 如果第二个参数不存在, 就是重命名, 如果第二餐参数的路径存在, 就是移动

 

4.2 文件的命令

# 1.创建文件
touch 文件名
touch 文件名1 文件名2

# 2.编辑文件
vi 文件名 # 查看文件。(查看模式)
i | a | o  # 进入编辑模式。(编辑模式)
# i:在当前光标处,进入编辑模式。
# a: 在当前光标后一格,进入编辑模式。
# o: 在当前光标下一行,进入编辑模式。

esc # 推出编辑模式, 回到查看模式
: # 从查看模式进入到低行命令模式。(底行命令模式)
# 在底行命令模式下,输入 wq: 保存并退出 ; 输入 q! : 不保存并退出
# 在查看模式下, 摁ZZ【两下大写的Z】, 可以快速保存并退出

# 3.在编辑文件时的其他操作
# 在底行命令模式下, 可以输入的内容
set nu				 # 查看文件的行号
to 行号				# 快速跳转到指定行
set nonu			 # 取消行号
# 直接在查看模式下输入
/具体内容			  # 类似 Windows 下的 Ctrl+F 搜索文件中具体内容所在位置, 按下n:next,查看下一个

# 4.查看文件
cat 文件名
# 从第一行看是查看文件内容, 展示全部
tac 文件名
# 从最后一行开始展示
nl 文件名
# 显示文件的同时,展示行号
more 文件名
# 查看大文件时,可以一页一页的向下翻
# 摁 空格【space】 继续向下查看
# 摁 字母q 快速退出
less 文件名
# 查看大文件时,可以任意的向上或者向下翻
# 方向键 上,下 :滑动; pgup, pgdn:上一页,下一页
# 摁 字母q 快速退出
head 文件名
# 只查看前几行
tail 文件名
# 只查看后几行
# tail -f 日志文件, 监控日志文件最新的几行

# 5.移动或重命名文件
mv 文件名 新文件名
mv 文件名 目录

# 6.复制文件
cp 文件 目录

# 7.删除文件
rm [-f] 文件名
# -f:是否询问

4.3针对压缩包的操作

Linux中常用的压缩包,大多是 .tar ,.tar.gz , tgz 的。

但是Linux不仅仅针对 tar 类型的压缩包, 也支持 zip,rar 这种 Windows下的压缩包。

4.3.1 针对 tar 命令

# 针对tar类型的压缩包操作
# 1.解压压缩包
	tar -[zxvf] 压缩包名称 [-C 路径]
# -z:代表压缩包后缀是 .gz 的
# -x: 代表解压
# -v: 代表解压时,打印详细信息
# -f: -f选项,必须放在所有选项的最后,代表指定文件名称
# -C【大写C】 路径:代表将压缩包内容解压到指定路径

# 2.打包压缩包
	tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2
# -c: 代表打包

4.3.2 针对 zip 压缩包

Linux 默认不支持 zip 压缩格式

安装两个软件:

zip,unzip

yum -y install zip

yum -y install unzip

# 解压
unzip 压缩包名称

# 打包
zip 压缩包名称 文件1 文件2 目录1 目录2 。。。

4.4 用户 & 用户组的操作

Linux 是一个多用户的操作系统,任何一个用户想要操作Linux操作系统,必须向系统管理员申请一个账号才可以使用,以这个账号的身份去操作Linux

用户的帐号一方面可以帮助系统管理员追踪当前用户的操作。另一方面可以控制当前用户对系统资源的访问。

4.4.1 用户的操作

# 1.创建用户
useradd [-cgd] [选项指定的具体内容] 用户名
# -c: comment, 给用户添加注释
# -g: group,修改用户所在分组
# -d: direct,指定用户的 HOME 目录

# 2.设置密码
passwd 用户名

# 3.切换用户
su【switch user】 用户名

# [root@localhost ~]#  ---> root用户在本地登录,并且当前在 ~ 目录下, #:代表超级管理员
# [qf@localhost ~]$ ---> qf 用户在本地登录,并且当前在 ~ 目录下, $:代表是普通用户

# 4.删除用户
userdel [-r] 用户名
# -r: 代表删除用户的同时,删除该用户的 HOME 目录
P.S: 若出现进程被占用情况,Ctrl+D 或 exit命令 退出用户。

# 5.修改用户信息
usermod [-cgd] [选项指定的具体内容] 用户名
# -c: comment, 给用户添加注释
# -g: group,修改用户所在分组
# -d: direct,指定用户的 HOME 目录

 

4.4.2 用户组操作

# 1.创建用户组
groupadd 用户组名
# 查看用户所在组
groups 用户名

# 2.修改用户组
groupmod [-n] [选项指定的具体内容] 用户组名
# -n:修改用户组名称

# 3.删除用户组
groupdel 用户组名
# 只能删除 空用户组

 

4.5 文件权限的修改

在 Linux 中输入 ls -l 或 ll 查看文件和目录的详细信息

实例中, a目录的第一个属性用 “d” 标识这个 a是一个目录。

anaconda-ks.cfg 第一个属性用 “-” 标识它是一个文件

在 Linux 文件详情的后面属性需要分为 三组【三个 rwx 】 查看

  • rwx:代表文件拥有者的权限

  • rwx:代表文件所属用户组的权限

  • rwx:代表其他用户对当前文件的操作权限

  • r:read,代表 读 的权限

  • w:write,代表 写 的权限

  • x:execute,代表 执行 的权限

后续的第一个 root: 代表当前文件的拥有者

后续的第二个 root: 代表当前文件的所属组

后续分别为: 文件的大小和最后修改时间

4.5.1 对文件的权限修改

使用 chmod 对文件的权限进行修改,一种是使用数字,一种是使用符号

# 1. 数字方式
chmod [-R] 1~7(写三个数字) 文件|目录
# rwx 在这三个权限中: 000~111 , r:4,w:2,x:1; rwx一共三组, 所以要写三个数字
# -R:修改一个目录权限时,可以添加 —R,将目录下的全部内容,都修改权限

# 2.符号方式
# user:u, gruop:g,other:o, all:a
# read:r, write:w, execute:x
# 赋予权限的方式
	# 添加: +, 减掉 -, 设定: =
chmod [-R] a=rw 文件|目录 “为全部用户提供指定 文件 或 目录 读和写的权限”

4.5.2 对文件的拥有者和所属组修改

# 修改文件的拥有者和所属组
chown [-R] 拥有者: 所属组 文件|目录
# 修改文件的拥有者
chown [-R] 拥有者 文件|目录
# # 修改文件的所属组
chgrp [-R] 所属组 文件|目录 

4.6 Linux的其他命令

# 1.进程的操作
ps -ef 
# 查看全部正在运行的进程
ps -ef | grep 搜索的内容
# 杀死进程
kill -9 pid

# 2.服务的操作
针对服务的启动,停止,重启,开机自动启动,禁止开机自动启动,查看服务状态。
systemctl start|stop|restart|enable|disable|status 服务名称

# 3.查看端口号占用情况
# 想使用指定的命令需要事先下载 netstat
# yum -y install net-tools
# 查看端口号占用情况
netstat -naop | grep 端口号

# 4.访问地址
curl 访问地址

# 5.查找文件
find 路径 -type f | grep profile

找到 /etc 下面这么多都和 profile 有关的文件

五.Linux下安装软件

5.1 安装JDK

# 1. 下载JDK的压缩包
下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
# 需要登录 Oracle 账户后才可以下载

# 2.将下载好的jdk压缩包拉取到Linux 操作系统中
# 通过 Xterm 携带的Sftp 将 jdk 压缩包拖拽到 Linux 操作系统

# 3.将 jdk 的压缩包解压到 /usr/local
tar -zxvf jdk-8u261-linux-x64.tar.gz -C /usr/local

# 4. 将jdk的目录名修改
cd /usr/local
重命名jdk:mv jdk1.8.0_261/ jdk/

# 5.配置环境变量
# Linux 提供了两种环境变量的文件
# 第一个是用户级别的环境变量, 存放在:~/.bashrc
# 第二个是系统级别的环境变量, 存放在: /etc/profile
# 如果要运行当前目录下的可执行文件, 需要输入: ./可执行文件名
在环境变量文件中,添加如下内容:
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
# 重新加载环境变量文件
 source /etc/profile
# 最终测试
java -version : 观察是否正确显示出java 版本号信息

5.2 安装MySQL

# 1.安装MySQL的 Yum 存储库
# 首先通过 yum 下载 wget 命令
	yum -y install wget
# 通过wget 下载 MySQL存储库
	wgt https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
	

# 安装下载好的 rpm 包
# 安装 rpm 包
rpm -Uvh rpm包
	例如: rpm -Uvh mysql80-community-release-el7-3.noarch.rpm 

# 查看 rpm 包
rpm -qa | grep 内容

# 卸载 rpm
rpm -e --nodeps rpm名称:
	例如:rpm -e --nodeps mysql80-community-release-el7-3.noarch

# 3. 选择发行版本
# 查看一下默认选择的发行版本
	yum repolist all | grep mysql
# 通过编辑 /etc/yum.repos.d/mysql-community.repo 文件, 来修改发行版本
# 将 80 版本的 enable 更改为 0; 将 57版本的 enable 更改为 1; 保存退出, 再次通过 yum repolist all | grep mysql 查看

效果如上图,则修改完成


# 4.安装MySQL 社区版服务
yum -y install mysql-community-server

# 5. 	启动 MySQL 服务, 并连接
# 启动 MySQL 服务
	systemctl start mysqld.service
# 查看初始化密码
	grep 'temporary password' /var/log/mysqld.log
# 连接 MySQL 服务
	mysql -u root -p
	Enter password:随机密码
# 修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssw0rd';
# 要求密码,必须携带大写字母,小写字母,数字,特殊符号

# 6.开启远程连接,并使用图形化界面操作
mysql> GRANT ALL PRIVILEGES ON *.* TO 'eric' @'%' IDENTIFIED BY 'P@ssw0rd' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

 

5.3安装Tomcat

# 1. 下载安装 Tomcat的压缩包
wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.57/bin/apache-tomcat-8.5.57.tar.gz

# 2. 解压压缩包到 /usr/local
tar -zxvf apache-tomcat-8.5.57.tar.gz -C /usr/local

# 3. 启动 Tomcat 并监听日志
# 跳转到 Tomcat 的 bin 目录
	cd	/usr/local/apache-tomcat-8.5.57/bin
# 启动
	./startup.sh
# 监控日志
	cd .. /logs
	tail -f catalina.out
# 启动成功如下

 

六. 部署SSM工程

部署项目到 Linux 中,需要注意以下内容:

1. 项目要保证在 Windows 下是没有问题的,再考虑部署到 Linux。
  1. 将开发环境中的内容更改为测试环境。 1. 连接数据库的信息。 2. 存放文件的路径。 3. 日志文件存放的位置。 4. 项目路径问题。

  2. 将Maven项目打包。【war包】

  3. 根据项目路径的不同,将项目部署到 Tomcat 中。

  4. 在部署到Linux操作系统中后, 一定要查看日志。

原文地址:https://www.cnblogs.com/77-is-here/p/13531821.html