Linux 概述
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时编写的。
Linux 是一套免费使用的操作系统, 是一个多用户、多任务、支持多线程和多CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和64 位硬件。Linux 是一个性能稳定的多用户网络操作系统。
内核版本
内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。
发行版本
仅有内核而没有应用软件的操作系统是无法使用的,所以许多公司或社团将内核、源代码及相关的应用程序组织构成一个完整的操作系统,让一般的用户可以简便地安装和使用 Linux,这就是所谓的发行版本,一般谈论的 Linux 系统便是针对这些发行版本的。
我们平常说的 linux 指的是 linux 内核,在具体使用时,需要明确使用的发行版,不同的版本略有不同.
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
我们的 linux 学习以 CentOS(Community Enterprise Operating System)8.x 为例学习.
Linux 特点
1、免费的/开源/稳定
2、支持多线程/多用户/处理高并发
3、安全性好
4、对内存和文件管理优越。
学习 Linux 的用途:
Linux 运维工程师
Linux 嵌入式开发工程师
Linux 下的项目开发(大数据,java,python...)
主要用于服务器领域.
作为 java 开发工程师需要掌握以下 3 点:
1.linux 环境下的基本操作命令,包括文件操作命令(rm mkdir...)编辑工具使用(vi vim)linux 用户管理(useradd userdel usermod)等
2.linux 的常用配置(环境变量配置,网络配置,服务配置)
3.linux 下如何搭建对应语言的开发环境(大数据,JavaEE,Python 等)
购买/试用云服务
例如阿里云
![](https://img-blog.csdnimg.cn/img_convert/e86ada254aba6a7c33d453401a5d85f1.png)
![](https://img-blog.csdnimg.cn/img_convert/bbb651e404d0f6d96ded50db2e6ea196.png)
![](https://img-blog.csdnimg.cn/img_convert/09251a5d849238e5ca1b085a02d265ea.png)
![](https://img-blog.csdnimg.cn/img_convert/efb0153cdb4fd8bb94e8e979ea1d78c4.png)
![](https://img-blog.csdnimg.cn/img_convert/451980dbc5024eaa71949462bb170ac6.png)
![](https://img-blog.csdnimg.cn/img_convert/f2807f900aff342a684e7b747cb7970c.png)
![](https://img-blog.csdnimg.cn/img_convert/23a01ee2ffb44729bb5cf885254e23ec.png)
可以在国内其他云服务选择,购买操作流程基本一致
https://www.maigoo.com/maigoo/4536yfwq_index.html
云服务器或轻量级服务器,配置为 1 核 2G 或 2 核 2G,内存至少两 G.
安装 CentOS8.x 版本的操作系统.
例如百度云,腾讯云,华为云等针对新用户推出的入门级服务器
![](https://img-blog.csdnimg.cn/img_convert/1d8bc196c31040c2ceae979268c12344.png)
远程连接
在 linux 系统中,Xshell 和 Xftp 配合使用,是一套非常方便的 linux 服务器管理软件。
Xshell 是通过输入命令来对服务器进行操作,如进入目录,压缩文件,解压文件,启动服务等等。
Xftp 是可视化工具,可以上传,下载,移动文件等操作。
Xshell
![](https://img-blog.csdnimg.cn/img_convert/b42d6f61aff17e35b6507417ad2167fa.png)
Xftp
![](https://img-blog.csdnimg.cn/img_convert/3c19dcfe11d8aac0d8f24c509ad5e4af.png)
常用命令
shutdown -h now 关机
shutdown -h 1 1 分钟后关机
reboot 重启logout 注销
查看 centos 版本 cat /etc/redhat-release
cd
英文全拼:change directory,命令用于切换当前工作目录 cd [目录名称]
ls 列出文件名或目录名
ll ll 不是命令,是 ls -l 的别名 列出来的结果详细,有时间,是否可读写等信息
pwd: (print work directory) 用于显示工作目录
touch 文件名: 创建文件 touch demo.txt
rm -f file1: 删除一个叫做 'file1' 的文件'
cp 文件名 /目标地址: 复制文件到指定目录
mkdir dir1: 创建一个叫做 'dir1' 的目录'
rmdir dir1: 删除一个叫做 'dir1' 的目录'(删除空文件夹)
rm -rf dir1: 删除一个叫做 'dir1' 的目录并同时删除其内容
mv dir1 new_dir: 重命名
mv dir1 /usr/local/xxx:
把 dir 移动到/usr/local/xxx
cat 文件名: 查看文件内容
find -name 文件名: 搜索文件命令
ifconfig:查看网络配置
clear: 清屏
free -m: 查看内存占用情况,以 MB 为单位
管道命令 | :操作符是”|”,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入.
![](https://img-blog.csdnimg.cn/img_convert/741ec2201fe44d817f34ecb53868e65d.png)
【指令 1】正确输出,作为【指令 2】的输入 然后【指令 2】的输出作为
【指令 3】的输入 ,【指令 3】输出就会直接显示在屏幕上面了。
通过管道之后【指令 1】和【指令 2】的正确输出不显示在屏幕上面
ps -ef | grep 进程名: 查看指定名称的进程号,先输出所有 管道命令交给 grep名称过滤 过滤出指定进程信息
grep:命令用于查找文件里符合条件的字符串
pgrep -l 进程名: 查看指定名称的进程号
tar -zxvf 压缩文件名: 解压并列出文件内容
https://www.runoob.com/linux/linux-command-manual.html 命令大全
linux 目录结构
Linux 的目录结构为树状结构,最顶级的目录为根目录 /。
其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
![](https://img-blog.csdnimg.cn/img_convert/f676a43cf603ebe626535192cdca2d66.png)
/boot:系统启动相关的文件,如内核、initrd,以及 grub(bootloader)
/dev:设备文件
/etc:配置文件
/home : 用 户 的 家 目 录 , 每 一 个 用 户 的 家 目 录 通 常 默 认 为
/home/USERNAME
/root:管理员的家目录;
/lib:库文件
/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件,
/var/tmp
/var:可变化的文件
/bin:可执行文件,用户命令/sbin:管理命令
/usr :usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下。
Linux 软件安装
Linux 下软件安装有三种方式 rpm 安装, yum 安装,源代码编译安装.
rpm 安装类似于 windows 中的安装包,下载下来之后直接安装。缺点是不能自己解决依赖。
yum 安装基于 rpm 安装,也就是在 rpm 上增加了自动解决依赖的功能。
源代码安装通过编译源代码,得到软件包。
rpm 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。需要先下载 rpm 文件,然后通过命令安装.
先通过 wget rpm 包地址
下载所需要的 rpm 包,或者在官网下载 rpm
安装:
rpm -ivh [软件包名称]
卸载:
rpm -e [软件包名称]
yum(全称为 Yellow dog Updater, Modified)是一个软件包管理器。基于 RPM( Red-Hat Package Manager)包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
语法:
yum [options] [command] [package ...]
options:可选,选项包括-h(帮助),
-y(当安装过程提示选择全部为"yes"),
-q(不显示安装的过程)等等。
command:要进行的操作。Install(安装), update (更新), info (查看信息),remove (删除), clean (清除缓存)
package :操作的对象。
vim 编辑器
在线安装 vim 编辑器
yum -y install vim
所有的 Unix 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被 vim 识别为命令,而非输入字符。
输入 i 切换到输入模式
ESC,退出输入模式,切换到命令模式
输入:进入到底线模式
![](https://img-blog.csdnimg.cn/img_convert/bdfa2dfdc8797abcfb9f8c8915f23935.png)
vim 文件名
i 进入编辑模式
Esc 退出编辑模式
:wq 保存并离开
![](https://img-blog.csdnimg.cn/img_convert/fa0c235d24135081ebad55c37990a618.png)
java 环境搭建
linux 下安装 jdk
源代码编译安装
上传 liunx 操作系统使用的 jdk 到/usr/local/java 目录下,
tar –zxvf
解压.tar.gz 文件
配置环境变量
vim /etc/profile 修改环境变量(具体视安装 java 地址修改)
export JAVA_HOME=/opt/jdk1.8.0_261
export PATH=$PATH:$JAVA_HOME/bin
使文件生效
source /etc/profile
linux 下安装 tomcat
将 linux 系统安装包解压到指定目录
进入 bin 目录
执行./startup.sh 命令启动服务器
执行./shutdown.sh 关闭服务器
在浏览器中访问虚拟机中的 tomcat ip+端口
Linux 安装 mysql
添加 rpm 源,并且选择较新的源
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
安装第一步下载的 rpm 文件
yum install mysql80-community-release-el8-1.noarch.rpm
使用 yum 安装 mysql
yum install mysql-server --nogpgcheck
查看当前是否为开机服务
systemctl list-unit-files | grep mysql
设置为开机启动
systemctl enable mysqld.service
启动 mysql 服务
systemctl start mysqld.service
查看当前是否启动 MySQL 服务
ps -ef | grep mysql
查看默认密码
grep 'temporary password' /var/log/mysqld.log
登录设置即可
mysql -uroot -p'默认密码'
如果查询不到,则默认密码为空
设置密码及加密格式(密码不能过于简单,包含大小写字母数字下划线)
![](https://img-blog.csdnimg.cn/img_convert/9c4227beafb6c20b0c20c165d0140ebf.png)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root_123';
刷新指令
FLUSH PRIVILEGES;
选中 mysql 数据库,设置其他 ip 可以访问
update user set host='%' where user='root';
账号与权限管理
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。
添加用户
useradd 选项(-组名) 用户名
删除帐号
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
修改密码
passwd 用户名
查询用户信息
id 用户名