一、Linux系统信息

内容主要是为了方便通过远程终端维护服务器时,查看服务器上当前系统日期和时间/磁盘空间占用情况/程序执行情况

1、时间和日期

1.1date日期

命令 作用
date 查看系统时间 (默认)
date +"%Y-%m-%d %H:%M:%S" 查看系统时间 (指定格式)
date -s "时间字符串" 设置系统时间

第一步:显示当前时间

显示当前时间

date

安装指定格式显示时间
date +"%Y-%m-%d %H:%M:%S"

操作结果:

第二步:设置系统时间

date -s '时间字符串'

如:date -s '2002-11-11 00:00:00
'

1.2 cal日历

命令 作用
cal

查看当前月的日历

cal -y

查看当前年的日历

cal 2022

查看 2022 年的日历

cal 10 2022

查看 2022 年 10 月的日历

2.磁盘、内存信息

命令 作用
df -h

disk free 显示磁盘剩余空间

du -h [目录名] disk usage 显示目录下的目录大小
free -h

显示内存使用情况

选项说明 [ -h ]

含义:以人性化的方式显示文件的大小(把字节换算为相应的kb/mb/gb)

Linux软件安装

1.rpm软件包管理器

rpm(英文全拼:redhat package manager),原为 Red Hat Linux 专属软件包管理程序,遵循 GPL 协议,现已被众多发行版采用。 作用:简化 Linux 软件安装、升级流程。

命令格式:rpm -参数 软件包名

参数 英文 含义
-q query 使用询问模式,查询软件包
-a all 查询所有软件包
-i info 显示软件包的概要信息
-l list 显示软件包中的文件列表
-f file 根据文件,反向查找该文件所属 rpm 包

使用示例

1.查询已安装软件包,结合管道 + grep 过滤查找指定软件:

rpm -qa | grep tree

2.查询软件包信息

rpm -qi 软件包名称

3.显示软件包中的文件列表

rpm -ql 软件包名称

4.查看指定文件归属哪个软件包

rpm -qf 文件绝对路径

1.1 rpm包的卸载

rpm卸载命令:

命令 英文 含义
rpm -e 软件包名称 erase 清除

卸载 rpm 软件包

rpm -e --nodeps 软件包名称 don't check dependencies

卸载前跳过依赖检查


1.2.rpm包的安装

rpm包安装命令

命令 含义
rpm -ivh 包名称

安装 rpm 包

安装参数说明

参数 英文 含义
-i install 安装
-v verbose 打印详细提示信息
-h hash 显示#安装进度条(⚠️图片内英文 hase 为笔误,正确是 hash)

2.yum软件包

yum(Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum 语法: yum [options] [command] [package ...]

options:可选,选项包括 - h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。command:要进行的操作。package:安装的包名。

2.1 yum 常用命令

  1. 列出所有可更新的软件清单命令:yum check-update
  2. 更新所有软件命令:yum update
  3. 仅安装指定的软件命令:yum install
  4. 仅更新指定的软件命令:yum update
  5. 列出所有可安装的软件清单命令:yum list
  6. 删除软件包命令:yum remove
  7. 查找软件包命令:yum search
  8. 列出当前可用仓库信息:yum repolist all
  9. 清除仓库缓存信息:yum clean all

   

2.2yum在线安装软件案例

  

Linux安装、卸载MySQL

1.卸载系统自带的mariadb-lib(小型数据库)

查看 mariadb 版本 rpm -qa | grep mariadb

卸载 mariadb rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps

删除 mariadb 默认配置文件 rm -rf /etc/my.cnf

重启机器 reboot

2.上传安装包并解压

将 mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 安装包上传到 /export/software 目录

解压 mysql 安装包到 /export/server 目录

mkdir /export/server
tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar -C /export/server

3.安装顺序

yum install numactl openssl-devel.x86_64 openssl.x86_64 autoconf perl.x86_64 perl-devel.x86_64 perl-JSON.noarch -y

必须安装(注意顺序)

必须安装(注意顺序) rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm 

如何报以下错误: 错误1:
 

error:
Failed dependencies:
libnuma.so.1 ()(64bit) is needed by mysql-community-server-8.0.18-1.el7.x86_64
libnuma.so.1 (libnuma_1.1)(64bit) is needed by mysql-community-server-8.0.18-1.el7.x86_64
libnuma.so.1 (libnuma_1.2)(64bit) is needed by mysql-community-server-8.0.18-1.el7.x86_64

解决办法:

yum install numactl

知识点:numactl 提供 libnuma.so.1 库,CentOS7 离线安装 MySQL8 经常出现该依赖报错。

错误 2:

出现问题:

error: 
Failed dependencies:
 pkgconfig (openssl) is needed by mysql-community-devel-8.0.18-1.el7.x86_64

解决办法:

yum install openssl-devel.x86_64 openssl.x86_64 -y

错误 3:

error: 
Failed dependencies:
 perl (Data::Dumper) is needed by mysql-community-test-8.0.18-1.el7.x86_64

解决办法:

 yum -y install autoconf

补充:mysql-community-test 测试包一般生产环境可以选择不安装,规避该依赖。

4.初始化数据库

mysqld --initialize --console
5.目录授权,否则启动失败
service mysqld status
chown -R mysql:mysql /var/lib/mysql/

6.启动MySQL服务

systemctl start mysqld
将 mysql 服务设置为开机启动
systemctl enable mysqld
systemctl daemon-reload

7.查看MySQL服务状态

service mysqld status

8. 在 /var/log/mysqld.log 下查看临时密码

cat /var/log/mysqld.log

9. 用临时密码登录到数据库

mysql -u root -p 输入临时密码(输入时不会显示出来,输入完直接回车)

10. 执行下列 mysql 命令 修改密码

​
alter USER 'root'@'localhost' IDENTIFIED BY ' 新密码 ';

​

11. 依次执行下列 mysql 命令 授权远程连接

查看所有用户是否可以远程连接,依次执行下列命令:

show databases;
use mysql;
select host, user, authentication_string, plugin from user;

host 为localhost,说明用户只能本地连接 mysql 服务

创建一个 root@% 账号,使 root 用户可以远程登录

开启 mysql 远程访问权限

use mysql;
create user 'root'@'%';
alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root用户的密码';
flush privileges;

注意:

  • host='localhost':仅本机访问;host='%':允许任意 IP 远程访问。
  • MySQL8.0 默认认证插件是caching_sha2_password,部分旧客户端不支持,因此使用 mysql_native_password 兼容 Navicat 等工具。
  • 执行完 flush privileges; 刷新权限生效。
  • 额外操作:服务器防火墙需要放行 3306 端口,否则外部依旧连不上 MySQL。
# CentOS7 放行端口
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

Shell编程

1.简介

Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。

它类似于 DOS 下的 command 和后来的 cmd.exe。Shell 既是一种命令语言,又是一种程序设计语言。

Shell script 是一种为 shell 编写的脚本程序。Shell 编程一般指 shell 脚本编程,不是指开发 shell 自身。

2.shell解释器

Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

Linux 的 Shell 解释器种类众多,一个系统可以存在多个 shell,可以通过cat /etc/shells命令查看系统中安装的 shell。

bash 由于易用和免费,在日常工作中被广泛使用。同时,bash 也是大多数 Linux 系统默认的 Shell。

3.快速入门

3.1编写shell脚本

使用vi编辑器新建一个文件hello.sh(扩展名并不影响脚本执行)

#!/bin/bash
echo "Hello World !"

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。 echo命令用于向窗口输出文本。

操作流程:

mkdir shelldemo    # 创建一个shelldemo文件夹
cd shelldemo
vi hello.sh        # 利用vi编辑器创建一个名为hello.sh的shell脚本程序

给 shell 程序赋予执行权限:

chmod +x ./hello.sh  #使脚本具有执行权限

文件初始状态只有读和写的权限,没有执行权限。

3.2执行shell脚本

执行shell程序:

./hello.sh #执行脚本

直接写 hello.sh,linux 系统会去 PATH 里寻找有没有叫 hello.sh 的。

./hello.sh 告诉系统说,就在当前目录找

还可以作为解释器参数运行。直接运行解释器,其参数就是 shell 脚本的文件名,如:

sh /root/shelldemo/hello.sh

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐