今日学习目标

  • 网络进程
  • 系统服务
  • 定时任务
  • 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即可。格式如下:

  1. #chkconfig 2345 85 90
  2. #description:auto_run
  3. ......

将脚本 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 文件了里面。

一旦在服务器上配置了公钥,服务器会允许任何具有私钥的客户端进行连接用户登录,在登录的过程中,客户端会通过数字签名交换来证明拥有私钥。

免密登录图解

创建密钥并添加到服务器上。

Linux 03 - 图1

登录认证流程

值得注意的是:服务端的 .ssh目录权限必须是700(rwx———),authorized_keys文件的权限是600(rw———-)

Linux 03 - 图2

部分参考https://www.ssh.com/ssh/keygen/#sec-What-Is-ssh-keygen

Linux安装Tomcat

Tomcat 是一个免费开源的 web 服务器。

  1. Tomcat 7 下载地址:https://tomcat.apache.org/download-70.cgi
  2. 也可以镜像下载:~~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

Linux 03 - 图3

  1. Tomcat 7 的官方文档,https://tomcat.apache.org/tomcat-7.0-doc/introduction.html
    Tomcat 是免安装的,直接把环境变量配置好就 OK 的。
  2. 启动使用 ./startup.sh 关闭使用 ./shutdown.sh

Linux 03 - 图4

  1. 配置环境变量

遇到的问题以及解决方案

问题1

【问题描述】

修改hostname 并立即生效,但是不想重启服务器

【问题思路】

【解决方案】
修改了/etc/sysconfig/network下的HOSTNAME后,然后使用 hostname name 生效一下。

问题2

【问题描述】

连接远程 mysql 服务器,需要注意的地方

【问题思路】

【解决方案】

  1. 注意防火墙要关闭
  2. 注意 user 表的host 的字段是否设置好了。
    两种设置方式:
    Linux 03 - 图5grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;
    Linux 03 - 图6直接修改user表的hosts字段,改为 %

3.注意能够ping 同服务器。

问题3

【问题描述】

指定明文密码报错,ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

Linux 03 - 图7

【问题思路】

41位十六进制数:41-digit hexadecimal number

【解决方案】
使用 select password(‘你要设置的密码’)

Linux 03 - 图8

这就就可以直接指定密码了。

Linux 03 - 图9

问题4

【问题描述】

下载tomcat之后,目录里面缺少一些东西,比如没有logs ,另外bin 目录下的脚本都没有执行权限。

【问题思路】
修改过脚本的执行权限之后,在bin目录下执行 ./startup.sh ,报错:

  1. Using CATALINA_BASE: /opt/apache-tomcat-7.0.91
  2. Using CATALINA_HOME: /opt/apache-tomcat-7.0.91
  3. Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.91/temp
  4. Using JRE_HOME: /usr
  5. Using CLASSPATH: /opt/apache-tomcat-7.0.91/bin/bootstrap.jar:/opt/apache-tomcat-7.0.91/bin/tomcat-juli.jar
  6. touch: cannot touch /opt/apache-tomcat-7.0.91/logs/catalina.out': No such file or directory
  7. /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 下面的几个脚本默认有执行权限的。

Linux 03 - 图10