Linux的使用
1、什么是服务器
什么是服务器?
服务器 就是一台PC机 简单的说就是一个电脑的主机
Web服务器:PC机上安装了Web服务的软件(Tomcat、JBOSS、WebSwhere、WegLogic…)
数据库服务器:PC机安装上了数据库服务的软件
邮件服务器:PC机上安装了邮件服务的软件 (易邮邮件服务器)
PC机上可以安装软件--------PC机就必须要有操作系统
2、常见的服务器的操作系统有哪些
Linux(开源) Windows Server(微软的)
上面的两个属于竞争关系
3、为什么要使用Linux不是Windows Server
1:Linux的系统稳定性要比Windwos Server强 Linux更新系统 不需要系统的重启就可以完成
2:Linux的安全性 要比Windows Server 高 Linux的安全性是建立在Unix的基础上的
3:Linux非常瘦身 小 Windows系统比较之下这个系统就相对庞大一些了
4:Linux是开源的(只要你有这个能力你也可以更改这个系统) Windows相对来说就未开源
拓展:
常见的Linux操作系统有哪些
Centos 7+(为准) Ubuntu RedHat 红旗Linux
8、Linux的基本目录的解析
bin/sbin:这两个目录中放的是 Linux下的基本工具
home:Linux环境下 非root 用户信息存放的目录
lib64/lib:Linux系统运行的时候 需要依赖的库和包
media:这个目录作用是存放 媒体资源的
root:存放root用户自身信息的
usr:这个目录用的最多 软件的安装几乎是在这个文件夹中完成的
boot:存放的是系统的引导程序
etc:Linux这个系统下的配置信息 就存放在这个目录下的
mnt:文件的挂载目录 比如 挂载一个U盘 等 现在基本都不用了
tmp:这个是用来存放临时文件的
校验命令
cat /etc/docker/daemon.json | python -m json.tool 验证这个文件里面的类容是否是json格式
9、Linux下的常见命令的使用
netstat -ntlp :查看使用的端口
uname - a :查看服务器内核版本
chmod -x *.sh :给当前文件夹下的所有以.sh结尾的文件赋予可执行权限
tail -f -n 1000 springboot.log :实时查看日志文件
grep -A 20 "Application startup failed" /path/to/your/logs/springboot.log :查看日志文件中对应内容的前后 20 行数据
gzcat logs/application-2025-01-25.log.gz :查看 gz文件
wget 网址:下载命令
ln -s /usr/local/apache-maven-3.6.1/ /usr/local/maven
ln -s 项目文件夹 软连接文件夹。也就是映射文件。
ls:查看当前目录下 所有的文件 以及文件夹
ls -l:查看当前目录中 所有的文件以及文件夹 的详情信息
du -h: 查看当前文件的大小
ll:查看当前目录中 所有的文件以及文件夹 的详情信息
cd 文件夹的名字:进入某一个文件夹
mkdir 文件夹的名字:创建一个文件夹
touch 文件名
#例如:touch ROOT.xml
rm -rf 文件或者文件夹的名字:表示的是删除一个文件或者文件夹
free -m:查看这个linux得内存使用情况
ps aux --sort=-%cpu:按cpu使用进行排序
echo 1 > myid: 将1输入到myid文件里面。没有文件回创建该文件
修改文件
vim 文件的名字
按下enter
按下i这个键
接下来写内容
按下esc键
输入 :wq! ------------------保存的意思
输入 :q! ------------------不保存的意思
source /etc/profile :使能环境变量(让环境变量生效)
reboot:重启系统
cp 源文件的路径 目标文件的路径 :将源文件复制到目标文件的路径上
cp -R 文件夹 复制后的文件夹
tar -zxvf 压缩文件的路径 :解压一个.gz结尾的文件
mv 源文件的地址 目标文件的地址 :将源文件 移动到目标文件的地址
systemctl status firewalld :查看防火墙的状态
systemctl start firewalld :打开防火墙
systemctl stop firewalld :关闭防火墙
useradd 用户名:创建一个用户
passwd 用户名:给用户设置密码
chown -R 用户名 /用户需要访问文件的路径:给新用户赋予访问
groupadd 组名 :创建一个组
useradd -g 组名 用户名:创建一个用户 放到一个指定的组里面
init 3:表示的是命令行启动
init 5:表示的是图形界面启动
不要去试 init 6:这个表示的是 启动之后 立马从启
logout/exit:这个表示的是注销
su 用户名:切换到某一个用户
userdel -r 用户名:删除用户的时候 删除用户的所有信息
kill -9 进程号:杀死某一个进程
reboot:重启这个系统
ps -ef | grep java:查看哪些程序使用了Java
clear:清屏的意思
pwd:查看当前坐在路径的目录
cd .. :进入上一级目录
useradd 用户名:创建一个用户
passwd 用户名:给某一个用户设置密码
下面研究权限问题
-rw-r--r--
_
第一位:- :如果是 - 表示的是普通的文件
如果是 d 表示的是目录(文件夹)
如果是 l :表示是连接
第二位-第四位: rw- (创建这个文件/文件夹的用户(root) 对这个文件的权限)
r:可读 ------------- 4
w:可写 ------------- 2
-:不能执行 x:表示的是可以执行 ------ 1
第五位-第七位:r-- (表示的是和创建这个文件的用户所在的同一个组里面的其他用户对这个文件的权限)
r:只读
-:不能写
-:不能执行
第八位-第十位:r-- (其他组的其他用户对当前文件的权限)
现在更改权限
chown 777 文件的名字
chown 666 文件的名字
chown 444 文件的名字
linux 清空catalina.out日志 不需要重启tomcat
1.重定向方法清空文件
[root@localhost logs]# du -h catalina.out 查看文件大小
17M catalina.out
[root@localhost logs]# > catalina.out 重定向清空文件
[root@localhost logs]# du -h catalina.out 查看文件大小
0 catalina.out
查看进程:ps -ef | grep (进程名字,tomcat)
防火墙开放端口问题
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=8080/tcp --permanent 放行端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent 关闭放行端口
firewall-cmd --reload
firewall-cmd --state ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
firewall-cmd --remove-port=80/tcp --permanent ##永久移除80端口
firewall-cmd --list-ports ##查看已经开放的端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vx9wWyDP-1655394199022)(pic/image-20210120194904664-1619775501361.png)]
10、Linux下的基本服务的安装
10.1、JDK的安装
10.1.1、将压缩文件放到/usr/local目录下去
cp /root/jdk-8u20-linux-x64.gz /usr/local/
10.1.2、解压这个文件
cd /usr/local
tar -zxvf jdk-8u20-linux-x64.gz
10.1.3、配置环境变量
//进入目录
vim /etc/profile
export JAVA_HOME=/usr/local/apache-tomcat-8.5.50
export PATH=$PATH:$JAVA_HOME/bin
10.1.4、让环境变量生效
source /etc/profile
10.1.5、输入如下命令检测安装是否成功
java -version
如果出现jdk版本 那么说明这个家伙就对了
10.2、Tomcat的安装
10.2.1、首先将压缩文件复制到/usr/local目录下
cd /root
cp linux_apache-tomcat-7.0.26.tar.gz /usr/local/
10.2.2、将压缩文件进行解压
cd /usr/local
tar -zxvf linux_apache-tomcat-7.0.26.tar.gz
10.2.3、进行解压目录进行tomcat的启动
cd /usr/local/apache-tomcat-7.0.26/bin
./startup.sh //这句话的意思是 启动Tomcat
10.2.4、验证tomcat是否已经给启动起来了
netstat -apn | grep 8080 //查看8080的使用情况
如果处理 listen状态 ---- 说明Tomcat已经给启动起来了
10.2.5、关闭Tomcat
./shutdown.sh
10.3、MySQL的安装
1、MySQL程序的安装(安装好 给地址检查)
10.1、首先是将这个文件移动到/usr/local目录下
mv mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz /usr/local/
10.2、在/usr/local目录下创建mysql目录并将文件移动进去解压
mkdir mysql
cd /usr/local
mv mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz mysql
cd mysql
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
10.3、创建用户和组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
10.4、更改根目录的拥有者
cd mysql/
chown -R mysql:mysql .
10.5、安装perl插件
yum install -y perl-Data-Dumper
10.6、安装MySQL
注意:必须要进去到解压目录的根目录 /usr/mysql/mysql...
./scripts/mysql_install_db -f --user=mysql 或者
./scripts/mysql_install_db --user=mysql
注意:在执行的时候很有可能说 liba.so不存在
yum install -y libaio
yum install libaio-devel.x86_64
10.7、更改里层目录的拥有者
cd /mysql/mysql...(解压的根目录)
chown -R root:root ./
10.8、添加开机启动赋予可执行的权限
cp support-files/mysql.server /etc/init.d/mysql
# 赋予可执行权限
chmod +x /etc/init.d/mysql
# 添加服务
chkconfig --add mysql
# 显示服务列表
chkconfig --list
10.9、创建缺损文件
mkdir /var/log/mariadb
10.10、添加我们的mysql命令到/usr/local/bin下去
ln -s /usr/local/mysql/mysql-5.6.33-linux-glibc2.5-x86_64/bin/mysql /usr/local/bin/mysql
10.11、进入到我们的 /etc/my.cnf这个文件里面添加如下内容
basedir=/usr/local/mysql/mysql-5.6.33-linux-glibc2.5-x86_64
10.11、添加链接(lock)
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
10.12、启动问题
service mysql start
service mysql stop
10.13、登陆MySQL
mysql -u root -p
密码没有直接 enter
操作我们数据库了
11、注意事项
1:在Linux下 可执行文件默认是绿色的
12、Linux操作文件命令
文件拷贝
# 方式一:逐个拷贝
cp redis-6.2.4/redis.conf 7001
cp redis-6.2.4/redis.conf 7002
cp redis-6.2.4/redis.conf 7003
# 方式二:管道组合命令,一键拷贝
echo 7001 7002 7003 | xargs -t -n 1 cp redis-6.2.4/redis.conf
文件修改
sed -i -e 's/6379/7001/g' -e 's/dir .\//dir \/tmp\/7001\//g' 7001/redis.conf
sed -i -e 's/6379/7002/g' -e 's/dir .\//dir \/tmp\/7002\//g' 7002/redis.conf
sed -i -e 's/6379/7003/g' -e 's/dir .\//dir \/tmp\/7003\//g' 7003/redis.conf
s:表示替换
g:表示全局替换
文件第一行添加数据
# 逐一执行
sed -i '1a replica-announce-ip 192.168.150.101' 7001/redis.conf
sed -i '1a replica-announce-ip 192.168.150.101' 7002/redis.conf
sed -i '1a replica-announce-ip 192.168.150.101' 7003/redis.conf
# 或者一键修改
printf '%s\n' 7001 7002 7003 | xargs -I{} -t sed -i '1a replica-announce-ip 192.168.150.101' {}/redis.conf