首页
友链
壁纸
直播
留言
归档
关于
推荐
百度一下
腾讯视频
Search
1
linux免费WEB管理面板:AMH
16,497 阅读
2
为主题添加前台删除文章及评论功能
5,072 阅读
3
欢迎使用Typecho
3,886 阅读
4
创建WordPress多站点网络
2,591 阅读
5
代码高亮 - SyntaxHighlighter 0.0.5
1,875 阅读
网络杂记
Wordpress
Typecho
VPS教程
主题模板
登录
Search
标签搜索
Typecho
WordPress
主题
Linux
VPS
LNMP
MySQL
管理面板
nginx
面板
升级
Apache
php函数
缓存
gravatar
404错误
评论
删除
命令
kloxo
CludeChn
累计撰写
119
篇文章
累计收到
13
条评论
首页
栏目
网络杂记
Wordpress
Typecho
VPS教程
主题模板
页面
友链
壁纸
直播
留言
归档
关于
推荐
百度一下
腾讯视频
搜索到
119
篇与
的结果
2023-03-05
Linux内核升级
查看当前内核版本使用uname命令查看内核版本,其中-a选项输出信息更为详细。# uname -a Linux ibetterlife 5.14.0-162.18.1.el9_1.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Mar 1 22:02:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux # uname -r 5.14.0-162.18.1.el9_1.x86_64启用 ELRepoELRepo是企业Linux软件包的RPM存储库。ELRepo支持Red Hat Enterprise Linux (RHEL) 及其衍生产品,如Scientific Linux、CentOS Linux、Alma Linux 和 Rocky Linux。ELRepo项目专注于与硬件相关的软件包,以增强您对Enterprise Linux 的体验。这包括文件系统驱动程序、图形驱动程序、网络驱动程序、声音驱动程序、网络摄像头和视频驱动程序。从CentOS/AlmaLinux/RockLinux 8开始,ELRepo已经加入到官方软件仓库中,名称为 “elrepo-release”。启用ELRepo只需要执行命令:dnf -y install elrepo-release安装ELRepo公钥rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgELRepo rpm包在线安装方法# Import the public key: rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # To install ELRepo for RHEL-**9** or CentOS-**9**: yum install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm # To install ELRepo for RHEL-**8** or CentOS-**8**: yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm # To install ELRepo for RHEL-**7**, SL-**7** or CentOS-**7**: yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm # To make use of our mirror system, **please also install yum-plugin-fastestmirror**.升级内核查询ELRepo中的kernel版本# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available Last metadata expiration check: 0:21:04 ago on Wed 22 Mar 2023 04:10:15 PM CST. Available Packages bpftool.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-core.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-devel.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-devel-matched.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-doc.noarch 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-headers.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-modules.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-modules-extra.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-tools.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 6.2.7-1.el9.elrepo elrepo-kernel perf.x86_64 6.2.7-1.el9.elrepo elrepo-kernel python3-perf.x86_64 6.2.7-1.el9.elrepo elrepo-kernel # yum --disablerepo="*" --enablerepo="elrepo-kernel" list available --showduplicates Last metadata expiration check: 0:44:46 ago on Wed 22 Mar 2023 04:10:15 PM CST. Available Packages bpftool.x86_64 6.2.6-1.el9.elrepo elrepo-kernel bpftool.x86_64 6.2.7-1.el9.elrepo elrepo-kernel elrepo-release.noarch 9.1-1.el9.elrepo elrepo-kernel kernel-ml.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-core.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-core.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-devel.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-devel.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-devel-matched.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-devel-matched.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-doc.noarch 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-doc.noarch 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-headers.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-headers.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-modules.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-modules.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-modules-extra.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-modules-extra.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-tools.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-tools.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 6.2.7-1.el9.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 6.2.6-1.el9.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 6.2.7-1.el9.elrepo elrepo-kernel perf.x86_64 6.2.6-1.el9.elrepo elrepo-kernel perf.x86_64 6.2.7-1.el9.elrepo elrepo-kernel python3-perf.x86_64 6.2.6-1.el9.elrepo elrepo-kernel python3-perf.x86_64 6.2.7-1.el9.elrepo elrepo-kernel术语解释 kernel-ml kernel-ml中的ml是英文 “mainline stable” 的缩写,elrepo-kernel中列出来的是最新的稳定主线版本。 kernel-lt kernel-lt中的lt是英文 “long term support” 的缩写,elrepo-kernel 中列出来的长期支持版本。安装kernel安装新内核(kernel-core、kernel-modules 与 kernel 依赖自动更新)# yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64 安装新内核相关软件(--skip-broken必须) # yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-devel kernel-ml-tools kernel-ml-tools-libs kernel-ml-tools-libs-devel kernel-ml-headers --skip-broken确认默认启动内核(般更新的内核为默认启动内核)# grubby --default-kernel /boot/vmlinuz-6.2.7-1.el9.elrepo.x86_64如果不是的话,先看查看系统安装的全部内核# grubby --default-kernel /boot/vmlinuz-6.2.7-1.el9.elrepo.x86_64 [root@iZuf6g4xzntqr7ucc5swmkZ ~]# grubby --info=ALL index=0 kernel="/boot/vmlinuz-6.2.7-1.el9.elrepo.x86_64" args="ro rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295 crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M $tuned_params" root="UUID=8537de8b-6254-450c-9946-5ff5ad4af6dc" initrd="/boot/initramfs-6.2.7-1.el9.elrepo.x86_64.img $tuned_initrd" title="Rocky Linux (6.2.7-1.el9.elrepo.x86_64) 9.1 (Blue Onyx)" id="20220630095603711861013686113992-6.2.7-1.el9.elrepo.x86_64" index=1 kernel="/boot/vmlinuz-5.14.0-162.18.1.el9_1.x86_64" args="ro rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295 $tuned_params crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M" root="UUID=8537de8b-6254-450c-9946-5ff5ad4af6dc" initrd="/boot/initramfs-5.14.0-162.18.1.el9_1.x86_64.img $tuned_initrd" title="Rocky Linux (5.14.0-162.18.1.el9_1.x86_64) 9.1 (Blue Onyx)" id="20220630095603711861013686113992-5.14.0-162.18.1.el9_1.x86_64" index=2 kernel="/boot/vmlinuz-0-rescue-20220630095603711861013686113992" args="ro rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295 crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M" root="UUID=8537de8b-6254-450c-9946-5ff5ad4af6dc" initrd="/boot/initramfs-0-rescue-20220630095603711861013686113992.img" title="Rocky Linux (0-rescue-20220630095603711861013686113992) 8.6 (Green Obsidian)" id="20220630095603711861013686113992-0-rescue"设置新的默认启动内核# grubby --set-default=/boot/vmlinuz-6.2.7-1.el9.elrepo.x86_64 或者 # grubby --set-default-index=0重启之后,再次查看内核版本# uname -a Linux iZuf6g4xzntqr7ucc5swmkZ 5.14.0-162.18.1.el9_1.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Mar 1 22:02:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux # uname -r 6.2.7-1.el9.elrepo.x86_64删除旧内核(可选的)# rpm -e --nodeps `rpm -qa|grep -i kernel|grep 5.14`再次查看当前的内核,检查是否删除成功。# rpm -qa | grep kernel kernel-srpm-macros-1.0-11.el9.noarch kernel-ml-core-6.2.7-1.el9.elrepo.x86_64 kernel-ml-modules-6.2.7-1.el9.elrepo.x86_64 kernel-ml-6.2.7-1.el9.elrepo.x86_64
2023年03月05日
36 阅读
0 评论
0 点赞
2023-02-02
Typecho开启Gzip,提高网站浏览速度
Gzip是一种常用的HTML压缩技术,通常情况下,Gzip开启后会将输出到用户浏览器的数据进行压缩的处理,这样就可以减小通过网络传输的数据量,提高浏览的速度。Typecho的gzip压缩开启Typecho的gzip功能很简单,是和wordpress一样的, 只要在根目录下的index.php文件里面加上下面这一句就可以了:/*添加Gzip*/ ob_start('ob_gzhandler');注意:是网站根目下的index.php文件,而不是在主题目录下的。上面这句话建议加在最上面,当然其他位置也可以。
2023年02月02日
28 阅读
0 评论
0 点赞
2023-01-19
替换typecho文章页面内容
方法:修改数据库,用新地址替换掉旧地址。数据库:Mysql数据库sql语句如下:UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'旧内容','新内容');可以批量替换图片链接,和文字内容,是更改所有的。
2023年01月19日
21 阅读
0 评论
0 点赞
2022-01-06
PHP为任意页面设访问密码,控制登录
使用方法,把下面的代码存为php文件,下面的整段代码是验证过程,然后在你入口页进行调用例如命名为MkEncrypt.php,那么在入口页进行require_once('MkEncrypt.php');然后设置密码为MkEncrypt('1234');此时密码为1234则密码正确才能进去页面,进入后会存下cookies值,下一次登录的时候则不需要再次输入了代码简介为你的页面支持加密访问,无论什么程序,只要是PHP程序,都是支持这代码的,来实现加密访问你的加密页面或文章等等的页面,不保证其他程序可以正常使用代码如下<?php /******************************************** * 使用方法: * * 1、将本段代码保存为 MkEncrypt.php * * 2、在要加密的页面前面引入这个 php 文件 * require_once('MkEncrypt.php'); * * 3、设置页面访问密码 * MkEncrypt('页面密码'); * ********************************************/ // 密码 Cookie 加密盐 if(!defined('MK_ENCRYPT_SALT')) define('MK_ENCRYPT_SALT', 'Kgs$JC!V'); /** * 设置访问密码 * * @param $password 访问密码 * @param $pageid 页面唯一 ID 值,用于区分同一网站的不同加密页面 */ function MkEncrypt($password, $pageid = 'default') { $pageid = md5($pageid); $md5pw = md5(md5($password).MK_ENCRYPT_SALT); $postpwd = isset($_POST['pagepwd']) ? addslashes(trim($_POST['pagepwd'])) : ''; $cookiepwd = isset($_COOKIE['mk_encrypt_'.$pageid]) ? addslashes(trim($_COOKIE['mk_encrypt_'.$pageid])) : ''; if($cookiepwd == $md5pw) return; // Cookie密码验证正确 if($postpwd == $password) { // 提交的密码正确 setcookie('mk_encrypt_' . $pageid, $md5pw, time() + 3600000, '/'); return; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="renderer" content="webkit"> <meta name="author" content="mengkun"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>该页面已被加密</title> <style type="text/css"> *{font-family:"Microsoft Yahei",微软雅黑,"Helvetica Neue",Helvetica,"Hiragino Sans GB","WenQuanYi Micro Hei",sans-serif;box-sizing:border-box;margin:0px;padding:0px;font-size:14px;-webkit-transition:.2s;-moz-transition:.2s;-ms-transition:.2s;-o-transition:.2s;transition:.2s} html,body{width:100%;height:100%} body{background-color:#F4F6F9;color:#768093} input,button{font-size:1em;border-radius:3px;-webkit-appearance:none} input{width:100%;padding:5px;box-sizing:border-box;border:1px solid #e5e9ef;background-color:#f4f5f7;resize:vertical} input:focus{background-color:#fff;outline:none} button{border:0;background:#6abd09;color:#fff;cursor:pointer;opacity:1;user-select:none} button:hover,button:focus{opacity:.9} button:active{opacity:1} .main{width:100%;max-width:500px;height:300px;padding:30px;background-color:#fff;border-radius:2px;box-shadow:0 10px 60px 0 rgba(29,29,31,0.09);transition:all .12s ease-out;position:absolute;left:0;top:0;bottom:0;right:0;margin:auto;text-align:center} .alert{width:80px} .mk-side-form{margin-bottom:28px} .mk-side-form input{float:left;padding:2px 10px;width:77%;height:37px;border:1px solid #ebebeb;border-right-color:transparent;border-radius:2px 0 0 2px;line-height:37px} .mk-side-form button{position:relative;overflow:visible;width:23%;height:37px;border-radius:0 2px 2px 0;text-transform:uppercase} .pw-tip{font-weight:normal;font-size:26px;text-align:center;margin:25px auto} #pw-error {color: red;margin-top: 15px;margin-bottom: -20px;} .return-home{text-decoration:none;color:#b1b1b1;font-size:16px} .return-home:hover{color:#1E9FFF;letter-spacing:5px} </style> </head> <body> <div class="main"> <svg class="alert" viewBox="0 0 1084 1024" xmlns="http://www.w3.org/2000/svg" width="80" height="80"> <defs><style/></defs> <path d="M1060.744 895.036L590.547 80.656a55.959 55.959 0 0 0-96.919 0L22.588 896.662a55.959 55.959 0 0 0 48.43 83.907h942.14a55.959 55.959 0 0 0 47.525-85.534zm-470.619-85.172a48.008 48.008 0 1 1-96.015 0v-1.567a48.008 48.008 0 1 1 96.015 0v1.567zm0-175.345a48.008 48.008 0 1 1-96.015 0V379.362a48.008 48.008 0 1 1 96.015 0v255.157z" fill="#FF9800"/> </svg> <form action="" method="post" class="mk-side-form"> <h2 class="pw-tip">该页面已被加密</h2> <input type="password" name="pagepwd" placeholder="请输入访问密码查看" required><button type="submit">提交</button> <?php if($postpwd): ?> <p id="pw-error">Oops!密码不对哦~</p> <script>setTimeout(function() {document.getElementById("pw-error").style.display = "none"}, 2000);</script> <?php endif; ?> </form> <a href="/" class="return-home" title="点击回到网站首页">- 返回首页 - </a> </div> </body> </html> <?php exit(); }转载自:小灯泡设计
2022年01月06日
35 阅读
0 评论
0 点赞
2021-12-22
利用现有在使用的Typecho主题Joe创建欢迎引导页
Typecho有很多人在使用,利用独立页面功能可以创建有个性的欢迎引导页,首先在主题文件夹内新建一个*.php文件,例如现在本站使用的是Typecho主题Joe,我们可以借用已有的主题内的自定义模板文件,将文件头部代码修改为:<?php /** * 欢迎页 * * @package custom * **/ ?>然后在主题自定义模板文件的与之间的代码修改为下列代码 <link rel="stylesheet" type="text/css" href="./img/style.css"> <div class="content"> <div class="title">小陈之家Chen CYH</div> <hr class="hr"> <div class="discription">盛年不重来,一日难再晨。及时当勉励,岁月不待人。</div> <hr class="hr"> <nav class="cover-navigation cover-navigation--primary"> <ul class="navigation"> <li class="navigation__item"><a href="/archive" target="_self" title="我的文章">浏览</a></li> <li class="navigation__item"><a href="/link.html" target="_blank" title="我的友链">友链</a></li> <li class="navigation__item"><a href="/wallpaper.html" target="_blank" title="我的壁纸">壁纸</a></li> <li class="navigation__item"><a href="/archives.html" target="_blank" title="我的归档">归档</a></li> <li class="navigation__item"><a href="https://yunhe.life/" target="_blank" title="我的相册">相册</a></li> <li class="navigation__item"><a href="/about.html" target="_blank" title="关于站长">关于</a></li> </ul> </nav> <div class="item"> <?php $this->options->JFooter_Left() ?> </div> <?php if ($this->options->JBirthDay) : ?> <div class="item run"> <span>已运行 <strong class="joe_run__day">00</strong> 天 <strong class="joe_run__hour">00</strong> 时 <strong class="joe_run__minute">00</strong> 分 <strong class="joe_run__second">00</strong> 秒</span> </div> <?php endif; ?> <div class="item"> <?php $this->options->JFooter_Right() ?> </div> </div> <div class="landscape"></div> <div class="filter"></div> <canvas id="canvas" width="1536" height="746"></canvas> <script type="text/javascript" src="./img/sky.js"></script> <div id="detect-holmes-debugger-1541053963293"> </div>其中,代码 <div class="item"> <?php $this->options->JFooter_Left() ?> </div> <?php if ($this->options->JBirthDay) : ?> <div class="item run"> <span>已运行 <strong class="joe_run__day">00</strong> 天 <strong class="joe_run__hour">00</strong> 时 <strong class="joe_run__minute">00</strong> 分 <strong class="joe_run__second">00</strong> 秒</span> </div> <?php endif; ?> <div class="item"> <?php $this->options->JFooter_Right() ?> </div>拷贝的是Joe主题的footer中的代码,如果不需要的话可以去掉该段代码上述代码中的“./img/style.css”和“./img/sky.js”是style.css和sky.js这两个文件所放置的位置style.css代码如下:html, body { margin: 0; overflow: hidden; width: 100%; height: 100%; background: black; background: linear-gradient(to bottom, #000000 0%, #5788fe 100%); font-family:'Questrial','Noto Serif SC' ; } .filter { width: 100%; height: 100%; position: absolute; top: 0; left: 0; background: #fe5757; animation: colorChange 30s ease-in-out infinite; animation-fill-mode: both; mix-blend-mode: overlay; } @keyframes colorChange { 0%, 100% { opacity: 0; } 50% { opacity: .9; } } .landscape { position: absolute; bottom: 0px; left: 0; width: 100%; height: 100%; background-image: url('../img/xkbg.png'); background-size: 1000px 250px; background-repeat: repeat-x; background-position: center bottom; } .content{ -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; -khtml-user-select: none; user-select: none; text-align: center; color: #fff; position: absolute; left: 50%; top: 45%; transform: translate(-50%,-50%); z-index:9999 } .content .title{ margin: 15px 0; font-size: 2.5em; letter-spacing: 4px; color: #FFF; } .content .hr{ width: 50%; margin: 20px auto; border: none; border-top: 1px solid rgba(255, 255, 255, 1); height: 1px; } .content .discription{ font-size: 20px; margin: 20px; } .cover-navigation { margin: 30px; } nav { display: inline-block; position: relative; } .navigation { display: inline-block; position: relative; margin: 0; list-style-type: none; } .navigation__item { display: inline-block; line-height: 1em; padding: 1em 0; } .navigation__item a { position: relative; color: #FFF; opacity: .8; transition: all .3s; padding: 10px 20px; border: 1px solid #fff; border-radius: 20px; font-size: .9em; font-weight: bold; letter-spacing: 1px; text-shadow: none; -webkit-font-smoothing: antialiased; text-decoration: none; } .navigation__item a:hover { color: #FFF; background: #FF7F00; border-color: #FF7F00; opacity: 1; transition: all .3s; } ol, ul { list-style: none; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } .icp{ margin: 20px; } .icpnum{ color: #fff; text-decoration: none; } .item{ margin: 20px; } .item run{ color: #fff; text-decoration: none; }xkbg.png是引导页的星空背景图,星空背景图 sky.js代码内容如下:function Star(id, x, y) { this.id = id; this.x = x; this.y = y; this.r = Math.floor(Math.random() * 2) + 1; var alpha = (Math.floor(Math.random() * 10) + 1) / 10 / 2; this.color = "rgba(255,255,255," + alpha + ")"; } Star.prototype.draw = function() { ctx.fillStyle = this.color; ctx.shadowBlur = this.r * 2; ctx.beginPath(); ctx.arc(this.x, this.y, this.r, 0, 2 * Math.PI, false); ctx.closePath(); ctx.fill(); } Star.prototype.move = function() { this.y -= .15; if (this.y <= -10) this.y = HEIGHT + 10; this.draw(); } Star.prototype.die = function() { stars[this.id] = null; delete stars[this.id]; } function Dot(id, x, y, r) { this.id = id; this.x = x; this.y = y; this.r = Math.floor(Math.random() * 5) + 1; this.maxLinks = 2; this.speed = .5; this.a = .5; this.aReduction = .005; this.color = "rgba(255,255,255," + this.a + ")"; this.linkColor = "rgba(255,255,255," + this.a / 4 + ")"; this.dir = Math.floor(Math.random() * 140) + 200; } Dot.prototype.draw = function() { ctx.fillStyle = this.color; ctx.shadowBlur = this.r * 2; ctx.beginPath(); ctx.arc(this.x, this.y, this.r, 0, 2 * Math.PI, false); ctx.closePath(); ctx.fill(); } Dot.prototype.link = function() { if (this.id == 0) return; var previousDot1 = getPreviousDot(this.id, 1); var previousDot2 = getPreviousDot(this.id, 2); var previousDot3 = getPreviousDot(this.id, 3); if (!previousDot1) return; ctx.strokeStyle = this.linkColor; ctx.moveTo(previousDot1.x, previousDot1.y); ctx.beginPath(); ctx.lineTo(this.x, this.y); if (previousDot2 != false) ctx.lineTo(previousDot2.x, previousDot2.y); if (previousDot3 != false) ctx.lineTo(previousDot3.x, previousDot3.y); ctx.stroke(); ctx.closePath(); } function getPreviousDot(id, stepback) { if (id == 0 || id - stepback < 0) return false; if (typeof dots[id - stepback] != "undefined") return dots[id - stepback]; else return false; //getPreviousDot(id - stepback); } Dot.prototype.move = function() { this.a -= this.aReduction; if (this.a <= 0) { this.die(); return } this.color = "rgba(255,255,255," + this.a + ")"; this.linkColor = "rgba(255,255,255," + this.a / 4 + ")"; this.x = this.x + Math.cos(degToRad(this.dir)) * this.speed, this.y = this.y + Math.sin(degToRad(this.dir)) * this.speed; this.draw(); this.link(); } Dot.prototype.die = function() { dots[this.id] = null; delete dots[this.id]; } var canvas = document.getElementById('canvas'), ctx = canvas.getContext('2d'), WIDTH, HEIGHT, mouseMoving = false, mouseMoveChecker, mouseX, mouseY, stars = [], initStarsPopulation = 80, dots = [], dotsMinDist = 2, maxDistFromCursor = 50; setCanvasSize(); init(); function setCanvasSize() { WIDTH = document.documentElement.clientWidth, HEIGHT = document.documentElement.clientHeight; canvas.setAttribute("width", WIDTH); canvas.setAttribute("height", HEIGHT); } function init() { ctx.strokeStyle = "white"; ctx.shadowColor = "white"; for (var i = 0; i < initStarsPopulation; i++) { stars[i] = new Star(i, Math.floor(Math.random() * WIDTH), Math.floor(Math.random() * HEIGHT)); //stars[i].draw(); } ctx.shadowBlur = 0; animate(); } function animate() { ctx.clearRect(0, 0, WIDTH, HEIGHT); for (var i in stars) { stars[i].move(); } for (var i in dots) { dots[i].move(); } drawIfMouseMoving(); requestAnimationFrame(animate); } window.onmousemove = function(e) { mouseMoving = true; mouseX = e.clientX; mouseY = e.clientY; clearInterval(mouseMoveChecker); mouseMoveChecker = setTimeout(function() { mouseMoving = false; }, 100); } function drawIfMouseMoving() { if (!mouseMoving) return; if (dots.length == 0) { dots[0] = new Dot(0, mouseX, mouseY); dots[0].draw(); return; } var previousDot = getPreviousDot(dots.length, 1); var prevX = previousDot.x; var prevY = previousDot.y; var diffX = Math.abs(prevX - mouseX); var diffY = Math.abs(prevY - mouseY); if (diffX < dotsMinDist || diffY < dotsMinDist) return; var xVariation = Math.random() > .5 ? -1 : 1; xVariation = xVariation * Math.floor(Math.random() * maxDistFromCursor) + 1; var yVariation = Math.random() > .5 ? -1 : 1; yVariation = yVariation * Math.floor(Math.random() * maxDistFromCursor) + 1; dots[dots.length] = new Dot(dots.length, mouseX + xVariation, mouseY + yVariation); dots[dots.length - 1].draw(); dots[dots.length - 1].link(); } //setInterval(drawIfMouseMoving, 17); function degToRad(deg) { return deg * (Math.PI / 180); }修改完成后,欢迎引导页完整代码见下:<?php /** * 欢迎页 * * @package custom * **/ ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <?php $this->need('public/include.php'); ?> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=11" id="mixia_vpid"> <?php echo $this->is('post') ? 'current' : '' ?>"> </head> <body> <link rel="stylesheet" type="text/css" href="./img/style.css"> <div class="content"> <div class="title">小陈之家Chen CYH</div> <hr class="hr"> <div class="discription">盛年不重来,一日难再晨。及时当勉励,岁月不待人。</div> <hr class="hr"> <nav class="cover-navigation cover-navigation--primary"> <ul class="navigation"> <li class="navigation__item"><a href="/archive" target="_self" title="我的文章">浏览</a></li> <li class="navigation__item"><a href="/link.html" target="_blank" title="我的友链">友链</a></li> <li class="navigation__item"><a href="/wallpaper.html" target="_blank" title="我的壁纸">壁纸</a></li> <li class="navigation__item"><a href="/archives.html" target="_blank" title="我的归档">归档</a></li> <li class="navigation__item"><a href="https://yunhe.life/" target="_blank" title="我的相册">相册</a></li> <li class="navigation__item"><a href="/about.html" target="_blank" title="关于站长">关于</a></li> </ul> </nav> <div class="item"> <?php $this->options->JFooter_Left() ?> </div> <?php if ($this->options->JBirthDay) : ?> <div class="item run"> <span>已运行 <strong class="joe_run__day">00</strong> 天 <strong class="joe_run__hour">00</strong> 时 <strong class="joe_run__minute">00</strong> 分 <strong class="joe_run__second">00</strong> 秒</span> </div> <?php endif; ?> <div class="item"> <?php $this->options->JFooter_Right() ?> </div> </div> <div class="landscape"></div> <div class="filter"></div> <canvas id="canvas" width="1536" height="746"></canvas> <script type="text/javascript" src="./img/sky.js"></script> <div id="detect-holmes-debugger-1541053963293"> </div> </body> </html>最终效果:
2021年12月22日
104 阅读
2 评论
0 点赞
2021-12-22
新年倒计时代码
<style type="text/css"> .deng-box{position:fixed;top:-40px;right:-20px;z-index:9999;pointer-events:none} .deng-box1{position:fixed;top:-30px;right:10px;z-index:9999;pointer-events:none} .deng-box2{position:fixed;top:-40px;left:-20px;z-index:9999;pointer-events:none} .deng-box3{position:fixed;top:-30px;left:10px;z-index:9999;pointer-events:none} .deng-box1 .deng,.deng-box3 .deng{position:relative;width:120px;height:90px;margin:50px;background:#d8000f;background:rgba(216,0,15,.8);border-radius:50% 50%;-webkit-transform-origin:50% -100px;-webkit-animation:swing 5s infinite ease-in-out;box-shadow:-5px 5px 30px 4px #fc903d} .deng{position:relative;width:120px;height:90px;margin:50px;background:#d8000f;background:rgba(216,0,15,.8);border-radius:50% 50%;-webkit-transform-origin:50% -100px;-webkit-animation:swing 3s infinite ease-in-out;box-shadow:-5px 5px 50px 4px #fa6c00} .deng-a{width:100px;height:90px;background:#d8000f;background:rgba(216,0,15,.1);margin:12px 8px 8px 8px;border-radius:50% 50%;border:2px solid #dc8f03} .deng-b{width:45px;height:90px;background:#d8000f;background:rgba(216,0,15,.1);margin:-4px 8px 8px 26px;border-radius:50% 50%;border:2px solid #dc8f03} .xian{position:absolute;top:-20px;left:60px;width:2px;height:20px;background:#dc8f03} .shui-a{position:relative;width:5px;height:20px;margin:-5px 0 0 59px;-webkit-animation:swing 4s infinite ease-in-out;-webkit-transform-origin:50% -45px;background:orange;border-radius:0 0 5px 5px} .shui-b{position:absolute;top:14px;left:-2px;width:10px;height:10px;background:#dc8f03;border-radius:50%} .shui-c{position:absolute;top:18px;left:-2px;width:10px;height:35px;background:orange;border-radius:0 0 0 5px} .deng:before{position:absolute;top:-7px;left:29px;height:12px;width:60px;content:" ";display:block;z-index:999;border-radius:5px 5px 0 0;border:solid 1px #dc8f03;background:orange;background:linear-gradient(to right,#dc8f03,orange,#dc8f03,orange,#dc8f03)} .deng:after{position:absolute;bottom:-7px;left:10px;height:12px;width:60px;content:" ";display:block;margin-left:20px;border-radius:0 0 5px 5px;border:solid 1px #dc8f03;background:orange;background:linear-gradient(to right,#dc8f03,orange,#dc8f03,orange,#dc8f03)} .deng-t{font-family:华文行楷,Arial,Lucida Grande,Tahoma,sans-serif;font-size:3.2rem;color:#dc8f03;font-weight:700;line-height:85px;text-align:center} .night .deng-box,.night .deng-box1,.night .deng-t{background:0 0!important}@-moz-keyframes swing{0%{-moz-transform:rotate(-10deg)}50%{-moz-transform:rotate(10deg)}100%{-moz-transform:rotate(-10deg)}}@-webkit-keyframes swing{0%{-webkit-transform:rotate(-10deg)}50%{-webkit-transform:rotate(10deg)}100%{-webkit-transform:rotate(-10deg)}} </style> <article> <div class="gn_box wow zoomIn"> <h1> <center><font color=#E80017>2</font><font color=#D1002E>0</font><font color=#BA0045>2</font><font color=#A3005C>1</font><font color=#8C0073>年</font><font color=#75008A>-</font><font color=#5E00A1>新</font><font color=#4700B8>年</font><font color=#3000CF>倒</font><font color=#1900E6>计</font><font color=#0200FD>时</font> </center> </h1> <center> <div id="CountMsg" class="HotDate" style="margin-bottom: 10px;"> <font color="red"><span id="t_d">* 天</span></font> <font color="red"><span id="t_h">* 时</span></font> <font color="red"><span id="t_m">* 分</span></font> <font color="red"><span id="t_s">* 秒</span></font> </div> </center> <script type="text/javascript"> function getRTime() { var EndTime = new Date("2021/02/11 00:00:00"); var NowTime = new Date(); var t = EndTime.getTime() - NowTime.getTime(); var d = Math.floor(t / 1000 / 60 / 60 / 24); var h = Math.floor(t / 1000 / 60 / 60 % 24); var m = Math.floor(t / 1000 / 60 % 60); var s = Math.floor(t / 1000 % 60); document.getElementById("t_d").innerHTML = d + " 天"; document.getElementById("t_h").innerHTML = h + " 时"; document.getElementById("t_m").innerHTML = m + " 分"; document.getElementById("t_s").innerHTML = s + " 秒"; } setInterval(getRTime, 1000); </script> </div> </article> <!--新年倒计时结束-->
2021年12月22日
31 阅读
0 评论
0 点赞
2021-12-18
LNMP模式下Nginx如何设置域名301重定向
LNMP下的Nginx如果想将域名lnmp.org 301重定向到www.lnmp.org,同时www.lnmp.org已经添加上,可以按如下步骤修改 使用命令编辑器vi、nano或winscp图形管理软件编辑对应的虚拟主机,一般虚拟主机配置文件位于:/usr/local/nginx/conf/vhost/域名.conf,如添加的域名是www.lnmp.org则配置文件是/usr/local/nginx/conf/vhost/www.lnmp.org.conf在配置文件代码如下:lnmp.org 301跳转到www.lnmp.org示例配置如下:省略www.lnmp.org虚拟主机server配置 server { listen 80; server_name lnmp.org; return 301 http://www.lnmp.org$request_uri; }如果是想让http强制跳转到https,把里面的http换成https就行。http站点301跳转到https站点示例配置如下:server { listen 443 ssl; server_name www.lnmp.org; 省略其他配置 } server { listen 80; server_name lnmp.org; return 301 https://www.lnmp.org$request_uri; }按上面例子修改完成后保存,执行:/etc/init.d/nginx restart 重启nginx,使其生效。该设置不适用于Let'sEncrypt及其他需要http验证的SSL证书;如果使用DNS API方式可以使用这种设置方法。如果是想让https://lnmp.org强制跳转到https://www.lnmp.org可以在https的虚拟主机配置文件中root行或server_name行下面添加上if ($host = 'lnmp.org') { return 301 https://www.lnmp.org$request_uri; }如果要设置对应域名的http跳到对应https站点上如:http://lnmp.org 跳到 https://lnmp.org,http://www.lnmp.org 跳到 https://www.lnmp.org 上。在对应域名的http虚拟主机配置文件中添加:return 301 https://$host$request_uri;如果使用Let'sEncrypt免费SSL证书使用的Let's Encrypt的免费证书且使用http验证方式生成的SSL证书,如果你要想设置301,编辑要设置301域名的nginx虚拟主机配置文件,找到包含有listen 80;的server段,在location ~ /.well-known { allow all; }这几行下面添加,如下配置:location / { return 301 https://$host$request_uri; }保存,如果不设置会导致证书无法正常续期。完整的适用于Let'sEncrypt的301跳转配置文件如下:server { listen 80; #listen [::]:80; server_name lnmp.org www.lnmp.org; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/lnmp.org; location ~ /.well-known { allow all; } location / { return 301 https://$host$request_uri; } }注意:以上所有更改nginx的配置都需要重启ngin生效。来源 © LNMP.org
2021年12月18日
47 阅读
0 评论
0 点赞
2021-12-14
Markdown基本语法
前言Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML或HTML文档。由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,目前许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。目前博客主要在本地用Markdown语言写作,然后转移到网站,故粗略了解了一下基本语法。基本语法一、标题在标题文字前加#表示一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。示例:# 这是一级标题 ## 这是二级标题 ### 这是三级标题 #### 这是四级标题 ##### 这是五级标题 ###### 这是六级标题显示效果:这是一级标题这是二级标题这是三级标题这是四级标题这是五级标题这是六级标题二、字体加粗:需要加粗的文字左右两边分别用两个*号包起来斜体:需要倾斜的文字左右两边分别用一个*号包起来斜体加粗:需要倾斜和加粗的文字左右两边分别用三个*号包起来删除线:需要加删除线的文字左右两边分别用两个~~号包起来示例:**这是加粗的文字** *这是倾斜的文字*` ***这是斜体加粗的文字*** ~~这是加删除线的文字~~显示效果:这是加粗的文字这是倾斜的文字`这是斜体加粗的文字这是加删除线的文字三、引用在引用的文字前加>即可。引用也可以嵌套,如加两个>>三个>>>...n个>>>>...示例:>这是引用的内容 >>这也是引用的内容四、分割线三个或者三个以上的 - 或者 * 皆可。示例:--- ---- *** *****显示效果:五、超链接语法:[超链接名](超链接地址 "超链接title") title可加可不加示例:[腾讯视频](https://v.qq.com) [爱奇艺](https://iqiyi.com)显示效果:腾讯视频爱奇艺六、列表语法:无序列表用 - + * 任何一种都可以 - 列表内容 + 列表内容 * 列表内容 注意:- + * 跟内容之间都要有一个空格显示效果:列表内容列表内容列表内容有序列表:语法:1. 列表内容 2. 列表内容 3. 列表内容 注意:数字加点即可,序号跟内容之间要有空格效果如下:列表内容列表内容列表内容七、表格语法:表头|表头|表头 ---|:--:|---: 内容|内容|内容 内容|内容|内容 第二行分割表头和内容。 第二行设置文字属性: 文字默认居左 两边加:表示文字居中 右边加:表示文字居右 注:原生的语法两边都要用 | 包起来。此处省略显示效果:序号姓名关系一唐僧师傅二孙悟空徒弟其它参考 © 小灯泡设计
2021年12月14日
27 阅读
0 评论
0 点赞
2021-12-14
升级Centos 8内核版本
1.查看当前内核版本使用的系统版本,当前日期CentOS最新版:# cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core)查看当前系统内核版本:# uname -r 4.18.0-193.6.3.el8_2.x86_64当前日期 Linux 的内核很多都 5.x,各方面考虑还是有必要升级一下的,内核可以从这里直接下载:https://www.kernel.org/2.使用ELRepo仓库这里使用ELRepo仓库,ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise(RHEL)和其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。网址:http://elrepo.org/tiki/tiki-index.php :导入ELRepo仓库的公共密钥:# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org安装ELRepo仓库的yum源:# yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm可用的系统内核安装包:# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available Last metadata expiration check: 0:25:21 ago on Tue 14 Dec 2021 02:15:01 PM CST. Available Packages bpftool.x86_64 5.15.7-1.el8.elrepo elrepo-kernel kernel-lt.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-core.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-devel.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-doc.noarch 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-headers.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-modules.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-modules-extra.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-tools.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 5.4.164-1.el8.elrepo elrepo-kernel kernel-ml-devel.x86_64 5.15.7-1.el8.elrepo elrepo-kernel kernel-ml-doc.noarch 5.15.7-1.el8.elrepo elrepo-kernel kernel-ml-headers.x86_64 5.15.7-1.el8.elrepo elrepo-kernel kernel-ml-modules-extra.x86_64 5.15.7-1.el8.elrepo elrepo-kernel kernel-ml-tools.x86_64 5.15.7-1.el8.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 5.15.7-1.el8.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 5.15.7-1.el8.elrepo elrepo-kernel perf.x86_64 5.15.7-1.el8.elrepo elrepo-kernel python3-perf.x86_64 5.15.7-1.el8.elrepo elrepo-kernel3.安装最新版内核# yum --enablerepo=elrepo-kernel install kernel-ml4.设置以新的内核启动0 表示最新安装的内核,设置为 0 表示以新版本内核启动:# grub2-set-default 0以后不需要第5步,直接使用这条指定不同数字设置不同内核版本启动。5.生成grub配置文件并重启系统# grub2-mkconfig -o /boot/grub2/grub.cfg # reboot这一步可以不用执行生成grub配置的命令,直接重启!6.验证新内核$ uname -r 5.15.7-1.el8.elrepo.x86_647.查看系统中已安装的内核可以看到这里一共安装了2个版本的内核,分别是 v4.18.0-305.3.1和v5.15.7-1。# rpm -qa | grep kernel kernel-ml-modules-5.15.7-1.el8.elrepo.x86_64 kernel-headers-4.18.0-305.3.1.el8.x86_64 kernel-4.18.0-305.3.1.el8.x86_64 kernel-tools-4.18.0-305.3.1.el8.x86_64 kernel-devel-4.18.0-305.3.1.el8.x86_64 kernel-ml-core-5.15.7-1.el8.elrepo.x86_64 kernel-core-4.18.0-305.3.1.el8.x86_64 kernel-modules-4.18.0-305.3.1.el8.x86_64 kernel-tools-libs-4.18.0-305.3.1.el8.x86_64 kernel-ml-5.15.7-1.el8.elrepo.x86_648.删除旧内核删除旧内核,这一步是可选的。# yum remove kernel-core-4.18.0 kernel-devel-4.18.0 kernel-tools-libs-4.18.0 kernel-headers-4.18.0再查看系统已安装的内核,确认旧内核版本已经全部删除:# rpm -qa | grep kernel kernel-ml-modules-5.15.7-1.el8.elrepo.x86_64 kernel-ml-core-5.15.7-1.el8.elrepo.x86_64 kernel-ml-5.15.7-1.el8.elrepo.x86_64也可以安装yum-utils工具,当系统安装的内核大于3个时,会自动删除旧的内核版本:# yum install yum-utils删除旧的版本使用 package-cleanup 命令。9.参考文献ELRepo官网:http://elrepo.org/tiki/index.phpCentos7升级内核版本:https://www.cnblogs.com/xzkzzz/p/9627658.html参考 © CSDN
2021年12月14日
32 阅读
0 评论
0 点赞
2021-12-13
Wordpress搬家换域名后的相关操作
打开根目录下wp-config.php找到WordPress数据库的名称: define('DB_NAME', '填写你的数据库名称'); MySQL数据库用户名: define('DB_USER', '填写你的数据库账号'); MySQL数据库密码: define('DB_PASSWORD', '填写你的数据库密码');登陆phpMyAdmin,点sql进去,把旧域名改成新域名执行即可UPDATE wp_posts SET post_content = replace( post_content, '旧域名','新域名') ; UPDATE wp_comments SET comment_content = replace(comment_content, '旧域名', '新域名') ; UPDATE wp_comments SET comment_author_url = replace(comment_author_url, '旧域名', '新域名') ; UPDATE wp_options SET option_value = replace( option_value , '旧域名','新域名') ;
2021年12月13日
21 阅读
0 评论
0 点赞
2021-12-12
解决Typecho无法正确显示Gravatar头像
因为某些原因在中国大陆Gravatar头像彻底无法进行访问。由于主题前端一般都可以设置第三方国内镜像源,所以没什么问题。而Typecho后台显示却无法正常加载,很是让人难受。解决方案一修改默认Gravatar头像地址为第三方国内镜像源从网站根目录进入/var/Typecho打开Common.php,找到名为gravatarUrl的function,大概在932行左右,可以用搜索功能查找一下。找到如下所示的代码:if (defined('__TYPECHO_GRAVATAR_PREFIX__')) { $url = __TYPECHO_GRAVATAR_PREFIX__; } else { $url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com'; $url .= '/avatar/'; }修改https://secure.gravatar.com为国内第三方镜像源地址,修改/avatar/为镜像源的文件夹,如此操作后台即可正常显示Gravatar头像。不要忘记https://和文件夹两侧的/以第一个镜像源为例,使用上文所述的方法修改完后的结果为:if (defined('__TYPECHO_GRAVATAR_PREFIX__')) { $url = __TYPECHO_GRAVATAR_PREFIX__; } else { $url = $isSecure ? 'https://sdn.geekzu.org' : 'http://www.gravatar.com'; $url .= '/avatar/'; }解决方案二直接打开Typecho安装目录下的config.inc.php文件,加入以下代码即可(加在任何位置都可)define('__TYPECHO_GRAVATAR_PREFIX__', 'https://sdn.geekzu.org/avatar/');示例推荐第三方国内镜像源:https://sdn.geekzu.org/avatar/ (推荐)https://dn-qiniu-avatar.qbox.me/avatar/https://cdn.v2ex.com/gravatar/https://gravatar.loli.net/avatar/参考自© 呆小萌_Dream
2021年12月12日
54 阅读
0 评论
0 点赞
2021-12-11
Linux下的tar解压缩命令相关讲解
linux下tar gz bz2 tgz z等众多压缩文件的压缩与解压方法,需要的朋友可以参考下Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法:tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下:# tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 # tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 # tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思 # tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思 以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等。1、tar调用gzipgzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:# tar -czf all.tar.gz *.jpg 这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz # tar -xzf all.tar.gz 这条命令是将上面产生的包解开。2、tar调用bzip2bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:# tar -cjf all.tar.bz2 *.jpg 这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2 # tar -xjf all.tar.bz2 这条命令是将上面产生的包解开。 3、tar调用compresscompress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是bzip2压缩的结果。与 compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用compress。下面来举例说明一下:# tar -cZf all.tar.Z *.jpg 这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成一个uncompress压缩过的包,包名为all.tar.Z # tar -xZf all.tar.Z 这条命令是将上面产生的包解开 有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:对于.tar结尾的文件 tar -xf all.tar 对于.gz结尾的文件 gzip -d all.gz gunzip all.gz 对于.tgz或.tar.gz结尾的文件 tar -xzf all.tar.gz tar -xzf all.tgz 对于.bz2结尾的文件 bzip2 -d all.bz2 bunzip2 all.bz2 对于tar.bz2结尾的文件 tar -xjf all.tar.bz2 对于.Z结尾的文件 uncompress all.Z 对于.tar.Z结尾的文件 tar -xZf all.tar.z 另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们:1.对于.ziplinux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:# zip all.zip *.jpg 这条命令是将所有.jpg的文件压缩成一个zip包 # unzip all.zip 这条命令是将all.zip中的所有文件解压出来 2.对于.rar要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux 不是免费的;可从http://www.rarsoft.com/download.htm下载RARfor Linux 3.2.0,然后安装:# tar -xzpvf rarlinux-3.2.0.tar.gz # cd rar # make 这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar 是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:# rar a all *.jpg 这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar扩展名将自动附加到包名后。 # unrar e all.rar 这条命令是将all.rar中的所有文件解压出来 到此为至,我们已经介绍过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress 、 uncompress、 zip、unzip、rar、unrar等程式,你应该已经能够使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、. Z、.tar.Z、.zip、.rar这10种压缩文件进行解压了,以后应该不需要为下载了一个软件而不知道如何在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。 本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz 、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、. tar.Z、.zip、.rar这10种压缩文件进行操作。以下补充tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 下面的参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 # tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 # tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 # tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思 # tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思压缩 tar –cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar.jpg tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz tar –cjf jpg.tar.bz2 *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 tar –cZf jpg.tar.Z *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z rar a jpg.rar *.jpg rar格式的压缩,需要先下载rar for linux zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux 解压tar –xvf file.tar // 解压 tar包 tar -xzvf file.tar.gz // 解压tar.gz tar -xjvf file.tar.bz2 // 解压 tar.bz2 tar –xZvf file.tar.Z // 解压tar.Z unrar e file.rar // 解压rar unzip file.zip // 解压zip 总结*.tar 用 tar –xvf 解压 *.gz 用 gzip -d或者gunzip 解压 *.tar.gz和*.tgz 用 tar –xzf 解压 *.bz2 用 bzip2 -d或者用bunzip2 解压 *.tar.bz2用tar –xjf 解压 *.Z 用 uncompress 解压 *.tar.Z 用tar –xZf 解压 *.rar 用 unrar e解压 *.zip 用 unzip 解压
2021年12月11日
39 阅读
0 评论
0 点赞
2021-12-11
Gravatar头像无法显示的解决方法
Wordpress的Gravatar头像都无法显示,解决办法方法1:安装WP-China-Yes最简单的方法是,安装WP-China-Yes插件解决,进入插件设置页面,在加速G家头像设置中勾选“全局”。方法2:手动修改 functions.php打开后台 – 外观 – 主题编辑器 – 找到 funcions.php 然后找个地方添加以下代码:add_filter('get_avatar', function ($avatar) { return str_replace([ 'www.gravatar.com/avatar/', '0.gravatar.com/avatar/', '1.gravatar.com/avatar/', '2.gravatar.com/avatar/', 'secure.gravatar.com/avatar/', 'cn.gravatar.com/avatar/' ], 'sdn.geekzu.org/avatar/', $avatar); });以下是其他的 Gravatar 的 CDN 镜像服务器,可以自行替换代码中的源极客族CDN:https://sdn.geekzu.org/七牛Gravatar:https://dn-qiniu-avatar.qbox.me/V2EX:https://cdn.v2ex.com/gravatar/LOLI:https://gravatar.loli.net/avatar/
2021年12月11日
55 阅读
0 评论
0 点赞
网站从Wordpress转换Typecho的方法
2021年12月10日
65 阅读
0 评论
0 点赞
2021-12-10
WordPress是当前最流行的博客程序,很多博客网站也都是用它来搭建的,但现在的WordPress越来越臃肿了。将网站从WordPress转换成Typecho的步骤:第一步:对原WordPress进行备份有两个方面,一是网站文件整体FTP到本地,二是备份数据库,可导出为 SQL 文件,或在博客后台导出为XML文件,建议两个都做,以防万一嘛。第二步:安装Typecho程序1、从Typecho官网下载程序,目前最新的稳定版为1.1(17.10.30)。2、按照安装文档指引安装 Typecho,其实也挺简单的,注意填写正确的数据库地址、名称、用户名和密码,其他都按默认值即可。3、进入后台进行必要的配置。如“设置”>>“永久链接”,根据你原来的结构,设定“自定义文章路径”和“分类路径”,以保证文章网址不会变化,防止链接失效影响 SEO。第三步:转换WordPress数据库1、安装转换插件wordpress-to-typecho(点此直接下载),然后直接FTP到usr/themes/文件夹下。2、访问后台,在 “控制台”下拉菜单中进入“插件管理”,启用插件。然后点击插件的“设置”进入配置,在设置中填写正确的数据库信息,保存设置。3、在“控制台”下来菜单中会出现“从WordPress导入数据”,选中并确认导入信息无误后确认导入。如果失败请确认你的数据库等设置。提示:在完成导入之后可以禁用该插件。第四步:还原文章的图片、附件1、将WordPress的wp-content/uploads目录下的附件全部移动到Typecho的usr/uploads目录下,保持目录结构不变。2、在phpmyadmin中执行以下代码以完成图片路径的替换:update typecho_contents set text=replace(text,'wp-content/uploads','usr/uploads')第五步:调整博客导入数据库文件后,你会发现原来WordPress站点的文章、分类、标签、评论都完美导入到Typecho站点了,但网站标题、副标题都没有,此时就需要我们在“设置”>>“基本”中添加。
2021-12-10
Typecho更改域名后数据库修改
修改typecho_options表将网站的设置里的域名替换成新的域名:UPDATE `typecho_options` SET `value` = '新域名地址' WHERE `typecho_options`.`name` = 'siteUrl' AND `typecho_options`.`user` =0;修改typecho_contents表将网站文章里的旧域名替换成新的域名:UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'旧域名地址','新域名地址');修改typecho_users表将管理员的个人网站进行替换UPDATE `typecho_users` SET `url` = REPLACE(`url`,'旧域名地址','新域名地址');修改typecho_comments表对评论中的管理员的域名,和评论中的旧域名进行替换UPDATE `typecho_comments` SET `url` = REPLACE(`url`,'旧域名地址','新域名地址'); UPDATE `typecho_comments` SET `text` = REPLACE(`text`,'旧域名地址','新域名地址');如果使用的域名邮箱,也建议进行更换UPDATE `typecho_comments` SET `mail` = REPLACE(`mail`,'旧域名地址','新域名地址');
2021年12月10日
53 阅读
0 评论
0 点赞
Typecho主题Brave
2021年12月07日
122 阅读
0 评论
0 点赞
2021-12-07
一个很洒狗粮的Typecho模板。Typecho主题Brave Brave主题是一款适合正在搞对象的博主使用,具有计时器、留言板、恋爱清单、点点滴滴记录等功能。主题详情:[点击直达主题作者页面]
1
2
3
...
8