美文网首页
Linux-服务+网络端口号

Linux-服务+网络端口号

作者: 李亚森 | 来源:发表于2020-05-27 20:01 被阅读0次

    1、Linux-服务+网络端口号

    服务:一般在后台运行

    centos6有7种运行级别,系统启动时会按照配置的一个运行级别启动,然后使用init.d再根据此运行级别去判断服务是否在此级别中启动。到centos7时只保留了3和5

    1.1 在centos6中如何管理服务(centos7也兼容6的服务管理命令)

    1-  chkconfig  --list    :查看服务运行级别

    2-  service  firewalld  status  查询服务的状态

    3-  service firewalld start  启动服务

    4- service  firewalld  stop  停止服务

    防火墙,端口号一般都被防火墙过滤掉,只暴露22端口号

    5-  ll  /etc/init.d/  查看init进程管理的服务文件夹

    6-  chkconfig --level 2 network off  设置指定的服务在指定运行级别关闭

    7- chkconfig --level 2 network on    设置指定服务在指定运行级别启动

    1.2 在centos7中管理服务(centos7天字第一号进程是systemd,只有3和5两个运行级别)

    1- systemctl list-unit-files  查看所有的服务列表

    ctrl+c 退出列表

    查询指定的服务:systemctl  list-unit-files |grep firewalld

    2- systemctl status 服务名 :查看服务器的状态

    3- systemctl start 服务名  :启动指定服务

    4- systemctl  stop 服务名:停止服务

    5- systemctl  diable 服务名:设置服务开机禁止启动

    6- systemctl enable 服务名: 设置服务开机自启

    7-  systemctl get-default : 查看当前系统的运行级别

    8- systemctl set-default  multi-user.target/graphical.target: 设置系统的运行级别

    1.3  网络端口号查询

    netstat  -anp | grep  端口号

    将springboot项目上传到虚拟机的/opt目录下

    java -jar xxxx.jar 

    主机浏览器访问:http://虚拟机ip地址:8080/hello

    如果虚拟机控制台没有报错,虚拟机防火墙将请求拦截了

    netstat -anp|grep 8080

    kill -9 1490 :杀死占用端口号的进程

    2、Linux-用户权限命令(了解)

    id  用户名: 查看用户

    useradd  用户名:新增用户

    通过useradd的方式添加的用户都是普通用户,所有的用户的家目录都会创建在/home目录下

    passwd  用户名:设置密码

    whoami: 查看当前正在使用系统的用户

    who am i :查看登录的用户

    su 用户名:  切换用户

    从超级管理员切换到普通用户不用输入密码

    从普通用户到root需要输入密码

    userdel -r  用户名:删除用户和他的/home目录下的家目录文件

    groupadd  组名: 创建用户组

    usermod -g  组名  用户名: 将用户添加到组中

    useradd -g 组名  新用户名:新创建用户并分配到组中

    groupdel 组名:删除组

    groupmod -n 新组名 旧组名:修改组名

    /etc/passwd :存储用户的信息

    /etc/shadow:存储用户的影子信息[密码]

    /etc/group :组

    权限:

    列表中的第一列代表文件类型权限

    代表权限的第一列除了.,剩下10位

    第一位:代表文件类型  d代表文件夹,-代表文件, l代表链接

    第2~4位: u 代表文件拥有者的权限

    rwx:    如果使用-代表其中一个,就表示没有这个权限(r-x  可读可执行  不能写)

    r:read  读权限  , w:write写权限 , x:excute执行权限

    第5~7位: g 代表文件拥有者所在组的成员拥有的权限

    第8~10位:o 代表和文件拥有者不再同一个组的其他成员的权限

    修改文件夹的权限:

    第一种(不推荐):直接使用  rwx表示权限进行设置

    chmod  g=rx  laohan  :添加权限

    chmod g-rx  laohan:删除laohan文件夹的组的权限

    第二种(推荐):将权限使用数字描述

    r=4  w=2  x=1

    chmod 750  laohan : 第一组权限全部设置,第二组权限设置rx,第三组没有权限

    第三列代表文件的拥有者

    第四列代表文件拥有者所在的组

    chgrp  组名  文件夹名:修改文件夹所在组

    chown -R  用户名  文件夹名:递归修改文件夹和他内部所有文件的拥有者

    3、Linux-安装卸载命令

    3.1 本地安装

    rpm  -qa |grep  -i  firewalld  :查询已安装的程序,并忽略大小写筛选结果

    rpm -e  安装包名:  卸载已安装的程序

    rpm -ivh  安装包名: 安装程序

    安装操作系统时,系统压缩包自带了非常多的应用,可以在光驱加载的ISO镜像中找到火狐浏览器的安装包(/run/media/root/CentOS 7 x86_64/Packages)

    cd  /run/media/root/CentOS 7 x86_64/Packages

    rpm -ivh firefox-52.2.0-2.el7.centos.x86_64.rpm

    3.2 远程联网安装

    centos提供了中央软件库,可以通过yum命令远程连接下载程序自动安装

    yum  list |grep  -i  firefox:  联网搜索指定的程序安装包

    yum  install  firefox.x86_64  : 安装指定的程序

    4、Linux-开发环境搭建

    4.1 jdk

    1、拷贝课件中的已经下载好的jdk到虚拟机的/opt目录下

    2、切换到opt目录下,解压缩压缩包

    tar -zxvf  压缩包名 :解压缩所有的压缩包

    jdk解压可用,无需安装,但是jdk的命令在bin目录下[/opt/jdk1.8.0_152/bin]

    在控制台执行jdk的命令时,系统默认从path环境变量中查找对应的命令,我们自己解压的jdk没有配置到环境变量中,所以不能使用

    3、将自己解压的jdk的bin目录配置到linux系统的环境变量中

    vim /etc/profile

    在文件最后:shift+g

    JAVA_HOME=/opt/jdk1.8.0_152

    PATH=/opt/jdk1.8.0_152/bin:$PATH

    exportJAVA_HOME PATH

    source /etc/profile:重新加载环境变量

    ====  启动tomcat时

    4.2 mysql

    1、检查是否存在已安装的mysql

    [root@atguigu bin]# rpm -qa|grep -i maria

    mariadb-libs-5.5.56-2.el7.x86_64

    2、卸载已安装的mysql[mysql安装时会安装其他的多个依赖]

    rpm -e --nodeps mariadb-libs

    3、检查mysql以后要使用的文件夹的权限[/tmp]

    chmod 777 /tmp

    4、安装mysql

    cd /opt/MySQL/

    rpm -ivh MySQL-client-5.5.54-1.linux2.6.x86_64.rpm

    rpm -ivh MySQL-server-5.5.54-1.linux2.6.x86_64.rpm

    5、检查是否安装成功

    rpm -qa|grep -i mysql

    6、使用mysql客户端连接mysql服务端

      如果报以下错误,表示mysql服务没有启动

    systemctl start mysql

    ps -aux|grep -i mysql

    //连接mysql,初始化安装mysql没有密码

    mysql -hlocalhost -P3306 -uroot -p

    7、修改mysql编码

    //连接mysql后,查看mysql的字符编码

    show variables like '%char%';

    //mysql默认编码为latin1,需要修改为UTF-8

    //mysql安装后,配置文件保存在 /usr/share/mysql/my-huge.cnf

    linuxmysql启动时,优先在/etc下查找my.cnf配置文件作为mysql的配置,如果/etc下没有此文件,mysql再到/usr/share/mysql/my-huge.cnf.

    //将my-huge配置文件拷贝到/etc下一份,并改名为my.cnf

    cp /usr/share/mysql/my-huge.cnf /etc/my.cnf

    //修改/etc/my.cnf,设置mysql的编码格式为utf-8

    在17行[client]下添加

    default-character-set=utf8

    在26行[mysqld]下添加

    character_set_server=utf8

    character_set_client=utf8

    collation-server=utf8_general_ci

    在138行[mysql]添加

    default-character-set=utf8

    保存退出

    重启mysql服务加载修改后的配置文件

    service  mysql restart

    mysql -uroot -p

    8、修改mysql密码

    mysql5.5 密码存在mysql 库中的user表中

    mysql保存用户信息时存在mysql.user表中

    host代表ip地址,user代表账号,password代表密码,xxx_priv 代表权限

    访问mysql时,mysql识别用户是通过 登录账号+登录时的ip地址组合判断账号

    root@localhost

    删除localhost  root以外的其他用户: delete语句+条件删除

    修改用户密码:

    select host ,user,password , select_priv  from mysql.user;

    update mysql.user set password = password('123123');

    或者 set password=password('123456');

    修改后需要重启mysql服务: service mysql restart

    9、远程连接mysql[主机使用sqlyog去连接虚拟机中的mysql]

    原因: mysql  user表中,只有localhost地址才可以使用root用户连接mysql服务

    修改user表中的root@localhost用户,将host修改为%(通配符,统配所用)

    重启mysql,再次使用sqlyog远程连接

    10、安装web测试工具  ab

    使用yum安装: yum install -y  httpd-tools

    使用:

    ab --help

    ab -n8000 -c800  http://192.168.1.130:8080/hello

    5、Nosql数据库简介

    6、redis简介

    redis之前的版本只支持linux

    只有linux才能最优化的使用redis

    7、redis安装+启动停止

    7.1 将redis安装包拷贝到 虚拟机的/opt目录下

    7.2 解压缩redis的压缩包:tar -zxvf redis.tar.gz

    7.3 查看redis的文件夹发现解压之后的src是redis的源码,需要先编译才能安装

    redis是使用c语言开发的,需要使用c语言的编译命令

    在redis目录下执行:make命令时,报错,原因:系统中没有安装c语言的环境

    1、安装c语言和c++的语言环境

    yum install -y gcc

    yum install -y gcc-c++

    gcc -v

    g++ -v

    2、删除上次make产生的错误文件

    make distclean

    3、再执行make进行编译

    4、再执行安装命令: make install

    5、如果执行  redis-server  能够看到redis的启动界面,就代表redis安装成功

    ctrl+c  可以关闭redis-server

    redis安装之后,命令存放在usr/local/bin下,命令可以在任意的地方执行

    redis-server  :redis服务端启动命令

    redis-cli  :redis客户端启动的命令

    8、修改redis为后台启动

    redis默认前台启动(阻塞启动)

    8.1 在/下创建存放redis配置文件的文件夹

    mkdir  /myredis

    8.2 拷贝redis的配置文件到/myredis目录下

          cp /opt/redis-4.0.0/redis.conf /myredis/

    8.3 编辑 /myredis/redis.conf  设置后台启动

    vim  /myredis/redis.conf

    136行设置daemonize  改为yes

    保存退出

    8.4 指定配置文件启动redis服务

    redis-server /myredis/redis.conf

    服务端默认端口号:6379

    8.5 redis客户端连接redis 

    redis-cli  默认连接本机的6379端口号的redis服务端

    ctrl+c退出redis-cli连接

    redis-cli -h 127.0.0.1 -p 6379 :连接指定ip指定端口的redis服务

    8.6 关闭redis服务

    在redis-cli的连接中,ctrl+c只会关闭redis客户端

    方式1: 在linux命令中执行  redis-cli  -h 127.0.0.1 -p 6379 shutdown

    方式2:如果在redis-cli的连接中  shutdown

    方式3: 可以通过redis进程id杀死进程  kill  进程id

    8.7 redis简单使用+特点

    redis默认有16个库。一般使用默认的索引为0的库:select 0

    dbsize  :查看redis存储数据的条数

    flushdb  : 清空当前库(慎用)

    flushall:  清空redis所有的库

    内存数据库存储数据都是在内存中操作,内存操作速度非常快,每个命令执行时的时间短

    Redis是单线程+多路IO复用技术

    Memcached 是串行+多线程的方式

    redis和Memcached三点不同: 支持多数据类型,支持持久化,单线程+多路IO复用

    9、redis-key操作

    1、查看所有的键:keys *

    2、判断某个键是否存在: exists  key 

    返回1代表存在,0代表不存在

    3、查看键对应值的类型: type  key

    4、删除指定的键(键在值在,键光值亡): del key

    5、给键设置过期时间:  expire key  seconds

    6、查看键的过期时间:  ttl  key

    返回>=0的数字,代表剩余数字对应的秒数

    返回-2 ,代表键已过期被删除

    返回-1 ,代表键永不过期

    10、redis-五大数据类型-string

    redis最常使用的数据类型就是string类型: java对象可以转为字符串,图片也可以转为图片

    redis中string类型的大小最大可以为512m,redis的字符串二进制安全

    1、向redis中存入string键值对:set  k  v

    如果键相同,后设置的值会覆盖之前的

    2、获取redis中指定键的值:  get  k

    3、给redis中指定键的值追加内容: append  k    appendStr

    4、获取键的值的长度:  strlen  key

    5、当键不存在时才设置键值对:  setnx  k    v

    分布式锁

    6、设置值自增1  :  incr  k   

    如果k的值已存在,必须时整形才可以自增

    如果k不存在,默认在0的基础上+1

    应用场景: 计数器、密码今天输错的次数、秒杀库存自减

    7、设置值自减1 :  decr  k

    8、自定义步长增减:  incrby  k  count , decrby  k  count

    9、设置键值对同时设置过期时间: setex  key  secods  val

    使用场景:  保存手机验证码

    10、批量操作

    1、批量存入多个键值对: mset k v k  v ....

    2、批量获取多个键的值: mget k1 k2 k3...

    3、批量设置键值对当键不存在时:  msetnx k1 v1 k2 v2...

    当有一个键如果存在时,所有的数据都保存失败

    所有的键都不存在时,才可以存储成功

    redis命令具有原子性,命令执行时,必须成功或者失败

    java中的i++是否是原子操作?

    不是,执行时,分为三步:先获取i的变量的值,执行i++操作,将计算后的结果设置到内存中

    i=0;两个线程分别对i进行++100次,值是多少?2~200

    11、获取值指定范围内的内容:getrange  k    start  end

    获取时,start和end索引都包含

    end如果是-1  代表获取到最后

    12、替换字符串指定范围的内容:setrange  k  start    replacestr

    13、设置值并返回被替换的内容:getset k  newVal 

    相关文章

      网友评论

          本文标题:Linux-服务+网络端口号

          本文链接:https://www.haomeiwen.com/subject/vwugahtx.html