今日学习目标
- 网络进程
- 系统服务
- 定时任务
- Linux安全
- 常用命令操作
- Tomcat
- JDK环境配置
- 克隆虚拟机
- mysql安装以及简单配置
- 免密登录配置
学习进度
Linux(完)
一天总结
进程
1.查看进程
ps 命令可以查看进程,用法一般是:
ps -ef 或者 ps -ef | grep 进程名
ps 命令 一般加上参数 -ef 代表所有、全格式
动态的查看:
使用 top 命令
2.后台进程
使用 & 符号,加在命令后面,可以使得命令进入后台运行。
比如 ping www.baidu.com & 执行之后,就会进入后台一直执行,直到被挂起。
jobs -l 可以查看当前连接(终端)下的后台进程。
依次显示后台程序的jobnum ,pid ,状态,以及命令
nohup 保证后台进程不会被挂起。
结:一般 & 和 nohup 结合使用。例子:nohup ping www.baidu.com &
有一部分内容参考了这里:https://blog.csdn.net/u013846293/article/details/74003051
3.杀掉进程
杀掉进程,使用 kill 命令
可以根据 jobs 显示的jobnum, kill jobnum
或者根据 ps 显示的pid , kill -9 pid
4.前后台进程转换
如果是一个前台命令的话,使用 ctrl+c 就停止了。
但是一个后台命令,也可以变成前台命令吗?可以的。
使用 fg 命令可以使得一个后台的命令变至前台执行。fg jobnum
使用 bg 左右正好相反。bg jobnum
系统服务
简单的,以networking为例:service network start
service 会到 /etc/init.d/目录下寻找 network 脚本。start 是 network 脚本里面的一个参数。然后告诉系统,运行这个脚本
参考Linux chkconfig 命令详解
1.查看系统服务
使用 chkconfig 命令,直接列出系统服务信息;
2.设置开机启动或关闭
使用chkconfig 服务名 on 或者 off
3.添加服务
编写脚本,并赋权755即可。格式如下:
#chkconfig 2345 85 90
#description:auto_run
......
将脚本 cp 到 /etc/init.d 中, 此时就可以使用 service 脚本 来运行了,但是如果你想弄成开机启动的服务,就得加到开启启动列表里面了,使用 chkconfig —add COMMAND 就把这个脚本加到了启动列表里里面。
4.删除服务
chkconfig —del 服务名
定时任务
crontab 命令,周期性的执行某些定时任务,是一个守护进程。
使用: crontab -e 命令会打开定时任务的配置文件。
Linux 安全
selinux 是一个 Linux 的一个安全策略 DAC—MAC。
1.sestatus -v 查看 selinux 的状态
2.编辑 /etc/selinux/config 将 selinux 的值改为 disabled, 需要重启机器。
3.如果只想临时关闭呢,使用 setenforce 0, 不会修改文件,下次重启恢复默认的。
一些其他的常用命令
yum 软件包管理器
更改成在线的yum源,换成阿里的,操作步骤如下:
1.备份原来的 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
2.下载阿里的源:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
3.运行 yum makecache(目的是将服务器上的软件包信息下载到本地,以加快软件包的搜索速度)
查看当前的 yum list
wget
支持 HTTP,HTTPS,FTP 三种协议,可以下载网络资源。
wget -O 指定文件保存到哪
安装wget , yum install wget -y
rpm 软件包管理器
安装:rpm -ivh 包
查看:rpm -a 包
卸载 : rpm -e 包的全名
tar
解压 tar -zxvf xxx.tar.gz
压缩 tar -zcvf xxx.tart.gz 要压缩的文件夹
zip
zip -r 包名 目标目录
unzip filename
JDK环境配置
jdk7 下载地址 : https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
使用 rpm -ivh xxx.rpm 进行安装
编辑编辑变量,添加 JAVA_HOME即可
克隆虚拟机
注意克隆之后,要更改 hostname ,还要删除网卡的规则,修改网卡的ip
vim /etc/sysconfig/network
rm -rf /etc/udev/rules.d/70-persistent-net.rules
mysql安装以及简单配置
使用 yum 安装
1.yum install mysql-server -y
2.yum install mysql-devel -y
3.启动 service mysqld start
此时 root 用户是没有免密的,可以直接使用 mysql命令 就可以连接上服务器。
4.使用 mysqladmin -u root password 123456 给 root 用户指定密码123456
5.登录:使用 mysql -uroot -p ,根据提示输入密码即可。
完成上述步骤之后,只能在本地连接 mysql 服务器、要想可以远程连接,必须修改 user 表的 host 字段
1.直接修改 hosts为%
2.使用grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;
免密登录配置
配置简单。主要涉及到的原理需要理解。
原理
SSH以非对称加密实现身份验证,所以它是比较安全的。
身份验证有多种途径,例如①其中一种方法是使用自动生成的公钥-私钥对来简单地加密网络连接,随后使用密码认证进行登录;②另一种方法是人工生成一对公钥和私钥,通过生成的密钥进行认证,这样就可以在不输入密码的情况下登录。任何人都可以自行生成密钥。公钥需要放在待访问的电脑之中,而对应的私钥需要由用户自行保管。认证过程基于生成出来的私钥,但整个认证过程私钥本身中不会传输到网络中。
如何新建密钥对呢?
1.查是否已存在密钥对,打开终端(Terminal):
输入:ls -al ~/.ssh
2、如果没有,则需要我们手动创建
输入:ssh-keygen -t rsa -b 4096 -C "your_email"
ssh-keygen 是生成秘钥的工具之一。
-t 参数指定加密算法,-b 参数指定长度
用法如下:
ssh-keygen -t rsa -b 4096
3.将公钥发送到服务器
使用 ssh-copy-id 工具。
用法:
ssh-copy-id -i 公钥位置 user@host
之后会提示输入密码进行认证。
在这之后,公钥就会被添加到 服务器上的 ~/.ssh/authorized_keys 文件了里面。
一旦在服务器上配置了公钥,服务器会允许任何具有私钥的客户端进行连接用户登录,在登录的过程中,客户端会通过数字签名交换来证明拥有私钥。
免密登录图解
创建密钥并添加到服务器上。
登录认证流程
值得注意的是:服务端的 .ssh目录权限必须是700(rwx———),authorized_keys文件的权限是600(rw———-)
部分参考https://www.ssh.com/ssh/keygen/#sec-What-Is-ssh-keygen
Linux安装Tomcat
Tomcat 是一个免费开源的 web 服务器。
- Tomcat 7 下载地址:https://tomcat.apache.org/download-70.cgi
- 也可以镜像下载:~~wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.91/src/apache-tomcat-7.0.91-src.tar.gz ~~ 后面出问题了,验证这个源选错了,应该是下面这个:选bin下面的包,http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz
- Tomcat 7 的官方文档,https://tomcat.apache.org/tomcat-7.0-doc/introduction.html
Tomcat 是免安装的,直接把环境变量配置好就 OK 的。 - 启动使用 ./startup.sh 关闭使用 ./shutdown.sh
- 配置环境变量
遇到的问题以及解决方案
问题1
【问题描述】
修改hostname 并立即生效,但是不想重启服务器
【问题思路】
【解决方案】
修改了/etc/sysconfig/network下的HOSTNAME后,然后使用 hostname name 生效一下。
问题2
【问题描述】
连接远程 mysql 服务器,需要注意的地方
【问题思路】
【解决方案】
- 注意防火墙要关闭
- 注意 user 表的host 的字段是否设置好了。
两种设置方式:
grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;
直接修改user表的hosts字段,改为 %
3.注意能够ping 同服务器。
问题3
【问题描述】
指定明文密码报错,ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
【问题思路】
41位十六进制数:41-digit hexadecimal number
【解决方案】
使用 select password(‘你要设置的密码’)
这就就可以直接指定密码了。
问题4
【问题描述】
下载tomcat之后,目录里面缺少一些东西,比如没有logs ,另外bin 目录下的脚本都没有执行权限。
【问题思路】
修改过脚本的执行权限之后,在bin目录下执行 ./startup.sh ,报错:
Using CATALINA_BASE: /opt/apache-tomcat-7.0.91
Using CATALINA_HOME: /opt/apache-tomcat-7.0.91
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.91/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/apache-tomcat-7.0.91/bin/bootstrap.jar:/opt/apache-tomcat-7.0.91/bin/tomcat-juli.jar
touch: cannot touch /opt/apache-tomcat-7.0.91/logs/catalina.out': No such file or directory
/opt/apache-tomcat-7.0.91/bin/catalina.sh: line 439: /opt/apache-tomcat-7.0.91/logs/catalina.out: No such file or directory
一开始想的是,新增一个 logs 目录不记得了,上网一查才指定,自己下的包是源码包,应该下在一个编译好的包。
下载源:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz
【解决方案】
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz
这个包,解压之后,有logs目录,并且 bin 下面的几个脚本默认有执行权限的。