2019年第四季度笔记整理

 

2019-10

2019-10-04 转义字符

转义字符

以下选项中,不是转义字符的是()
A.\u061 B.\t C.\141 D.\u0061

答案是A.

  1. 八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' \0:空字符
  2. Unicode转义字符:\u + 四个十六进制数字0~65535 \u0000:空字符
  3. 特殊字符:\" 双引号,\' 单引号,\\ 反斜线
  4. 控制字符:\r 回车,\n 换行,\f 走纸换页,\t 横向跳格,\b 退格
public class EscapeRout{
    public static void main(String[] args){
        // \u0022 是双引号的Unicode转义字符
        System.out.println("a\u0022.length()+\u0022b".length());
    }
}

理解这个谜题的关键是要知道:Java对在字符串字面常量中的Unicode转义字符没有提供任何特殊处理。编译器在将程序解析成各种符号之前, 先将Unicode转义字符转换成为它们所表示的字符[JLS 3.2]。因此,程序中的第一个Unicode转义字符将作为一个单字符字符串字面常量(”a”)的结束引号,而第二个Unicode转义字符将作为另一 个单字符字符串字面常量(”b”)的开始引号。程序打印的是表达式”a”.length()+”b”.length(),即2。

结果等同于System.out.println("a".length()+"b".length())

2019-10-08 git中文显示

#不对0x80以上的字符进行quote,解决git status/commit时中文文件名乱码
git config --global core.quotepath false

2019-10-08 批量修改文件名

rename "s/.xlsx/aaaa.xlsx/" *
rename "s/.xlsx/bbbb.xlsx/" *
rename "s/.xlsx/cccc.xlsx/" *
rename "s/.xlsx/dddd.xlsx/" *
rename "s/.xlsx/eeee.xlsx/" *
rename "s/.xlsx/ffff.xlsx/" *
rename "s/aaaa.xlsx/.xlsx/" *
rename "s/bbbb.xlsx/.xlsx/" *
rename "s/cccc.xlsx/.xlsx/" *
rename "s/dddd.xlsx/.xlsx/" *
rename "s/eeee.xlsx/.xlsx/" *
rename "s/ffff.xlsx/.xlsx/" *

2019-10-09 浏览器kiosk模式

Mozilla Firefox 实现支持 Kiosk 模式

google-chrome-stable --kiosk "http://baidu.com"

2019-10-14 git本地开发

git add file ---将文件纳入版本管理
git commit -m "" ---代码提交
git push ---代码上传
git checkout [-b] dev ---切换(新建)分支
git merge dev ---合并分支
git pull ---更新代码
.gitignore ---过滤文件
git checkout -b temp origin/temp ---检出服务端temp分支代码
git reset --hard 789789 ---检出某一提交记录时的代码
git config --global core.quotepath false ---命令行中文乱码处理

2019-10-29 Journal超限

Journal has been rotated since unit was started. Log output is incomplete or unavailable

检查当前journal使用磁盘量

journalctl --disk-usage
清理方法可以采用按照日期清理,或者按照允许保留的容量清理

journalctl --vacuum-time=2d
journalctl --vacuum-size=500M

然后重启

systemctl restart systemd-journald.service

journalctl 清理journal日志

2019-10-31 mp3文件在linux乱码问题解决

大家应该知道目前主要存在这几种标准,ID3v1, ID3v2 2.3, ID3v2 2.4, APEv2,ID3v1只支持 ISO-8859-1 编码 (编码集参考), 严格的说它是不支持中文的 (并不代表它不能储存中文信息,目前中文mp3的ID3v1标签都使用这个字段来储存 GBK/GB18030 编码的中文信息),而第二版 (ID3v2) 支持的格式增加了utf-16,直到 2.4 版才开始支持uft-8,但 ID3v2 标准没有统一标签内容的编码,例如 2.4 版的 ID3v2 你可以使用 ISO-8859-1 编码,也可以使用utf-16/uft-8 这种 Unicode 编码格式。做得最好的是 APEv2,它不但有很好的扩展性,而且还把编码格式统一为utf-8,这样一来只要支持 APEv2 读取的播放器播放带有 APEv2 标签的mp3 就不会存在乱码问题。

apt-get install python-mutagen

# 处理当前目录下的mp3文件
mid3iconv -e GBK *.mp3
# 处理当前目录的子目录下的mp3文件
mid3iconv -e GBK */*.mp3

# 重新导入歌曲列表

解决Linux音乐列表乱码问题

2019-11-05 Docker 删除无用的镜像

# 删除仓库和标签为none的 镜像
docker images|grep none|awk '{print $3}'|xargs docker rmi 

# 删除不用的镜像 但是存在 一个镜像有多个仓库名和TAG 
# 这种情况下不能使用image id 删除 必须使用 docker rmi REPOSITORY:TAG 的方式删除
docker images | grep '192.168.10.4\|none\|192.168.40' | awk '{print $1":"$2}' | xargs docker rmi

2019-11-06 虚拟机重启保持dns配置不变

chattr +i /etc/resolv.conf

2019-11-19 jquery全局处理异常

$(document).ajaxError(function(evt,req,settings){
    if(req && (req.status === 200 || req.status === 0)){return false};
    if(req.status === 403){alert("请求被拒绝,没有权限访问")};
});