环境搭建

环境搭建(Vmware)

网络环境

NAT连网

局域网机器访问本机vm虚拟机

局域网机器访问本机vm虚拟机部署网站

配置yum命令

基本结构

账号管理

用户组管理

开机关机

目录管理(mkdir、mv)

文件颜色

文件权限

文件操作(touch、cp、mv、cat、tac、more、less、grep、wc、vim)

特殊符操作(;、&、|)

压缩操作

磁盘管理(iostat、sar、df、du)

内存管理(free)

CPU管理(mpstat)

进程管理(ps、top)

网络操作(curl、wget)

软件安装(rpm、yum)

上传下载(rz、sz)

安装telnet

安装JDK

开发管理(nohup)

服务管理(systemctl、service)

防火墙管理

两种应用情景

交互工具

环境安装

环境搭建

第一种方式:直接安装Linux操作系统 (会替换掉现有系统)

第二种方式:本机电脑安装成双系统 (windos linux)

第三种方式:虚拟机(VMware下载(360一键安装))

[注]虚拟机搭建环境有两种方式:
a. 下载镜像进行安装
b. 可以使用他人已制作好的镜像
安装VMware虚拟机软件好后打开镜像即可使用

第四种方式:购买云服务器 (有经济来源的话可以购买阿里云服务器,因为这才是最接近公司中原生环境的)

环境搭建(Vmware)

  1. 安装Vmware

    在这里插入图片描述

  2. 创建虚拟机

    1. 创建新的虚拟机

    2. 选择自定义(高级)

      VMware建立虚拟机分为典型(快速)和自定义(高级)两种方式

    3. 选择硬件的兼容性

    4. 选择安装创建的虚拟机的操作系统

    5. 选择你所要安装的客户机操作系统

    6. 选择操作系统的版本

    7. 更改虚拟机的名称和存放的位置

    8. 选择虚拟机具备的引导设备类型

    9. 指定处理器数量

    10. 为虚拟机预设多少内存

    11. 选择虚拟机的网络类型

  3. 配置本机网络适配器环境

    进入 “控制面板”——“网络和Internet”——“更改适配器设置”

    在这里插入图片描述

    选择VMnet8是配置器,右键选择“属性”,选择“Ipv4”,如下图:

    在这里插入图片描述

  4. 配置Vm网络连接

    1. 进入虚拟网络编辑器

      由于安装VMware虚拟机后是没有网络的,因此我们还需要手动对VMware虚拟机配置网络,选择虚拟机左上方的“编辑–>虚拟网络编辑器”

      在这里插入图片描述

    2. 配置虚拟网络地址

      在这里插入图片描述

      VMnet信息 (虚拟机网络信息)

      1. 桥接模式

        需要依赖外部网络环境,VMware 虚拟出来的操作系统就像是局域网中的一台独立的主机,需要手工为虚拟系统配置IP地址,虚拟机的ip必须和宿主机(Windows)的ip是同一个网段。相当于虚拟机和主机就好比插在同一台交换机上的两台电脑,虚拟机需要占用一个真实ip

      2. NAT模式

        使用 NAT 模式,就是让虚拟系统借助 NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网,如果主机能够正常上网,那么虚拟机也能够直接上网。此时虚拟机处于一个新的网段内,由VMware提供的DHCP服务自动分配IP地址,然后通过VMware提供的NAT服务,共享主机实现上网, 不依赖外部网络环境

      3. 仅主机模式

        该模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机,当然多个虚拟机之间也可以互相访问, 但是仅主机模式虚拟机是无法上外网的

    3. 修改对应的虚拟机镜像的网络环境

      找到你需要修改的虚拟机,右键找到“设置”选项,将虚拟机的网络适配器修改为NAT模式,然后保存

      在这里插入图片描述

    4. 修改centos7里边配置网络环境

网络环境

虚拟机有三种网络环境可选:

  1. 桥接模式

    在桥接模式下,虚拟机可以与主机以及主机所在的局域网中的所有PC端进行通信
    因此在同一局域网下要共享资源的时候可以选择桥接模式

  2. 仅主机模式

    在仅主机模式下,虚拟机只可以与windows本机进行通信
    因此通常在进行病毒测试的时候使用,防止病毒在整个局域网中传播,危害局域网

  3. NAT(网络地址转换)模式:

    在NAT模式下,可以访问互联网,前两种模式只能访问局域网
    因此通常在要访问外网的时候选择使用NAT连接

NAT连网

(1)打开网络连接,查看虚拟机的虚拟网卡启动没有,没有启动的话右键点击启动

在这里插入图片描述
(2)虚拟网卡开启后设置ip地址

此处设置的ip和本机的ip没有关系,设置成你虚拟机里面运行的计算机需要的ip地址网段

在这里插入图片描述

此时你的本机设置完成了,该设置虚拟机了

(3)在虚拟机上右键打开虚拟机设置,将网络适配器的网络连接设置成NAT模式

在这里插入图片描述

(4)打开虚拟机,点击编辑,点击虚拟网络编辑器

进来后会出现这个窗口,选择右下角更改设置,使用管理员进行修改
更改下方的ip地址,此处的ip地址段和你在本机网络虚拟网卡里面设置的ip要在一个网段里面,本机设置的是ip地址,而在此处设置的是ip网段

在这里插入图片描述

(5)选择DHCP,进行设置你的虚拟机分配虚拟计算机的ip地址范围

在这里插入图片描述

(6)设置完DHCP后进行网关的设置,选择NAT设置,设置你虚拟计算机的网关地址

在这里插入图片描述
这时候,必要条件就已经配合结束了,开启虚拟计算机,进入IPv4的设置。

(7)通过命令【vi /etc/sysconfig/network-scripts/ifcfg-ens33】进入配置文件
在这里插入图片描述
(8)输入【service network restart】重启网络,之后使用【ip addr】可查看到 IP

(9)ping www.baidu.com

局域网机器访问本机vm虚拟机

目标:在局域网内A电脑使用SSH登陆B电脑上虚拟机的服务器

前提条件:B电脑为宿主机,可以正常使用ssh访问虚拟机服务器,虚拟机网络连接方式为nat模式,虚拟机防火墙已关闭

  1. 打开Vmware虚拟网络编辑器,选择Nat模式,更改设置

    在这里插入图片描述

  2. 点Nat设置

    在这里插入图片描述

  3. 添加端口转发

    在这里插入图片描述

  4. 添加转发的端口(重要)

    在这里插入图片描述

  5. 确定->确定->应用

    在这里插入图片描述

  6. 添加宿主机(B电脑)防火墙入站规则

    打开b电脑防火墙,添加入站规则

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    一直下一步即可

局域网机器访问本机vm虚拟机部署网站

目标:在局域网内A电脑使用浏览器访问B电脑上虚拟机服务器已部署的服务(我这里测试访问Hadoop namenode)

前提条件:B电脑为宿主机,可以正常使用浏览器访问服务页面

操作与SSH访问登陆虚拟机类似

  1. 编辑虚拟网络添加端口转发(nat模式下)

    在这里插入图片描述

  2. 防火墙添加宿主机(B电脑)入站规则

    在这里插入图片描述

配置yum命令

刚配置好虚拟机,在使用yum命令时会出现Could not retrieve mirrorlist http://mirrorlist.centos.org的问题

这是因为我们的服务器没法访问外面的网络,所以我们需要配置镜像源

  1. 进入目录 /etc/yum.repos.d备份文件

    备份这三个文件就行了。
    很多人只有 CentOS-Base.repo 文件,没有后两个,这也没问题,有几个备份几个,不用额外创建

    cd /etc/yum.repos.d
    

    在这里插入图片描述

  2. 编辑 CentOS-Base.repo 文件(必选)

    vi /etc/yum.repos.d/CentOS-Base.repo
    

    替换内容为:

    [base]
    name=CentOS-$releasever - Base
    baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
     
    [updates]
    name=CentOS-$releasever - Updates
    baseurl=https://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
     
    [extras]
    name=CentOS-$releasever - Extras
    baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
     
    [centosplus]
    name=CentOS-$releasever - Plus
    baseurl=https://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
  3. 编辑 CentOS-SCLo-scl-rh.repo 文件(如果没有这个文件,不用管)

    vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
    

    替换内容为:

    [centos-sclo-rh]
    name=CentOS-$releasever - SCLo rh
    baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/
    gpgcheck=1
    enabled=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
  4. 编辑 CentOS-SCLo-scl.repo 文件(如果没有这个文件,不用管)

    vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
    

    替换内容为:

    [centos-sclo-sclo]
    name=CentOS-$releasever - SCLo sclo
    baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/
    gpgcheck=1
    enabled=1
    gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    
  5. 清理 yum 缓存

    yum clean all
    
  6. 重新生成 yum 缓存

    yum makecache
    

如果在你之后的 yum install 过程中发生了 GPGKEY 报错,请参考这篇博客:
https://blog.csdn.net/qq_43768851/article/details/140113001?spm=1001.2014.3001.5501

基本结构

第一列共有10个位置,第一个字符指定了文件类型,从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。

所有者权限:所有者一般是文件或目录的创建者

在这里插入图片描述

第一组[rwx]:属主权限,代表该文件的所有者拥有该文件的权限

第二组[rwx]:属组权限,代表所有者的同组用户拥有该文件的权限

第三组[rwx]:其他用户权限,代表其他用户所拥有该文件的权限

文件类型:

类型内容
[d]目录
[-] 非目录的文件
[l]链接文档[link file]
[b]装置文件内可供存储的接口设备(可随机存取装置)
[c]装置文件内串行端口设备,如键盘(一次性读取装置)

权限字符:

字符内容
[-]空许可(没有权限)
[r]只读(read)
[w]写(write)
[x]可执行(execute)

账号管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下三个方面:

  1. 用户账号的添加、删除、修改

    1. 用户账号的添加(useradd)

      添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户名、用户组、主目录和登录 Shell等资源

      #添加账号 	
      useradd 选项 用户名
      
    2. 用户账号的删除(userdel)

      删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除命令删除用户在系统文件中(主要是/etc、/etc/shadow…)

      #删除已有用户的时候将它的目录页一并删除
      userdel -r [文件名]						
      
    3. 用户账号的修改(usermod)

      #常用选项-c/d/m/g/G/s/u/o
      usermod -d  [文件名]						
      
  2. 用户口令的管理(su)

    #切换用户
    su 用户名									
    
    #切换用户后使用新用户的工作环境
    su - 用户名									
    	
    #切换到root用户
    sudo su 									
    
    #退回原来用户
    exit										
    
    #退回原来用户
    logout										
    
    #退回原来用户,其实也是执行的eixt命令
    ctrl + d										
    
  3. 查看系统用户信息

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动。有些时候,你甚至需要知道他(她)们正在做什么。本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法。

    1. 查看登录用户正在使用的进程信息(w)

      w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:

      • 用户名称
      • 用户的机器名称或tty号
      • 远程主机地址
      • 用户登录系统的时间
      • 空闲时间(作用不大)
      • 附加到tty(终端)的进程所用的时间(JCPU时间)
      • 当前进程所用时间(PCPU时间)
      • 用户当前正在使用的命令

      w命令还可以使用以下选项

      • -h忽略头文件信息
      • -u显示结果的加载时间
      • -s不显示JCPU, PCPU, 登录时间

      在这里插入图片描述

    2. 查看登录用户信息(who)

      who命令用于列举出当前已登录系统的用户名称。其输出为:用户名、tty号、时间日期、主机地址。

      在这里插入图片描述

      [注]使用whoami命令查看你所使用的登录名称

    3. 查看曾经使用过系统的历史用户信息(who)

      last命令可用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:

      • 用户名称
      • tty设备号
      • 历史登录时间日期
      • 登出时间日期
      • 总工作时间

      在这里插入图片描述

  4. 用户账号授权(sudo)

    简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码。

    严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令。当然,能做什么不能做什么都是通过安全策略来指定的。sudo 支持插件架构的安全策略,并能把输入输出写入日志。第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作。默认的安全策略记录在 /etc/sudoers 文件中。而安全策略可能需要用户通过密码来验证他们自己。也就是在用户执行 sudo 命令时要求用户输入自己账号的密码。如果验证失败,sudo 命令将会退出。(注意,本文介绍的 sudo 命令运行在 ubuntu 14.04中。)

    sudo命令还可以使用以下选项

    • -b 在后台执行指令
    • -h 显示帮助
    • -H 将HOME环境变量设为新身份的HOME环境变量
    • -k 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码
    • -l 列出目前用户可执行与无法执行的指令
    • -p 改变询问密码的提示符号
    • -s 执行指定的shell
    • -u <用户> 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份
    • -v 延长密码有效期限5分钟
    • -V 显示版本信息
    • -S 从标准输入流替代终端来获取密码

    sudo 程序相关文件如下

    • /etc/sudoers
    • /etc/init.d/sudo
    • /etc/pam.d/sudo
    • /var/lib/sudo
    • /usr/share/doc/sudo
    • /usr/share/lintian/overrides/sudo
    • /usr/share/bash-completion/completions/sudo
    • /usr/bin/sudo
    • /usr/lib/sudo

    现在了解了这些概念后下一步是进行基本配置:

    系统默认创建了一个名为 sudo 的组。只要把用户加入这个组,用户就具有了 sudo 的权限。
    至于如何把用户加入 sudo 组,您可以直接编辑 /etc/group 文件,当然您得使用一个有 sudo 权限的用户来干这件事:

    $ sudo vim /etc/group
    

    在 sudo 组中加入新的用户,要使用逗号分隔多个用户。

    在这里插入图片描述
    或者您可以使用 usermod 命令把用户添加到一个组中:

    $ sudo usermod -a -G sudo jack
    

    上面的设置中我们把用户 jack 添加到了 sudo 组中,所以当用户 jack 登录后就可以通过 sudo 命令以 root 权限执行命令了!

    [拓展]详细配置

    在前面的配置中我们只是把用户 jack 加入了 sudo 组,他就具有了通过 root 权限执行命令的能力。
    现在我们想问一下,这是怎么发生的?是时候介绍如何配置 sudo 命令了!
    sudo 命令的配置文件为 /etc/sudoers。
    编辑这个文件是有单独的命令的 visudo(这个文件我们最好不要使用 vim 命令来打开),是因为一旦你的语法写错会造成严重的后果,这个工具会替你检查你写的语法,这个文件的语法遵循以下格式:
    who where whom command
    说白了就是哪个用户在哪个主机以谁的身份执行那些命令,那么这个 where, 是指允许在那台主机 ssh 连接进来才能执行后面的命令,文件里面默认给 root 用户定义了一条规则:

    root    ALL=(ALL:ALL)       ALL
    

    • root    表示 root 用户
    • ALL     表示从任何的主机上都可以执行,也可以这样 192.168.100.0/24
    • (ALL:ALL)   是以谁的身份来执行,ALL:ALL 就代表 root 可以任何人的身份来执行命令
    • ALL     表示任何命令

    那么整条规则就是 root 用户可以在任何主机以任何人的身份来执行所有的命令。

    现在我们可以回答 jack 为什么具有通过 root 权限执行命令的能力了。打开 /etc/sudoers 文件:

    在这里插入图片描述

    sudo 组中的所有用户都具有通过 root 权限执行命令的能力!

    再看个例子

    nick   192.168.10.0/24=(root) /usr/sbin/useradd
    

    上面的配置只允许 nick 在 192.168.10.0/24 网段上连接主机并且以 root 权限执行 useradd 命令。

    现在设置 sudo 时不需要输入密码

    执行 sudo 命令时总是需要输入密码事件很不爽的事情(抛开安全性)。有些应用场景也需要在执行 sudo 时避开输入密码的交互过程。
    那么需要如何设置呢?其实很简单,只需要在配置行中添加 NOPASSWD: 就可以了:

    ******    ALL=(ALL) NOPASSWD: ALL
    

    再试试看,是不是已经不需要输入密码了?

    在 ubuntu 中,sudo 的日志默认被记录在 /var/log/auth.log 文件中。当我们执行 sudo 命令时,相关日志都是会被记录下来的。比如下图中显示的就是一次执行 sudo 命令的日志:

    在这里插入图片描述

用户组管理

将用户分组是Linux系统对用户进行管理及控制访问的一种手段。用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有(组名:口令:组标识号:组内成员用户列表)

a. 组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复

b. 口令字段存放的是用户组加密后的口令字。一般linux系统的用户组都没有口令,即这个字段一般为空,或者是*

c. 组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组

d. 组内用户列表是属于这个组的所有用户的列表,不同用户之间用(,)分隔。这个用户组可能是用户的主组,也可能是附加组

在这里插入图片描述

每个用户都属于某个用户组,一个组中可以有多个用户,一个用户可以属于不同的组

当一个用户同时是多个组中成员时,在etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组,用户要访问附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员

完成用户的管理工作有许多办法,但是每种办法实际都是对有关系统文件进行修改

命令 内容
groupadd [用户组]创建用户组
groupadd -g [数字] [用户组] 创建用户组并设置id
groupdel [用户组]删除用户组
getent group查看系统全部组信息
	#修改旧用户名为新用户名且设置id 
group -g [数字] -n [新用户组] [旧用户组]		

#修改用户组的组标识号
groupmod -g [数字] 用户组						

#将旧用户组名修改为新的,并标识号改1000
groupmod -g 1000 -n 新用户组名 旧用户组名		

#切换[root]用户组
newgrp root									

#查看group文件中组信息
cat /etc/group								

#查看所有用户信息
cat /etc/passwd								

开机关机

  1. 开机登录

    方式一 : 命令行登录

    方式二 : ssh登录

    方式三 : 图形界面登录

    [注]开机会启动许多程序。它们在windows中叫"服务"(service),在linux中叫"守护进程"(daemon)

  2. 关机(shutdown)

    在Linux领域内大多用在服务器上,很少遇到关机的操作,不管是重启还是关闭系统,首先要运行sync命令,把内存中的数据同步到磁盘中.
    使用关机指令,可以man shutdown 来看一下帮助文档。

    #立即关机
    shutdown -h now		
    
    #计算机将在10分钟后关机
    shutdown -h 10		
    
    #10分钟后关机
    shutdown -h +10		
    
    #系统会在今天20:25关机
    shutdown -h 20:25	
    
    #关机,等同于 shutdown -h now 和 poweroff
    halt	
    
  3. 重启

    #系统立即重启
    shutdown -r now		
    
    #系统10分钟后重启
    shutdown -r +10		
    
    #重启,等同于 shutdown -r now
    reboot				
    

目录管理(mkdir、mv)

  1. 增删移查命令(mkdir、rmdir、rm、mv、cp)

    命令描述
    pwd显示当前所在的目录
    mkdir 目录创造目录
    mkdir -p 目录1 目录2 目录3并联创建文件夹
    mkdir -p 目录1/目录2/目录3串联创建文件夹
    mv 路径信息/目标文件夹 目的路径/目的文件夹 -r剪切目录
    rmdir 文件夹删除指定空目录,如果目录不是空的,会提示错误
    rm -r 文件夹删除文件夹的时候使用(空的和不空的都可以删除)
    rm -rf 文件夹rm命令通常用于删除Linux中的文件。可以添加参数用来删除目录; -f 强制删除而不提示;-r 递归删除文件夹; -i向用户确认是否删除
  2. 目录结构

    根目录/,所有的文件都挂载在这个节点下,根目录里的结构如下

    在这里插入图片描述

  3. 切换目录

#以根目录开头,绝对路径
cd /目录名 
#不以根目录开头但文件要存在才能切换成功,相对路径
cd 目录名 
#返回上级目录
cd .. 
#返回自己家目录
cd ~ 
#回看 但只在自己现所在的目录和上一次的目录之间回看
cd - 
#回到家目录
cd -- 
  1. 目录查看

    ls是系统目录查看命令,通过ls /命令查看根目录里的内容,各子目录所代表的内容如下:

    #binshi Binary的缩写,表示二进制文件,bin目录包含了会被所有用户使用的可执行程序
    cd /bin				
    
    #包含于linux启动密切相关的文件
    cd /boot				
    					
    #dev是Device(设备)的缩写,表示设备,它里面的子目录每一个对应一个外设,比如我们的光盘驱动器的文件就在这里面
    cd /dev				
    		
    #包含系统的配置文件	
    cd /etc
    		
    #用户的主目录,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
    cd /home				
    					
    #lib是Library的缩写,表示库,包含被程序所调用的库文件
    cd /lib				
    					
    #这个目录一般情况下是空的,当系统非法关机后,这里就存放一些文件
    cd /lost+found			
    
    #媒体,可移动的外设(USB盘、SD卡)插入电脑时,Linux可以让我们通过media的子目录来访问这些外设的内容
    cd /media				
    					
    #Mount的缩写,表示挂载,类似media,一般表示临时挂载一些装置
    cd /mnt				
    
    #这里给主机额外安装软件所摆放的目录。比如开发者安装一个ORALCE数据库则就可以放到这个目录下。默认是空的			
    cd /opt				
    					
    #这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
    cd /proc				
    					
    #超级用户,root的家目录
    cd /root				
    
    #s就是super user的意思,这里存放的是系统管理员使用的系统管理程序
    cd /sbin				
    
    #service的缩写,该目录存放一些服务启动之后需要提取的数据
    cd /srv				
    
    #这是Linux2.6内核的一个很大的变化,该目录下安装2.6内核中新出现的一个文件系统sysfs
    cd /sys				
    					
    #这个目录是用来存放一些临时文件的。用完即丢的文件
    cd /tmp				
    
    #这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录
    cd /usr		
    
    #variable的缩写,表示动态的,通常包含程序的数据,比如Log文件
    cd /var							
    

    这里要注意,“/“是根目录,”~“是家目录。linux存储是以挂载的方式,相当于树状的,源头就是”/”,也就是根目录,而每个用户都有"家"目录,也就是用户的个人目录,比如root用户的"家"目录就是/root,普通用户a的"家"目录就是/home/a

    [注]
    8./etc/passwd文件是用户管理工作涉及的最重要的文件
    9.linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录着用户的一些基本信息,这个文件对所有用户都是可读的
    10./etc/passwd中每行记录用(:)分隔为7个字段,其格式和含义是
    (用户名:口令:用户账号标识号:组标识号:注释性描述:主目录:登录xshell)
    11.口令中一些系统中,存放着加密后的用户口令字
    在这里插入图片描述

  2. 列出命令(ls)

    #列出目录
    ls							
    
    #和ls -l效果一样,查看文件属性、权限,没有隐藏文件
    ll							
    
    #-a参数即all,查看全部的文件,包括隐藏文件
    ls -a						
    
    #-l参数,列出所有的文件,包括文件的属性和权限,没有隐藏文件
    ls -l						
    
    #-a和-l的组合,列出所有文件的属性和权限,包括隐藏文件
    ls -al						
    
  3. 查找命令(find)

    find 命令用来在指定目录下查找文件,命令格式:find 目录 参数 文件名称

    参数 作用
    -name 以文件名查找
    -type以文件属性查找
    #列出当前目录及子目录下的所有文件和文件夹,其中. 代表当前文件夹,会递归查找子文件夹
    find . 		
    
    #在/usr目录下查找FeraoRedisConfig文件夹
    find /usr -name "FeraoRedisConfig"	
    
    #在/usr目录下查找以.txt结尾的文件名,文件名 可用文件全名或*代表不确定部分,如*.sh
    find /usr -name "*.txt"			
    
    #查找/目录下文件名包含of的文件
    find / -name '*of*' 
    
    #查找/目录下文件大小大于100M的文件
    find / -type f-size +100M 
    

文件颜色

在这里插入图片描述
在上图中每类颜色代表不同含义,含义如下:

• 绿色文件:执行文件,可执行的程序
• 红色文件:压缩文件或者包文件
• 蓝色文件:目录
• 白色文件:普通,如文本文件、配置文件、源码文件等
• 浅蓝色文件:链接文件,主要是使用ln命令建立的文件
• 红色闪烁:表示链接的文件有问题
• 黄色文件:表示设备文件
• 灰色文件:表示其他文件

文件权限

chmod 命令是 change mode 的缩写,用于管理文件和目录的权限,并确定谁可以访问它们。该命令有两种用法,字符指定权限法和数字指定权限法。

注意只有文件或目录的所有者或root管理员才能有权限执行。

chmod命令:重新设定不同的访问权限。
chown命令:更改某个文件或目录的所有者。
chgrp命令:来更改某个文件或目录的用户组。

  1. 字符指定权限法

    格式:

    chmod <参数> <指定用户>+<权限设置> file :使权限范围内的目录或者文件具有指定的权限
    chmod <参数> <指定用户>-<权限设置> file :删除权限范围的目录或者文件的指定权限
    chmod <参数> <指定用户>=<权限设置> file :设置权限范围内的目录或者文件的权限为指定的值

    参数:

    参数内容
    -c改变权限成功后再输出成功信息
    -f改变权限失败后不显示错误信息
    -R递归处理所有子文件
    -v显示执行过程详细信息

    指定用户:

    参数内容
    u(user)代表用户
    g(group)代表用户组
    o(other)代表其他
    a(all)代表所有

    权限设置:

    参数内容
    r读权限
    w写权限
    x执行权限
    - 删除权限
    s 特殊权限
    #增加授予这个文件的所属者执行的权限 
    chmod u+x somefile
    
    #授予所有用户这个文件的执行权
    #chmod <权限范围>+<权限设置> file
    chmod +x somefile
    chmod a+x somefile
    
    #为所有用户分配读权限
    chmod =r file      
    
    # 递归地给directory目录下所有文件和子目录的属主分配读的权限
    chmod -R u+r directory
    
  2. 数字指定权限法

    权限对应数字:

    参数内容
    r读权限,用数字4表示
    w写权限,用数字2表示
    x执行权限,用数字1表示
    - 删除权限,用数字0表示

    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,数字设定法的一般形式为:
    chmod [mode] 文件名

    #权限为 [rwxrwx---]
    #owner = r w x = 4 + 2 + 1 =7
    #group = r w x = 4 + 2 + 1 =7
    #others = - - - = 0 + 0 + 0 =0
    chmod 770 filename	
    
    #权限为 [rwxrwxrwx]
    #owner = r w x = 4 + 2 + 1 =7
    #group = r w x = 4 + 2 + 1 =7
    #others = r w x = 4 + 2 + 1 =0
    chmod 777 filename	
    

文件操作

在这里插入图片描述

tail -100f cloud-init.log

grep 'error' log.txt

在这里插入图片描述

软链接与硬链接

  1. 分类

    硬链接
    
    	A---B,假设BA的硬链接,那么他们两个指向了同一个文件,允许一个文件拥有多个路径,用户
    	可以通过这种机制建立硬链接到一些重要的文件上,防止误删
    
    软链接
    
    	类似windows下的快捷方式,删除源文件,快捷方式也访问不了了
    
  2. 命令

    ln	原文件 链接新文件					创建硬链接
    
    ln	-s 原文件 链接新文件				创建一个软链接(符号链接)
    
    touch 新文件							创建文件
    
    echo “字符串” >> 文件						输入字符串
    

特殊符操作(;、&、|)

  1. 分号操作(; )

    用;号隔开每个命令, 每个命令按照从左到右的顺序,顺序执行, 彼此之间不关心是否失败, 所有命令都会执行。

    格式:command1 ; command2

  2. &号操作(&)

    &放在启动参数后面表示设置此进程为后台进程。

    默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个’&'实现这个目的。

    格式:command1 &

  3. 管道操作(|)

    管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)

    管道命令使用|作为界定符号,管道命令与上面说的连续执行命令不一样。
    管道命令必须要能够接受来自前一个命令的数据成为standard input继续处理才行。且管道命令仅能处理standard output,对于standard error output会予以忽略。

    管道命令有:less,more,head,tail…等等都是可以接受standard input的命令。
    而例如 ls,cp,mv并不会接受standard input的命令,所以他们就不是管道命令了。

    [拓展]命令执行顺序控制

    通常情况下,开发者在终端只能执行一条命令,然后按下回车执行,那么执行多条命令的方法怎么样的? 示例如下:

    #顺序执行多条(简单的顺序指令可以通过 ;来实现)
    command1;command2;command3;
    
    #有条件的执行多条命令
    which command1 && command2 || command3
    

    有条件的执行多条命令中符号含义:

    && : 如果前一条命令执行成功则执行下一条命令,如果command1执行成功(返回0),则执行command2

    || :与&&命令相反,执行不成功时执行这个命令

    $?: 存储上一次命令的返回结果

压缩操作

打包、压缩、解压常用后缀有:

文件扩展名
Windows压缩文件.zip/.rar
linux打包文件 aa.tar
linux压缩文件bb.gz
linux打包并压缩文件 .tar.gz
  1. 文件压缩/解压缩

    压缩命令:tar -zcvf 压缩文件名.tar.gz 被压缩文件名
    解压缩命令:tar -zxvf 压缩文件名.tar.gz

磁盘管理(iostat、sar、df、du)

  1. iostat命令

    iostat命令可以用来显示系统的磁盘和CPU使用情况。使用以下命令来查看磁盘的读写情况:iostat -d

    这将显示每个磁盘的平均读写速度、I/O等待时间以及CPU使用情况

  2. sar命令

    sar命令是系统活动报告(System Activity Reporter)的缩写,可以用来收集和报告系统的性能数据。使用以下命令来查看磁盘的读写情况:sar -d

    这将显示每个磁盘的平均读写速度、I/O等待时间以及I/O请求的队列长度。

  3. df命令

    查看磁盘各分区的使用情况。-h转化为更可读的模式:

    在这里插入图片描述

    结果列表中表头含义如下:

    列名含义
    Filesystem文件系统位于哪个分区,因此该列显示的是设备名称
    Used已用
    Available可用
    Use%已用百分比
    Mounted on所在分区(挂载点)
  4. du命令

    (disk usage)查看特定文件夹或文件使用空间,最后再给出一个总的占用情况。-h转化为更可读的模式:

    在这里插入图片描述

内存管理(free)

  1. free命令

    free命令是对 /proc/meminfo 收集到的信息的一个概述。它可以显示系统中的内存使用情况,包括总内存、已用内存、空闲内存等信息。在任意一个目录下输入free,通常命令后跟辅助指令 -h,表示以人类可读的方式显示内存使用情况,例如使用GB或MB的单位。

  2. cat /proc/meminfo 方式

    查看RAM使用情况最简单的方法是通过 /proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过 /proc//statm 和 /proc//status 来查看。

CPU管理(mpstat)

  1. mpstat命令

    该命令是一个Linux系统监控命令,可以实时显示CPU使用率和其他CPU统计数据。mpstat命令默认显示所有CPU的使用情况

    例如:
    02:40:01 AM CPU %user %nice %sys %iowait %irq %soft %steal %guest %idle

    02:40:01 AM all 5.42 0.02 2.09 0.04 0.00 0.01 0.00 0.00 92.42

    其中,%user表示用户空间程序的CPU使用率,%sys表示系统内核的CPU使用率,%idle表示CPU空闲的时间。

进程管理(ps、top)

在Linux中,每一个正在运行的程序都有一个进程,每一个进程都有一个id号,并且每一个进程都会有一个父进程。
进程的存在方式有两种:前台、后台,一般的服务都是后台进行的,基本的程序都是前台运行的。

  1. 查看进程(ps)

    它只显示进程的瞬间信息。ps命令参数如下:

    参数 作用
    -a显示当前终端运行的所有的进程信息
    -u以用户的信息显示进程
    -x显示后台运行的进程参数
    -aux以用户的信息显示所有进程信息,并包含进程参数
    -e显示所有进程,环境变量
    -f 全格式
    -ef查看全部进程且完整格式,包括命令行
    #查看当前系统中正在执行的各种进程信息
    ps
    
    #在所有进程中匹配符合条件的字符并列出
    ps -aux|grep mysql
    
    #通过目录树结构查看
    ps -ef|grep mysql 
    
    #显示进程树-p 显示父ID、-u显示用户组
    ps -pu
    

    杀死进程使用kill命令:

    #杀死进程,等于windows结束任务
    kill -9 [进程ID]
    
  2. top命令

    它持续监视进程信息。默认每隔5秒刷新,相比ps 而言,top命令提供了更多的功能和灵活性。

    语法:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

    参数说明示例
    -d <秒数>指定 top 命令的刷新时间间隔,单位为秒top -d 2
    -n <次数>指定 top 命令运行的次数后自动退出
    -p <进程ID>仅显示指定进程ID的信息 top -p 1234
    -u <用户名>仅显示指定用户名的进程信息
    -H在进程信息中显示线程详细信息
    -i不显示闲置(idle)或无用的进程
    -b以批处理(batch)模式运行,直接将结果输出到文件
    -c显示完整的命令行而不截断top -c
    -S累计显示进程的 CPU 使用时间

    在这里插入图片描述

    参数解释:

    top - 00:32:08 up 150 days, 21:35, 2 users, load average: 0.91, 1.19, 1.48

    23:10:41系统当前时间
    days系统启动后到现在的运行时间
    users当前登录到系统的用户(终端数)
    load average当前系统负载的平均值,系统在最近1分钟、5分钟、15分钟内,CPU的平均负载情况

    Tasks: 101 total, 1 running, 97 sleeping, 3 stopped, 0 zombi

    total当前系统进程总数量
    running当前运行中的进程数量
    sleeping当前处于等待状态中的进程数量
    stopped停止的系统进程数量
    zombie僵尸进程数量

    %Cpu(s): 13.4 us, 1.0 sy, 0.0 ni, 84.6 id, 0.0 wa, 0.7 hi, 0.3 si, 0.0 st

    us用户空间占用CPU百分比,表示用户空间程序的cpu使用率,没有通过nice调度
    sy内核空间占用CPU百分比,系统空间的cpu使用率,主要是内核程序
    ni用户进程空间内改变过优先级的进程占用CPU百分比,用户空间且通过nice调度过的程序的cpu使用率
    id空闲cpu,空闲CPU百分比
    wa等待输入输出的CPU时间百分比
    hicpu处理硬中断的数量
    sicpu处理软中断的数量
    st被虚拟机偷走的cpu

    MiB Mem : 1826.7 total, 85.9 free, 1477.8 used, 263.1 buff/cache

    total物理内存总量
    free空闲内存总量
    used使用的物理内存总量
    buff/cache缓存,用作内核缓存的内存量

网络操作(curl、wget)

  1. 网络上获取数据(curl)

    curl是一个强大的命令行工具,用于在Linux系统中进行网络操作。除了下载文件外,curl还可以用于模拟web请求,如POST、GET等,进行调试网页等。以下是curl命令的一些常见用法和参数:

    • 发送GET请求:curl [URL]
    • 发送POST请求:curl -X POST [URL]
    • 发送JSON数据:curl -H 'Content-Type: application/json' -d '{"key": "value"}' [URL]
    • 发送文件:curl -F ‘file=@[filename]’ [URL]
    • 下载文件:curl -O [URL]
    • 设置用户代理:curl -A ‘User-Agent: [agent]’ [URL]
    • 设置cookie:curl -b ‘cookie-string’ [URL]

    curl参数:

    参数描述
    -X 请求协议,如:GET、PUT、POST、DELETE等,默认GET;
    -H请求头
    -dPOST内容
  2. 网络上获取数据(wget)

    是一个专用的下载工具,简单、直接。支持递归下载,可以一次下载一个HTML页面或者FTP列表中的所有内容。它支持HTTP、HTTPS和FTP协议。

软件安装(rpm、yum)

  1. 软件包安装(rpm)

    rpm的作用类似于蚕豆荚,华为应用市场,AppStore,主要作用是对linux服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装/更新。

    软件名称.rpm

    查询参数:

    参数作用
    -qquery,查询操作
    -a all,代表所有
    -e卸载
    –nodeps 强制卸载

    卸载参数:

    参数作用
    -e卸载
    –nodeps 强制卸载

    安装参数:

    参数作用
    -iinstall,安装
    -v 显示进度条
    -h 表示以"#"形式显示进度条

    升级参数:

    参数作用
    -UUpdate,更新操作
    -v 显示进度条
    -h 表示以"#"形式显示进度条
    #查询已安装的rpm软件包
    rpm -qa
    
    #已安装的rpm软件包中搜索指定包
    rpm -qa | grep firefox
    
    
    rpm -e firefox --nodeps
    
  2. 包管理工具(yum)

    yuminstall软件名称-y

    安装错误排查思路:

    1. yum --help,验证yum

上传下载(rz、sz)

Linux不自带rz和sz命令的需要自己手动装置rz和sz软件包,可安装lrzsz,lrzsz是一款在linux里可代替ftp上传和下载的程序

验证命令:rpm -qa | grep lrzsz
安装命令:yum -y install lrzsz

在这里插入图片描述

  1. rz 命令

    用于在终端中接收文件,不能接收文件夹,接收路径为当前执行rz命令的目录。
    运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器即可。

    语法:rz filename

    参数:

    参数含义
    -b使用binary的方式上传,不解释字符为ascii
    -e对所有控制字符转义
    -E相同文件名,不会将其覆盖,而是会在所上传文件后面加上.0,以此类推
    -y相同文件名,覆盖
  2. sz 命令

    用于在终端中发送文件

    语法:sz filename

    参数:

    参数含义
    -a以文本方式传输(ascii)
    -b以二进制方式传输(binary)
    -e对控制字符转义(escape),这可以保证文件传输正确

安装telnet

网络工具,可以用于测试远程主机的端口是否开放。它通过尝试与指定的主机和端口建立TCP连接来测试端口。

1. 关闭防火墙

service iptabls stop
chkconfig iptabls off

2. 查看是否安装过相关软件包

rpm -qa |grep telnet

3. 安装telnet

yum install telnet telnet-server

安装JDK

  1. 解压当前这个压缩包到当前文件夹

    tar -zxvf jdk-8u341-linux-x64.tar.gz 
    
  2. 配置环境变量

    修改etc目录下的profile文件

    vim /etc/profile
    

    在最后输入以下代码

    export JAVA_HOME=/home/jinqi/local/JDK/jdk1.8.0_341
    export JRE_HOME=/home/jinqi/local/JDK/jdk1.8.0_341/jre
    export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
    export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    
  3. 刷新配置文件

    让文件立即生效

    source /etc/profile
    
  4. 验证版本

    java -version
    

开发管理(nohup)

  1. 后台运行命令(nohup)

    该命令可以在你关闭终端之后继续运行相应的进程,nohup就是不挂起的意思( n ohang up)。

    该命令的一般形式为:nohup Command [ Arg … ] &

    后台程序在执行期间一般会有输出文件,在输出文件未指定即缺省情况下,后台运行的程序的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

    nohup java -jar xxx.jar > output1.log 2>&1 &

    在上例中有三部分结构:java -jar xxx.jar> output1.log 2>&1,分别代表 Command 和 Arg组合 结构;

    在操作系统中有三个常用的流:
    ▶0:标准输入流 stdin
    ▶1:标准输出流 stdout
    ▶2:标准错误流 stderr

    > output1.log 是省略方式,全写为1>output1.log,我们一般用省略方式,又或者 < output1.log ,实际是 0 < output1.log的省略方式

    2>&1的意思是把标准错误流(2)重定向到标准输出流(1)中,而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。

    【注】无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

    最后谈一下/dev/null文件的作用,这是一个无底洞,任何东西都可以定向到这里,但是却无法打开。 所以一般很大的stdou和stderr当你不关心的时候可以利用stdout和stderr定向到这里>./command.sh >/dev/null 2>&1

服务管理(systemctl、service)

  1. (systemctl)

    (CentOS7版本)systemctl 控制软件(服务)的启动、关闭、开机自启动;系统内置服务均可被Systemctl控制。
    第三方软件如果自动注册了可以被systemctl控制, 没有自动注册,可以手动注册
    systemctl= system系统 + control控制 (服务管理+开启启动项管理)

    操作语法:systemctl start|stop|restart 系统服务的名称

    显示语法:
    • 显示所有启动的服务:systemctl list-units --type service
    • 显示所有启动和没启动的服务:list-units --type service --all

    状态语法:systemctl status 系统服务的名称

    自启语法:
    • 开机启动的服务:systemctl enable 系统服务的名称
    • 开机不启动的服务:systemctl disable 系统服务的名称

    #查看firewall服务状态
    systemctl status firewalld			
    
    #开放端口重启防火墙才能生效
    systemctl restart firewalld.service			
    
  2. (service)

    CentOS6版本中管理服务开启、停止以及重启使用service 命令;

    操作语法:service 系统服务的名称 start|stop|restart

  3. 防火墙-端口

    firewall-cmd --list-ports					查看所有开启的端口,如果是阿里云,还需配置安全
    											组规则
    
    firewall-cmd --list-all						查看防火墙所有信息
    
    firewall-cmd --reload						更新防火墙规则
    
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    											永久开放9000端口
    											
    firewall-cmd --zone=public --add-port=80-90/tcp --permanent
    											多端口永久开放
    
    firewall-cmd --zone=public --remove-port=80/tcp	--permanent
    											移除80端口号
    
    【注】
    --zone					作用域
    
    --add-port=80/tcp		添加端口,格式为端口和通讯协议
    
    --permanent				永久生效,没有此参数重启后失效
    

防火墙管理

  1. 检查防火墙状态

    systemctl status firewalld
    
  2. 启用防火墙

    sudo systemctl start firewalld
    
  3. 开放端口

    sudo firewall-cmd --add-port 80/tcp --permanent
    sudo firewall-cmd --add-port 3000/udp --permanent
    

    允许永续变化:更改需要永续,因此使用 --permanent 标志

  4. 重新加载防火墙

    sudo firewall-cmd --reload
    
  5. 关闭防火墙

    sudo systemctl stop firewalld
    

两种应用情景

情景:CPU占用率突然飙升

应对:
top命令,遍历/proc/ 目录下的内容,打印当前的进程列表(看谁在占用)
netstat命令,打印出了所有的网络连接信息(看对外可疑的连接)
curl命令,发送了一个HTTP请求(访问IP地址)
防火墙,配置规则(掐断连接)
kill命令

情景:JVM问题

应对:
jps命令,得到Java进程列表(Pid)
jinfo命令,打印JVM的各个参数(启动参数)
jstat命令,查看GC趋势,以固定的监控频次输出JVM的各种监控指标(Young GC、Full GC)

交互工具

secureCRT

  1. secureCRT

(1)本地与远程传输文件方式

①通过SFTP标签页

secureCRT按下ALT+P 或[文件]–[连接SFTP标签页] 开启新的会话 进行ftp操作。
查看本地和远程对接目录可以通过:[选项]–[会话选项]–[SFTP标签页]

输入:help命令,显示该FTP提供的所有命令

pwd :查询linux主机所在目录(也就是远程主机目录)

lpwd:查询本地目录(一般指windows上传文件的目录:我们可以通过查看”选项“下拉框中的”会话选项“知道本地上传目录为:D:/我的文档)

ls:查询连接到当前linux主机所在目录有哪些文件

lls: 查询当前本地上传目录有哪些文件

lcd:改变本地上传目录的路径

cd: 改变远程上传目录

get 文件名称:将远程目录中文件下载到本地目录

put 文件名称:将本地目录中文件上传到远程主机(linux)

quit:断开FTP连接

环境安装

JDK安装

MYSQL安装

elasticsearch安装

  1. JDK安装

    步骤相关命令
    windows 上传安装包至linuxrz -b
    检测linux原先是否存在JDK环境java -version
    检测JDK版本信息rpm -qa
    删除JDK环境 rpm -e --nodeps jdk_*
    安装JDK rpmrpm -ivh jdk包名
    添加环境变量配置vim /etc/profile

    [拓展] JDK自带工具

    JDK自带了很多命令行甚至是图形界面工具,帮助我们查看JVM的一些信息。
    在这里插入图片描述
    通过下面这张图可了解各个工具的基本作用:

    在这里插入图片描述

    关键命令辅助参数:

    jps辅助参数作用
    -l额外输出完全的包名
    -v输出jvm参数
    -V输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件
    -m输出main method的参数
    -q仅输出VM标识符,不包括classname,jar name,arguments in main method
    -Joption传递参数到vm,例如:-J-Xms512m
  2. MYSQL安装

    (5)检查MYSQL相关配置状态

    在mysql内执行状态命令:status
    在这里插入图片描述

  3. tomcat安装

    		步骤一 : 官网下载tomcat9即可 ,apache-tomcat-9.0.22.tar.gz
    
    		步骤二 : linux命令
    
    			tar -zxvf apche-tomcat...						解压压缩包
    	
    			./startup.sh									执行tomcat
    	
    			./shutdown.sh									停止tomcat
    

    [注]
    1.上传完毕的项目直接购买自己的域名,备案解析过去即可。
    2.域名解析后如果端口是80,http或者443-https 可以直接访问,如果是9000 8080,就需要通过apache或者niginx做一下反向代理即可,配置文件即可

  4. docker安装

    		cat /etc/redhat-release						检测CentOS 版本
    	
    		yum -y install gcc							编译C工具
    	
    		yum -y install gcc-c++ 						编译C++工具
    	
    		yum remove docker \												
    	          docker-client \
    	          docker-client-latest \
    	          docker-common \
    	          docker-latest \
    	          docker-latest-logrotate \
    	          docker-logrotate \
    	          docker-engine							官网版卸载旧版本
    	
    		yum install -y yum-utils device-mapper-persistent-data lvm2
    													安装必须的软件包 
    	
    		yum-config-manager --add-repo http://mirrors.
    		aliyun.com/docker-ce/linux/centos/docker-ce.repo
    													设置stable镜像仓库(这里使用的是国内的)
    	
    		yum makecache fast							更新Yum软件包索引
    	
    		yum -y install docker-ce docker-ce-cli containerd.io
    													安装Docker CE
    	
    		systemctl start docker						启动docker
    	
    		docker version								查看docker版本					
    	
    		docker pull hello-world						从docker镜像仓库中拉去hello-world镜像
    		
    		docker images								查看下载好了的情况
    	
    		docker run hello-world			 			运行helloworld
    	
    		ps -ef|grep docker							查看docker进程
    

    [注]
    1.gcc是拿来编译各种源代码的软件 所谓GCC包,就相当于安装GCC的安装包啦,类似WIN下的setup.exe
    2.RPM是不需要GCC就可以装的,不过TAR包里都是源代码,你得自己编译才能装,所以一定要装GCC,不然无法装
    3./usr/bin查看是否有gcc包
    4.安装yum-utils,它提供一个yum-config-manager单元,同时安装的device-mapper-persistent-data和lvm2用于储存设备映射(devicemapper)必须的两个软件包。

  5. elasticsearch安装

    下载安装包:https://www.elastic.co/cn/downloads/elasticsearch

    将下载的安装包上传至linux里,然后进行接下来的配置环节:

    ①创建elasticsearch数据文件和日志文件

    –>在linux根路径下创建一个path文件夹:mkdir /path
    –>将该文件夹更改为elsearch用户下且elsearch组:chown -R elsearch:elsearch /path/
    –>进入elsearch用户中:su -elsearch
    –>创建多级目录也就是创建to目录和data目录:mkdir -p to/data
    –>创建多级目录也就是logs目录:mkdir -p to/logs

    ②更改elasticsearch配置文件

    –>进入elasticsearch的配置文件:vim elasticsearch.yml

    在这里插入图片描述 在这里插入图片描述 此处进行设置跨域访问支持,默认为false,跨域访问允许的域名地址,(允许所有域名)以上使用正则http.cors.allow-origin: /.*/

    ④运行elasticsearch

    –>进入es文件夹下的bin目录
    –>开始执行elastcsearch服务:./elasticsearch
    –>若上面没有报错,可后台执行elasticsearch:./elasticsearch -d
    –>测试elasticsearch:curl 'http://自己配置的IP地址:9200/'

    ⑤windows安装elasticsearch head

    参考:https://blog.csdn.net/Zereao/article/details/89362105
    参考:https://blog.csdn.net/Sunshine_liang1/article/details/96328301
    cmd进入elasticsearch-head 执行cnpm run start

    ⑦⑧⑨

    1. linux操作

      Liniux下配置elasticsearch文件夹

      getconf LONG_BIT							查看Linux32位还是64位
      
      groupadd elsearch							创建一个elsearch用户组
      
      useradd elsearch -g elsearch				创建一个elsearch用户并放入elsearch用户组
      
      chown -R elsearch:elsearch [解压后文件名] 	将该elasticsearch文件更改为elsearch用户下
      

      Liniux下更改用户空间

      su -root 										切换到root用户下
      
      sysctl -w vm.max_map_count=262144				将内存设置为262144
      
      sysctl -a|grep vm.max_map_count					查看内存设置结果
      
      vim /etc/sysctl.conf							进入系统设置文件内
      												加一行:vm.max_map_count=262144	
      
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐