Linux 基础

菜鸟教程Linux
1.根目录介绍:
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:
该目录存放一些服务启动之后需要提取的数据。

/sys:

这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:
这个目录是用来存放一些临时文件的。

/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr/bin:
系统用户使用的应用程序。

/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:
内核源代码默认的放置目录。

/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

2.常见文件操作命令
ls: 列出目录

ls -a //列出所有数据包括隐藏的数据
l. //查看所有以.开头的文件

cd:切换目录

cd. //目录不移动
cd..//返回上级

pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录

[root@server1 work]# mkdir new //创建新目录
[root@server1 work]# mkdir -p 1/2/3/4  创建一个这样的目录

cp: 复制文件或目录
rm: 移除文件或目录

[root@server1 work]# rm -f file1 //强制删除
[root@server1 work]# rm -fr file1 //强制删除不提醒
[root@server1 work]# rm dir1 -r //会进行提醒

mv: 移动文件与目录,或修改文件与目录的名称
touch:创建一个空文件

touch test 
touch .test//创建隐藏文件

cat:查看文件内容

[root@server1 work]# cat test //查看test的内容

mv:移动

[root@server1 work]# mv file1 dir1/

tail:可以tail -1 test查看test文件倒数第一行
head:可以head-1 test查看test文件第一行
可以在任何的命令后面加上--help获取帮助

3.vim 编辑器
在这里插入图片描述
1.直接使用vim 进入空的文件编辑器
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。
在输入要编写的内容之后 按ESC机内命令模式 输入:wq test:wq表示退出并保存 test 表示改文件的名字。
2.使用vim test命令表示要编辑的文件是test进入编辑模式 :wq保存退出,如果不想保存 :q!强退
输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式
    复制剪切黏贴
  • 在命令模式 光标在某一行时 yy(y4y表示复制这4行)复制 然后p黏贴 就可在光标下面插入这一行的复制,u是撤销的意思
  • 光标在某一行时 dd(d4d表示剪切这4行),然后p黏贴 就可在光标的这行插入下一行的。cl是剪切一个字符 cw是剪切一个单词

查询替换

  • 查询: /或者? 在命令模式输入:dass 就会讲查询的高亮 n光标向下查询 N 光标向上查询
  • 给每一行 加上序号在命令行:set nu
  • 将全文中a替换为b:%s/a/b
  • 将查询到的第一个a替换为b:1s/a/b

快捷键
左右分屏ctrl w v wv不是一起按
在当前窗口 分屏 打开另外一个文件编辑:sp test
设置tab等于多少空格:set ts=4为4个空格

在命令终端时 可以使用 ctrl+shift+t重新打开一个 命令终端

还可以使用[root@server1 work]# vim .vimrc编辑这个文件对vim进行配置 在每次vim编辑器打开时都会西安导入vimrc文件

文件管理
在这里插入图片描述
将错误的丢进回收站[gj@server1 root]$ find -name passwd 2> /dev/null/

将输入的内容 定向到文件中 >会覆盖原有的内容>>不会覆盖原有的内容

[root@server1 work]# cat >test <<EOF
> dasdadds
> das
> ghfg
> gfh
> EOF

echo单行内容

[root@server1 work]# echo utioeruo>test
[root@server1 work]# cat test
utioeruo
[root@server1 work]# echo jdglgjdj>>test
[root@server1 work]# cat test
utioeruo
jdglgjdj
[root@server1 work]# tr 'a-z' 'A-Z' <test
UTIOERUO
JDGLGJDJ

管道

管道(内容向后传递)会自动过滤错误内容[gj@server1 root]$ find -name passwd | cat>test 指挥将正确的内容输入到test当中,或者是[gj@server1 root]$ find -name passwd 2>&1 | cat>test 将错误内容重定向为正确的,及可以在中间添加更多的操作

用户和用户组管理
useradd 选项 用户名
参数说明:

  • -c comment 指定一段注释性描述。
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-- m选项,可以创建主目录。
  • -g 用户组 指定用户所属的用户组。
  • -G 用户组,用户组 指定用户所属的附加组。
  • -s Shell文件 指定用户的登录Shell。
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
# useradd -s /bin/sh -g group –G adm,root gem

此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

useradd user1 添加一个新用户(会新建一个组) 其实最终的修改都会保存到下面的三个文件中

[root@server1 work]# tail -1 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
[root@server1 work]# tail -1 /etc/group
user1:x:1001:
[root@server1 work]# tail -1 /etc/shadow
user1:!!:18342:0:99999:7:::

usermod 选项 用户名常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样

# usermod -s /bin/ksh -d /home/z –g developer sam

此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer

删除用户 # userdel -r sam -r,它的作用是把用户的主目录一起删除。

给用户添加密码 [root@server1 work]# passwd user1

用户权限
在这里插入图片描述
在这里插入图片描述
修改该文件的权限

[root@server1 work]# chmod root test
//该文件属于root 也可以修改为其他的
[root@server1 work]# chmod u-r go+r test

独立的控制

[root@server1 work]# setfacl -m u:t:- passwd
//单独将t用户对passwd文件的访问权限设置全空

进程
在这里插入图片描述

[gj@server1 ~]$ ps ax//查看全部进程
[gj@server1 ~]$ ps ax -o pid,comm,%cpu//进行过滤 只查看 pd 内存 cpu
[gj@server1 ~]$ ps ax -o pid,comm,%cpu | prep dd
//查找dd的进程

在这里插入图片描述
在这里插入图片描述
Ss表示进程在休眠

[gj@server1 ~]$ top//动态的显示进程 每隔几秒就会刷新界面,按1会显示每个cpu的使用率
P按照cpu使用率排序
M按照内存使用率排序
ctrl+c退出

in是cpu使用优先级 数字越小越高
在这里插入图片描述
杀进程[root@server1 /]# kill -9 9921 将9921杀掉 -9 是强制杀掉

[root@server1 /]# kill xxx //进程pid
[root@server1 /]# kill -9 xxx//进程pid
[root@server1 /]# killall xxx//进程名字

job管理

[gj@server1 ~]$ vim
//ctrl+z 后台挂起目前的进程 会停止
[gj@server1 ~]$ vim & //后台运行目前的进程
[4] 14866
[gj@server1 ~]$ jobs//查看
[1]   Stopped                 vim
[2]   Stopped                 vim
[3]-  Stopped                 vim
[4]+  Stopped                 vim//+表示优先级
[gj@server1 ~]$ fg//调出进程 默认是+的进程 也可以使用前面的序号
vim

[4]+  Stopped                 vim
[gj@server1 ~]$ 

服务管理

在这里插入图片描述

[root@server1 /]# systemctl status sshd//查看该服务状态
[root@server1 /]# systemctl start sshd //启动该服务
[root@server1 /]# systemctl stop sshd//停止
[root@server1 /]# systemctl restart sshd //重启

在这里插入图片描述

[root@server1 /]# systemctl is-enabled sshd//该服务是不是开机自启
enabled //是
[root@server1 /]# systemctl disable sshd//将该服务设置为非开机自启
Removed symlink /etc/systemd/system/multi-user.target.wants/sshd.service.
[root@server1 /]# systemctl is-enabled sshd
disabled
[root@server1 /]# systemctl disable --now sshd//在disable同时把这个服务也进行关闭

网络管理
在这里插入图片描述

[root@server1 network-scripts]# ip addr
//查看本机IP文件

上网:修改配置文件

[root@server1 /]# cd  /etc/sysconfig/
[root@server1 sysconfig]# ls
anaconda         init              network-scripts  rsyslog
atd              ip6tables-config  nfs              run-parts
authconfig       iptables-config   ntpdate          samba
cbq              irqbalance        qemu-ga          saslauthd
chronyd          kdump             radvd            selinux
console          kernel            raid-check       smartmontools
cpupower         ksm               rdisc            sshd
crond            libvirtd          readonly-root    sysstat
ebtables-config  man-db            rhn              sysstat.ioconf
fcoe             modules           rpcbind          virtlockd
firewalld        netconsole        rpc-rquotad      virtlogd
grub             network           rsyncd           wpa_supplicant
[root@server1 sysconfig]# cd network-scripts/
[root@server1 network-scripts]# ls
ifcfg-ens33  ifdown-ppp       ifup-ib      ifup-Team
ifcfg-lo     ifdown-routes    ifup-ippp    ifup-TeamPort
ifdown       ifdown-sit       ifup-ipv6    ifup-tunnel
ifdown-bnep  ifdown-Team      ifup-isdn    ifup-wireless
ifdown-eth   ifdown-TeamPort  ifup-plip    init.ipv6-global
ifdown-ib    ifdown-tunnel    ifup-plusb   network-functions
ifdown-ippp  ifup             ifup-post    network-functions-ipv6
ifdown-ipv6  ifup-aliases     ifup-ppp
ifdown-isdn  ifup-bnep        ifup-routes
ifdown-post  ifup-eth         ifup-sit
[root@server1 network-scripts]# vim ifcfg-ens33

将ifcfg-ens33修改如下:

TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
UUID=68cdbff1-d419-4b1f-92b1-048c2596d04c 
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100//.1字段要与电脑一致
PREFIX=24
GATEWAY=192.168.1.1//完全与电脑一致
DNS1=114.114.114.114

保存重启

软件管理
在这里插入图片描述

先进行挂载[root@server1 yum.repos.d]# mount /dev/cdrom /media/把光驱挂载到media
创建配置文件

[root@server1 ~]# cd /etc/yum.repos.d
[root@server1 yum.repos.d]# ls
redhat.repo
[root@server1 yum.repos.d]# vim dvd.repo

dvd.repo//这个文件的周骓必须是.repo

[dvd]
name=rhel7.6
baseurl=file:///media
gpgcheck=0

校验是否可用[root@server1 yum.repos.d]# yum repolist正常如下
在这里插入图片描述
安装包[root@server1 yum.repos.d]# yum install -y httpd//这是阿帕奇服务
查询已经安装的包[root@server1 yum.repos.d]# rpm -qa | wc -l

[root@server1 yum.repos.d]# systemctl start httpd//启动安装的服务
[root@server1 yum.repos.d]# systemctl stop firewalld//关闭防火墙
[root@server1 yum.repos.d]# systemctl disable firewalld//关闭自启

测试
在这里插入图片描述
还可定制首页

[root@server1 yum.repos.d]# cd /var/www/html
[root@server1 html]# vim index.html

在这里插入图片描述
在这里插入图片描述

二进制安装
以安装nginx-1.16.1为例
1.首先下载二进制包文件
在这里插入图片描述
2.将下载好的文件放我虚拟机当中 这次放在root跟目录下
3.解压并进入

[root@server1 ~]# tar zxf nginx-1.16.1.tar.gz 解压.gz文件命令
[root@server1 ~]# cd nginx-1.16.1

4.检测是否缺少什么 环境

[root@server1 nginx-1.16.1]# ./configure

检测缺少什么就安装什么
5.检测本机是否由却少的环境[root@server1 nginx-1.16.1]# yum list pcre-devel如果有就直接安装 首先是[root@server1 nginx-1.16.1]# yum install -y gcc 然后 [root@server1 nginx-1.16.1]# yum install -y pcre-devel 最后 [root@server1 nginx-1.16.1]# yum install -y zlib-devel所有缺少的安装完毕。

6.configure可以指定参数[root@server1 nginx-1.16.1]# ./configure --help
在这里插入图片描述
我们指定其安装位置

[root@server1 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module

在这里插入图片描述
这时会缺少库,只要是缺少库的 就要在后面加上devel[root@server1 nginx-1.16.1]# yum install -y openssl-devel 将对应的库安装上就好了
以上就是检测的全部内容

7.编译[root@server1 nginx-1.16.1]# make
8.安装[root@server1 nginx-1.16.1]# make install

[root@server1 nginx-1.16.1]# make clean//清理编译的无用内容

9.运行 其实是运行脚本

[root@server1 nginx-1.16.1]# cd /usr/local/nginx/
[root@server1 nginx]# cd sbin///脚本文件都在这里
[root@server1 sbin]# ./nginx -t//测试脚本是否有语法错误
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server1 sbin]# ./nginx//运行

在这里插入图片描述

注意 避免端口问题 需要关闭其他使用的程序# netstat -antlp
在这里插入图片描述
安装tomcat
下载
在这里插入图片描述
因为tomcat 是已经编译好的,我们只需要将其解压然后运行就好。
根据习惯同样将解压好的文件放到 usr/local/中
还可以给文件做一个超链接 [root@server1 local]# ln -s apache-tomcat-7.0.103/ tomcat
在这里插入图片描述
然后启动脚本

[root@server1 local]# cd tomcat
[root@server1 tomcat]# cd bin/
[root@server1 bin]# ls
bootstrap.jar                 daemon.sh         startup.sh
catalina.bat                  digest.bat        tomcat-juli.jar
catalina.sh                   digest.sh         tomcat-native.tar.gz
catalina-tasks.xml            setclasspath.bat  tool-wrapper.bat
commons-daemon.jar            setclasspath.sh   tool-wrapper.sh
commons-daemon-native.tar.gz  shutdown.bat      version.bat
configtest.bat                shutdown.sh       version.sh
configtest.sh                 startup.bat
[root@server1 bin]# ./startup.sh

测试完成

磁盘管理
在这里插入图片描述

[root@server1 ~]# fdisk -l
//查看 硬盘分区
[root@server1 ~]# cat /proc/partitions

Mysql
将mysql安装包拖放到根目录,[root@localhost ~]# tar xf mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar解压

[root@localhost ~]# yum install mysql-community-client-8.0.19-1.el7.x86_64.rpm mysql-community-common-8.0.19-1.el7.x86_64.rpm mysql-community-libs-8.0.19-1.el7.x86_64.rpm mysql-community-libs-compat-8.0.19-1.el7.x86_64.rpm mysql-community-server-8.0.19-1.el7.x86_64.rpm

目前先安装这些 需要用到的
在这里插入图片描述
这样就安装完毕了
将数据仓库启动[root@localhost ~]# systemctl start mysqld
启动之后会又默认密码,从日志中查看[root@localhost ~]# cat /var/log/mysqld.log
在这里插入图片描述
执行脚本对密码进行修改[root@localhost ~]# mysql_secure_installationeFGsVnRyP8.s
会先让输入旧密码 将之前的输入 然后输入新密码,新密码又强壮度校验 现在输入的是Qwer1234@
接下来所有选项执行y 直至结束。
在这里插入图片描述
进行重新登录[root@localhost ~]# mysql -p
在数据库中操作注意分号mysql> show databases;
在这里插入图片描述
mysql的官方帮助文档官方文档连接

下面演示例子 主从复制的例子
需要用到双主机 可以克隆一下当前的主机

然后需要先修改防火墙配置等首先关闭防火墙[root@localhost ~]# systemctl disable --now firewalld,还有修改配置文件[root@localhost ~]# vim /etc/sysconfig/selinux如下 修改为disabled
在这里插入图片描述
然后重启

分别讲两个mysql设置不同的id[root@localhost ~]# vim /etc/my.cnf分别设置为1和2
在这里插入图片描述
设置完要重启mysql[root@localhost ~]# systemctl restart mysqld

登录1的mysql [root@localhost ~]# mysql -p

显示相关插件mysql> show plugins; 默认的如下
在这里插入图片描述
创建用户mysql> CREATE USER 'repl'@'192.168.0.%' IDENTIFIED with mysql_native_password BY 'Westos+007';
进行授权mysql> grant replication slave on *.* to 'repl'@'192.168.0.%';
然后2sql就可以直接连接了[root@localhost ~]# mysql -h 192.168.0.200 -u repl -p 密码是Westos+007
这是连接数据库

我们还可以使用2自己登录自己的数据库 然后 对1进行复制
在1中查看 要复制的日志
在这里插入图片描述
在2中

CHANGE MASTER TO
    ->     MASTER_HOST='master_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS=recorded_log_position;
CHANGE MASTER TO MASTER_HOST='192.168.0.200',MASTER_USER='repl',MASTER_PASSWORD='Westos+007',MASTER_LOG_FILE='binlog.000005',MASTER_LOG_POS=155;
mysql> start slave;
mysql> show slave status\G;

如是如下 就是成功了,从库会从binlog.000005’,MASTER_LOG_POS=155;开始复制主库的日志并且在从库中运行,然后等待 主库的改变Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
在这里插入图片描述
上面的方法 不推荐使用 使用GTID配置复制
需要先进行修配配置文件vim /etc/my.cnf在最后加上 主从都需要

gtid_mode=ON
enforce-gtid-consistency=ON

在这里插入图片描述
之后要重启MySQL systemctl restart mysqld

进入2之后要停掉slave,因为之前开着呢mysql> stop slave;
然后

mysql> CHANGE MASTER TO
     >     MASTER_HOST = host,
     >     MASTER_PORT = port,
     >     MASTER_USER = user,
     >     MASTER_PASSWORD = password,
     >     MASTER_AUTO_POSITION = 1;
CHANGE MASTER TO MASTER_HOST='192.168.0.200',MASTER_USER='repl',MASTER_PASSWORD='Westos+007',MASTER_AUTO_POSITION = 1;
mysql> start slave;
mysql> show slave status\G;

照样正常
在这里插入图片描述

以上的这是同步默认的都是异步的。

也可以根据官方文档 设置成半同步的。
在这里插入图片描述
首先安装插件在主库mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';在从库mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
主库设置打开mysql> SET GLOBAL rpl_semi_sync_master_enabled =1
如不进行时间配置则为等待10秒。
从库设置打开mysql> SET GLOBAL rpl_semi_sync_master_enabled =1
不过这时候还不能生效 需要进行io线程的重启,先关掉再进行开启

mysql> stop slave io_thread;
Query OK, 0 rows affected (0.01 sec)

mysql> start slave io_thread;
Query OK, 0 rows affected (0.01 sec)
mysql> show variables like 'rpl%';

在这里插入图片描述
就好了
延迟复制
在这里插入图片描述
只要再从库中设置

mysql> stop slave;
mysql> CHANGE MASTER TO MASTER_DELAY=30;
mysql> start slave;

这样就延迟30秒复制

慢查询 会记录下查询用时比较长的日志mysql> show variables like 'slow%';
在这里插入图片描述
设置:

mysql> set global slow_query_log=1;

就完成了 慢查询的log会存放在上图的路径里面

redis
下载连接
在这里插入图片描述
安装软件

[root@localhost ~]# ls
redis-5.0.8.tar.gz
[root@localhost ~]# tar zxf redis-5.0.8.tar.gz
[root@localhost ~]# ls
redis-5.0.8  redis-5.0.8.tar.gz
[root@localhost ~]# cd redis-5.0.8/
[root@localhost redis-5.0.8]# ls
00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-moduleapi  src
BUGS             deps     MANIFESTO  runtest          runtest-sentinel   tests
CONTRIBUTING     INSTALL  README.md  runtest-cluster  sentinel.conf      utils
[root@localhost redis-5.0.8]# install -y gcc

在这里插入图片描述

[root@localhost redis-5.0.8]# make

在这里插入图片描述

[root@localhost redis-5.0.8]# make install

开启服务

[root@localhost redis-5.0.8]# utils/install_server.sh

一直回车使用默认的就可以
在这里插入图片描述
也可以直接通过脚本启动或者关闭

[root@localhost redis-5.0.8]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@localhost redis-5.0.8]# /etc/init.d/redis_6379 status
Redis is running (14403)
[root@localhost redis-5.0.8]# 
[root@localhost redis-5.0.8]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped

进入命令行

[root@localhost redis-5.0.8]# redis-cli

查看所有参数

127.0.0.1:6379> CONFIG GET *
127.0.0.1:6379> CONFIG GET bind//查看bind
1) "bind"
2) "127.0.0.1"

指令主要查看挂安防文档很简单连接
常用的
在这里插入图片描述
存放键值

127.0.0.1:6379> set name wxh
OK
127.0.0.1:6379> get name 
"wxh"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set name we
OK
127.0.0.1:6379[1]> get name
"we"
127.0.0.1:6379[2]> select 1
OK
127.0.0.1:6379[1]> get name
"we"
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> get name
"wxh"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name 
(nil)
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get name 
"we"
127.0.0.1:6379[1]> del name 
(integer) 1

在这里插入图片描述
列表连接连接
LPUSH 命令可向list的左边(头部)添加一个新元素,而RPUSH命令可向list的右边(尾部)添加一个新元素。最后LRANGE 命令可从list中取出一定范围的元素:

> rpush mylist A
(integer) 1
> rpush mylist B
(integer) 2
> lpush mylist first
(integer) 3
> lrange mylist 0 -1
1) "first"
2) "A"
3) "B"

两台机器进行文件复制
需要先将主从的配置进行更改:[root@localhost redis-5.0.8]# vim /etc/redis/6379.conf
在这里插入图片描述
讲2机器设置为什么的从机127.0.0.1:6379> REPLICAOF 192.168.0.200 6379(这是临时的重启就会还原)
使用127.0.0.1:6379> info查看信息 就变成slave了
在这里插入图片描述
修改配置文件持久存在
在这里插入图片描述
这样就可以从主机中查询数据了,在主机中127.0.0.1:6379> set name w在从机中127.0.0.1:6379> get name
在这里插入图片描述
持久化
在这里插入图片描述
在而批准文件中将[root@localhost redis-5.0.8]# vim /etc/redis/6379.conf appendonly no 改为appendonly yes就可以打开了。

高可用的实验
一共开三台机器 其中一台是主机其余两个是从机,配置方法与上面的相同,还要在所有的机器配置文件上加上
在这里插入图片描述
这是当又两个认为主机有问题时 就下去
将主机的文件配置好了 之后直接给两个从机复制过去,不要先启动 不然会造成文件不同[root@localhost redis-5.0.8]# scp sentinel.conf 192.168.0.201:/etc/redis/``[root@localhost redis-5.0.8]# scp sentinel.conf 192.168.0.202:/etc/redis/
读取被指文件查看情况[root@localhost redis-5.0.8]# redis-sentinel /etc/redis/sentinel.conf
在这里插入图片描述
就看到所有的主机和从机。注意每一个机器都要打开。

将主机redis进行shut down 然后桑额检测都可以检测出来。并且进行主机替换。会将主机自动编程从机。还可以将日志输出到后台。

使用docker是一个容器
阿里云镜像站下载连接

[root@localhost yum.repos.d]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost yum.repos.d]# mv docker-ce.repo /etc/yum.repos.d/
[root@localhost yum.repos.d]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim docker-ce.repo

修改如下就好
在这里插入图片描述

已经进来了
在这里插入图片描述

[root@localhost yum.repos.d]# yum install docker-ce

在这里插入图片描述
会报错缺依赖,去阿里云镜像下载一个连接

[root@localhost ~]# wget https://mirrors.aliyun.com/centos-vault/7.6.1810/extras/x86_64/Packages/container-selinux-2.74-1.el7.noarch.rpm
[root@localhost ~]# yum install docker-ce container-selinux-2.74-1.el7.noarch.rpm

这下就可以安装好了。
激活

[root@localhost ~]# systemctl start docker

去找寻镜像

[root@localhost ~]# docker search redis
NAME                             DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
redis                            Redis is an open source key-value store that…   7962                [OK]                
bitnami/redis                    Bitnami Redis Docker Image                      139                                     [OK]
sameersbn/redis                                                                  79                                      [OK]
grokzen/redis-cluster            Redis cluster 3.0, 3.2, 4.0 & 5.0               64                                      
rediscommander/redis-commander   Alpine image for redis-commander - Redis man…   36                                      [OK]
kubeguide/redis-master           redis-master with "Hello World!"                31                                      
redislabs/redis                  Clustered in-memory database engine compatib…   24                                      
arm32v7/redis                    Redis is an open source key-value store that…   21                                      
redislabs/redisearch             Redis With the RedisSearch module pre-loaded…   20                                      
oliver006/redis_exporter          Prometheus Exporter for Redis Metrics. Supp20                                      
bitnami/redis-sentinel           Bitnami Docker Image for Redis Sentinel         12                                      [OK]
webhippie/redis                  Docker images for Redis                         11                                      [OK]
redislabs/redisgraph             A graph database module for Redis               10                                      [OK]
s7anley/redis-sentinel-docker    Redis Sentinel                                  9                                       [OK]
insready/redis-stat              Docker image for the real-time Redis monitor…   9                                       [OK]
arm64v8/redis                    Redis is an open source key-value store that…   8                                       
redislabs/redismod               An automated build of redismod - latest Redi7                                       [OK]
centos/redis-32-centos7          Redis in-memory data structure store, used a…   5                                       
circleci/redis                   CircleCI images for Redis                       4                                       [OK]
redislabs/redisinsight           RedisInsight - The GUI for Redis                4                                       
clearlinux/redis                 Redis key-value data structure server with t2                                       
tiredofit/redis                  Redis Server w/ Zabbix monitoring and S6 Ove1                                       [OK]
wodby/redis                      Redis container image with orchestration        1                                       [OK]
runnable/redis-stunnel           stunnel to redis provided by linking contain…   1                                       [OK]
xetamus/redis-resource           forked redis-resource                           0                                       [OK]
//第一个是官方的

拉取redis

[root@localhost ~]# docker pull redis

查看镜像的

[root@localhost ~]# docker images

在这里插入图片描述
如何启动,启动之前先把其他的redis服务进程结束[root@localhost ~]# killall redis-server然后启动

[root@localhost ~]# docker run -d --name redis redis//后台运行
[root@localhost ~]# docker ps//查看已经运行的镜像

已经运行
在这里插入图片描述
docker通过桥接的方式联网
在这里插入图片描述

[root@localhost ~]# docker inspect redis//下面的这个就是docker中redis的地址

在这里插入图片描述
docker中的进程地址是按照docker ip进行朝上面加的

[root@localhost ~]# redis-cli -h 172.17.0.2//进入命令行模式
172.17.0.2:6379> 

还可以进行多开

[root@localhost ~]# docker run -d --name slave1 redis

在这里插入图片描述
查询每个的ip然后将每个都可以连上去

[root@localhost ~]# docker inspect slave1
[root@localhost ~]# redis-cli -h 172.17.0.3//进入命令行模式
172.17.0.2:6379> 

按照之前讲过的方式将后两个变成第一个的从机
也可以[root@localhost ~]# docker run -d --name redis -p 6379:6379 redis 让其变成和本机服务一样
可以直接安装nginx[root@localhost ~]# docker pull nginx 如果不成功多试几次 因为外网不稳定

[root@localhost ~]# docker run -d --name n nginx//这是正常的docker打开的

如果想外网访问 需要进行端口映射

[root@localhost ~]# docker run -d --name n1 -p 80:80 redis//将80端口映射到虚拟机ip的80端口上去

hadoop jdk idea开发环境
下载好所需软件包,方到根目录hadoop中
在这里插入图片描述
检查java情况[root@localhost hadoop]# java由于安装了图形界面 会自动安装开放版java先卸载。

[root@localhost hadoop]# rpm -qa|grep java
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2018e-3.el7.noarch
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
[root@localhost hadoop]# yum remove java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64

然后安装下载的jdk[root@localhost hadoop]# yum install jdk-8u181-linux-x64.rpm

安装hadoop建议普通用户先将文件包移动到普通用户目录[root@localhost hadoop]# mv hadoop-3.2.1.tar.gz /home/gj且换到gj[root@localhost hadoop]# su - gj
解压安装包[gj@localhost ~]$ tar zxf hadoop-3.2.1.tar.gz做一个软连接方便访问[gj@localhost ~]$ ln -s hadoop-3.2.1 hadoop

[root@localhost hadoop]# vim hadoop-env.sh

定义java_home
在这里插入图片描述
运行

[gj@localhost hadoop]$ pwd
/home/gj/hadoop
[gj@localhost hadoop]$ bin/hadoop

将启动的文件放到我们好找的位置[gj@localhost ~]$ vim .bash_profile
在这里插入图片描述
然后实时生效[gj@localhost ~]$ source .bash_profile
然后不管在哪都可以运行这个指令[gj@localhost ~]$ hadoop

下面时一个例子
可以参考官方文档连接
首先拷贝一些配置文件

[gj@localhost ~]$ mkdir input
[gj@localhost ~]$ ls
hadoop  hadoop-3.2.1  hadoop-3.2.1.tar.gz  input
[gj@localhost ~]$ cp hadoop/etc/hadoop/*.xml input/

外部访问
先进行文件配置 配置文件连接

[gj@localhost ~]$ cd hadoop
[gj@localhost hadoop]$ cd etc/hadoop/
[gj@localhost hadoop]$ vim core-site.xml

在这里插入图片描述

[gj@localhost hadoop]$ vim hdfs-site.xml

在这里插入图片描述
先进行绵密否则每次都会要求输入密码

[gj@localhost hadoop]$ ssh-keygen
[gj@localhost hadoop]$ cd .ssh/
[gj@localhost hadoop]$ cd
[gj@localhost ~]$ cd .ssh/
[gj@localhost .ssh]$ ssh-copy-id localhost
[gj@localhost .ssh]$ ssh localhost//如果这一步不需要登陆密码就成功了
[gj@localhost .ssh]$ cd 
[gj@localhost ~]$ logout

使用之前先进行格式化[gj@localhost ~]$ hdfs namenode -format
启动

[gj@localhost ~]$ cd hadoop
[gj@localhost hadoop]$ sbin/start-dfs.sh

然后就可已经访问了

http://192.168.0.200:9870

idea安装
先解压[root@localhost hadoop]# tar zxf ideaIU-2019.3.4.tar.gz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值