跳至主要內容

N多安装

chanchaw大约 14 分钟linuxcentos

rpm

安装操作

# 安装名称为 example.rpm 的rpm包
rpm -i example.rpm
# 安装 example.rpm 包并在安装过程中显示正在安装的文件信息
rpm -iv example.rpm
# 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;
rpm -ivh example.rpm

查询

rpm -q
附加查询命令:
a 查询所有已经安装的包以下两个附加命令用于查询安装包的信息;
i 显示安装包的信息;
l 显示安装包中的所有文件被安装到哪些目录下;
s 显示安装版中的所有文件状态及被安装到哪些目录下;以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件;
p 查询的是安装包的信息;
f 查询的是已安装的某文件信息;
举例如下:
rpm -qa | grep tomcat4 查看 tomcat4 是否被安装;
rpm -qip example.rpm 查看 example.rpm 安装包的信息;
rpm -qif /bin/df 查看/bin/df 文件所在安装包的信息;
rpm -qlf /bin/df 查看/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下;

卸载

命令:
rpm -e 需要卸载的安装包
在卸载之前,通常需要使用rpm -q …命令查出需要卸载的安装包名称。
举例如下:
# 卸载名称是 tomcat4 软件包
rpm -e tomcat4

发送邮件

在 CentOS7 上通过命令 yum install mailx 安装 mail 工具用来发送邮件,下面是发送邮件的 sh 代码 注意 email_content 指向了本 sh 文件所在目录下的文件 compress.log,即收件人看到的邮件内容是该文件中的内容

#!/bin/sh
from_name="chanchaw"
from="chan_chaw@126.com"
to="409223171@qq.com"

# 目标收到的邮件中不会显示
email_title="shell test mail title"
# 目标收到的邮件中看到的正文内容
email_content="compress.log"
# 目标收到的邮件标题
email_subject="home ffmpeg 压缩视频完毕通知"

echo -e "To: \"${email_title}\" <${to}>\nFrom: \"${from_name}\" <${from}>\nSubject: ${email_subject}\n\n`cat ${email_content}`" | /usr/sbin/sendmail -t

ffmpeg

CentOS7 中可通过 ffmpeg 压缩视频,可以将1G+的视频文件压缩到300M左右并且看上去是无损的。安装步骤如下:

# 首先到阿里云盘下载依赖:setup\Dev\linux相关
# 在依赖所在的目录下执行下面命令进行安装
rpm -ivh  nux-dextop-release-0-5.el7.nux.noarch.rpm

# 安装依赖
yum search ffmpeg
yum -y install ffmpeg-libs

# 安装 ffmpeg
yum install ffmpeg ffmpeg-devel

# 查看版本号
ffmpeg -version

# jy010803.mp4是原始视频文件,jy010803f.mp4是压缩后的视频文件名称
# 下面的命令可以将1G+的视频文件压缩到300M左右并且无损
ffmpeg -i jy010803.mp4 -vcodec h264 -s 1280*720 -acodec copy -f mp4 jy010803f.mp4

# 家中的 allInOne 的 CentOS7 中压缩1G视频大约需要72分钟

docker

注意先设置 更新排除内核

安装步骤

2024年6月7日 10:16:04 测试下面的方法不通

#1. yum 包更新到最新,切记在配置文件中排除更新内核
yum update -y

#2. 作用:安装需要的软件包,yum-util 提供 yum-config-manager功能,另外两个是 devicemapper 驱动依赖的
yum install yum-utils device-mapper-persistent-data 1vm2 -y

#3. 设置 yum 源
#3.1. 方案一:使用ustc(推荐)
yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
#3.2. 方案二:使用阿里云(可能失败)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4. 安装 docker;出现输入的界面会自动执行 y
yum install docker-ce -y

2024年6月7日 10:16:15 使用下面的方法在新达服务器虚拟机中安装成功

# 安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
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

# 查看可安装的版本号
yum list docker-ce --showduplicates | sort -r

# 安装指定的版本号
yum -y install docker-ce-18.03.1.ce

测试安装成功(查看 docker 版本):docker -v

修改镜像源

# 执行下面命令:
mkdir /etc/docker
vi /etc/docker/daemon.json
# 打开的文件中输入下面的代码
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

指令

systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker

AppImage

2023年11月23日 08:46:28 - 试验未通过 后缀 AppImage 的文件直接运行 ./文件名称.AppImage 即可,如果出现提示:dlopen(): error loading libfuse.so.2 说明缺少依赖 下面是来自官网的在 centos7 中的安装方法:

yum --enablerepo=epel -y install fuse-sshfs # install from EPEL
user="$(whoami)"
groupadd fuse # 创建名称是 fuse 的用户组,此句是自己添加
usermod -a -G fuse "$user" 

按照上面方法安装后再次运行 ./PicList-2.6.6.AppImage 提示如下:

/tmp/.mount_PicLisvYbEuy/piclist: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory

实际在第一次运行后注意看 shell 提供的提示,要求使用参数 --appimage-extract 执行,完整的命令是:./PicList-2.6.6.AppImage --appimage-extract 执行后在当前目录下解压出来一个新的目录 squashfs-root,进入该目录后运行文件 AppRun依然提示:

/usr/local/piclist/squashfs-root/piclist: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory

执行下面命令安装

yum install libatk-1.0.so.0 -y

安装后不管是运行 ./PicList-2.6.6.AppImage 还是目录 squashfs-root 下的 ./AppRun 都仍然提示:

/usr/local/piclist/squashfs-root/piclist: error while loading shared libraries: libatk-1.0.so.0: cannot open shared object file: No such file or directory

因为通过 yum 安装了 libatk 的最新版本而不是1.0.so.0 版本,2023年11月18日 10:41:01 暂停本软件的使用,要测试在线考试系统了。

新系统安装与配置

启用网络

使用下面代码编辑配置文件设置网卡开机启动

vi /etc/sysconfig/network-scripts/ifcfg-ens33

启用网络 保存后使用命令 service network restart 重启网络服务 提示启动网络服务失败的话有可能是 MAC 地址有问题,重新使用上面命令进入网络配置文件中修改项目 UUID,保存后重启网络服务器:service network restart 然后通过 systemctl status network -l 查看,或者重启虚拟机,如果还是无法通过 DHCP 获取 IP 地址,则要按照下面方式设置虚拟机桥接的网卡 启用网络虚拟机

修改SSH默认端口

点击查看修改默认端口的方法open in new window

vim

# 检查是否已经安装
rpm -qa|grep vim

# 安装依赖:
yum -y install vim-enhanced

# 安装
yum -y install vim*

使用方法open in new window

nginx

检查默认站点

执行下面命令

# 查看默认站点的根目录设置
grep -r "root" /etc/nginx/ | grep -v "#"

# 收到响应如下,检车两个路径:/var/www/html 、 /usr/share/nginx/html
/etc/nginx/scgi_params:scgi_param  DOCUMENT_ROOT      $document_root;
/etc/nginx/uwsgi_params:uwsgi_param  DOCUMENT_ROOT      $document_root;
/etc/nginx/sites-available/default:     root /var/www/html;
/etc/nginx/fastcgi_params:fastcgi_param  DOCUMENT_ROOT      $document_root;
/etc/nginx/conf.d/barrel.fit.conf:    root   /usr/share/nginx/html;
/etc/nginx/conf.d/wxshunjie.barrel.fit.conf:    root /projs/projfe/wxfeshunjie;
/etc/nginx/fastcgi.conf:fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
/etc/nginx/fastcgi.conf:fastcgi_param  DOCUMENT_ROOT      $document_root;

编译环境

如果要在本机上编译 nginx 源码则需要准备下面的编译环境

yum update
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

安装

安装nginx 可执行文件在 /usr/sbin/ 下的 nginx 配置文件在 /etc/nginx 首页 html 文件在:/usr/share/nginx/html 安装后已经使用 systemctl 进行管理

wget

yum -y install wget

如果没有网络,可以在公司 NAS 下有文件 Z:\devtools\linux\wget-1.14-18.el7_6.1.x86_64.rpm ,拷贝后使用命令 rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm 安装,验证是否安装成功 wget --version

netstat

yum -y install net-tools

zip

yum install -y unzip zip

修改主机名

linux 中的主机名就是 windows 中的计算机名,在CentOS6时只有一个主机名,从CentOS7开始有3个主机名了:static、pretty、transient(短暂的、临时的)。主机名存在于文件 /etc/hostname 中,在本文件中设置的名称是 static 的,即永久主机名,系统开机时会自动将该主机名同步赋值给 transient,而 pretty 的名称是可以有空格和特殊符号的。

  • 使用命令 hostnamectl 查看计算机名.或者使用 hostnamectl --static 查看静态主机名,使用 查看瞬时hostnamectl --transient主机名,或者使用 hostnamectl --pretty 查看灵活主机名
  • 使用命令 uname -a 查看系统版本时,看到的主机名是瞬时的
  • 查看操作系统环境 cat /etc/redhat-release
  • 临时修改主机名使用命令 hostname xh01,重启服务器后主机名会恢复
  • 永久修改主机名:hostnamectl set-hostname xxx
  • 或者通过修改配置文件修改主机名:vi /etc/hostname ,其中只有主机名
  • 修改主机后切记要修改文件:vi /etc/hosts ,然后重启。效果如下
主机名和IP地址关联
主机名和IP地址关联

通过命令 hostname 查看主机名

  1. 执行命令 hostnamectl set-hostname delores
  2. 修改IP地址和主机名的对应
vi /etc/hosts
# 将下面一行代码追加到原文的最后
192.168.0.171 delores

git

yum install git -y

静态IP地址

点我查看设置静态IP地址open in new window

更换为阿里yum源

切记在更换之前安装好 wget ,否则下面更换的步骤中会导致无法安装 wget

cd /etc
mv yum.repos.d yum.repos.d.bak
mkdir yum.repos.d
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除现有缓存
yum clean all
# 生成新缓存
yum makecache
# 更新源
yum -y update

点我查看更换为阿里yum源open in new window

更新排除内核

# 使用下面命令打开配置文件
vi /etc/yum.conf
# 在 [main] 的最后添加下面两行
exclude=kernel*
exclude=centos-release*

关闭防火墙selinux

# 关闭 selinux
setenforce 0

# 或者通过修改配置文件
# 查看selinux 状态
sestatus -v
# 打开selinux 配置文件
vi /etc/selinux/config
# 然后将 SELINUX=enforcing 修改为 SELINUX=disabled


# 关闭防火墙
# 查看防火墙状态
systemctl status firewalld
# 临时关闭防火墙
systemctl stop firewalld
# 禁止开机启动
systemctl disable firewalld

fastDFS编译环境

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

dnf

# 安装 dnf
yum install -y dnf

# 搜索安装包版本号是否存在
dnf search java-1.8

# 安装 java8
dnf install java-1.8.0-openjdk.x86_64

smb

smb 分为服务端和客户端,前者是在 CentOS7 中运行 smb 服务供其他主机使用,后者是使用其他系统主机提供的共享资源。即使仅要使用后者也要先安装服务端,单单安装 smbclient 在运行 smbclient -L \\192.168.66.120/USBshare_1 -U 提供共享服务的主机登录账号%对应前面登录账号的密码 时会提示 error while loading shared libraries: libldb.so.1 ,在安装服务端后解决该问题。

# 安装 smb 服务端
yum install samba -y
# 安装 smb 客户端
yum install samba-client -y
# 查看网络上共享的目录
# \\192.168.66.120\USBshare_1 是共享的主机IP地址以及共享的目录
# -U 后面以百分号间隔登录账号和密码
# 执行后会显示对方提供的共享目录
smbclient -L //192.168.66.118 -U administrator%7758chanchaw
# 挂载共享目录 \\192.168.66.120\USBshare_1\emby
# 到centos7系统路径 /usr/local/embymedia
mount -t cifs -o username="对方登录账号",password="对方登录密码" //192.168.66.120/USBshare_1/emby /usr/local/embymedia/share1
# 取消挂载,注意在 bash 中当前路径要切换到上一级目录
# 即保证当前路径是 /usr/local/ 再执行下面命令
umount /usr/local/embymedia

# home CentOS7 中映射共享目录
mount -t cifs -o username="administrator",password="7758chanchaw" //192.168.66.118/D$/shareav /data/ftp/ftpav
mount -t cifs -o username="administrator",password="7758chanchaw" //192.168.66.118/E$/sharetv /data/ftp/ftptv

redis

  1. 本案例将 redis 下载并且解压到 /usr/local 下
  2. 先检查有没有安装 gcc,使用命令:gcc -v
  3. 没有安装的话通过下面的命令进行安装
yum install -y gcc g++ gcc-c++ make
  1. 要注意,如果是4.8.5版本的 gcc 编译 6.0.7 版本的 redis 会失败(本次测试时官方最新的稳定版本是6.0.7)
  2. 那么要先升级 gcc 的版本,通过下面的命令
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
  1. 最后再查看升级后的版本号:gcc -v
  2. 下载 redis
wget http://download.redis.io/releases/redis-6.0.7.tar.gz
  1. 解压到当前目录
tar -xzvf redis-6.0.7.tar.gz
  1. make file:
cd redis-6.0.7
make MALLOC=libc
cd src # redis解压后目录中的src下
make install
  1. 修改配置文件
vi /usr/local/redis-6.0.7/redis.conf

将 protected-mode no 修改为 protected-mode yes ,将 daemonize no 修改为 daemonize yes 使 redis 启动为守护进程。

  1. 修改默认配置文件,使用下面的命令修改配置文件
vi /usr/local/redis-6.0.7/utils/redis_init_script

将 CONF="/etc/redis/${REDISPORT}.conf" 修改为 CONF="/xdf/redis-6.0.7/redis.conf" 斯蒂芬,同时新增重启参数,如下图 redis01

  1. 制作开机启动 使用下面的命令开始编辑开机启动服务的配置文件
vi /usr/lib/systemd/system/redis.service

文件内容如下

  [Unit]
Description=Redis
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/redis-6.0.7/utils/redis_init_script start
ExecReload=/usr/local/redis-6.0.7/utils/redis_init_script restart
ExecStop=/usr/local/redis-6.0.7/utils/redis_init_script stop

[Install]
WantedBy=multi-user.target
  1. 开启和关闭服务
systemctl start redis.service    # 启动Redis
systemctl restart redis.service    # 重启Redis
systemctl stop redis.service    # 结束Redis
systemctl enable redis.service    # 设置Redis开机自启

CentOS7

  1. 将 CentOS7 的ISO文件刻录到U盘中(UltraISO 中通过 文件 -> 打开 ,选择该ISO文件,然后 “启动”-> “刻录到硬盘/U盘”)
  2. 选择使用U盘启动看到下面的界面,选择第一个 安装centos701
  3. 一般会出现下面的问题 安装centos702 问题在于U盘的盘符和刻录到U盘中的系统配置文件不一致导致的,遇到这个问题要通过 ctrl+alt+del 重启重新回到本文的第一个图片时,通过上下键选择第一个选项,但是不要回车,此时按E进入编辑,然后按 tab 然后通过方向键移动光标,此时看到的界面包含下面的文字
initrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207x86_64 rd.live.check quiet
initrd=initrd.img inst.stage2=hd:/dev/sbd4 quite

由于没有图片,上图其实显示的不确切。应该将上图的红色字体 hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet 修改为
hd:LABEL=CentOS\x207\x20x8 rd.live.check quiet 这里的 \x20 其实空格,那么翻译后应该是:CentOS 7 x8 此处是由于使用UltralISO 工具将CentOS7的系统刻录到U盘时盘符长度受限所致 原本的盘符应该是:CentOS 7 x86_64,在收到长度限制后最终的盘符是 CentOS 7 x8 反应空格后就是 CentOS\x207\x20x8 修改后使用组合键 ctrl+x 继续安装

telnet

检查是否安装

没有任何输出则表示没有安装

rpm -qa telnet-server

安装

yum install telnet
yum install telnet-server

定时任务

CentOS7 是默认安装 crontab 的,检查是否已经安装:rpm -qa | grep crontab 如果出现:crontabs-1.11-6.20121102git.el7.noarch 表示已经安装,如果结果为空则表示没有安装 通过 yum install -y crontabs 来安装

下面是常用命令

# 查看运行状态
systemctl status crond

# 设置开机启动
systemctl enable crond

# 启动crontab
systemctl start crond

# 查看当前用户的定时任务
crontab -l

# 编辑定时任务配置表
crontab -e

# 查看 crontab 执行日志
tail -f /var/log/cron

创建第一个定时任务

  1. 创建名称为 write.sh 的文件,内容如下:
#! /bin/bash

time=$(date "+%Y-%m-%d %H:%M:%S")
echo "测试向文件写入内容"
echo "${time}"
cat>>/usr/local/crontabTask/test1.log<<EOF
本次写入时间:${time}
EOF

上面代码以 cat>> 开头的行表示向文件 tes1.log 中追加写入内容,其中的 >> 表示追加写入,如果要覆盖写入则使用 >,后面的<<EOF 表示遇到EOF结束。那么上面的代码是定时向文件 test1.log 中写入时间。即仅一行:本次写入时间:${time} 是被执行的有效命令

  1. 赋予文件write.sh 权限:
chmod +x /usr/local/write.sh
  1. 向 crontab 中添加定时任务。执行下面的命令:
crontab -e

切换到的页面中添加下面代码,表示每天11点17分执行文件 write.sh

17 11 * * * bash /usr/local/write.sh

从左到右的日期时间依次是:分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-7,0和7都表示周日)