Linux
Linux介绍
操作系统
-
计算机组成
硬件系统
输入设备
输出设备
运算器
控制器
存储器
软件系统
系统软件
管理计算机硬件设备
应用软件
qq
lol
操作系统
windows
稳定性不够,不能长时间运行 消耗系统资源
mac
linux
开源
红旗
red hat 服务器系统
ubuntu 图形化界面
centos 更小巧
unix
不免费
服务器系统:
1、稳定
2、快
Dos命令
命令:操作linux系统 linus
安装操作系统
linux命令
将项目发布到linux系统上
Nginx、redis
安装软件和配置环境
jdk
mysql
tomcat
Linux安装
1、安装虚拟机软件
2、安装操作系统
a、创建虚拟机
设置硬件设备
b、安装centos7
安装操作系统
3、安装第三方操作软件(管理linux)
MobaXterm_Personal_12.3
需要知道虚拟机中linux的ip地址
ip addr //查看linux的ip地址
当前linux没有分配ip地址
在linux配置生效ip地址
找到网络配置文件
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
点击i 、 a 、 o进入编辑模式
将onboot=no改成yes
点击esc,退出编辑模式
输入:wq保存修改内容
service network restart 重启网络服务,重新加载配置文件
Linux目录结构
-
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 -
/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 -
/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。 -
/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 -
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 -
/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。 -
/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv:
该目录存放一些服务启动之后需要提取的数据。 -
/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。 -
/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 -
/usr/bin:
系统用户使用的应用程序。 -
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src:
内核源代码默认的放置目录。 -
/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
常用的目录
/root 管理员操作的目录
/home 其他用户操作的目录
/etc 配置文件
/usr 共享资源
/var 数据变化,放置日志
/bin 软件的命令
Linux操作系统的核心命令
1、目录操作
相对目录切换 ,切换到子目录
cd 目录名(相对路径)
[root@localhost etc]# cd sysconfig/network-scripts //在当前目录切换到子目录中
cd 目录名(绝对路径)
[root@localhost etc]# cd /root //在当前目录从根目录切换指定位置
在最近访问的两个目录之间切换
cd -
切换到当前用户的home
cd ~
切换到上级目录
cd ..
ls 查看当前目录信息
ls
ls -a 查看所有的文件及文件夹(包含隐藏文件和系统文件)
ls -l 查看详细信息(大小、日期、所属用户、所属组、文件类型) 简写为ll
ls -i查看文件节点
ls -h 友好信息(文件大小的计算)
查看当前目录的位置
pwd
创建文件夹
mkdir 目录名
mkdir -p 多级目录
删除目录
rmdir 目录名 该目录必须为空目录
2、文件操作
创建文件
touch 文件名
删除文件
rm 文件名 提示是否删除
rm -f 文件名 不提示删除
rm -r 文件目录 将该目录及子目录子文件都删除
编辑文件
vi 文件名
查看文件
cat 一次性查看所有内容
head 查看前面指定行数的内容
tai l查看后面指定行数的内容
less 分页查看,回车是下一行、空格是下一页、b返回上一页、q退出
more 分页查看,可以显示目前的内容的百分比,到文件末尾时自动退出
3、压缩和解压缩
tar
-z 是否使用压缩
-x 解压
-c 打包
-v 显示包中的内容
-f 显示压缩包文件名
压缩或者打包
tar -zcvf
tar -cvf
解压缩
tar -zxvf
tar -xvf
如果没有使用压缩,则文件名后缀声明为.tar,如果使用了压缩,则文件名后缀声明为.tar.gz。
在文件内容中查找
grep 参数 要查找的内容 查找范围
-i 不区分大小写
-v 排除
-n 打出行号
-r 在指定目录下递归查找
管道命令
可以一次性运行多个linux命令,前一个命令的结果作为后一个命令的参数
cat 1.txt|grep how
文件权限
-rw-r–r–
第一位时文件类型
后面9位分成三组
每组都有rwx组成,read write execute
第一组为文件所属用户权限
第二组为文件所属组权限
第三组为其他用户权限
文件
r
cat、head、tail、less、more
w
vi
x
可执行程序
文件夹
r
ls
w
touch、mkdir、rm、cp、mv
x
cd
新建用户并设置 密码
useradd 用户名
passwd 用户名
使用工具开一个session会话,新用户登录
使用新用户创建在自己的home中创建文件和文件夹
root用户收回所有权限
chmod 000 1.txt
000代表三组权限
每个权限对应一个数字
r4
w2
x1
每组求和,例如,如果所属用户拥有r和x权限 chmod 500 1.txt
权限可以通过每组各自赋予
u 所属用户
g 所属组
o 其他用户
+ 增加权限
= 覆盖权限
- 收回权限
网络配置
1、查看网络ip
ip addr
2、编辑网络配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
onboot=yes
3、网络配置生效
重启网络服务
service network restart
4、通过ping命令测试是否连通
ping www.baidu.com
进程管理
1、查看进程
ps 查看当前用户所拥有进程的基本信息
ps -f 查看当前用户所拥有进程的详细信息
ps -e 查看所有的进程
2、结束进程
kill -9 pid
软件安装及项目发布
1、安装方式
a、rpm安装
安装一个软件,需要若干个rpm文件,它们直接有依赖关系
b、yum安装
yum源,在这个源上有若干各rpm文件,帮我们安装依赖
c、安装包安装
压缩包
1、解压
2、编译
3、安装
2、发布项目
a、jdk
yum list | grep java
yum -y install java-1.8.0*
java
javac
b、tomcat
tar -zxvf apache-tomcat9.tar.gz
cd apache-tomcat9/bin
./startup.sh
windows下的浏览器通过ip和端口访问tomcat应用,无法访问
关闭防火墙或者设置白名单
systemctl stop firewalld.service
查看白名单
firewall-cmd --zone=public --list-ports
添加白名单(端口)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
重载配置
firewall-cmd --reload
将war文件拷贝到webapps中
# 查看白名单列表
firewall-cmd --zone=public --list-ports
# 添加白名单端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看白名单列表
firewall-cmd --zone=public --list-ports
# 查看防火墙状态,是否是runningfirewall-cmd --state# 重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --reload# 列出支持的zonefirewall-cmd --get-zones# 列出支持的服务,在列表中的服务是放行的
firewall-cmd --get-services# 查看已开放的端口firewall-cmd --zone=public --list-ports# 永久添加80端口
firewall-cmd --add-port=2181/tcp --permanent# 永久添加80端口
firewall-cmd --remove-port=2181/tcp --permanent
# 作用域
--zone
# 添加端口,格2181/tcp
# 永久生效,没有此参数重启后失效
--permanent
如果无法弹出tomcat登录界面
在webapps/manager/meta-inf/context.xml中做一下配置修改
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d" />
c、mysql
centos7的yum源中没有mysql安装包。
先在linux中安装wget的命令
yum install wget
再使用wget获取网络上的mysql安装包
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
需要放置到本地仓库中
rpm -ivh mysql57-community-release-el7-9.noarch.rpm进入仓库运行安装mysql的代码
cd /etc/yum.repos.d/
yum -y install mysql-server
启动mysql服务
systemctl start mysqld.service
查看临时密码
grep 'temporary password' /var/log/mysqld.log
登录mysql
mysql -uroot -p
N2kLdN9d;=ty
设置密码策略为低
set global validate_password_policy=LOW;
设置密码
set password for root@localhost = password('woniu') ;
给防火墙加白名单,放开3306端口。或者关闭防火墙。
设置远程访问权限
grant all privileges on *.* to root@'%' identified by 'Woniu123';
flush privileges;