Windows常见问题解决办法汇总

在windows任务栏上显示秒

https://www.ithome.com/html/win10/288555.htm
用管理员模身份运CMD/POWERSHELL,使用下面命令,在注册表中,添加相应键值。

1
Reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v ShowSecondsInSystemClock /t REG_DWORD /d 1

然后重启explorer.exe进程即可。
若要改回默认设置,直接删除ShowSecondsInSystemClock,重启explorer.exe进程即可。

Win/Unix系双系统时间同步问题

原因:
Windows将硬件时间当做CST时间,直接拿来在系统中显示;关机时直接存入硬件中。
Unix系系统将硬件时间作为UTC时间,拿过来后,会转成成CST时间,即显示UTC + 8;关机时,会将系统显示的时间换算成UTC,即UTC - 8,存入硬件中。

黑苹果在开机时,如果联网了,会进行时间同步。所以会导致在黑苹果中时间显示正常,关机时存入了当前时间-8,再打开windows时,windows读取到-8后的时间,直接显示,形成一种windows总是慢8个小时的现象。

寻思着,为什么windows下面联网时不能自动同步时间呢?

解决办法(两种选一即可):

  1. 让windows认为硬件时间为UTC,拿到转换成CST。 用管理员模身份运CMD/POWERSHELL,使用下面命令,在注册表中,添加相应键值。

    1
    Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
  2. 让Unix系系统把硬件时间看做CST,直接拿来用。关机时直接存入硬件中。解决办法要根据因系统不同而有所不同。以黑苹果为例(未尝试):

    1
    2
    3
    4
    # 貌似已经404了
    sudo sh -c "$(curl -kfsSL https://raw.githubusercontent.com/hieplpvip/LocalTime-Toggle/master/fix_time_osx.sh)"
    # 脚本还有,但是没有尝试过,可以做个参考
    sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/xiaoMGithub/LocalTime-Toggle/master/fix_time_osx.sh)"

    大致的内容如下,貌似改的东西有点多啊,还是改windows算了。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #!/bin/sh
    #Script auto fix time on hackintosh
    #OSX: 10.6 and above

    DAEMON_PATH=/Library/LaunchDaemons/
    BIN_PATH=/usr/local/bin/
    TMP_PATH=/tmp/
    TIME_FIX_FILE=localtime-toggle
    TIME_DAEMON_FILE=org.osx86.localtime-toggle.plist

    echo "Downloading required file"
    sudo curl -o $TMP_PATH$TIME_FIX_FILE "https://raw.githubusercontent.com/xiaoMGithub/LocalTime-Toggle/master/sbin/localtime-toggle"
    sudo curl -o $TMP_PATH$TIME_DAEMON_FILE "https://raw.githubusercontent.com/xiaoMGithub/LocalTime-Toggle/master/Library/LaunchDaemons/org.osx86.localtime-toggle.plist"

    if [ ! -d "$BIN_PATH" ] ; then
    mkdir "$BIN_PATH" ;
    fi

    echo "Copy file to destination place..."
    sudo cp -R $TMP_PATH$TIME_FIX_FILE $BIN_PATH
    sudo cp -R $TMP_PATH$TIME_DAEMON_FILE $DAEMON_PATH
    sudo rm $TMP_PATH$TIME_FIX_FILE
    sudo rm $TMP_PATH$TIME_DAEMON_FILE

    echo "Chmod localtime-toggle..."
    sudo chmod +x $BIN_PATH$TIME_FIX_FILE
    sudo chown root $DAEMON_PATH$TIME_DAEMON_FILE
    sudo chmod 644 $DAEMON_PATH$TIME_DAEMON_FILE

    echo "Load Localtime-toggle..."
    if sudo launchctl list | grep --quiet localtime-toggle; then
    echo "Stopping existing localtime-toggle daemon."
    sudo launchctl unload $DAEMON_PATH$TIME_DAEMON_FILE
    fi
    sudo launchctl load -w $DAEMON_PATH$TIME_DAEMON_FILE

    echo "Done!"

nc的简易使用

端口扫描

nc -zvn 192.168.126.135 22

  • z 参数告诉netcat使用0 IO,连接成功后立即关闭连接, 不进行数据交换.
  • v 参数指详细输出.
  • n 参数告诉netcat 不要使用DNS反向查询IP地址的域名.

聊天室

  • 服务器角色:nc -l 1081
  • 客户端角色:nc 192.168.126.135 1081

不管你在机器B上键入什么都会出现在机器A上。

演示

文件传输

服务器客户端传文件

  • 服务器角色:nc -l 1081 < test.txt
  • 客户端角色:nc -n 192.168.126.135 1081 > test.txt

客户端服务器传文件

  • 服务器角色:nc -l 1081 > test.txt
  • 客户端角色:nc -n 192.168.126.135 1081 < .bashrc

目录传输

服务器发送目录

  • 服务器角色:tar -cvf - cpp | nc -l 1081
  • 客户端角色:nc -n 192.168.126.135 1081 | tar -xvf -

服务器接收目录

  • 服务器角色:nc -l 1081 | tar -xvf -
  • 客户端角色:tar -cvf - test_dir | nc -n 192.168.126.135 1081

以上的列举是比较常用的。但是存在一个问题是传输速度可能不快。

curl设置header和表单数据

老是分不清楚header和表单时的写法,每次都去翻别人的博客

从浏览器中获取某个请求的curl版本

在这里插入图片描述
下面是几种上述方法拷贝出来的curl命令参数,特意列出来,供参考一下。

设置header与表单

GET请求

1
2
3
4
5
6
7
8
9
10
curl 'http://xxxxxxxxx/vehicles?page=1&size=20&number=8' \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Accept-Language: zh,en;q=0.9,ja;q=0.8,zh-TW;q=0.7,fr;q=0.6,zh-CN;q=0.5' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Referer: http://xxxxxxxxx/' \
-H 'userId: 454' \
-H 'Connection: keep-alive' \
-H 'token: af0d8773933eaeffc81d97924bd2a8fc' \
--compressed

POST请求,发送body信息
--data-binary DATA HTTP POST binary data (H)

1
2
3
4
5
6
7
8
9
10
11
12
13
curl 'http://xxxxxxxxx/nemt/nemt/order/cancel' 
-H 'Origin: http://xxxxxxxxx'
-H 'Accept-Encoding: gzip, deflate'
-H 'Accept-Language: zh,en;q=0.9,ja;q=0.8,zh-TW;q=0.7,fr;q=0.6,zh-CN;q=0.5'
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36'
-H 'Content-Type: application/json'
-H 'Accept: application/json, text/plain, */*'
-H 'Referer: http://xxxxxxxxx/'
-H 'userId: 454'
-H 'Connection: keep-alive'
-H 'token: af0d8773933eaeffc81d97924bd2a8fc'
--data-binary '{"id":"10076","reasonId":0}'
--compressed

POST请求,发送表单
--data DATA HTTP POST data (H)

1
2
# 此例来自:http://www.ruanyifeng.com/blog/2011/09/curl.html
curl -X POST --data "data=xxx" example.com/form.cgi

文件上传

1
2
3
4
5
6
# 此例来自项目中某安卓端代码
do_upload(){
curl -X POST -F "file=@$1" $2
}
# 此例来自:http://www.ruanyifeng.com/blog/2011/09/curl.html
curl --form upload=@localfilename --form press=OK [URL]

OK,清理书签完毕!

【转载-摘要】彻底搞懂 Git-Rebase

原文链接:http://jartto.wang/2018/12/11/git-rebase/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

rebase的主要功能就是改变commit历史,在这篇文章中,场景一是改变未push的commit历史,场景二是在合并分支时,改变当前分支的历史,从而达到简化commit历史的目的,让历史一目了然。对强迫症患者来说简直就是福音。

Rebase 场景一:如何合并多次提交纪录?

1.我们来合并最近的 4 次提交纪录,执行:
git rebase -i HEAD~4
2.这时候,会自动进入 vi 编辑模式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
s cacc52da add: qrcode
s f072ef48 update: indexeddb hack
s 4e84901a feat: add indexedDB floder
s 8f33126c feat: add test2.js
# Rebase 5f2452b2..8f33126c onto 5f2452b2 (4 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#

有几个命令需要注意一下:

1
2
3
4
5
6
7
p, pick = use commit
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like “squash”, but discard this commit’s log message
x, exec = run command (the rest of the line) using shell
d, drop = remove commit

按照如上命令来修改你的提交纪录:

1
2
3
4
s cacc52da add: qrcode
s f072ef48 update: indexeddb hack
s 4e84901a feat: add indexedDB floder
p 8f33126c feat: add test2.js

3.如果保存的时候,你碰到了这个错误:
error: cannot 'squash' without a previous commit
注意不要合并先前提交的东西,也就是已经提交远程分支的纪录。

4.如果你异常退出了 vi 窗口,不要紧张:

git rebase --edit-todo
这时候会一直处在这个编辑的模式里,我们可以回去继续编辑,修改完保存一下:

git rebase --continue
5.查看结果

git log
在这里插入图片描述
三次提交合并成了一次,减少了无用的提交信息。

Rebase 场景二:分支合并

1.我们先从 master 分支切出一个 dev 分支,进行开发:

git:(master) git checkout -b feature1git1
2.这时候,你的同事完成了一次 hotfix,并合并入了 master 分支,此时 master 已经领先于你的 feature1 分支了:
git2
3.恰巧,我们想要同步 master 分支的改动,首先想到了 merge,执行:

git:(feature1) git merge master
git3
图中绿色的点就是我们合并之后的结果,执行:

git:(feature1) git log
就会在记录里发现一些 merge 的信息,但是我们觉得这样污染了 commit 记录,想要保持一份干净的 commit,怎么办呢?这时候,git rebase 就派上用场了。

4.让我们来试试 git rebase ,先回退到同事 hotfix 后合并 master 的步骤:
git4
5.使用 rebase 后来看看结果:

git:(feature1) git rebase master
这里补充一点:rebase 做了什么操作呢?

首先,git 会把 feature1 分支里面的每个 commit 取消掉;
其次,把上面的操作临时保存成 patch 文件,存在 .git/rebase 目录下;
然后,把 feature1 分支更新到最新的 master 分支;
最后,把上面保存的 patch 文件应用到 feature1 分支上;
git5
commit 记录我们可以看出来,feature1 分支是基于 hotfix 合并后的 master ,自然而然的成为了最领先的分支,而且没有 mergecommit 记录,是不是感觉很舒服了。

6.在 rebase 的过程中,也许会出现冲突 conflict。在这种情况,git 会停止 rebase 并会让你去解决冲突。在解决完冲突后,用 git add 命令去更新这些内容。

注意,你无需执行 git-commit,只要执行 continue

git rebase --continue
这样 git 会继续应用余下的 patch 补丁文件。

7.在任何时候,我们都可以用 –abort 参数来终止 rebase 的行动,并且分支会回到 rebase 开始前的状态。

git rebase —abort

不足

只要你的分支上需要 rebase 的所有 commits 历史还没有被 push 过,就可以安全地使用 git-rebase来操作。

因为push到远程仓库后,你再次提交时,git对比会发现两个仓库的历史不一致。

git中的回车换行符CRLF与LF

设置core.autocrlf

假如你正在Windows上写程序,又或者你正在和其他人合作,他们在Windows上编程,而你却在其他系统上,在这些情况下,你可能会遇到行尾结束符问题。这是因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用换行一个字符。虽然这是小问题,但它会极大地扰乱跨平台协作。

true

Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF:
$ git config --global core.autocrlf true

input

Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换:
$ git config --global core.autocrlf input
这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。

false

如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中:
$ git config --global core.autocrlf false

来源

《git pro》

Google搜索技巧集合

最为一个我们生活、工作中都离不开的一种搜索工具,其实它远比我们想象中的要强得多。所以就有了这一篇对搜索技巧的收集,也许暂时不会用上,需要的时候能想起来就是一件再好不过的事情。

在这里插入图片描述

完全匹配搜索关键字

在这里插入图片描述
在这里插入图片描述
对比效果显而易见:加上双引号,即为需要完全匹配;不加则为部分匹配。

排除关键字

在这里插入图片描述
在这里插入图片描述

在默认搜索下, 搜索引擎会反馈所有和查询词汇相关的结果, 如果通过OR 搜索, 可以得到和两个关键词分别相关的结果, 而不仅仅是和两个关键词都同时相关的结果.
在这里插入图片描述

同义词

加~

站内搜索

指定某个网站,在改网站类搜索关键字
在这里插入图片描述

模糊匹配

在这里插入图片描述

数值之间搜索

在这里插入图片描述

指定文件类型

下电子书的福音啊,感觉非常实用
在这里插入图片描述

相关网站

这个搜索命令并没有看太懂,先留坑。
在这里插入图片描述

inurl

指令用于搜索查询词出现在url 中的页面。
在这里插入图片描述

intitle

指令返回的是页面title 中包含关键词的页面。
在这里插入图片描述

参考链接:
https://daily.zhihu.com/story/1175
http://www.ecaa.ntu.edu.tw/weifang/cea/%E5%96%84%E7%94%A8GOOGLE.htm

AWS使用过程中遇到的问题

RDS连接不上数据库的排除办法

检查RDS的安全组。初次尝试,数据库连不上;后面又重试着不使用默认的安全组进行配置,可以连上。这里有一个检测是否可以成功连接的命令,如果连不上,可以试试这样能不能检测到连接。
在这里插入图片描述
https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/CHAP_Troubleshooting.html

EC2安装的数据库无法连接

  1. 确保3306端口已经打开。
    在这里插入图片描述
  2. 确保已经在MySQL的配置文件中,改成允许远程访问。
    系统相关信息如下:
    在这里插入图片描述
    MySQL版本后面因为删掉了,版本信息找不到了。这个配置文件的路径就当一个参考吧,到时候可能还需要自己找一找这个配置文件的路径。
    配置文件路径:/etc/mysql/mysql.conf.d/mysqld.cnf
    在这里插入图片描述
  3. 如果root密码已经忘记,那么可以考虑使用mysqladmin等一系列操作重设MySQL的root密码

CentOS7中FTP服务器的搭建

安装

1
sudo yum -y install vsftpd

配置

首先要新建一个目录,用来充当主目录,然后再新建一个不可登录的用户,指定主目录为之前创建的目录。

1
2
3
4
sudo mkdir /home/ftpfile # 新建目录
sudo useradd ftpuser -d /home/ftpfile -s /sbin/nologin # 新建不可登录用户
sudo chown -R ftpuser.ftpuser /home/ftpfile # 将归属改成新用户
sudo passwd ftpuser # 给新用户设密码

配置可用来登录ftp服务器的用户

1
2
3
4
5
# 将上面新建的用户名填写进去,然后保存退出
sudo vim /etc/vsftpd/chroot_list
# 显示结果如下:
[asahi@localhost ~]$ cat /etc/vsftpd/chroot_list
ftpuser

打开vsftpd的配置文件,位置为:/etc/vsftpd/vsftpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 登录成功时的欢迎信息
ftpd_banner=Welcome to blah FTP service.
# 登录用户的主页目录
local_root=/home/ftpfile
# 匿名用户的主页目录
anon_root=/home/ftpfile
# 不允许匿名登录,可考虑删除/注释上面一条
anonymous_enable=NO
# 使用本地时间
use_localtime=YES
# 参考一些遇到的问题的解释
allow_writeable_chroot=YES
# 设置可登录的账号
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list # 指向之前创建的chroot_list文件

启动/重启/关闭vsftpd服务

1
2
3
4
sudo systemctl start vsftpd.service
sudo systemctl restart vsftpd.service
sudo systemctl stop vsftpd.service
sudo systemctl status vsftpd.service

一些遇到的问题

ftp相关端口无法访问
因其防火墙设置的原因,相应的端口未开放,所以开启ftp服务后没办法访问。在CentOS7中可以参考下面的设置,来将ftp所需要的一些端口,加入防火墙的开放端口中:

1
2
3
4
5
6
7
8
9
10
11
# 暫時開放 ftp 服務
firewall-cmd --add-service=ftp

# 永久開放 ftp 服務
firewall-cmd --add-service=ftp --permanent

# 永久關閉
firewall-cmd --remove-service=ftp --permanent

# 讓設定生效
systemctl restart firewalld

**vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()**:
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES

Mac中没有ftp命令如何解决:
10.13 以后就没了……..这样操作亲测可以恢复

1
2
3
brew install telnet 
brew install inetutils
brew link --overwrite inetutils

参考:
https://blog.csdn.net/bluishglc/article/details/42399439
http://blog.sina.com.cn/s/blog_43b39e250102v4zt.html
https://blog.csdn.net/zwlww1/article/details/78994698