精选30+云产品,助力企业轻松上云!>>>

Linux 03

今日学习目标

  • [x] 网络进程
  • [x] 系统服务
  • [x] 定时任务
  • [x] Linux安全
  • [x] 常用命令操作
  • [x] Tomcat
  • [x] JDK环境配置
  • [x] 克隆虚拟机
  • [x] mysql安装以及简单配置
  • [x] 免密登录配置

学习进度

Linux(完)

一天总结

进程

1.查看进程<br /> ps 命令可以查看进程,用法一般是:<br /> ps -ef 或者 ps -ef | grep 进程名 <br /> ps 命令  一般加上参数 -ef 代表所有、全格式

动态的查看:<br /> 使用 top 命令

2.后台进程<br /> 使用 & 符号,加在命令后面,可以使得命令进入后台运行。<br /> 比如 ping www.baidu.com & 执行之后,就会进入后台一直执行,直到被挂起。

jobs -l 可以查看当前连接(终端)下的后台进程。<br /> 依次显示后台程序的jobnum ,pid ,状态,以及命令

nohup 保证后台进程不会被挂起。

结:一般 & 和 nohup 结合使用。例子:nohup ping www.baidu.com &

有一部分内容参考了这里:https://blog.csdn.net/u013846293/article/details/74003051

3.杀掉进程

杀掉进程,使用 kill 命令<br /> 可以根据 jobs 显示的jobnum, kill jobnum  <br /> 或者根据 ps 显示的pid , kill -9 pid

4.前后台进程转换<br /> 如果是一个前台命令的话,使用 ctrl+c 就停止了。<br /> 但是一个后台命令,也可以变成前台命令吗?可以的。

使用 fg 命令可以使得一个后台的命令变至前台执行。fg jobnum<br /> 使用 bg 左右正好相反。bg jobnum

系统服务

简单的,以networking为例:service network start<br /> service 会到 /etc/init.d/目录下寻找 network 脚本。start 是 network 脚本里面的一个参数。然后告诉系统,运行这个脚本<br /> 参考Linux chkconfig 命令详解<br /> 1.查看系统服务<br /> 使用 chkconfig 命令,直接列出系统服务信息;

2.设置开机启动或关闭<br /> 使用chkconfig 服务名 on 或者 off

3.添加服务<br /> 编写脚本,并赋权755即可。格式如下:

#chkconfig 2345 85 90
#description:auto_run
......

将脚本 cp 到 /etc/init.d 中, 此时就可以使用 service 脚本 来运行了,但是如果你想弄成开机启动的服务,就得加到开启启动列表里面了,使用 chkconfig --add COMMAND 就把这个脚本加到了启动列表里里面。

4.删除服务<br /> chkconfig --del 服务名

定时任务

crontab 命令,周期性的执行某些定时任务,是一个守护进程。<br /> 使用: crontab -e 命令会打开定时任务的配置文件。

Linux 安全

selinux 是一个 Linux 的一个安全策略 DAC--MAC。<br /> 1.sestatus -v 查看 selinux 的状态<br /> 2.编辑 /etc/selinux/config 将 selinux 的值改为 disabled, 需要重启机器。<br /> 3.如果只想临时关闭呢,使用 setenforce 0, 不会修改文件,下次重启恢复默认的。

一些其他的常用命令

yum 软件包管理器

更改成在线的yum源,换成阿里的,操作步骤如下:<br /> 1.备份原来的 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak<br /> 2.下载阿里的源:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo<br /> 3.运行 yum makecache(目的是将服务器上的软件包信息下载到本地,以加快软件包的搜索速度)

查看当前的 yum list

wget<br /> 支持 HTTP,HTTPS,FTP 三种协议,可以下载网络资源。<br /> wget -O 指定文件保存到哪<br /> 安装wget , yum install wget -y

rpm  软件包管理器

安装:rpm -ivh 包<br /> 查看:rpm -a 包<br /> 卸载 : rpm -e 包的全名

tar

解压 tar -zxvf xxx.tar.gz<br /> 压缩 tar -zcvf xxx.tart.gz 要压缩的文件夹

zip

zip -r 包名 目标目录<br /> unzip filename

JDK环境配置

jdk7 下载地址 : https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html<br /> 使用 rpm -ivh xxx.rpm 进行安装<br /> 编辑编辑变量,添加 JAVA_HOME即可

克隆虚拟机

注意克隆之后,要更改 hostname ,还要删除网卡的规则,修改网卡的ip<br /> vim /etc/sysconfig/network<br /> rm -rf  /etc/udev/rules.d/70-persistent-net.rules

mysql安装以及简单配置

使用 yum 安装<br /> 1.yum install mysql-server -y<br /> 2.yum install mysql-devel -y

3.启动 service mysqld start

此时 root 用户是没有免密的,可以直接使用 mysql命令 就可以连接上服务器。<br /> 4.使用** mysqladmin -u root password 123456** 给 root 用户指定密码123456<br /> 5.登录:使用 mysql -uroot -p ,根据提示输入密码即可。

完成上述步骤之后,只能在本地连接 mysql 服务器、要想可以远程连接,必须修改 user 表的 host 字段

1.直接修改 hosts为%<br /> 2.使用grant all privileges on . to 'root'@'%' identified by '123456' with grant option;

免密登录配置

配置简单。主要涉及到的原理需要理解。

原理<br /> 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 服务器。

  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

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

  1. 配置环境变量

遇到的问题以及解决方案

问题1

【问题描述】

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

【问题思路】

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

问题2

【问题描述】

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

【问题思路】

【解决方案】

  1. 注意防火墙要关闭
  2. 注意 user 表的host 的字段是否设置好了。<br /> 两种设置方式:<br /> grant all privileges on . to 'root'@'%' identified by '123456' with grant option;<br /> 直接修改user表的hosts字段,改为 %

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

问题3

【问题描述】

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

【问题思路】

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

【解决方案】<br /> 使用 select password('你要设置的密码')

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

问题4

【问题描述】

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

【问题思路】<br /> 修改过脚本的执行权限之后,在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 目录不记得了,上网一查才指定,自己下的包是源码包,应该下在一个编译好的包。<br /> 下载源:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz<br /> 【解决方案】<br /> wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz<br /> 这个包,解压之后,有logs目录,并且 bin 下面的几个脚本默认有执行权限的。

Linux 基础知识系列第三篇相关推荐

  1. c# 找出目录下的所有子目录_C# 基础知识系列- 14 IO篇 文件的操作(2)

    前接上一篇内容. 如果是第一次捧场的小伙伴,为了您阅读的连贯性,烦请扫一眼<C# 基础知识系列- 14 IO篇 文件的操作(1)>.本篇是IO之文件操作的第二篇,介绍一下目录和路径的相关类 ...

  2. Linux基础知识与实操-篇三: 文件压缩打包与vim基本使用

    文章目录 压缩打包与备份 压缩文件命令`gzip bzip2 xz` `gzip` 命令 `bzip2` 命令 `xz`命令 打包指令 XFS文件系统备份与还原 光盘写入工具 其他常见的压缩与备份工具 ...

  3. Linux 基础知识系列第二篇

    精选30+云产品,助力企业轻松上云!>>> Linux 02 今日学习目标 [x] 磁盘管理 [x] 网络管理 [x] 系统管理 [x] 重定向和信息黑洞 学习进度 Linux(11 ...

  4. Linux 基础知识系列第一篇

    精选30+云产品,助力企业轻松上云!>>> Linux 01 今日学习目标 [x] Linux系统的认识以及部署安装 [x] 认识Linux文件系统结构 [x] 实际操作文件和文件夹 ...

  5. 链方法[C# 基础知识系列]专题三:如何用委托包装多个方法——委托链

    最近研究链方法,稍微总结一下,以后继续补充: 弁言: 上一专题分析了下编译器是如何来翻译委托的,从中间语言的角度去看委托,希望可以帮助大家进一步的理解委托,然而之前的分析都是委托只是封装一个方法,那委 ...

  6. 区块链基础知识系列 第三课 区块链中的默克尔树

    "区块链是实现无中心分布式总账的一种技术.除了采用块.链结构的典型区块链以外,还有其他的方式实现分布式总账这个需求.总账技术的基本单元是'交易',整个账本是由一条条的交易构成.'块'类似于账 ...

  7. 如何获取exception的target异常_C# 基础知识系列- 15 异常处理篇

    0. 前言 为什么我们需要异常处理?什么是异常? 在汉语中,异常指非正常的:不同于平常的.翻译到程序中,就是指会导致程序无法按照既定逻辑运行的意外,或者说是错误.可能会有小伙伴好奇了,我们的程序不是正 ...

  8. c#物联网_C# 基础知识系列- 16 开发工具篇

    0. 前言 这是C# 基础知识系列的最后一个内容讲解篇,下一篇是基础知识-实战篇.这一篇主要讲解一下C#程序的结构和主要编程工具. 1. 工具 工欲善其事必先利其器,在实际动手之前我们先来看看想要编写 ...

  9. c# getresponsestream返回byte[]_C# 基础知识系列-13 常见类库(三)

    0. 前言 在<C# 基础知识系列- 13 常见类库(二)>中,我们介绍了一下DateTime和TimeSpan这两个结构体的内容,也就是C#中日期时间的简单操作.本篇将介绍Guid和Nu ...

最新文章

  1. sangerbox平台使用(六)富集分析
  2. 从数学中的虚幻模式到傅里叶变换性质
  3. uint8、double、mat2uint、imhist绘直方图w恩替藐视
  4. 玩转Eureka+Ribbon系列之Ribbon的负载均衡策略
  5. boost::safe_numerics模块相关的测试程序
  6. 897A. Scarborough Fair# 斯卡布罗集市(模拟)
  7. crontab文件在哪个目录_目录形式URL与文件形式URL哪个更有利于SEO
  8. Cloud for Customer的工作中心(work center)加载源代码
  9. Orleans简单配置
  10. 微信小程序之发送模板消息(通过openid推送消息给用户)
  11. Android 高级编程 RecyclerView 控件的使用
  12. 关于js拷贝对象的问题
  13. JAVA中ResourceBundle使用详解(一)
  14. cif t t操作流程图_cif流程(cif贸易术语流程图)
  15. python中国大学慕课网_高级语言程序设计(Python)中国大学慕课搜题网站
  16. 四维空间的二维线框投影可视化(附matlab代码)
  17. 计算机现在发展状况,浅谈计算机的发展状况
  18. Hutool工具生成二维码
  19. Android适配--dimen
  20. pl/sql 变量的声明与赋值

热门文章

  1. 想学大数据,应该从什么语言开始学?
  2. mybatis3 配置文件解析
  3. DBUtils 主要结果集说明
  4. MDOP 2011 R2 DaRT 7.0 创建包含诊断和恢复的图形化PE
  5. XShell技巧收集
  6. 容器编排技术 -- Kubernetes kubectl delete 命令详解
  7. Nginx反向代理与负载均衡等配置文件示例
  8. oracle 压力测试工具benchmarksql
  9. C#设计模式学习笔记:(20)职责链模式
  10. Android udp json+数组 ---gt;bytes发送数据