# 图片回复
哈哈哈哈哈哈
这篇文章不错!
这篇文章不错!
作者对主题的挖掘深入骨髓,展现了非凡的洞察力和理解力。
情感真挚自然,字里行间传递出强烈的感染力。
作者的情感表达细腻入微,让人在阅读中找到了心灵的慰藉。
内容的丰富性和深度让人仿佛置身于知识的海洋,受益匪浅。
# 图片回复
你的文章让我感受到了正能量,非常棒! https://www.4006400989.com/qyvideo/93624.html
你的文章充满了智慧,让人敬佩。 https://www.yonboz.com/video/12554.html
你的文章让我感受到了正能量,非常棒! https://www.4006400989.com/qyvideo/82001.html
你的文章充满了智慧,让人敬佩。 https://www.yonboz.com/video/83913.html
首页
网站统计
关于本站
在线留言
友链申请
高清壁纸
论坛
开往
虫洞
推荐
Linux命令
资源网
Search
1
Typecho Cuteen主题美化
5,391 阅读
2
好久不见之网站底部样式
4,910 阅读
3
京东呆瓜搭建青龙面板+xdd-plus机器人+nvjdc配置
4,884 阅读
4
傻妞机器人最新版安装教程
4,453 阅读
5
Joe 主题 6.xx 底部增强,显示标签及二维码分享
3,359 阅读
Linux
Shell
Mysql
Typecho
网络
其他
Redis
登录
Search
标签搜索
Linux
Typecho
美化
Nginx
Shell
综合架构
Mysql
Joe
源码
Web
数据备份
命令
Ansible
k8s
定时任务
视频
网易云
白嫖
网络
Rsync
小黑
累计撰写
155
篇文章
累计收到
923
条评论
博主
5月27日
在线
首页
栏目
Linux
Shell
Mysql
Typecho
网络
其他
Redis
页面
网站统计
关于本站
在线留言
友链申请
高清壁纸
推荐
Linux命令
资源网
开往
搜索到
155
篇与
罗小黑
的结果
2021-04-13
三剑客命令
{mtitle title="三剑客命令"/}find 命令语法find 查找的目录 -type 类型信息 -name "文件名"find /etc -type f -name "hosts" find /etc -type f -name "*eth0" #模糊查找,文件名记不清 find /etc -type f -i -name "if*" #忽略大小写 根据数据大小查找 find /etc -type f -size +100 #找出大于100k文件 find /etc -type f -size -100 #找出小于100k文件 find /etc -type f -size +1M #找出大于1m文件 根据目录指定层级查找 find /etc -maxdepth 1 -type f -name "123.txt" 如何把一个目录中所有“*.txt”文件进行压缩 find /home -type f -name "*.txt"|xargs tar -zcvf /home/home.tar.gz 如何找出/home目录中".txt"文件进行删除 1、find /home -type f -name "*.txt" -delete 2、find /home -type f -name "*.txt" -exec rm-f {} \; 3、find /home -type f -name "*.txt"|xargs rm -f 4、rm -rf $(find /home -type f -name "*.txt") 如何找出/home目录中".txt"文件进行文件复制/移动 find /home -type f -name "*.txt" -exec cp {} /tmp \; find /home -type f -name "*.txt" |xargs cp -t /tmp find /home -type f -name "*.txt" -exec mv {} /tmp \;元字符功能意思^匹配行首表示以某个字符开头$匹配行尾表示以某个字符结尾^$空行的意思表示空行的意思.匹配任意单个字符表示任意一个字符*字符* 匹配0或多个此字符表示重复的任意多个字符\屏蔽一个元字符的特殊含义表示去掉有意义的元字符的含义[]匹配中括号内的字符表示过滤括号内的字符.*代表任意多个字符就是代表任意多个字符lele{n}用来匹配前面lele出现次数。n为次数就是统计前面lele出现的次数lele{n,}含义同上,但次数最少为n从功能就可以看出lele{n,m}义同上,但lele出现次数在n与m之间从功能就可以看出lele{n,m}义同上,但lele出现次数在n与m之间从功能也可以看出三剑客的功能非常强大,但我们只需要掌握他们分别擅长的领域即可:grep擅长查找功能,sed擅长取行和替换。awk擅长取列。grep命令文本过滤(模式:pattern)工具,grep, egrepgrep [OPTIONS] PATTERN [FILE...]--color=auto 对匹配到的文本着色显示 -v 显示不被pattern匹配到的行 -i 忽略字符大小写 -n 显示匹配的行号 -c 统计匹配的行数 -o 仅显示匹配到的字符串 -q 静默模式,不输出任何信息 -A # after, 后#行 -B # before, 前#行 -C # context, 前后各#行 -e 实现多个选项间的逻辑or关系 grep –e ‘cat ’ -e ‘dog’ file -w 匹配整个单词 -E 使用ERE,相当于egrep -F 相当于fgrep,不支持正则表达式找出123开头的行grep "^123" 文件找出456结尾的行grep "456$" 文件找出全部内容显示,不显示空行grep -v "^$" 文件系统的正则符号基础正则符号:1)点符号:.匹配一个字符且只有一个字符grep "." ~/test.txtgrep "." ~/test.txt -o #-o 显示匹配过程2)星号:*匹配一个字符连续出现30次或者多次grep "0*" test.txt3)点星组合grep ".*" 123.txt grep "^m.*n$" 123.txt贪婪匹配grep "^r.*x$" 123.txt #这种情况会把文件中从第一个r开头一直x结尾的匹配出来,中间如果有两三个x,也会被匹配出来 指定具体信息阻止贪婪匹配 grep "^r.*wex" 123.txt4)括号符号[]匹配多个信息grep "te[as]t" test.txt #找出teat和test5)括号和尖号[^]grep "[abc]" /test.txt #找出abc的行 grep "[^abc]" /test.txt #找出abc以外的行 grep "^[^abc]" /test.txt #排出abc以外的行扩展正则符号默认grep、sed不能直接识别grep ——> egrep /grep -Esed ——> sed -r+号符号匹配前一个字符连接出现1次或者多此egrep "0+" test.txt|匹配多个信息grep -E "123|456" test.txtgrep -E "te[as]t" test.txt符号括号:()作用:1、指定信息进行整体匹配grep -E "wqe(as)d" test.txtsedsed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’ 的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed [option]... 'script' inputfile选项 -n 不输出模式空间内容到屏幕,即不自动打印 -e 多点编辑 -f /PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本 -r 支持使用扩展正则表达式 -i 直接编辑文件 -i.bak 备份文件并原处编辑 script 地址定界 不给地址:对全文进行处理 单地址: #: 指定的行,$:最后一行 /pattern/:被此处模式所能够匹配到的每一行 地址范围: #,# #,+# /pat1/,/pat2/ `#,/pat1/ ~:步进 1~2 奇数行 2~2 偶数行 编辑命令: d 删除模式空间匹配的行,并立即启用下一轮循环 p 打印当前模式空间内容,追加到默认输出之后 a [\]text1 在指定行后面追加文本,支持使用\n实现多行追加 i [\]text 在行前面插入文本 c [\]text 替换行为单行或多行文本 w /path/somefile 保存模式匹配的行至指定文件 r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后 = 为模式空间中的行打印行号 ! 模式空间中匹配行取反处理 s///:查找替换,支持使用其它分隔符,s@@@,s### 替换标记: g 行内全局替换 p 显示替换成功的行 w /PATH/TO/SOMEFILE 将替换成功的行保存至文件中 直接修改读取的文件内容,而不是输出到终端。 s :取代,可以直接进行取代的工作。 g: 是全局的意思。其中#是格式符,他也可以是@或者别的/。 Sed替换格式是:sed -i 's/要替换的内容/替换成的内容/g' 文件名。1、找出文件中有test行的信息sed -n '/test/' test.txt2、在test前面添加123,在test后面添加456信息sed -e '/test/i123 -e /test/456' /test.txt3、sed删除命令sed '3d' test.txt #删除前三行 sed '2,6d' test.txt #删除多行 sed '/test/d' test.txt #删除test行 sed '3d;6d' test.txt #删除3行和6行4、利用sed命令取消空行显示sed -n '/^$/!p' test.txt sed -n '/./p' test.txt sed '/^$/d' test.txt5、修改内容sed 's#原有的内容#修改的内容#g' 文件PS:修改文件内容直接备份sed -i .bak 's#xxx#yyy#g' test.txtn和i参数同时使用会将文件内容清空6、批量修改文件扩展名:将test.txt扩展名修改为.pngls test*.txt|sed -r 's#(.*)txt#mv&\|png#g' |bash 专业命令 rename 'txt .png text.txt 命令 文件名称需要修改的部分信息 修改的信息 文件awk命令作用:(1) 排除信息(2) 查询信息(3) 统计信息(4) 替换信息语法格式 awk [参数] '模式-动作' 文件查询信息awk 'NR==2' test.txt #显示第二行 awk 'NR==2, NR==4' test.txt #显示二到四行 awk 'NR==2; NR==4' test.txt #显示二和四行 awk '/wang/' test.txt #显示wang行 awk '/wang/,/666/' test.txt #显示有wang的行到有666行 awk '/wang/;/666/' test.txt #显示wang行和666行 awk '/wang/ {print $1 $3}' test.txt #显示有wang行的第一列和第三列内容 awk '/wang/ {print $1 "," $3}' test.txt #同上文件空行进行排除/注释排除grep -E "^#|^$" 文件 sed -n '/^#|^$/!p' 文件 awk '$0~/^#|^$/' 文件 awk '$0!~/^#|^$' 文件总结:awk命令中$符号$1,$2,$3 :取第几列信息$NF :取最后一列$(NF-n) :取倒数第n列$0 :取所有列的信息,只显示一行正则表达式与操作符awk同sed一样也可以通过模式匹配来对输入的文本进行匹配处理。awk也支持大量的正则表达式模式,大部分与sed支持的元字符类似,而且正则表达式是玩转三剑客的必备工具。awk支持的正则表达式元字符 BEGIN {} 在awk执行命令前做什么事情BEGIN模块在awk读取文件之前就执行,BEGIN模式常常被用来修改内置变量ORS,RS,FS,OFS等的值。可以不接任何输入文件[root@creditease awk]# awk 'BEGIN{print "=======start======"}{print $0}' awk.txt =======start====== ABC#DEF#GHI#GKL$123 BAC#DEF#GHI#GKL$213 CBA#DEF#GHI#GKL$321END {} 在awk执行命令结束后做什么事情END在awk读取完所有的文件的时候,再执行END模块,一般用来输出一个结果(累加,数组结果)。也可以是和BEGIN模块类似的结尾标识信息。[root@creditease awk]# awk 'BEGIN{print "=======start======"}{print $0}END{print "=======end======"}' awk.txt =======start====== ABC#DEF#GHI#GKL$123 BAC#DEF#GHI#GKL$213 CBA#DEF#GHI#GKL$321 =======end======统计/etc/services 文件的#号开头的行awk '/^#/ {i=i++;print i}' /etc/services 或者 [root@creditease awk]# grep "^$" /etc/services |wc -l 17 [root@creditease awk]# sed -n '/^$/p' /etc/services |wc -l 17 [root@creditease awk]# awk '/^$/' /etc/services |wc -l 17 [root@creditease awk]# awk '/^$/{i=i+1}END{print i}' /etc/services 17统计有多少个虚拟用户和普通用户普通:awk '$NF~/bash/ {i=i++}END{print i}' /etc/passwd 虚拟:awk '$NF!~/bash/ {i=i++}END{print i}' /etc/passwd求和计算sum =sum+$nseq 10|awk '{sum=sum+$1;print sum}' [root@creditease awk]# seq 100|awk '{i=i+$0}END{print i}' 5050
2021年04月13日
402 阅读
0 评论
0 点赞
2021-04-12
Linux 命令
{mtitle title="Linux常用命令(centos 7 为例)"/}1、查看网络地址配置ip address show 或者 ip a centos 7 以前版本命令是 ifconfig2、ping 命令3、图形化界面修改网卡信息 nmtui4、网卡服务命令systemctl start network #启动网卡 systemctl restart network #重启命令 systemctl enable network #开机自动开启 systemctl disable network #开机不开启 systemctl stop network #停止网卡 systemctl status network #查看状态 service restart network #这是centos7 以前的版本5、关机命令命令意思shutdown关机shutdown -h 5指定5分钟后关机shutdown -c取消关机shutdown -h now/0立即关机halt/poweroff直接关机6、重启命令命令意思reboot直接重启shutdown -r now/0立即重启shutdown -r 55分钟后重启7、查看命令ls 文件或目录路径信息 ls -d 查看目录信息 ls -l 文件或目录信息 查看数据的属性信息 ls -la 目录信息 查看目录中隐藏文件 ls -lt 目录信息 将目录中的信息按照时间进行排序显示 ls -ltr 目录信息 按照时间信息,进行反向排序 ls -lh 数据信息 显示的数据信息大小,以人类可读方式显示8、创建命令mkdir 创建目录 mkdir -p 创建多级目录 touch 创建文件9、编辑文件命令vim(vi) i --- 进入编辑模式 esc --- 退出编辑模式 :wq --- 保存并退出 :w :q :wq!--- 强制保存退出 :q! --- 强制退出 命令模式-->插入模式 i --- 表示从光标所在位置进入编辑状态 I --- 表示将光标移动到一行的行首,再进入编辑状态 o --- 在光标所在行的下面,新起一行进行编辑 O --- 在光变所在行的上面,新起一行进行编辑 a --- 将光标移动到右边的下一个字符,进行编辑 A --- 将光标移动到一行的行尾,进入到编辑状态 C --- 将光标到行尾内容进行删除,并进入编辑状态 cc --- 将整行内容进行删除并进入编辑状态 总结:移动光标位置,并进入编辑状态方法 只移动光标,不进入编辑状态 大写字母G 将光标快速切换尾部 小写字母gg 将光标快速切换首部 ngg n表示移动到第几行 $ 将光标移动到一行的结尾 0/^ 将光标移动到一行的行首 命令模式--底行模式 : 输入一些命令 / 进入搜索状态(向下搜索 n依次向下) ? 进入搜索状态(向上搜索 n依次向上) 特殊使用技巧: 将一行内容进行删除(剪切) deletedelete=dd 将多行内容进行删除(剪切) 3dd 将内容进行粘贴 p 粘贴多次内容 3p 复制一行内容 yy 复制多行内容 3yy 操作错误如何还原 小写字母u undo10、echo命令echo "123" >1.txt 覆盖 echo "123" >>1.txt 追加11、查看文件内容cat 1.txt12、复制命令cp 文件 路径 cp -r 复制一个目录 \cp -r 强行复制一个目录13、删除命令rm 或者\rm(无确认) rm -f 强制删除文件 rm -rf 强制删除目录 \rm -r(无提示)14、移动命令mv 移动文件(重命名)15、挂载命令mount +存储设备文件+挂载点 umount +挂载点16、修改主机名hostnamectl set-hostname+主机名 直接修改 vim /etc/hostname 永久修改 hostname +主机名 临时修改17、查看磁盘挂载情况/使用情况df df -hPS:开机自动挂载blkid 查看磁盘信息vim /etc/fstab之后启动sshd18、开机加载文件/etc/rc.localrc.local的作用文件中的内容信息,会在系统启动之后进行加载文件中编写内容,一定是命令信息19、系统运行级别runlever20、查看命令路径which which cat21、加载配置文件信息source 立即加载文件配置信息 /etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile /etc/sysconfig/i18n --- centos6字符集配置文件 /etc/locale.conf --- centos7字符集配置文件22、exportexport 定义环境变量 export 环境变量=xxx23、alias 设置系统别名alias 别名=’命令信息’ alias catnet=’/etc/sysconfig/network-scripts/ifcfg-eth0’ unalias 取消系统别名 unalias 别名 unalias catnet24、查看文件部分内容head -5 查看前5行内容 tail -5 查看后5行内容 tail -f 一直追踪查看文件内容变化 tail -f /var/log/secure 一直查看安全日志文件25、安装命令yum install -y 名称 直接安装软件 yum groupinstall -y 包组名称 直接安装软件包组 yum repolist 查看yum源信息 yum list 查看哪些软件可以安装/查看所有系统已安装的软件 yum grouplist 查看哪些软件包组可以安装/查看所有系统已安装的软件包组 yum --help help参数可以只显示命令的参数帮助信息 yum provides locate 获取命令属于哪个软件大礼包26、查看系统进程信息ps -ef 查看所有详细进程信息27、删除进程kill pid 删除指定pid号的进程 kill -9 pid 强制删除28、查看内存free free -h29、查看CPUlscpu30、查看负载信息/系统用户登录信息w31、创建用户useradd 用户名32、切换用户su -用户名33、设置密码passwd 用户名34、查看用户是否存在id 用户35、确认用户身份whoami36、rpm命令rpm 管理软件程序包的 rpm -qa 软件名称 查看软件大礼包是否安装成功 rpm -ql 软件名称 查看软件大礼包中都有什么 rpm -qf 文件名称(绝对路径) 查看文件属于哪个软件大礼包 rpm -e 软件名称 卸载软件37、systemctl 管理服务程序的运行状态systemctl start 服务名称 启动服务 systemctl stop 服务名称 停止服务 systemctl restart 服务名称 重启服务 systemctl status 服务名称 查看服务详细运行状态 systemctl disable 服务名称 让服务开机不运行 systemctl enable 服务名称 让服务开机运行 systemctl is-enable 服务名称 检查服务是否开机运行 systemctl is-active 服务名称 检查确认服务是否运行38、修改字符集localectl set-locale LANG=zh_GH.UTF839、less/more 逐行或逐页查看文件信息内容40、whereis 查看命令所在路径以及命令相关手册文件所在路径41、locate 查看文件所在路径信息updatedb 更新文件所在路径的索引数据库表 42、file 查看文件的类型file 文件信息 43、stat 查看数据详细属性信息stat file.txt 看到文件的三个时间信息 44、tar 压缩数据命令-z 压缩类型 -c 创建压缩包 -v 显示过程 -f 指定压缩文件路径 -x 解压文件 -t 查看压缩文件内容 --exclude 排除指定文件不被压缩处理 --exclude-from45、xargs 分组命令 按照分组显示args -n1 <文件 总结: < tr xxx < xargs < 46、tree 显示目录结构树tree -L 1 查看下几级目录机构 tree -d 目录结构中目录信息47、date 查看时间信息和修改时间信息date "+%F_%T" date -s 设置系统时间 date -d 显示未来或过去的时间信息48、ln 创建链接文件ln 源文件 链接文件 创建硬链接 ln -s 创建软链接49、wc 统计命令wc -l 统计有多少行50、chmod 修改文件目录数据权限信息chmod u/g/o chmod a 51、useradd 创建用户命令-s /sbin/nologin 指定用户shell登录方式 -M 不创建家目录 -u 指定用户uid信息 -g 指定用户所属主要组信息 -G 指定用户所属附属组信息 -c 指定用户注释信息52、usermod 修改用户信息-s /sbin/nologin 指定用户shell登录方式 -u 指定用户uid信息 -g 指定用户所属主要组信息 -G 指定用户所属附属组信息 -c 指定用户注释信息 53、userdel 删除用户信息userdel -r 彻底删除用户和家目录信息54、groupadd 创建用户组groupmod 修改用户组 groupdel 删除用户组55、chown 修改用户属主和属组的信息chown -R 递归修改用户属主和属组信息56、sort 排序命令 sort -n 按照数值进行排序 sort -k1 按照指定列进行排序57、dd 模拟创建出指定大小的文件 dd if=/dev/zero of=/tmp/oldboy.txt bs=10M count=100 从哪取出数据 放到哪 占用1个block多少空间 总共使用多少个block58、du 查看目录的大小du -sh 汇总查看目录大小,以人类可读方式59、change directory==cd 切换目录命令 cd /xxx 绝对 cd xxx 相对 cd .. 上一级 cd ../../ 上多级 cd - 返回上一次所在路径 cd/cd ~ 返回到用户家目录高级命令:4剑客01、老四 find 查询文件所在路径 find /oldboy -type 文件类型 -name "文件名称" find /oldboy -type f -mtime +10 -delete --- 删除历史数据信息 find /oldboy -type f -size +10 -delete --- 删除大于10k文件 -maxdepth 查找目录层级的深度 -inum 根据文件inode信息查找 -exec 对查找出的数据进行相应处理 -perm 根据权限查找数据信息 -iname 忽略名称大小写02、老三 grep 文件 对信息进行过滤筛选 grep -B n 显示指定信息前几行内容 grep -A n 显示指定信息后几行内容 grep -C n 显示指定信息前后几行内容 grep -c 显示指定信息在文件中有多少行出现 grep -v 进行取反或者排除 grep -E/egrep 识别扩展正则符号 grep -o 显示过滤过程信息 grep -n 过滤信息并显示信息行号 grep -i 过滤信息忽略大小写03、sed 命令04、awk 命令系统中的常见环境变量1、 PATH 方便命令的使用 2、 PS1 定义提示符的信息或格式 快捷方式: 01、ctrl+c 中断命令执行操作过程 02、ctrl+l 清屏操作 03、ctrl+d 注销功能 04、tab 补全快捷键 补全目录路径或文件名称信息/命令 05、方向键上下 调取之前输入过的历史命令 06、ctrl+a 快速将光标移动到行首 a b c d 07、ctrl+e 快速将光标移动到行尾 08、ctrl+左右方向键 按照一个英文单词进行移动光标 09、esc+. 将上一个命令最后一个信息进行调取 10、ctrl+u 将光标所在位置到行首内容进行删除(剪切) 11、ctrl+k 将光标所在位置到行尾内容进行删除(剪切) 12、ctrl+y 粘贴剪切的内容 13、ctrl+s xshell进入到了锁定状态 suo锁 14、ctrl+q 解除锁定状态 quit推出锁定状态 15、ctrl+r 快速搜索历史命令 系统特殊符号~ 家目录符号 .. 上一级目录 . 当前目录 > 标准输出重定向符号 >> 标准输出追加重定向符号 2> 错误输出重定向符号 2>> 错误输出追加重定向符号 < 标准输入重定向符号 << 标准输入追加重定向符号 && 代表前一个命令执行成功后,再执行后面的命令 ; 代表前一个命令执行之后,再执行后面的命令 # 代表将配置文件信息进行注释 在命令提示符中表示超级管理员身份 $ 用于加载读取变量信息 表示一行的结尾 在命令提示符中表示普通用户身份 ! 强制 ``反引号 将引号中命令执行结果交给引号外面的命令进行处理 | 管道符号 将前一个命令的结果交给管道后面命令进行处理 {} 序列符号(通配符) 通配符号,显示数字或字母的序列信息
2021年04月12日
1,711 阅读
15 评论
5 点赞
2021-04-09
舔狗日记
{mtitle title="舔狗日记"/} 代码<div id="post-content" class="wrapper-lg"> <div class="entry-content l-h-2x" id="md_handsome_origin" click_status="true"><p><iframe align="center" width="100%" height="680px" src="https://www.aiyo99.com/tiankongren/index.html" frameborder="no" border="0" scrolling="no" marginwidth="0" marginheight="0"></iframe></p></div> </div>
2021年04月09日
535 阅读
3 评论
1 点赞
2021-04-06
合成大西瓜
合成大西瓜,游戏本身非常有趣,玩法简单,就是俄罗斯方块、2048、水果忍者的结合,控制水果的下落,相同的两个水果会合成更大的水果,然后消除,并发出溅射效果。 点击试玩 {mtitle title="源码下载"/}https://wws.lanzous.com/igvQBnqi82h隐藏内容,请前往内页查看详情
2021年04月06日
503 阅读
3 评论
3 点赞
2021-04-05
Joe主题海报插件美化
生成海报
2021年04月05日
2,248 阅读
28 评论
14 点赞
2021-04-04
Shell 脚本的条件测试与比较
{mtitle title="条件测试常用语法"/}Shell脚本条件测试语法说明test利用test命令进行条件测试[]通过[]进行条件测试[[]]通过[[]]进行条件测试(())通过(())进行条件测试test语法test -f file && echo true || echo false #存在输出true,不存在输出false[]语法[ -f /tmp/123.txt ] && echo 1 || echo 0 #存在输出1,不存在输出0[[]]语法[[ -f /tmp/123.txt ]] &&echo 1 || echo 0 #存在输出1,不存在输出0文件测试表达式{mtitle title="常用的文件测试符"/}文件测试操作符说明-d 文件文件存在且为目录为真,及测试表达式成立-f 文件文件存在且为普通文件为真,及测试表达式成立-e 文件文件存在即为真,则表达式成立,不区别文件和目录-r 文件文件存在且可读为真,及测试表达式成立-w 文件文件存在且可写为真,及测试表达式成立-x 文件文件存在且可执行为真,及测试表达式成立-s 文件文件存在且文件大小不为0为真,及测试表达式成立-L 文件文件存在且为链接文件为真,及测试表达式成立f1 -nt f2文件f1比文件f2新则为真,即表达式成立,根据文件的修改时间来计算f1 -ot f2文件f1比文件f2旧则为真,即表达式成立,根据文件的修改时间来计算字符串测试表达式{mtitle title="字符串测试符"/}字符串测试符说明-n "字符串"若字符串不为“0”,则为真,即表达式成立-z "字符串"若字符串为“0”,则为真,即表达式成立"串1" = "串2"若字符串1等于字符串2,则为真,即表达式成立"串1" != "串2"若字符串1不等于字符串2,则为真,即表达式成立整数二次元比较符在[]以及test中使用的比较符在(())和[[]]中使用的比较符说明-eq==或者=相等-ne!=不相等-gt>大于-ge>=大于等于-lt<小于-le<=小于等于root@cs:/server/scripts# a1=98;a2=64 root@cs:/server/scripts# [ "$a1" -eq "$a2" ] && echo 1 || echo 00 root@cs:/server/scripts# [ "$a1" -ne "$a2" ] && echo 1 || echo 01 root@cs:/server/scripts# [ "$a1" -gt "$a2" ] && echo 1 || echo 01 root@cs:/server/scripts# [ "$a1" -lt "$a2" ] && echo 1 || echo 00逻辑操作符{mtitle title="逻辑操作符"/}在[]和test中使用的操作符在[[]]和(())中使用的操作符说明-a&&and,与,两端为真,则结果为真-o双竖线or,或,两端一个为真,则结果为真!!not,非,两端相反,则结果为真使用-a和&&时当左边为真,右边为假时,结果为假。当左边为假,右边为真时,结果为假。当左边为真,右边为真时,结果为真。当左边为假,右边为假时,结果为假。root@cs:/server/scripts# [ 5 -eq 6 -a 7 -ne 5 ] && echo 1 || echo 0 #5等于7?假 7不等于5? 真 结果为假 输出0 0 root@cs:/server/scripts# [ 5 -lt 6 -a 7 -ne 5 ] && echo 1 || echo 0 #5<7?真 7不等于5? 真 结果为真 输出1 1使用-o 或 双竖线时当左边为真,右边为假时,结果为真。当左边为假,右边为真时,结果为真。当左边为真,右边为真时,结果为真。当左边为假,右边为假时,结果为假。root@cs:/server/scripts# [ 5 -lt 6 -o 7 -ne 5 ] && echo 1 || echo 0 1 root@cs:/server/scripts# [ 5 -eq 6 -o 7 -ne 5 ] && echo 1 || echo 0 1 root@cs:/server/scripts# [ 5 -gt 6 -o 7 -lt 5 ] && echo 1 || echo 0 0root@cs:/server/scripts# f1=/etc/rc.local;f2=/etc/services root@cs:/server/scripts# echo -ne "$f1 $f2\n" /etc/rc.local /etc/services root@cs:/server/scripts# [ -f "$f1" -a -f "$f2" ] && echo 1 || echo 0 1 root@cs:/server/scripts# [ -f "$f1" -a -f "$f222" ] && echo 1 || echo 0 0 root@cs:/server/scripts# [ -f "$f1" -o -f "$f222" ] && echo 1 || echo 0 1 root@cs:/server/scripts# [ -f "$f111" -o -f "$f222" ] && echo 1 || echo 0 0 root@cs:/server/scripts# [ -f "$f1" ] && [ -f "$f2" ] && echo 1 || echo 0 1 root@cs:/server/scripts# a="test";b="echo" root@cs:/server/scripts# echo -eq "$a $b\n" -eq test echo\n root@cs:/server/scripts# echo -ne "$a $b\n" test echo root@cs:/server/scripts# [[ ! -n "$a" && "$a" = "$b" ]] && echo 0 || echo 1 1 root@cs:/server/scripts# [[ -z "$a" && "$a" != "$b" ]] && echo 0 || echo 1 1 root@cs:/server/scripts# [[ -z "$a" || "$a" != "$b" ]] && echo 0 || echo 1 0 root@cs:/server/scripts# [[ -z "$a" -o "$a" != "$b" ]] && echo 0 || echo 1 -bash: syntax error in conditional expression -bash: syntax error near `-o'root@cs:/server/scripts# m=21;n=38 root@cs:/server/scripts# [ $m -gt 20 -a $n -lt 30 ] && echo 1 || echo 0 0 root@cs:/server/scripts# [ $m -gt 20 ] && [ $n -lt 30 ] && echo 1 || echo 0 0 root@cs:/server/scripts# [ $m -gt 20 ] || [ $n -lt 30 ] && echo 1 || echo 0 1逻辑操作符输入或通过命令行输入一个数字,如果传入的数字等于1,就打印1,输入2,就打印2,输入其他数字就退出程序root@cs:/server/scripts# cat ljczf.sh #!/bin/bash read -p "please input num:" num [ "$num" = "1" ] && { echo 1 exit 0 } [ "$num" = "2" ] && { echo 2 exit 0 } [ "$num" != "1" -a "$num" != "2" ] && { echo error exit 1 }传参方式 root@cs:/server/scripts# cat ljczf1.sh #!/bin/bash echo "plase input num" num=$1 [ "$num" = "1" ] && { echo 1 exit 0 } [ "$num" = "2" ] && { echo 2 exit 0 } [ "$num" != "1" -a "$num" != "2" ] && { echo error exit 1 }比较两个整数的大小root@cs:/server/scripts# cat int.sh #!/bin/bash read -p "pls input two num:" num1 num2 [ -z "$num1" -a -z "$num2" ] && { echo error exit 1 } expr $num1 + 1 &>/dev/null RETVAL_n1=$? expr $num2 + 1 &>/dev/null RETVAL_n2=$? [ $RETVAL_n1 -eq 0 -a $RETVAL_n2 -eq 0 ] || { echo "pls input two num again" exit 2 } [ $num1 -lt $num2 ] && { echo "$num1 < $num2" exit 0 } [ $num1 -eq $num2 ] && { echo "$num1 = $num2" exit 0 } [ $num1 -gt $num2 ] && { echo "$num1 > $num2" } root@cs:/server/scripts# sh int.sh pls input two num:6 3 6 > 3 root@cs:/server/scripts# sh int.sh pls input two num:3 6 3 < 6 root@cs:/server/scripts# sh int.sh pls input two num:6 6 6 = 6 root@cs:/server/scripts# sh int.sh pls input two num:dd ff pls input two num again root@cs:/server/scripts# cat int1.sh #!/bin/bash num1=$1 num2=$2 [ $# -ne 2 ] && { echo "USAGE:$0 num1 num2" exit 1 } expr $num1 + 1 &>/dev/null RETVAL_n1=$? expr $num2 + 1 &>/dev/null RETVAL_n2=$? [ $RETVAL_n1 -eq 0 -a $RETVAL_n2 -eq 0 ] || { echo "pls input two num again" exit 2 } [ $num1 -lt $num2 ] && { echo "$num1 < $num2" exit 0 } [ $num1 -eq $num2 ] && { echo "$num1 = $num2" exit 0 } [ $num1 -gt $num2 ] && { echo "$num1 > $num2" } root@cs:/server/scripts# sh int1.sh 6 3 6 > 3 root@cs:/server/scripts# sh int1.sh 3 6 3 < 6 root@cs:/server/scripts# sh int1.sh 3 3 3 = 3 root@cs:/server/scripts# sh int1.sh dd ff pls input two num again
2021年04月04日
341 阅读
0 评论
0 点赞
2021-04-04
以爱之名
以爱之名
2021年04月04日
438 阅读
0 评论
6 点赞
2021-04-03
Shell:变量数值计算(下)
bc 命令用法如果没有安装bc,用下面命令进行安装centos systemctl intall -y bcUnbunt apt-get install -y bcroot@cs:/server/scripts# echo 3+5|bc 8 root@cs:/server/scripts# echo 3-5|bc -2 root@cs:/server/scripts# echo 3.6-5.2|bc -1.6 root@cs:/server/scripts# echo 3.6*5.2|bc 18.7 root@cs:/server/scripts# echo "scale=2;355/113"|bc 3.14 root@cs:/server/scripts# echo "scale=6;355/113"|bc 3.141592计算1-10的结果root@cs:/server/scripts# echo `seq -s "+" 10`=`seq -s "+" 10|bc` 1+2+3+4+5+6+7+8+9+10=55 root@cs:/server/scripts# echo `seq -s "+" 10`=$((`seq -s "+" 10`)) 1+2+3+4+5+6+7+8+9+10=55 root@cs:/server/scripts# echo `seq -s '+' 10`=$(echo $[`seq -s "+" 10`]) 1+2+3+4+5+6+7+8+9+10=55 awk实现计算root@cs:/server/scripts# echo "5.3 6.9"|awk '{print ($1+$2)}' 12.2 root@cs:/server/scripts# echo "5.3 6.9"|awk '{print ($1-$2)}' -1.6 root@cs:/server/scripts# echo "5.3 6.9"|awk '{print ($1*$2)}' 36.57 root@cs:/server/scripts# echo "5.3 6.9"|awk '{print ($1/$2)}' 0.768116$[]实现运算root@cs:/server/scripts# i=8 root@cs:/server/scripts# i=$[i+6] root@cs:/server/scripts# echo $i 14 root@cs:/server/scripts# echo $[i-5] 9 root@cs:/server/scripts# echo $[i*5] 70 root@cs:/server/scripts# echo $[i**5] 537824 root@cs:/server/scripts# echo $[i/5] 2 root@cs:/server/scripts# echo $[i%5] 4基于Shell 变量输入read 命令的运算实践root@cs:/server/scripts# cat test3.sh #!/bin.bash read -p "please input two:" a b echo "a+b=$(($a+$b))" echo "a-b=$(($a-$b))" echo "a*b=$(($a*$b))" echo "a/b=$(($a/$b))" echo "a**b=$(($a**$b))" echo "a%b=$(($a%$b))" echo "a++:$((a++))" echo "a=$a" echo "++a:$((++a))" echo "a=$a" echo "b--:$((--b))" echo "b=$b" echo "--b:$((--b))" echo "b=$b"执行结果root@cs:/server/scripts# sh test3.sh please input two:2 2 a+b=4 a-b=0 a*b=4 a/b=1 a**b=4 a%b=0 a++:2 a=3 ++a:4 a=4 b--:1 b=1 --b:0 b=0完善的代码root@cs:/server/scripts# cat test3.sh #!/bin.bash read -t 15 -p "please input two:" a b [ ${#a} -le 0 ]&&{ echo "the first num is null" exit 1 } [ ${#b} -le 0 ]&&{ echo "the first num is null" exit 1 } expr $a + 1 &>/dev/null REVTAL_A=$? expr $b + 1 &>/dev/null REVTAL_B=$? if [ $REVTAL_A -ne 0 -o $REVTAL_B -ne 0 ];then echo "one of the num is not num,pls input again." exit 1 fi echo "a+b=$(($a+$b))" echo "a-b=$(($a-$b))" echo "a*b=$(($a*$b))" echo "a/b=$(($a/$b))" echo "a**b=$(($a**$b))" echo "a%b=$(($a%$b))" echo "a++:$((a++))" echo "a=$a" echo "++a:$((++a))" echo "a=$a" echo "b--:$((--b))" echo "b=$b" echo "--b:$((--b))" echo "b=$b"运算结果root@cs:/server/scripts# sh test3.sh please input two:12 12 a+b=24 a-b=0 a*b=144 a/b=1 a**b=8916100448256 a%b=0 a++:12 a=13 ++a:14 a=14 b--:11 b=11 --b:10 b=10用传参方式进行运算
2021年04月03日
338 阅读
0 评论
0 点赞
2021-04-03
Shell:变量数值计算(上)
算数运算符{mtitle title="Shell常见的算数运算符"/}算数运算符意义+、-加法(正号)、减法(负号)*、/、%乘、除、取余**幂运算++、--增加及减少!、&&、双竖线逻辑非(取反)、逻辑与、逻辑或<、<=、>、=>比较符号(小于、小于等于、大于、大于等于)==、!=、=比较符号(等于、不相等、对于字符串“=”也可以表示等于)<<、>>向左移,向右移~、单竖线、&、^按位取反、按位异或、按位与、按位或=、+=、-=、*=、/=、%=赋值运算符{mtitle title="Shell中常见的算数运算命令"/}运算符与运算命令意义(())用于整数运算的常用命令let用于整数运算,类似于(())expr可用于整数运算bcLinux中的一个计算器程序(适合整数和小数运算)$[]用于整数运算awkawk既可以整数运算,也可以小数运算declare定义变量值和属性,-i参数可以用于定义整形变量,做运算(())运算用法root@cs:/server/scripts# echo $((8+2)) 10 root@cs:/server/scripts# echo $((8-2)) 6 root@cs:/server/scripts# echo $((8*2)) 16 root@cs:/server/scripts# echo $((8/2)) 4 root@cs:/server/scripts# echo $((8%2)) 0 root@cs:/server/scripts# echo $((8**2)) 64 root@cs:/server/scripts# ((i=6)) root@cs:/server/scripts# ((i=i*2)) root@cs:/server/scripts# echo $i 12 root@cs:/server/scripts# a=$((100*(100+1)/2)) root@cs:/server/scripts# echo $a 5050 root@cs:/server/scripts# echo $((100*(100+1)/2)) 5050 root@cs:/server/scripts# echo $((3<8)) 1 #1表示为真 root@cs:/server/scripts# echo $((1>8)) 0 #0表示为假{message type="warning"}PS:上面的数字及变量必须为整数,不能用小数和字符串{/message}(())运算的Shell脚本示例root@cs:/server/scripts# cat test.sh #!/bin/bash a=6 b=12 echo "a+b=$(($a+$b))" echo "a-b=$(($a-$b))" echo "a*b=$(($a*$b))" echo "a/b=$(($a/$b))" echo "a**b=$(($a**$b))" echo "a%b=$(($a%$b))" echo "a++:$((a++))" echo "a=$a" echo "++a:$((++a))" echo "a=$a" echo "b--:$((--b))" echo "b=$b" echo "--b:$((--b))" echo "b=$b"其执行结果root@cs:/server/scripts# sh test.sh a+b=18 a-b=-6 a*b=72 a/b=0 a**b=2176782336 a%b=6 a++:6 a=7 ++a:8 a=8 b--:11 b=11 --b:10 b=10通过命令行传参方式,实现混合运算root@cs:/server/scripts# cat test1.sh #!/bin/bash a=$1 b=$2 echo "a+b=$(($a+$b))" echo "a-b=$(($a-$b))" echo "a*b=$(($a*$b))" echo "a/b=$(($a/$b))" echo "a**b=$(($a**$b))" echo "a%b=$(($a%$b))" echo "a++:$((a++))" echo "a=$a" echo "++a:$((++a))" echo "a=$a" echo "b--:$((--b))" echo "b=$b" echo "--b:$((--b))" echo "b=$b"其执行结果root@cs:/server/scripts# sh test1.sh 8 4 a+b=12 a-b=4 a*b=32 a/b=2 a**b=4096 a%b=0 a++:8 a=9 ++a:10 a=10 b--:3 b=3 --b:2 b=2实现输入两个数进行加减乘除的计算器利用read命令读入功能root@cs:/server/scripts# cat jsq.sh #!/bin/bash print_usage(){ print "please enter an integer\n" exit 1 } read -p "Please input first number:" a if [ -n "`echo $a|set 's/[0-9]//g'`" ];then print_usage fi read -p "Please input first operators:" b if [ "${b}" != "+" ]&&[ "${b}" != "-" ]&&[ "${b}" != "*" ]&&[ "${b}" != "/" ];then print_usage exit 2 fi read -p "Please input first number:" c if [ -n "`echo $c|set 's/[0-9]//g'`" ];then print_usage fi echo "${a}${b}${c}=$((${a}${b}${c}))" 其输入结果为 root@cs:/server/scripts# sh jsq.sh Please input first number:6 Please input first operators:+ Please input first number:4 6+4=10 root@cs:/server/scripts# sh jsq.sh Please input first number:8 Please input first operators:- Please input first number:4 8-4=4利用命令行传参方式root@cs:/server/scripts# sh jsq1.sh 8 + 5 8+5=13 root@cs:/server/scripts# sh jsq1.sh 8 - 5 8-5=3 root@cs:/server/scripts# sh jsq1.sh 8 \* 5 #*号要转义 8*5=40 root@cs:/server/scripts# sh jsq1.sh 8 / 5 8/5=1let 运算用法root@cs:/server/scripts# i=8 root@cs:/server/scripts# i=i+8 root@cs:/server/scripts# echo $i i+8 root@cs:/server/scripts# unset i root@cs:/server/scripts# i=8 root@cs:/server/scripts# let i=i+8 root@cs:/server/scripts# echo $i 16提示:let i=i+8等同于 ((i=i+8)),不过后者效率高一些{mtitle title="示例"/}root@cs:/server/scripts# cat 04_03_test.sh #!/bin/bash CheckUrl(){ #定义一个函数 timeout=5 #定义wget访问的超出时间 fails=0 #初始化访问网站失败的次数记录变量,若失败达到两次,报警 success=0 #初始化访问网站成功的次数记录变量,如果为1 则表示成功,退出 while true #持续循环检测 do wget --timeout=$timeout --tries=1 https://www.xiaobai666.top -q -O /dev/null #wget访问测试 if [ $? -ne 0 ] #如果上述wget不成功,即返回值不为零,执行if语句 then let fails=fails+1 #失败加1 else let success+=1 #成功加1 fi if [ $success -ge 1 ] #如果成功次数大于等于1 then echo success exit 0 fi if [ $fails -ge 2 ] #如果失败的次数大于等于2 then Critical="sys is down." echo "$Critical|tee|mail -s $Critical" #3285884651@qq.com exit 2 fi done } CheckUrl执行结果root@cs:/server/scripts# sh 04_03_test.sh success root@cs:/server/scripts# sh -x 04_03_test.sh + CheckUrl + timeout=5 + fails=0 + success=0 + true + wget --timeout=5 --tries=1 https://www.xiaobai666.top -q -O /dev/null + '[' 0 -ne 0 ']' + let success+=1 + '[' 1 -ge 1 ']' + echo success success + exit 0expr命令用法root@cs:/server/scripts# expr 2 + 2 4 root@cs:/server/scripts# expr 2 - 2 0 root@cs:/server/scripts# expr 2 \* 2 4 root@cs:/server/scripts# expr 2 / 2 1expr配合变量计算root@cs:/server/scripts# i=5 root@cs:/server/scripts# i=$(expr $i + 6) root@cs:/server/scripts# echo $i 11 root@cs:/server/scripts# i=`expr $i + 6` root@cs:/server/scripts# echo $i 17{message type="warning"}PS:expr $i +6=$(expr $i + 6),不能用小数和字符串{/message}通过expr判断变量或者数字是否为整数root@cs:/server/scripts# i=8 root@cs:/server/scripts# expr $i + 6 &>/dev/null root@cs:/server/scripts# echo $? 0 root@cs:/server/scripts# i=skfhs root@cs:/server/scripts# expr $i + 6 &>/dev/null root@cs:/server/scripts# echo $? 2也可以通过echo $? 判断上个命令是否运行成功通过read 读入持续等待例子cat expr.sh #!/bin/bash while true do read -p "Please input:" num expr $num + 0 >/dev/null 2>&1 [ $? -eq 0 ]&& echo int || echo chars done 执行结果 root@cs:/server/scripts# sh expr.sh Please input:123 int Please input:ersfs chars Please input:hf chars Please input:456456 int将前文的混合运算,判断传参的个数及通过expr判断传入的参数是否为整数root@cs:/server/scripts# cat test2-2.sh #!=/bin/bash print_usage(){ echo "please input two number:" exit 1 } [ $# -ne 2 ] && { echo $"USAGE $0 NUM1 NUM2" exit 1 } a=$1 b=$2 expr $a + 1 >/dev/null RETVAL_A=$? expr $b + 1 >/dev/null RETVAL_B=$? if [ $RETVAL_A -ne 0 -o $RETVAL_B -ne 0 ] then echo "Please input two num" exit 2 fi echo "a+b=$(($a+$b))" echo "a-b=$(($a-$b))" echo "a*b=$(($a*$b))" echo "a/b=$(($a/$b))" echo "a**b=$(($a**$b))" echo "a%b=$(($a%$b))" echo "a++:$((a++))" echo "a=$a" echo "++a:$((++a))" echo "a=$a" echo "b--:$((--b))" echo "b=$b" echo "--b:$((--b))" echo "b=$b"执行结果root@cs:/server/scripts# sh test2-2.sh 6 3 a+b=9 a-b=3 a*b=18 a/b=2 a**b=216 a%b=0 a++:6 a=7 ++a:8 a=8 b--:2 b=2 --b:1 b=1通过espr计算字符串的长度root@cs:/server/scripts# char="are you ok" root@cs:/server/scripts# expr length "$char" 10 root@cs:/server/scripts# echo ${#char} 10 root@cs:/server/scripts# echo ${char}|awk '{print length($0)}' 10 root@cs:/server/scripts# echo ${char}|wc -L 10找出字符数不大于5的单词root@cs:/server/scripts# cat test2-3.sh #!/bin/bash for i in dhf gsh df adfs asdjkja do if [ `expr length $i` -le 5 ] then echo $i fi done执行结果root@cs:/server/scripts# sh test2-3.sh dhf gsh df adfs
2021年04月03日
510 阅读
0 评论
0 点赞
CDN加速导致typecho后台无限登录的问题
2021年04月02日
749 阅读
0 评论
6 点赞
2021-04-02
{mtitle title="后台登录不上的解决方"/}因为昨天套了腾讯云送的cdn导致博客的后台无限登录的情况,所以我直接果奔源站IP,不过我去找了群里面的大佬们,说叫我把CDN缓存设置一下就行了。所以我就在今天试了试,还真的成功了,后台可以登录了。(教程我以腾讯云的为列子,因为我的域名是在腾讯云买的,刚好他送了我的cdn,大家有免费CDN一定要用呀!.)进入正题第一步:登录 腾讯云官网 ,账号是你买域名的账号。第二步:在搜索框里面搜索"内容分发网络"之后进去找到刷新预热,选择url刷新。(http或者https,我的是 https://+域名)看图。刷新提交之后5分钟就好了。如果你的网站是http的头部那就刷新http。同理,https就输入https。第三步:弄了url刷新之后我们还是在内容分发里面找到域名管理,进去之后点你已经添加好的域名,点进去之后找到缓存配置,找到节点缓存过期配置,添加新规则,把我们的文件admin添加进去,缓存行为选择不缓存。添加好了之后就可以了。第四步:看图片教程。上图: 好了,现在就可以去验证你的后台能不能登录了。文章转载:皮皮基地
华为太空人手表-演示站+源码
2021年04月02日
656 阅读
10 评论
5 点赞
2021-04-02
【介绍】抖音最近很火的华为太空人手表-使用CSS+JS+SVG图实现演示站http://www.aiyo99.com/tiankongren/index.html效果图 源码下载{cloud title="点击下载" type="lz" url="https://wws.lanzous.com/iFpIHnkmq5g" password=""/}隐藏内容,请前往内页查看详情本文参考: 顾玖 源码来于网络,侵权请联系删除!
2021-04-01
Joe 主题 6.xx 底部增强,显示标签及二维码分享
原理也简单,不细说了。直接上教程。下载二维码生成器https://wws.lanzous.com/iXmw5ng959c密码:ddsp解压后得到一个叫 poster 的文件夹,放到 joe 的主题目录里。添加 html找到 Joe/public/handle.php 在文件最下面添加 <footer class="entry-footer" id="footfix"> <div class="entry-bar-inner" style="width: auto;"> <div class="post-tags"> <?php $this->tags('', true, ''); ?> </div> <div class="readlist"> <div href="javascript:;" id="mClick" class="mobile_click"> <div class="share"> <div class="Menu-item"><a href="javascript:Share('tqq')"><svg t="1617016842691" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1271" width="20" height="20"><path d="M510.138606 62.785975c-247.246127 0-447.679066 200.431915-447.679066 447.679066S262.891456 958.144106 510.138606 958.144106s447.679066-200.431915 447.679066-447.679066S757.384733 62.785975 510.138606 62.785975zM725.157751 635.028011c-9.552563 5.081739-24.467251-6.489808-38.461987-27.720342-5.516644 23.134907-19.282159 44.057425-38.842657 60.886719 20.558222 7.739265 33.964556 20.400632 33.964556 34.704406 0 23.52581-36.31509 42.59819-81.136925 42.59819-40.400129 0-73.909313-15.502066-80.113619-35.821857-1.610684-0.026606-7.995091-0.026606-9.655917 0-6.178723 20.345374-39.660278 35.821857-80.08906 35.821857-44.819788 0-81.136925-19.044752-81.136925-42.59819 0-14.329357 13.422707-26.965142 33.965579-34.704406-19.588127-16.803711-33.301454-37.751812-38.842657-60.886719-13.996782 21.231557-28.950356 32.801057-38.487569 27.720342-13.829983-7.372921-11.031241-46.844911 6.195096-88.217181 13.509688-32.488948 31.936363-56.459896 45.880957-61.747319-0.179079-2.085498-0.25685-4.169973-0.25685-6.253424 0-12.58462 3.422959-24.178679 9.221012-33.638121-0.027629-0.728594-0.078795-1.483794-0.078795-2.213411 0-5.758144 1.341554-11.177574 3.664459-15.891945 3.515057-84.520999 57.476039-151.633512 144.80499-151.633512 87.277786 0 141.215232 67.113537 144.764058 151.633512 2.299369 4.689812 3.654226 10.108219 3.654226 15.891945 0 0.728594 0 1.483794-0.101307 2.213411 5.849218 9.458419 9.269108 21.079084 9.269108 33.638121 0 2.083451-0.103354 4.193509-0.305969 6.253424 14.045901 5.287423 32.407084 29.232788 45.944402 61.747319C736.266763 588.157517 738.996944 627.654067 725.157751 635.028011z" p-id="1272"></path></svg> QQ 分享</a></div> <div class="Menu-item"><a href="javascript:Share('sina')"><svg t="1617016892561" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2124" width="18" height="18"><path d="M428.465 463.138c-88.93 12.19-154.28 71.145-145.986 131.497 8.394 60.353 87.132 99.423 176.063 87.232 88.93-12.29 154.28-71.144 145.986-131.497-8.394-60.453-87.132-99.522-176.063-87.232z m26.68 175.463c-46.364 8.893-89.73-13.69-96.725-50.56-7.094-36.772 24.78-73.843 71.144-82.736 46.364-8.893 89.63 13.79 96.725 50.56 7.094 36.872-24.78 73.943-71.145 82.736z" p-id="2125"></path><path d="M512.3 0.8C229.72 0.8 0.7 229.82 0.7 512.4S229.72 1024 512.3 1024s511.6-229.021 511.6-511.6S794.78 0.8 512.3 0.8z m184.955 590.238c-23.282 71.744-160.075 182.658-347.928 115.61-76.94-31.176-126.7-102.72-95.625-185.455 55.057-136.494 249.505-211.235 246.907-106.317-1 19.185-1 30.076 27.878 14.788 83.635-42.367 115.91 21.384 96.125 60.253-12.59 19.885 14.089 14.09 14.089 14.09s89.63-20.785 58.554 87.031z m-21.583-138.192c5.396-69.845-60.852-58.154-65.049-57.655-4.197 0.5-9.792-3.197-10.592-9.792-0.9-6.595 4.197-11.091 11.691-11.89 99.123-10.493 83.735 80.336 82.835 87.031-0.999 6.695-4.496 13.99-13.39 11.791-8.992-2.298-4.496-13.19-5.495-19.485z m96.325 20.284c-3.997 11.591-12.99 26.68-27.479 23.082-15.987-4.296-13.49-24.98-10.292-38.47 23.282-122.804-104.018-115.91-130.698-115.91-7.194-0.699-21.483-9.392-21.383-22.681 0.1-13.39 16.287-19.585 23.482-20.884 227.122-14.689 168.268 161.474 166.37 174.863z" p-id="2126"></path><path d="M424.069 555.366c-15.988 0-28.978 11.091-28.978 24.68 0 13.69 12.99 24.682 28.978 24.682s28.977-10.992 28.977-24.681c0-13.59-12.89-24.68-28.977-24.68z m47.563-16.087c-5.996 0-11.991 7.194-11.991 15.987 0 8.893 6.095 16.088 11.99 16.088 5.996 0 12.091-7.195 12.091-16.088-0.1-8.793-6.195-15.987-12.09-15.987z" p-id="2127"></path></svg> 微博分享</a></div> <div class="Menu-item"><svg t="1617016924519" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3060" width="18" height="18"><path d="M710.4 511.36c16.64 0 29.44 10.88 29.44 24.32 0 10.88-12.8 21.76-29.44 21.76-12.8 0-23.68-10.88-23.68-21.76 0.64-13.44 11.52-24.32 23.68-24.32zM337.92 340.48c16.64 0 30.08 10.88 30.08 29.44 0 17.28-13.44 29.44-30.08 29.44-17.92 0-35.84-12.16-35.84-29.44 0-18.56 17.92-29.44 35.84-29.44z m165.12 58.24c-17.28 0-33.92-11.52-33.92-29.44 0-18.56 16.64-29.44 33.92-29.44 18.56 0 30.08 10.88 30.08 29.44 0 17.92-12.16 29.44-30.08 29.44z m76.8 112.64c17.28 0 30.08 10.88 30.08 24.32 0 10.88-12.8 21.76-30.08 21.76-11.52 0-23.68-10.88-23.68-21.76 0-13.44 11.52-24.32 23.68-24.32zM415.36 641.92c6.4 0 14.08 0 21.12-0.64-4.48-16.64-6.4-32.64-6.4-49.92 0-102.4 87.68-187.52 200.96-187.52 6.4 0 14.08 0.64 22.4 2.56-20.48-97.92-122.88-165.76-238.08-165.76-129.92 0-236.8 87.04-236.8 200.32 0 64 35.2 117.12 94.08 158.72l-24.32 71.68 84.48-42.88c28.8 8.32 51.84 13.44 82.56 13.44z m347.52 81.28c46.72-33.92 82.56-81.92 82.56-135.04 0-95.36-95.36-172.16-200.96-172.16-112 0-200.32 76.8-200.32 172.16s88.32 171.52 200.32 171.52c24.32 0 47.36-7.68 71.68-12.16l63.36 35.84-16.64-60.16zM512 0c282.88 0 512 229.12 512 512s-229.12 512-512 512S0 794.88 0 512 229.12 0 512 0z" p-id="3061"></path></svg> 微信分享<img src="<?php $this->options->themeUrl("poster/api.php"); ?>?url=<?php $this->permalink() ?>"> </div> </div> <div><svg t="1617016981855" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3873" width="15" height="15"><path d="M826.48 660.9c-60.456 0-109.88 32.358-132.9 82.596L401.373 619.203c17.045-26.404 26.41-58.768 26.41-93.666 0-14.459-1.706-28.943-5.12-42.573l186.572-144.752c24.72 18.729 56.253 29.798 91.177 29.798 84.347 0 147.38-63.012 147.38-146.432 0-83.45-63.054-146.462-147.38-146.462-84.352 0-146.535 63.011-146.535 146.462 0 21.29 4.265 40.868 11.07 57.892L392.837 411.433c-34.068-51.087-90.301-86.856-154.194-86.856-104.192-0.26-188.866 83.989-189.122 188.18a23.803 23.803 0 0 0 0 0.856c-0.2 104.192 84.106 188.815 188.298 189.015h0.83c39.188 0 75.811-10.194 105.635-28.928l335.683 143.032c4.27 79.176 65.602 137.923 146.509 137.923 84.372 0 146.554-62.992 146.554-146.437s-63.058-147.313-146.529-147.313h-0.02z" p-id="3874" fill="#ffffff"></path></svg> 分享</div> </div> </div> </div> </footer> <script type="text/javascript"> $("#mClick").click(function (e) { if ($(this).hasClass('mobile_click')){ $(this).prop('class','mobile_close') }else{ $(this).prop('class','mobile_click') } }) function Share(pType){ var pTitle = "<?php $this->title(); ?>"; //待分享的标题 var pImage = "<?php $this->fields->thumb(); ?>"; //待分享的图片 var pContent = '<?php _e(str_replace(array("\r\n","\n","\r"),'<br/>',Typecho_Common::subStr(strip_tags($this->excerpt), 0, 80, '...')));?>'; //待分享的内容 var pUrl = window.location.href; //当前的url地址 var pObj = jQuery("div[class='yogo_hc']").find("h4"); if(pObj.length){ pTitle = pObj.text();} var pObj = jQuery("div[class='yogo_hcs']").find("em"); if(pObj.length){ pContent = pObj.text(); } var pObj = jQuery("div[class='con_cons']").find("img"); if(pObj.length){ pImage = jQuery("div[class='con_cons']").find("img",0).attr("src");} shareys(pType, pUrl, pTitle,pImage, pContent); } function shareys(a, c, b, e, d) { switch (a) { case "sina": c = "http://service.weibo.com/share/share.php?title\x3d" + encodeURIComponent(d + "\u300c" + b + "\u300d \u70b9\u8fd9\u91cc" + c) + "\x26pic\x3d" + e; window.open(c); break; case "tqq": c = "https://connect.qq.com/widget/shareqq/index.html?url\x3d" + encodeURIComponent(c) + "\x26title\x3d" + encodeURIComponent(b) + "\x26pics\x3d" + e; window.open(c); break; case "qzone": c = "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url\x3d" + encodeURIComponent(c) + "\x26title\x3d" + encodeURIComponent(b) + "\x26site\x3d\x26pics\x3d" + encodeURIComponent(e) + "\x26desc\x3d" + encodeURIComponent(d) + "\x26summary\x3d" + encodeURIComponent(d); window.open(c); break; case "ren": c = "http://widget.renren.com/dialog/share?resourceUrl\x3d" + encodeURIComponent(c) + "\x26srcUrl\x3d" + e + "\x26title\x3d" + encodeURIComponent(b), NaN + d, window.open(c) } } </script>添加自定义cssbody #footfix.entry-footer { display: table; width: 100%; padding: 10px; } body #footfix.entry-footer .share { position: absolute; background: #fff; border: 1px solid #ebebeb; border-radius: 4px; -webkit-box-shadow: 0 5px 20px rgba(26, 26, 26, 0.1); box-shadow: 0 5px 20px rgba(26, 26, 26, 0.1); z-index: 203; padding: 15px 0; width: 110px; animation: left 0.5s; left: -43px; top: -200px; } body #footfix.entry-footer .share .Menu-item { display: block; width: 100%; padding: 0 15px; text-align: left; cursor: pointer; -webkit-box-sizing: border-box; box-sizing: border-box; color: black; } body #footfix.entry-footer .share .Menu-item a { color: var(--main); } body #footfix.entry-footer .share .Menu-item img { max-width: 100%; height: auto; transition: opacity 0.3s; vertical-align: middle; } body #footfix.entry-footer .mobile_click .share { display: none; } body #footfix.entry-footer .post-tags a { margin-right: 15px; margin-bottom: 15px; line-height: 32px; display: inline-block; padding: 0 8px; background: var(--classC); border-radius: 3px; color: var(--minor); cursor: pointer; float: left; font-size: 11px; } body #footfix.entry-footer #mClick.mobile_click, body #footfix.entry-footer #mClick.mobile_close { float: right; color: #fff; padding: 0 10px; background: var(--theme); border-radius: 2px; font-size: 11px; line-height: 32px; cursor: pointer; } body #footfix.entry-footer #mClick.mobile_click, body #footfix.entry-footer #mClick.mobile_close { float: right; color: #fff; padding: 0 10px; background: var(--theme); border-radius: 2px; font-size: 11px; line-height: 32px; cursor: pointer; } body #footfix.entry-footer #mClick.mobile_close { position: relative; } body #footfix.entry-footer a#mClick, body #footfix.entry-footer a#mStats { opacity: 1; }本文转自: 即刻学术
2021年04月01日
3,359 阅读
12 评论
42 点赞
2021-04-01
记录访问者的IP地址
{mtitle}前言{/mtitle} 对于一个网站的管理员来说,对访客进行IP记录是必要的。通过进行记录访客的IP,对网站的访问量统计、访客来源地区的分布、对不法访客进行追查等提供了重要的信息。{mtitle}代码{/mtitle} 在functions.php 文件最后添加<?php function ip() { if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $ip = getenv('REMOTE_ADDR'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $ip = $_SERVER['REMOTE_ADDR']; } return preg_match("/[\d\.]{7,15}/", $ip, $matches) ? $matches[0] : 'unknown'; } $ip=ip(); $str=$ip."\n"; $l=fopen("ip.txt","a+"); fwrite($l,$str); fclose($l); ?>在你想要显示IP的地方添加以下内容,这里我就添加在网站底部了当前IP:<?php echo ip();?>
2021年04月01日
764 阅读
4 评论
2 点赞
2021-03-31
Typecho更换域名后批量替换旧地址
Typecho搬家后,会有好多附件地址不变,附一个SQL语句,应用于phpmyadmin,批量修改:UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'旧域名地址','新域名地址');记得修改旧域名地址和新域名地址。本文转自:https://www.cnhacker.cc/typecho/152.html
2021年03月31日
721 阅读
0 评论
0 点赞
2021-03-29
Typecho 手机端评论失败解决方法
今天无意中发现了个BUG,就是评论的时候,偶尔会出现评论失败的情况,这个情况我之前碰到过,没写教程:@(高兴),它的情况就是在在QQ内打开博客后无法评论,但是在浏览器里面又正常,所以这里记录一下,主要的问题就是修改typecho_comments表里agent字段,调整agent字段容量,调大一点,好开始操作 phpMyAdmin进入数据库后找到需要操作的数据库,展开后看到typecho_comments表,点击右边的结构之后找到agent字段之后点击右边的修改,在里面找到长度/值将默认的数值改成500之后保存就OK了,是不是很简单,没懂的可以看下面的动图操作或者用下面命令也可以ALTER TABLE typecho_comments modify column agent varchar(500);
2021年03月29日
755 阅读
6 评论
3 点赞
1
...
8
9
10
11