<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>tip on HA</title>
    <link>https://deletefromuser.github.io/tags/tip/</link>
    <description>Recent content in tip on HA</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 28 Sep 2026 08:00:00 +0800</lastBuildDate>
    <atom:link href="https://deletefromuser.github.io/tags/tip/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>win10/11 家庭版中使用Hyper-V虚拟机</title>
      <link>https://deletefromuser.github.io/pgm/2026092801/</link>
      <pubDate>Mon, 28 Sep 2026 08:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2026092801/</guid>
      <description>&lt;h3 id=&#34;开启hyper-v&#34;&gt;开启Hyper-V&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 执行命令后重启&lt;/span&gt;
pushd &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%~dp0&amp;#34;&lt;/span&gt;
dir /b %SystemRoot%&lt;span style=&#34;color:#ae81ff&#34;&gt;\s&lt;/span&gt;ervicing&lt;span style=&#34;color:#ae81ff&#34;&gt;\P&lt;/span&gt;ackages&lt;span style=&#34;color:#ae81ff&#34;&gt;\*&lt;/span&gt;Hyper-V*.mum &amp;gt;hyper-v.txt
&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; /f %%i in &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;findstr /i . hyper-v.txt 2^&amp;gt;nul&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; dism /online /norestart /add-package:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%SystemRoot%\servicing\Packages\%%i&amp;#34;&lt;/span&gt;
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;将windows普通用户加入hyper-v用户组中&#34;&gt;将windows普通用户加入Hyper-V用户组中&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;如果不加的话就只能在管理员账户中使用Hyper-V
管理员模式打开powershell,执行下面命令&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;$loggedInUser &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;get-wmiobject  win32_computersystem&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.username
Add-LocalGroupMember -group &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Hyper-V Administrators&amp;#34;&lt;/span&gt; -member $loggedInUser -ErrorAction SilentlyContinue
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;将vbox虚拟机实例转换为hyper-v支持的vhd格式&#34;&gt;将vbox虚拟机实例转换为Hyper-V支持的vhd格式&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;VBoxManage.exe clonehd &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;D:\path\ubuntu20_0124-disk1.vdi&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;D:\path\ubuntu22.vhd&amp;#34;&lt;/span&gt; --format VHD
&lt;span style=&#34;color:#75715e&#34;&gt;# 转换完成后,在Hyper-V管理器中新建虚拟机时选择磁盘时选中已存在的vhd文件&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;连接到hyper-v虚拟机中的服务&#34;&gt;连接到Hyper-V虚拟机中的服务&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ifconfig&lt;/code&gt;查看eth0的对应的ip&lt;/li&gt;
&lt;li&gt;在宿主机上使用1中的ip进行连接即可&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;让虚拟机获得固定ip&#34;&gt;让虚拟机获得固定IP&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;虚拟机每次重启都会通过DHCP拿到新的IP,可以给虚拟机分配静态MAC地址,然后在路由器上将该MAC地址绑定到固定IP&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;VM Settings -&amp;gt; Hardware -&amp;gt; Network Adapter -&amp;gt; Advanced Features -&amp;gt; MAC address&lt;/code&gt; 中选择&lt;code&gt;Static&lt;/code&gt;并填入一个MAC地址&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;需要虚拟机关机状态下才能修改&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;虚拟机和宿主机中共享文件夹&#34;&gt;虚拟机和宿主机中共享文件夹&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;虚拟机中安装smaba &lt;code&gt;sudo apt install samba&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;虚拟机中设置smb密码 &lt;code&gt;sudo smbpasswd -a linux用户名&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;虚拟机中在想要共享的文件夹中的Properties中的Local Network Share中启用共享&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;调整虚拟机分辨率&#34;&gt;调整虚拟机分辨率&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;set-vmvideo 虚拟机名 -horizontalresolution:1920 -verticalresolution:1080 -resolutiontype single
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://gist.github.com/HimDek/6edde284203a620745fad3f762be603b&#34;&gt;Hyper-V in Windows 10 and Windows 11 Home Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://superuser.com/a/1504633&#34;&gt;How to add a Static IP-Adress to a Virtual Machine in Hyper V&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>使用handshake转换视频时利用gpu</title>
      <link>https://deletefromuser.github.io/pgm/2025060801/</link>
      <pubDate>Sun, 08 Jun 2025 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2025060801/</guid>
      <description>&lt;p&gt;视频分页设置中的编解码器选择&lt;code&gt;H.264/H.265 (NVEnc)&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;使用ffmpeg将mp4转换为mp3&#34;&gt;使用ffmpeg将mp4转换为MP3&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;ffmpeg -i myfile.mp4 myfile.mp3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.reddit.com/r/handbrake/comments/11ikwdd/comment/l3ejtjd/&#34;&gt;How to enable hardware acceleration?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.reddit.com/r/handbrake/comments/ylf78t/comment/iuyw11j/?utm_source=share&amp;amp;utm_medium=web3x&amp;amp;utm_name=web3xcss&amp;amp;utm_term=1&amp;amp;utm_content=share_button&#34;&gt;how_do_i_convert_to_mp3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Firefox多用户</title>
      <link>https://deletefromuser.github.io/pgm/2025041901/</link>
      <pubDate>Sat, 19 Apr 2025 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2025041901/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;进入&lt;a href=&#34;about:profiles&#34;&gt;about:profiles&lt;/a&gt;, 创建新用户(比如tom)&lt;/li&gt;
&lt;li&gt;点击【Launch profile in new browser】按钮启动&lt;/li&gt;
&lt;li&gt;windows快捷方式进入&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;复制出一个新的快捷方式，右键属性，在目标属性值中添加&lt;code&gt; -p tom&lt;/code&gt;即可&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://support.mozilla.org/en-US/kb/profile-manager-create-remove-switch-firefox-profiles&#34;&gt;Profile Manager - Create, remove or switch Firefox profiles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Mega &#43; nginx搭建webdav服务</title>
      <link>https://deletefromuser.github.io/pgm/2023092401/</link>
      <pubDate>Sun, 24 Sep 2023 15:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023092401/</guid>
      <description>&lt;h3 id=&#34;需求&#34;&gt;需求&lt;/h3&gt;
&lt;p&gt;电子书阅读一直都是用的moonreader, 但是一直都是分别下载到每个设备里, 同步阅读进度很不方便,&lt;/p&gt;
&lt;p&gt;以前也没想过这些, 这两年折腾docker, 发现很多服务都可以自己部署, 于是想到可以自己部署一个webdav服务&lt;/p&gt;
&lt;p&gt;搜索了一番, 尝试了&lt;a href=&#34;https://github.com/seaweedfs/seaweedfs&#34;&gt;seaweedfs&lt;/a&gt;, &lt;a href=&#34;https://github.com/micromata/dave&#34;&gt;dave&lt;/a&gt;, 这两个都是本地部署的, 指定文件夹就好, 缺点是迁移的话有点麻烦, 还要备份文件夹重新部署&lt;/p&gt;
&lt;p&gt;后来发现mega提供了工具可以实现webdav, 刚好我也在使用mega, 刚好符合要求, 目前只是同步了阅读进度, 考虑以后把电子书也转移过去&lt;/p&gt;
&lt;h3 id=&#34;使用mega-cmd搭建webdav超级简单&#34;&gt;使用mega-cmd搭建webdav(超级简单)&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 0. 需要先注册一个mega账户, 免费版有20G容量, 还是不错的&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 1. 安装[MEGAcmd](https://mega.io/zh-hans/cmd#downloadapps)&lt;/span&gt;
mega-cmd
&lt;span style=&#34;color:#75715e&#34;&gt;# 输入账户密码, 2FA码(如果设置了的话)&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 成功后退出&lt;/span&gt;
quit
&lt;span style=&#34;color:#75715e&#34;&gt;# 选择一个mega目录, 配置webdav&lt;/span&gt;
mega-webdav /mega-path
&lt;span style=&#34;color:#75715e&#34;&gt;# 输出类似于 http://127.0.0.1:4443/TuGwbDVb/mega-path&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;配置nginx反向代理&#34;&gt;配置nginx反向代理&lt;/h3&gt;
&lt;h4 id=&#34;创建密码&#34;&gt;创建密码&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;怎么想也不能搭建一个任何人都可以访问修改的webdav吧, 所以要配置反向代理时设置允许访问的账户和密码, 要事先创建密码文件&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;sudo htpasswd -c /etc/apache2/.htpasswd user1
&lt;span style=&#34;color:#75715e&#34;&gt;# 根据提示输入账号和密码即可&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# htpasswd不存在的话, 说明需要安装apache2-utils或httpd-tools&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;配置nginx&#34;&gt;配置nginx&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&#34;language-conf&#34; data-lang=&#34;conf&#34;&gt;    location /webdavblah/ {
        auth_basic           &amp;quot;moonreader webdav&amp;quot;;
        auth_basic_user_file /etc/apache2/.htpasswd;
        client_max_body_size 100M;

        # 替换PROPFIND方法的body
        proxy_set_header Accept-Encoding &amp;quot;&amp;quot;;
        sub_filter_types *;
        sub_filter &#39;http://127.0.0.1:4443/TuGwbDVb/&#39; &#39;/webdavblah/&#39;;
        sub_filter_once off;
        proxy_pass http://127.0.0.1:4443/TuGwbDVb/;
    }
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;测试&#34;&gt;测试&lt;/h4&gt;
&lt;p&gt;浏览器访问&lt;code&gt;https://example.com/webdavblah/mega-path&lt;/code&gt;, 输入账号密码后看能否访问成功&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 或者可以使用命令行测试&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 查看列表&lt;/span&gt;
curl --user &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;user:pass&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://example.com/webdavblah/mega-path&amp;#39;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 创建test目录&lt;/span&gt;
curl --user &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;user:pass&amp;#39;&lt;/span&gt; -X MKCOL &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://example.com/webdavblah/mega-path/test&amp;#39;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 往test目录上传文件&lt;/span&gt;
curl --user &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;user:pass&amp;#39;&lt;/span&gt; -T &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/path/to/local/file.txt&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://example.com/webdavblah/mega-path/test/&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;其他问题&#34;&gt;其他问题&lt;/h3&gt;
&lt;h3 id=&#34;nginx的上传文件限制&#34;&gt;nginx的上传文件限制&lt;/h3&gt;
&lt;p&gt;nginx的默认文件上传大小限制是1M, 要修改需要的配置文件的http, server, location都添加&lt;code&gt;client_max_body_size 100M;&lt;/code&gt;, 之后重启&lt;/p&gt;
&lt;h3 id=&#34;添加webdav到windows的文件管理器&#34;&gt;添加webdav到windows的文件管理器&lt;/h3&gt;
&lt;p&gt;我的电脑 -&amp;gt; 右键&amp;quot;添加一个网络位置&amp;rdquo; -&amp;gt; 输入&lt;code&gt;https://example.com/webdavblah/mega-path&lt;/code&gt;, 之后输入账号密码即可&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.dimoulis.net/posts/webdav-behind-reverse-proxy/&#34;&gt;WebDAV Behind A Nginx Reverse Proxy - Tech Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.qed42.com/insights/coe/drupal/using-curl-commands-webdav&#34;&gt;Using Curl commands with Webdav | QED42&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/&#34;&gt;Restricting Access with HTTP Basic Authentication | NGINX Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.rackspace.com/docs/limit-file-upload-size-in-nginx&#34;&gt;Limit File Upload Size in NGINX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://superuser.com/questions/254113/how-to-connect-to-an-https-webdav-folder-on-windows-7&#34;&gt;How to connect to an HTTPS WebDAV Folder on Windows 7?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nginx.org/en/docs/http/ngx_http_sub_module.html&#34;&gt;Module ngx_http_sub_module&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://superuser.com/questions/254113/how-to-connect-to-an-https-webdav-folder-on-windows-7&#34;&gt;http_sub_module / sub_filter of nginx and reverse proxy not working&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>绕过前端强制手动输入限制</title>
      <link>https://deletefromuser.github.io/pgm/2023090801/</link>
      <pubDate>Fri, 08 Sep 2023 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023090801/</guid>
      <description>&lt;h3 id=&#34;问题&#34;&gt;问题&lt;/h3&gt;
&lt;p&gt;在客户的系统里登陆，要求填写一个保证书一样的东西，最后有几个输入框不允许复制粘贴，只允许手动输入，而且通过控制台设置的值还通不过检查，因为画面也不是原生html+js的，是前端框架写出来的代码，没找到检查的逻辑，最后只能手动输入了。&lt;/p&gt;
&lt;p&gt;但是等输入完了之后，突然想到了一个解法&lt;/p&gt;
&lt;h3 id=&#34;解法&#34;&gt;解法&lt;/h3&gt;
&lt;p&gt;利用输入法的自定义短语功能，把要输入的一坨东西加到短语里，然后快捷键输入进去，感觉应该是可以的&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>V2Ray &#43; WebSocket &#43; TLS &#43; CloudFlare配置代理</title>
      <link>https://deletefromuser.github.io/pgm/2023090201/</link>
      <pubDate>Sat, 02 Sep 2023 15:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023090201/</guid>
      <description>&lt;h3 id=&#34;1-使用docker安装-v2ray&#34;&gt;1. 使用docker安装 V2Ray&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;准备工作&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;安装docker&lt;/li&gt;
&lt;li&gt;找个目录, cd进去, 新建&lt;code&gt;config.json&lt;/code&gt;文件, 写入下列内容&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;{
  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;inbounds&amp;#34;&lt;/span&gt;: [{
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;port&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;10086&lt;/span&gt;,
    &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;因为还要用&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;Nginx&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;反代，这里直接监听本地就行&lt;/span&gt;
    &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;listen&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;127.0.0.1&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;vmess&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;: {
      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;clients&amp;#34;&lt;/span&gt;: [
        {
          &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;用户&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;UUID，自己随机弄一个&lt;/span&gt;
          &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;23ad6b10-8d1a-40f7-8ad0-e3e35cd38297&amp;#34;&lt;/span&gt;,
          &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,
          &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;alterId&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;64&lt;/span&gt;
        }
      ]
    },
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;streamSettings&amp;#34;&lt;/span&gt;: {
      &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;指定底层传输方式为&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;WebSocket&lt;/span&gt;
      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;network&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ws&amp;#34;&lt;/span&gt;,
      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;wsSettings&amp;#34;&lt;/span&gt;: {
        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;在哪个路径上提供&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;WS&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;服务，可自定义&lt;/span&gt;
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;path&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/whatever&amp;#34;&lt;/span&gt;
      }
    }
  }],
  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;outbounds&amp;#34;&lt;/span&gt;: [{
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;freedom&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;: {}
  },{
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;protocol&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;blackhole&amp;#34;&lt;/span&gt;,
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;settings&amp;#34;&lt;/span&gt;: {},
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;tag&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;blocked&amp;#34;&lt;/span&gt;
  }],
  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;routing&amp;#34;&lt;/span&gt;: {
    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;rules&amp;#34;&lt;/span&gt;: [
      {
        &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;//&lt;/span&gt; &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;默认规则，禁止访问服务器内网&lt;/span&gt;
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;field&amp;#34;&lt;/span&gt;,
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;ip&amp;#34;&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;geoip:private&amp;#34;&lt;/span&gt;],
        &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;outboundTag&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;blocked&amp;#34;&lt;/span&gt;
      }
    ]
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;2-运行-v2ray&#34;&gt;2. 运行 V2Ray&lt;/h3&gt;
&lt;p&gt;在1中的文件夹内运行下列命令&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;docker run -d --name v2ray -v &lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;PWD&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;/config.json:/etc/v2ray/config.json -p 10086:10086 v2fly/v2fly-core:v5.4.1 run -c /etc/v2ray/config.json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;3-配置-nginx&#34;&gt;3. 配置 Nginx&lt;/h3&gt;
&lt;p&gt;在nginx的配置中添加下列内容&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-conf&#34; data-lang=&#34;conf&#34;&gt;location /whatever {
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection &amp;quot;upgrade&amp;quot;;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    set $is_v2ray 0;
    if ($http_upgrade = &amp;quot;websocket&amp;quot;) {
        set $is_v2ray 1;
    }

    if ($is_v2ray = 1) {
        # 仅当请求为 WebSocket 时才反代到 V2Ray
        proxy_pass http://127.0.0.1:10086;
    }

    if ($is_v2ray = 0) {
        # 否则显示正常网页
        rewrite ^/(.*)$ /mask-page last;
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;完成后测试&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;curl -i http://127.0.0.1:10086/whatever
&lt;span style=&#34;color:#75715e&#34;&gt;# 400 Bad Request 则为配置成功&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;4-配置-cloudflare&#34;&gt;4. 配置 CloudFlare&lt;/h3&gt;
&lt;p&gt;使用cloudflare dns, 并开启dns proxy&lt;/p&gt;
&lt;p&gt;完成后测试&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 安装wscat, `sudo npm install -g wscat`&lt;/span&gt;
wscat -c wss://example.com/whatever
&lt;span style=&#34;color:#75715e&#34;&gt;# Connected (press CTRL+C to quit) 则为成功&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;5-配置-v2rayn-客户端&#34;&gt;5. 配置 V2RayN 客户端&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;../../images/v2rayN_setting.png&#34; alt=&#34;V2RayN 客户端截图&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://printempw.github.io/v2ray-ws-tls-cloudflare/&#34;&gt;搭建备用梯子：V2Ray + WebSocket + TLS + CloudFlare - PRIN BLOG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://medium.com/@coorpee/docker-v2ray-caddy-3e484d6c84bc&#34;&gt;Docker v2ray + caddy. 说明 | by Coorpee | Medium&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/v2fly/v2ray-core/discussions/1508&#34;&gt;failed to read response header &amp;gt; websocket: close 1000 (normal)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>开发软件使用记录</title>
      <link>https://deletefromuser.github.io/pgm/2023071701/</link>
      <pubDate>Mon, 17 Jul 2023 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023071701/</guid>
      <description>&lt;h2 id=&#34;vscode&#34;&gt;VSCODE&lt;/h2&gt;
&lt;h3 id=&#34;切换命令行posershell-git-bash&#34;&gt;切换命令行(PoserShell-&amp;gt;Git Bash)&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;CTRL + SHIFT + P&lt;/code&gt;后，输入&lt;code&gt;Select Default Profile&lt;/code&gt;，选择bash即可&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;大小写转换&#34;&gt;大小写转换&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;CTRL + SHIFT + P&lt;/code&gt;后，输入upper, 选择&lt;code&gt;Transform to Uppercase&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CTRL + SHIFT + X&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://neutrondev.com/vs-code-integrate-git-bash-default-terminal/&#34;&gt;VS Code Integrate Git Bash as Default Terminal - Neutron Dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/35184509/make-selected-block-of-text-uppercase&#34;&gt;visual studio code - Make selected block of text uppercase - Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>AI提示词记录</title>
      <link>https://deletefromuser.github.io/pgm/2023071101/</link>
      <pubDate>Sun, 02 Jul 2023 12:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023071101/</guid>
      <description>&lt;h2 id=&#34;bing-ai&#34;&gt;Bing AI&lt;/h2&gt;
&lt;h3 id=&#34;根据汉字描述生成数据库表字段名&#34;&gt;根据汉字描述，生成数据库表字段名&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;书籍名称&lt;/p&gt;
&lt;p&gt;根据上面的描述，生成oracle数据库表中可用的表字段id，不需要类型，小于25个字符，每行一个给我&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;根据数据库表定义生成测试数据插入sql&#34;&gt;根据数据库表定义，生成测试数据插入SQL&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;[建表语句]&lt;/p&gt;
&lt;p&gt;这是一个数据库建表语句，给我生成一个往这个表里插入一条数据的sql&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;OR&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;this is a oracle table create sql, make a sql script to insert data to this table , i need 20 rows&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;给出一段有规律的数据生成后续&#34;&gt;给出一段有规律的数据，生成后续&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;SELECT 1, 1, 1, 1, &amp;lsquo;&#39;, &amp;lsquo;&#39;, &amp;lsquo;TEST&amp;rsquo;, &amp;lsquo;TEST&amp;rsquo;, 0, &amp;lsquo;&#39;, sysdate, 222, NULL, NULL&lt;/p&gt;
&lt;p&gt;UNION ALL&lt;/p&gt;
&lt;p&gt;SELECT 2, 1, 2, 2, &amp;lsquo;&#39;, &amp;lsquo;&#39;, &amp;lsquo;TEST2&amp;rsquo;, &amp;lsquo;TEST2&amp;rsquo;, 1, &amp;lsquo;&#39;, sysdate, 222, NULL, NULL&lt;/p&gt;
&lt;p&gt;UNION ALL&lt;/p&gt;
&lt;p&gt;续写上面的语句，重复20次&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;把url转换成markdown链接&#34;&gt;把url转换成markdown链接&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.cnblogs.com/huangjiandong2012/p/4040030.html&#34;&gt;https://www.cnblogs.com/huangjiandong2012/p/4040030.html&lt;/a&gt;
&lt;a href=&#34;https://docs.spring.io/spring-security/reference/servlet/authentication/session-management.html#session-mgmt&#34;&gt;https://docs.spring.io/spring-security/reference/servlet/authentication/session-management.html#session-mgmt&lt;/a&gt;
&lt;a href=&#34;https://mtyurt.net/post/spring-expiring-all-sessions-of-a-user.html&#34;&gt;https://mtyurt.net/post/spring-expiring-all-sessions-of-a-user.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;提取url的title, 转换成markdown格式的link&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;google-bard&#34;&gt;Google Bard&lt;/h2&gt;
&lt;h3 id=&#34;生成文章重点摘要&#34;&gt;生成文章重点摘要&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://cn.nytimes.com/china/20230711/china-marriage-rate/&#34;&gt;https://cn.nytimes.com/china/20230711/china-marriage-rate/&lt;/a&gt; 给我整理下这篇文章的重点内容&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;chatgpt&#34;&gt;ChatGPT&lt;/h2&gt;
&lt;h3 id=&#34;生成技术文章内的测试代码&#34;&gt;生成技术文章内的测试代码&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://qiita.com/mojihige/items/2cbf9b3ff1d6b743ab17&#34;&gt;https://qiita.com/mojihige/items/2cbf9b3ff1d6b743ab17&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;给我生成这篇文章里的测试用sql&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;中文翻译&#34;&gt;中文翻译&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;I want you to act as an chinese translator, spelling corrector and improver. I will speak to you in any language and you will detect the language, translate it and answer in the corrected and improved version of my text, in chinese.I want you to only reply the translation and nothing else, do not write explanations. My first sentence is &amp;ldquo;ランダムで取り巻きが発生&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;英文翻译&#34;&gt;英文翻译&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;I want you to act as an English translator, spelling corrector and improver. I will speak to you in any language and you will detect the language, translate it and answer in the corrected and improved version of my text, in English.I want you to only reply the translation and nothing else, do not write explanations. My first sentence is &amp;ldquo;istanbulu cok seviyom burada olmak cok guzel&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;日文翻译&#34;&gt;日文翻译&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;I want you to act as an japanese translator, spelling corrector and improver. I will speak to you in any language and you will detect the language, translate it and answer in the corrected and improved version of my text, in japanese.I want you to only reply the translation and nothing else, do not write explanations. My first sentence is &amp;ldquo;good morning&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;java工程师&#34;&gt;JAVA工程师&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;I want you to act as a java software engineer. I will write some programing questions and it will be your job to explain them in easy-to-understand terms. This could contain providing step-by-step instructions for writing code with visuals, or suggesting online resources for further study. My first suggestion request is &amp;ldquo;in java can threadlocal cause memory leak, explain to me with code&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;重置对话&#34;&gt;重置对话&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;ignore all i said above, blah blah&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;翻译菜名&#34;&gt;翻译菜名&lt;/h3&gt;
&lt;p&gt;你是一个日本料理专家，我给你一个中文菜名，给我对应的日语菜名，同时给出几个做法用料相似的日本料理， 第一个菜名是【青椒炒蛋】&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>暴力破解7z加密文件</title>
      <link>https://deletefromuser.github.io/pgm/2023070201/</link>
      <pubDate>Sun, 02 Jul 2023 12:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023070201/</guid>
      <description>&lt;h3 id=&#34;前置准备&#34;&gt;前置准备&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/philsmd/7z2hashcat&#34;&gt;7z2hashcat&lt;/a&gt; -&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/hashcat/hashcat&#34;&gt;hashcat&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;使用7z2hashcat获取给hashcat解密用的hash&#34;&gt;使用7z2hashcat获取给hashcat解密用的hash&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;perl 7z2hashcat.pl file.7z &amp;gt; hash.txt&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;使用hashcat暴力破解&#34;&gt;使用hashcat暴力破解&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;hashcat -a 3 -m 11600 hash.txt&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;../../images/2023070201_01.jpg&#34; alt=&#34;结果&#34;&gt;&lt;/p&gt;
&lt;p&gt;密码较长的话，花费时间就会很长。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://infinitelogins.com/2020/04/29/how-to-crack-encrypted-7z-archives/&#34;&gt;How to Crack Encrypted 7z Archives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://hashcat.net/forum/thread-6291.html&#34;&gt;Help with cracking 7zip hash&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://hashcat.net/wiki/doku.php?id=frequently_asked_questions#why_should_i_use_a_mask_attack_i_just_want_to_brute_these_hashes&#34;&gt;Why should I use a mask attack? I just want to &amp;ldquo;brute&amp;rdquo; these hashes!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>office使用记录</title>
      <link>https://deletefromuser.github.io/pgm/tip-2023060301/</link>
      <pubDate>Sat, 03 Jun 2023 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/tip-2023060301/</guid>
      <description>&lt;h4 id=&#34;word中快速粘贴无格式文本&#34;&gt;word中快速粘贴无格式文本&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Ctrl+Alt+V&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;excel中查找重复记录&#34;&gt;excel中查找重复记录&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Home -&amp;gt; Conditional Formatting -&amp;gt; Highlight Cells Rules, Duplicate Values&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;excel中查找相同记录个数为3的&#34;&gt;excel中查找相同记录个数为3的&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Home -&amp;gt; Conditional Formatting -&amp;gt; New Rule -&amp;gt; Use a formula to determine which cells to format -&amp;gt; COUNTIF($A$1:$C$10,A1)=3&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;libreoffice-calc中查找重复记录&#34;&gt;LibreOffice Calc中查找重复记录&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Format -&amp;gt; Conditional -&amp;gt; Condition -&amp;gt; Cell value is duplicate -&amp;gt; Apply Style&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://superuser.com/questions/1376470/what-is-the-keyboard-shortcut-for-pasting-without-formatting-in-ms-word&#34;&gt;What is the keyboard shortcut for pasting without formatting in MS Word?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.excel-easy.com/examples/find-duplicates.html&#34;&gt;How to Find Duplicates in Excel (In Easy Steps)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ask.libreoffice.org/t/auto-highlight-duplicate-entries-in-calc/46110&#34;&gt;Auto highlight duplicate entries in calc - English - Ask LibreOffice&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>使用gpg加密文件</title>
      <link>https://deletefromuser.github.io/pgm/2023051302/</link>
      <pubDate>Thu, 27 Apr 2023 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023051302/</guid>
      <description>&lt;h4 id=&#34;生成gpg密钥&#34;&gt;生成gpg密钥&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;gpg --gen-key
&lt;span style=&#34;color:#75715e&#34;&gt;# 需要输入姓名和邮箱，之后还需要输入passphase（需要记下来，解密的时候要用）&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;导出私钥私钥和passphase要保管好&#34;&gt;导出私钥(私钥和passphase要保管好)&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;gpg --armor --export-secret-key  --output secret.asc B54A68A0F2AB41B5B9DED944ECE08FA2
&lt;span style=&#34;color:#75715e&#34;&gt;# 导入私钥&lt;/span&gt;
gpg --import secret.asc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;导出公钥&#34;&gt;导出公钥&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;gpg --armor --output mypubkey.gpg --export your.name@youreamil.com
&lt;span style=&#34;color:#75715e&#34;&gt;# 复制公钥内容&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# cat mypubkey.gpg | clip&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;导入公钥假设加密另一个机器上的文件发送给自己&#34;&gt;导入公钥（假设加密另一个机器上的文件，发送给自己）&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;-----BEGIN PGP PUBLIC KEY BLOCK-----
&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;...
&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;-----END PGP PUBLIC KEY BLOCK-----
&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&lt;/span&gt; &amp;gt; mypubkey.gpg
gpg --import mypubkey.gpg
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;加密文件&#34;&gt;加密文件&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;gpg --output myfile.txt.gpg --encrypt --recipient your.name@youreamil.com  myfile.txt
&lt;span style=&#34;color:#75715e&#34;&gt;# 完成后可以通过https://www.file.io/之类的网站共享文件&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;解密文件&#34;&gt;解密文件&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;gpg --output myfile.txt --decrypt myfile.txt.gpg
&lt;span style=&#34;color:#75715e&#34;&gt;# 需要输入passphase&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;上传公钥到公共服务器&#34;&gt;上传公钥到公共服务器&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;gpg --list-secret-keys
&lt;span style=&#34;color:#75715e&#34;&gt;# sec   rsa3072 2023-05-13 [SC] [expires: 2025-05-12]&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;#       B54A68A0F2AB41B5B9DED944ECE08FA2&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 找到sec部分里的一串代码&lt;/span&gt;
gpg --send-keys B54A68A0F2AB41B5B9DED944ECE08FA2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;导入公共服务器中的公钥&#34;&gt;导入公共服务器中的公钥&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;gpg --recv-keys B54A68A0F2AB41B5B9DED944ECE08FA2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;搜索公共服务器&#34;&gt;搜索公共服务器&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 默认https://keys.openpgp.org，可修改&lt;/span&gt;
gpg --search-key your.name@youreamil.com
gpg --keyserver keys.gnupg.net --search-key your.name@youreamil.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;删除本地公钥和私钥&#34;&gt;删除本地公钥和私钥&lt;/h4&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 删除公钥&lt;/span&gt;
gpg --delete-keys tom
&lt;span style=&#34;color:#75715e&#34;&gt;# 删除公钥&lt;/span&gt;
gpg --delete-secret-keys tom
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://yanhan.github.io/posts/2017-09-27-how-to-use-gpg-to-encrypt-stuff/&#34;&gt;How to use GPG to encrypt stuff&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/334912/how-to-import-keys-from-a-keyserver-using-gpg-in-debian&#34;&gt;How to import keys from a keyserver using gpg in debian? - Unix &amp;amp; Linux Stack Exchange&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://linuxconfig.org/how-to-backup-gpg-keys-on-paper&#34;&gt;How to backup gpg keys on paper - Linux Tutorials - Learn Linux Configuration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>使用scrcpy在pc上控制android手机</title>
      <link>https://deletefromuser.github.io/pgm/2023042702/</link>
      <pubDate>Thu, 27 Apr 2023 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023042702/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;下载scrcpy，解压&lt;/li&gt;
&lt;li&gt;手机开启USB debuging&lt;/li&gt;
&lt;li&gt;手机连接电脑，手机会弹出确认窗口，点确认&lt;/li&gt;
&lt;li&gt;在解压后的scrcpy目录，打开命令行，输入&lt;code&gt;scrcpy -S&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/Genymobile/scrcpy/blob/master/FAQ.md&#34;&gt;https://github.com/Genymobile/scrcpy/blob/master/FAQ.md&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>使用mkvtoolnix批量去除mkv格式视频外挂字幕</title>
      <link>https://deletefromuser.github.io/pgm/2023042503/</link>
      <pubDate>Tue, 25 Apr 2023 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023042503/</guid>
      <description>&lt;h3 id=&#34;前提&#34;&gt;前提&lt;/h3&gt;
&lt;p&gt;视频文件内容必须统一，一般是剧集类的，并且要是mkv格式的&lt;/p&gt;
&lt;h3 id=&#34;打开mkvtoolnix选择某一个视频文件找到不要的字幕轨道取消选择导出optionsjson到视频所在文件夹&#34;&gt;打开mkvtoolnix，选择某一个视频文件，找到不要的字幕轨道取消选择，导出options.json到视频所在文件夹&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;../../images/2023042503_01.jpg&#34; alt=&#34;导出options.json&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;编辑optionsjson&#34;&gt;编辑options.json&lt;/h3&gt;
&lt;p&gt;删除跟刚才导入文件有关的参数&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  &amp;quot;--track-name&amp;quot;,
  &amp;quot;1:[Judas] JAP Stereo (Opus 112Kbps)&amp;quot;,
  &amp;quot;(&amp;quot;,
  &amp;quot;D:\\path\\[Judas] Shirobako (Season 1 + OVAs) [BD 1080p][HEVC x265 10bit][Eng-Subs]\\[Judas] Shirobako - S01E07.mkv&amp;quot;,
  &amp;quot;)&amp;quot;,
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;下载下面的脚本到视频所在文件夹并修改里面的mkvmergeexe位置启动脚本即可&#34;&gt;下载下面的脚本到视频所在文件夹，并修改里面的mkvmerge.exe位置，启动脚本即可&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;https://raw.githubusercontent.com/Serede/mkvtoolnix-batch/master/mkvtoolnix-batch.bat&lt;/code&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>使用js手动post数据</title>
      <link>https://deletefromuser.github.io/pgm/2023021801/</link>
      <pubDate>Fri, 17 Feb 2023 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2023021801/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;async&lt;/span&gt; () =&amp;gt; {
  &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rawResponse&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;await&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;fetch&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://httpbin.org/post&amp;#39;&lt;/span&gt;, {
    &lt;span style=&#34;color:#a6e22e&#34;&gt;method&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;POST&amp;#39;&lt;/span&gt;,
    &lt;span style=&#34;color:#a6e22e&#34;&gt;headers&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; {
      &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Accept&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;application/json&amp;#39;&lt;/span&gt;,
      &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Content-Type&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;application/json&amp;#39;&lt;/span&gt;
    },
    &lt;span style=&#34;color:#a6e22e&#34;&gt;body&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;JSON&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;stringify&lt;/span&gt;({&lt;span style=&#34;color:#a6e22e&#34;&gt;a&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;b&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Textual content&amp;#39;&lt;/span&gt;})
  });
&lt;span style=&#34;color:#75715e&#34;&gt;//   const content = await rawResponse.json();
&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;content&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;await&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;rawResponse&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;text&lt;/span&gt;();

  &lt;span style=&#34;color:#a6e22e&#34;&gt;console&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;log&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;content&lt;/span&gt;);
})();
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/29775797/fetch-post-json-data&#34;&gt;Fetch: POST JSON data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Chrome中运行&amp;保存JS代码</title>
      <link>https://deletefromuser.github.io/pgm/2022121402/</link>
      <pubDate>Wed, 14 Dec 2022 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2022121402/</guid>
      <description>&lt;p&gt;F12 -&amp;gt; Sources -&amp;gt; Snippets -&amp;gt; new snippet可新建代码片段，创建完成后右键运行即可&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://developer.chrome.com/docs/devtools/javascript/snippets/&#34;&gt;Run snippets of JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>工作笔记2016-2021</title>
      <link>https://deletefromuser.github.io/pgm/2022120601/</link>
      <pubDate>Tue, 06 Dec 2022 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2022120601/</guid>
      <description>&lt;h3 id=&#34;停止网页重定向&#34;&gt;停止网页重定向&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;window.&lt;span style=&#34;color:#a6e22e&#34;&gt;addEventListener&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;beforeunload&amp;#34;&lt;/span&gt;, () =&amp;gt; { &lt;span style=&#34;color:#66d9ef&#34;&gt;debugger&lt;/span&gt;; }, &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;js转换字符为unicode&#34;&gt;JS转换字符为UNICODE&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;escape&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;转换字符&amp;#34;&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;/%/g&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\\&amp;#34;&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;toLowerCase&lt;/span&gt;();
&lt;span style=&#34;color:#75715e&#34;&gt;// 十进制unicode字符码转换为字符
&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;String.&lt;span style=&#34;color:#a6e22e&#34;&gt;fromCharCode&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;112&lt;/span&gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;js获取一组元素取出属性并组合&#34;&gt;JS获取一组元素取出属性并组合&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// 取得链接url，空格连接
&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;[...document.&lt;span style=&#34;color:#a6e22e&#34;&gt;querySelectorAll&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;[id=thumbnail]&amp;#39;&lt;/span&gt;)].&lt;span style=&#34;color:#a6e22e&#34;&gt;map&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;item&lt;/span&gt; =&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;item&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;join&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;)
Array.&lt;span style=&#34;color:#a6e22e&#34;&gt;prototype&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;slice&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;call&lt;/span&gt;(document.&lt;span style=&#34;color:#a6e22e&#34;&gt;querySelectorAll&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;[id=thumbnail]&amp;#39;&lt;/span&gt;)).&lt;span style=&#34;color:#a6e22e&#34;&gt;map&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;item&lt;/span&gt; =&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;item&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;join&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;)
&lt;span style=&#34;color:#75715e&#34;&gt;// 取得链接url，换行连接
&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;[...document.&lt;span style=&#34;color:#a6e22e&#34;&gt;querySelectorAll&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;[id=thumbnail]&amp;#39;&lt;/span&gt;)].&lt;span style=&#34;color:#a6e22e&#34;&gt;map&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;item&lt;/span&gt; =&amp;gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;item&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;href&lt;/span&gt;).&lt;span style=&#34;color:#a6e22e&#34;&gt;reduce&lt;/span&gt;((&lt;span style=&#34;color:#a6e22e&#34;&gt;a&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;b&lt;/span&gt;) =&amp;gt; {&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;a&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;\n&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;b&lt;/span&gt;;})
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;db2-表异常解决办法&#34;&gt;db2 表异常解决办法&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;connect&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; dbut &lt;span style=&#34;color:#66d9ef&#34;&gt;user&lt;/span&gt; tom &lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; password01
&lt;span style=&#34;color:#66d9ef&#34;&gt;load&lt;/span&gt; query &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; ut.userinfo
reorg &lt;span style=&#34;color:#66d9ef&#34;&gt;table&lt;/span&gt; ut.userinfo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;db2-导出导入表数据&#34;&gt;db2 导出导入表数据&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;export &lt;span style=&#34;color:#66d9ef&#34;&gt;to&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;path&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;userinfo_data.ixf &lt;span style=&#34;color:#66d9ef&#34;&gt;of&lt;/span&gt; ixf &lt;span style=&#34;color:#66d9ef&#34;&gt;select&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;from&lt;/span&gt; ut.userinfo &lt;span style=&#34;color:#66d9ef&#34;&gt;fetch&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;first&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;rows&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;only&lt;/span&gt;

import &lt;span style=&#34;color:#66d9ef&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;path&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;userinfo_data.ixf &lt;span style=&#34;color:#66d9ef&#34;&gt;of&lt;/span&gt; ixf &lt;span style=&#34;color:#66d9ef&#34;&gt;insert&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;into&lt;/span&gt; ut.userinfonew
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;java取得文件行数&#34;&gt;java取得文件行数&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;Files&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;lines&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;Paths&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;get&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/path/file&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)).&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;count&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;根据wsdl文件生成代码&#34;&gt;根据wsdl文件生成代码&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;wsimport -s /path/result/ file:/path/userinfo.wsdl -wsdllocation file:/serverpath/userinfo.wsdl -encoding utf-8 -Xnocompile
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;linux下查看特定文件的实时内容&#34;&gt;linux下查看特定文件的实时内容&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;tail -500f /path/result/info.log
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;ihs启动与停止配置规则删除特定cookie&#34;&gt;IHS启动与停止，配置规则删除特定cookie&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;/usr/IBM/HTTPServer/bin/apachectl -k start -f /usr/IBM/HTTPServer/conf/httpd.conf
/usr/IBM/HTTPServer/bin/apachectl -k stop -f /usr/IBM/HTTPServer/conf/httpd.conf

&lt;span style=&#34;color:#75715e&#34;&gt;# /usr/IBM/HTTPServer/conf/httpd.conf&lt;/span&gt;
Header edit Set-Cookie &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;^(JESSIONID=).*&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$1&lt;span style=&#34;color:#e6db74&#34;&gt;;Path=/;Expires=Thu, 01 Jan 1970 00:00:00 GMT&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;查看linux发行版信息&#34;&gt;查看linux发行版信息&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;cat /proc/version
&lt;span style=&#34;color:#75715e&#34;&gt;# Linux version 5.4.0-132-generic (buildd@lcy02-amd64-059) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #148-Ubuntu SMP Mon Oct 17 16:02:06 UTC 2022&lt;/span&gt;
uname -a
&lt;span style=&#34;color:#75715e&#34;&gt;# Linux vu18-VirtualBox 5.4.0-132-generic #148-Ubuntu SMP Mon Oct 17 16:02:06 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux&lt;/span&gt;
lsb_release -a
&lt;span style=&#34;color:#75715e&#34;&gt;# No LSB modules are available.&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# Distributor ID:	Ubuntu&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# Description:	Ubuntu 20.04.5 LTS&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# Release:	20.04&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# Codename:	focal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;查看linux发行版信息-1&#34;&gt;查看linux发行版信息&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;cat /proc/version
&lt;span style=&#34;color:#75715e&#34;&gt;# Linux version 5.4.0-132-generic (buildd@lcy02-amd64-059) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #148-Ubuntu SMP Mon Oct 17 16:02:06 UTC 2022&lt;/span&gt;
uname -a
&lt;span style=&#34;color:#75715e&#34;&gt;# Linux vu18-VirtualBox 5.4.0-132-generic #148-Ubuntu SMP Mon Oct 17 16:02:06 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux&lt;/span&gt;
lsb_release -a
&lt;span style=&#34;color:#75715e&#34;&gt;# No LSB modules are available.&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# Distributor ID:	Ubuntu&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# Description:	Ubuntu 20.04.5 LTS&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# Release:	20.04&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# Codename:	focal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;计算文件hash值&#34;&gt;计算文件hash值&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;openssl sha1 /path/file
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;vim操作&#34;&gt;vim操作&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 显示行数&lt;/span&gt;
:set nu
&lt;span style=&#34;color:#75715e&#34;&gt;# 搜索&lt;/span&gt;
/keyword
&lt;span style=&#34;color:#75715e&#34;&gt;# ENTER&lt;/span&gt;
n &lt;span style=&#34;color:#75715e&#34;&gt;#to next occurrence&lt;/span&gt; 
N &lt;span style=&#34;color:#75715e&#34;&gt;#to prev occurrence&lt;/span&gt; 
&lt;span style=&#34;color:#75715e&#34;&gt;# 替换&lt;/span&gt;
:s/article/tutorial/g &lt;span style=&#34;color:#75715e&#34;&gt;# 在当前行内全部替换&lt;/span&gt;
:%s/article/tutorial/g &lt;span style=&#34;color:#75715e&#34;&gt;# 在当前文件内全部替换&lt;/span&gt;
:%s/article/tutorial/gi &lt;span style=&#34;color:#75715e&#34;&gt;# 在当前文件内忽略大小写全部替换&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 删除字符&lt;/span&gt;
x
&lt;span style=&#34;color:#75715e&#34;&gt;# 剪切行，也可用作删除&lt;/span&gt;
dd
&lt;span style=&#34;color:#75715e&#34;&gt;# 复制行&lt;/span&gt;
yy 或者 Y
&lt;span style=&#34;color:#75715e&#34;&gt;# 在当前行前粘贴&lt;/span&gt;
P
&lt;span style=&#34;color:#75715e&#34;&gt;# 在当前行后粘贴&lt;/span&gt;
p

&lt;span style=&#34;color:#75715e&#34;&gt;# 注释多行代码&lt;/span&gt;
Ctrl + V
使用箭头选择多行
Shift + i
输入# 
ESC + ESC

&lt;span style=&#34;color:#75715e&#34;&gt;# 去掉注释&lt;/span&gt;
Ctrl + V
使用箭头选择多行
x
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;find命令查找文件&#34;&gt;find命令查找文件&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 列出所有文件&lt;/span&gt;
find . -type f
&lt;span style=&#34;color:#75715e&#34;&gt;# 查找指定名字的文件，文件夹&lt;/span&gt;
find . -name test.md
find . -name *.md
find . -regex &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.*.md&amp;#39;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 列出所有文件夹，层数1即当前目录&lt;/span&gt;
find . -maxdepth &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; -type d
&lt;span style=&#34;color:#75715e&#34;&gt;# 列出所有层数大于10的文件夹&lt;/span&gt;
find . -mindepth &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt; -type d
&lt;span style=&#34;color:#75715e&#34;&gt;# 查找文件并替换对应内容（所有文件的修改日期都会变掉）&lt;/span&gt;
find . -type f -exec perl -pi -e &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s/public/private/g&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;
find . -type f -exec sed -i &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s/public/private/g&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;
sed -i &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s/# requirepass foobared/requirepass xxx/&amp;#39;&lt;/span&gt; /etc/redis/redis_6487.conf
sed -i &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s/# maxmemory &amp;lt;bytes&amp;gt;/maxmemory 52548800/&amp;#39;&lt;/span&gt; /etc/redis/redis_6487.conf
&lt;span style=&#34;color:#75715e&#34;&gt;# 查找文件并替换对应内容（如果没有包含关键字则不修改文件，修改日期不会变）&lt;/span&gt;
grep -rli &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;old-word&amp;#39;&lt;/span&gt; * | xargs -i@ sed -i &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s/old-word/new-word/g&amp;#39;&lt;/span&gt; @
&lt;span style=&#34;color:#75715e&#34;&gt;# 查找文件并替换对应内容(包含/)&lt;/span&gt;
find . -type f -exec perl -pi -e &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s#public#private#g&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;
find . -type f -exec sed -i &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s#public#private#g&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 查找最近被修改过的三个文件&lt;/span&gt;
find . -type f -exec stat -c &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;%Y %n&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt; | sort -nr | awk &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;NR==1,NR==3 {print $2}&amp;#39;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 查找最近时间段内被修改过的文件&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 180天&lt;/span&gt;
find . -type f -mtime -180
find . -type f -mtime -180 -exec ls -lrt &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 120分钟&lt;/span&gt;
find . -type f -mmin -120 -exec ls -lrt &lt;span style=&#34;color:#f92672&#34;&gt;{}&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 复制目录结构&lt;/span&gt;
find . -type d &amp;gt; dirs.txt
xargs mkdir -p &amp;lt; dirs.txt
&lt;span style=&#34;color:#75715e&#34;&gt;# 查找大于100m的文件&lt;/span&gt;
find . -type f -size +100M
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;每隔一段时间执行一段命令&#34;&gt;每隔一段时间执行一段命令&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 每隔五秒钟打印一次磁盘空间信息&lt;/span&gt;
&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; true; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; date; df -h; sleep 5; &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;
&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; true; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; date; df -h | grep &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/dev/sda1&amp;#39;&lt;/span&gt;; sleep 5; &lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -d 高亮变化的部分 -d 间隔(单位秒)&lt;/span&gt;
watch -d -n &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; df -h
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;使用scp复制远程服务器到本地复制本地文件到远程服务器&#34;&gt;使用scp复制远程服务器到本地,复制本地文件到远程服务器&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;scp -r -P &lt;span style=&#34;color:#ae81ff&#34;&gt;22&lt;/span&gt; tom@ip:/path/file ./
scp -P &lt;span style=&#34;color:#ae81ff&#34;&gt;22&lt;/span&gt; /local/path/file tom@ip:~/temp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;复制文件夹保持原来的权限和链接&#34;&gt;复制文件夹，保持原来的权限和链接&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;cp -rpH /path/ ./
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;curl使用&#34;&gt;curl使用&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# -k 忽略证书错误，-c 显示cookie&lt;/span&gt;
curl -k -c - https://www.baeldung.com/linux/vim-search-replace
&lt;span style=&#34;color:#75715e&#34;&gt;# 在未安装curl的机器上请求url&lt;/span&gt;
perl -MLWP::Simple -e &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;getprint &amp;#39;https://www.baeldung.com/linux/vim-search-replace&amp;#39;&amp;#34;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 依次请求多个url&lt;/span&gt;
curl https://jsonplaceholder.typicode.com/todos/1 https://jsonplaceholder.typicode.com/todos/12
&lt;span style=&#34;color:#75715e&#34;&gt;# 请求时使用用户名&lt;/span&gt;
curl -u username http://example.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;检查机器支持的ssl版本&#34;&gt;检查机器支持的ssl版本&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;openssl ciphers -v | awk &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt; | sort | uniq
&lt;span style=&#34;color:#75715e&#34;&gt;# 检查网站的ssl版本&lt;/span&gt;
openssl s_client -connect bing.com:443
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;正则表达式&#34;&gt;正则表达式&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 大小写转换 
# \U$1 \L$1 全部转换为大写，小写
# \u$1 \l$1 首字母转换为大写，小写
# \p{Lu} \p{Ll} 匹配大写，小写字母
# USER_PET_NAME -&amp;gt; userPetName
([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_([a-zA-Z0-9]+) -&amp;gt; \L$1\u$2\u$3
# USER_PET_NAME &amp;lt;- userPetName
(\p{Ll}+)(\p{Lu}\p{Ll}+)(\p{Lu}\p{Ll}+) -&amp;gt; \U$1_$2_$3
# 常用表达式
\s 空白字符[ \f\n\r\t\v]，会匹配全角空格符
\S 非空白字符[^ \f\n\r\t\v]
\d 数字字符[0-9]，会匹配全角数字字符
\D 非数字字符[^0-9]
\w 包括下划线的任何单词字符[A-Za-z0-9_]，会匹配中文字符
\W 非单词字符[^A-Za-z0-9_]
# 正向肯定预查
(?=pattern)
(?:pattern)
# 正向否定预查
(?!pattern)
# 反向肯定预查
(?&amp;lt;=pattern)
# 反向否定预查
(?&amp;lt;!pattern)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;查看linux命令位置和内容&#34;&gt;查看linux命令位置和内容&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;whereis vim
type -a vim
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;文件中搜索字符串&#34;&gt;文件中搜索字符串&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# -i 忽略大小写&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -o 不输出整行，只输出符合搜索样式的部分&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -n 显示行数&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -A 显示检索结果行之后的特定行&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -B 显示检索结果行之前的特定行&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -e 指定检索字符串，可设置复数个&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -E 使用正则表达式&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -R 检索子目录&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# -h 不显示文件名&lt;/span&gt;
grep -ion &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;keyword&amp;#39;&lt;/span&gt; /path/file -A &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt; -B &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 使用正则表达式搜索&lt;/span&gt;
egrep -i &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;public|private&amp;#39;&lt;/span&gt; /path/file
&lt;span style=&#34;color:#75715e&#34;&gt;# 在文件夹内特定后缀的文件中检索&lt;/span&gt;
grep -r &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cluster&amp;#39;&lt;/span&gt; --include &lt;span style=&#34;color:#ae81ff&#34;&gt;\*&lt;/span&gt;.yml /path/
&lt;span style=&#34;color:#75715e&#34;&gt;# 在压缩文件中检索（过去的log有时会被备份为gz）&lt;/span&gt;
zgrep -e &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cluster&amp;#39;&lt;/span&gt; -e &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;another pattern&amp;#39;&lt;/span&gt; /path/*
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;查看linux进程&#34;&gt;查看linux进程&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 根据名字查找&lt;/span&gt;
ps -ef | grep java
&lt;span style=&#34;color:#75715e&#34;&gt;# 根据监听端口号&lt;/span&gt;
lsof -i :8080
&lt;span style=&#34;color:#75715e&#34;&gt;# 杀掉监听指定端口好的程序&lt;/span&gt;
kill -9 &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;lsof -t -i:8080&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 查找正在使用某一个文件的进程&lt;/span&gt;
fuser /path/file
ps -ef | grep PID
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;解压缩&#34;&gt;解压缩&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Create archive.tar from files foo and bar.&lt;/span&gt;
tar -cf archive.tar foo bar --exclude&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;my-base-dir/target&amp;#39;&lt;/span&gt; --exclude&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;my-base-dir/.git&amp;#39;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# List all files in archive.tar verbosely.&lt;/span&gt;
tar -tvf archive.tar
&lt;span style=&#34;color:#75715e&#34;&gt;# Extract all files from archive.tar.&lt;/span&gt;
tar -xf archive.tar
&lt;span style=&#34;color:#75715e&#34;&gt;# 提取tar包中的特定文件&lt;/span&gt;
tar -zxvf &amp;lt;tar filename&amp;gt; &amp;lt;file you want to extract&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;excel函数使用&#34;&gt;Excel函数使用&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# google表格也支持下面的函数&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 搜索 L2 单元格内的内容在 I4:I15 区域内出现的次数&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;SUMPRODUCT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;len&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;I4:I15&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;-len&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;SUBSTITUTE&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;I4:I15,L2,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)))&lt;/span&gt;/len&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;L2&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 获取A2单元格内字符2右边的内容&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;RIGHT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A4,len&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A4&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;-find&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;,A4&lt;span style=&#34;color:#f92672&#34;&gt;))&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 获取A6单元格内字符2左边的内容&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;LEFT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A6,find&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;,A6&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;-1&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 获取文件后缀名&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;UPPER&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;RIGHT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;C10,len&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;C10&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;-find&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.&amp;#34;&lt;/span&gt;,C10&lt;span style=&#34;color:#f92672&#34;&gt;)))&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 获取所在列(E)所在单元格上面非空的单元格数量（也可从特定行(E1)开始计算）&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;counta&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;E1:INDIRECT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;E&amp;#34;&lt;/span&gt; &amp;amp; ROW&lt;span style=&#34;color:#f92672&#34;&gt;()&lt;/span&gt; - 1&lt;span style=&#34;color:#f92672&#34;&gt;))&lt;/span&gt; + &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 获取所在列以外特定列(I)中最后一个非空值&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;ARRAY_CONSTRAIN&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;ARRAYFORMULA&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;LOOKUP&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;2,1/&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;I:I&amp;lt;&amp;gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;,I:I&lt;span style=&#34;color:#f92672&#34;&gt;))&lt;/span&gt;, 1, 1&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 获取特定列(I)中(也适用于所在列)最后一个非空值&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;ARRAY_CONSTRAIN&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;ARRAYFORMULA&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;LOOKUP&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;2,1/&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;INDIRECT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;I1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;:INDIRECT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;I&amp;#34;&lt;/span&gt; &amp;amp; ROW&lt;span style=&#34;color:#f92672&#34;&gt;()&lt;/span&gt; - 1&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&amp;lt;&amp;gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;,INDIRECT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;I1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;:INDIRECT&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;I&amp;#34;&lt;/span&gt; &amp;amp; ROW&lt;span style=&#34;color:#f92672&#34;&gt;()&lt;/span&gt; - 1&lt;span style=&#34;color:#f92672&#34;&gt;)))&lt;/span&gt;, 1, 1&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 获取特定单元格(A2)的值，如果为空，取另一个单元格(B1)的值&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;IF&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;ISBLANK&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A2&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;,B1,A2&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 取得两个单元格的值相加&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;A1&amp;amp;B2
&lt;span style=&#34;color:#75715e&#34;&gt;# 比较四列数据, 如果A1中的值在C列中存在(CX),且B1=DX则为1, 在C列存在但B1!=DX否则为0, 在C列不存在则为#N/A&lt;/span&gt;
&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;IF&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;AND&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;ISNUMBER&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;MATCH&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A1,C:C,0&lt;span style=&#34;color:#f92672&#34;&gt;))&lt;/span&gt;,B1&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;VLOOKUP&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A1,C:D,2,0&lt;span style=&#34;color:#f92672&#34;&gt;))&lt;/span&gt;,1,0&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://wangdoc.com/javascript/stdlib/array&#34;&gt;JavaScript 教程 &amp;gt; 标准库 &amp;gt; Array 对象&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.cnblogs.com/paul8339/p/9724738.html&#34;&gt;深入理解 sudo 与 su 之间的区别&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/73319/how-to-duplicate-a-whole-line-in-vim&#34;&gt;How to duplicate a whole line in Vim?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/11392478/how-to-replace-a-string-in-multiple-files-in-linux-command-line&#34;&gt;How to replace a string in multiple files in linux command line&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.howtogeek.com/517098/linux-file-timestamps-explained-atime-mtime-and-ctime&#34;&gt;Linux File Timestamps Explained: atime, mtime, and ctime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://exceljet.net/formulas/get-value-of-last-non-empty-cell&#34;&gt;Get value of last non-empty cell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://udemy.benesse.co.jp/business/office/lookup-function.html&#34;&gt;【エクセルのLOOKUP関数の使い方】VLOOKUP関数とLOOKUP関数の違いも&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ablebits.com/office-addins-blog/excel-lookup-function/&#34;&gt;Excel LOOKUP function with formula examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.linuxshelltips.com/run-linux-command-periodically/&#34;&gt;How to Run a Command Periodically in Linux using Watch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F#PCRE%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%85%A8%E9%9B%86&#34;&gt;正则表达式&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/12516937/how-can-i-grep-recursively-but-only-in-files-with-certain-extensions&#34;&gt;How can I grep recursively, but only in files with certain extensions?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/61461/how-to-extract-specific-files-from-tar-gz&#34;&gt;How to extract specific file(s) from tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/984204/shell-command-to-tar-directory-excluding-certain-files-folders&#34;&gt;Shell command to tar directory excluding certain files/folders&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://appuals.com/how-to-kill-process-on-port/&#34;&gt;How to Kill Process on Port?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/1676632/whats-a-quick-way-to-comment-uncomment-lines-in-vim&#34;&gt;What&amp;rsquo;s a quick way to comment/uncomment lines in Vim?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/11392478/how-to-replace-a-string-in-multiple-files-in-linux-command-line&#34;&gt;How to replace a string in multiple files in linux command line - Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>使用命令行上传文件到共享网站file.io</title>
      <link>https://deletefromuser.github.io/pgm/2022112601/</link>
      <pubDate>Sat, 26 Nov 2022 20:00:00 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2022112601/</guid>
      <description>&lt;p&gt;在&lt;code&gt;~/.bashrc&lt;/code&gt;最后添加下面脚本&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;upload &lt;span style=&#34;color:#f92672&#34;&gt;()&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; $# &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; -o $# &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; -f &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$1&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; $# &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt; curl -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;file=@&lt;/span&gt;$1&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; https://file.io/ --no-progress-meter | grep -Eo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http|https://[a-zA-Z0-9./?=_%:-]*&amp;#34;&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$2&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;~ ^&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;1-9&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;+&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;wmy&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;$ &lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt; curl -F &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;file=@&lt;/span&gt;$1&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; https://file.io/&lt;span style=&#34;color:#ae81ff&#34;&gt;\?&lt;/span&gt;expires&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$2 --no-progress-meter | grep -Eo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http|https://[a-zA-Z0-9./?=_%:-]*&amp;#34;&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; echo &lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;Wrong expiration format.\neg. 1(w/m/y), etc.&amp;#39;&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;file doesn&amp;#39;t exist&amp;#34;&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; echo &lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#39;usage: upload file_name.ext [expiration]\nexpiration format: 1-9(w/m/y) # (w)eeks, m(onths), (y)ear&amp;#39;&lt;/span&gt;;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;source ~/.bashrc

&lt;span style=&#34;color:#75715e&#34;&gt;# 文件太大时分割文件&lt;/span&gt;
zip existing.zip --out new.zip -s 500m

&lt;span style=&#34;color:#75715e&#34;&gt;# 上传&lt;/span&gt;
upload testfile.txt

&lt;span style=&#34;color:#75715e&#34;&gt;# 下载&lt;/span&gt;
wget -O dirs.zip https://file.io/lhQ7adehy7xc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://amanroy.me/upload-file-from-terminal&#34;&gt;Make terminal upload file using file.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://superuser.com/questions/336219/how-do-i-split-a-zip-file-into-multiple-segments&#34;&gt;How do I split a .zip file into multiple segments?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>eclipse中一键全部展开目录树</title>
      <link>https://deletefromuser.github.io/pgm/2019012001/</link>
      <pubDate>Sun, 20 Jan 2019 01:33:58 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2019012001/</guid>
      <description>&lt;h1 id=&#34;eclipse中一键全部展开目录树&#34;&gt;eclipse中一键全部展开目录树&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;在package explorer中使用&lt;code&gt;*&lt;/code&gt;能展开全部的目录树&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;但是会把引用的包也都全部展开，java文件的成员也会展开，大部分时候这些东西对我没有用，所以下一步就是把不需要的东西隐藏掉&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;点击package explorer内右上角的小箭头-&amp;gt;Filters&amp;hellip;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;选中上方的Name Filter pattern，并在输入框中输入&lt;code&gt;target&lt;/code&gt;，这会把目录树中的target文件夹隐藏掉，当然你也可以设置别的目录，用逗号分隔可以设置多个目录&lt;/li&gt;
&lt;li&gt;接着在下方的&lt;code&gt;Select the elements to exclude from the view&lt;/code&gt;中选中&lt;code&gt;Java Members&lt;/code&gt;、&lt;code&gt;Libraries from external&lt;/code&gt;、&lt;code&gt;Libraries in project&lt;/code&gt;，隐藏掉java成员和引用的包&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>git 常用命令</title>
      <link>https://deletefromuser.github.io/pgm/2017032303/</link>
      <pubDate>Thu, 23 Mar 2017 03:33:58 +0800</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2017032303/</guid>
      <description>&lt;h3 id=&#34;常用命令&#34;&gt;常用命令&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 拉取代码&lt;/span&gt;
git pull --all
&lt;span style=&#34;color:#75715e&#34;&gt;# 提交dev分支到远程仓库&lt;/span&gt;
git push origin dev
&lt;span style=&#34;color:#75715e&#34;&gt;# 将某一个提交的变更应用到代码库&lt;/span&gt;
git cherry-pick -n bd61ad98
&lt;span style=&#34;color:#75715e&#34;&gt;# 将某区间提交的变更应用到代码库&lt;/span&gt;
git cherry-pick -n bd61ad98^..ade56rq1
&lt;span style=&#34;color:#75715e&#34;&gt;# 强制回退到上一个commit(未push)&lt;/span&gt;
git reset --hard HEAD^
&lt;span style=&#34;color:#75715e&#34;&gt;# 强制回退到上上个commit(未push)&lt;/span&gt;
git reset --hard HEAD~2
&lt;span style=&#34;color:#75715e&#34;&gt;# 回退到上一个commit, 但保留变更后的文件&lt;/span&gt;
git reset HEAD^
&lt;span style=&#34;color:#75715e&#34;&gt;# 取消某个版本的修改&lt;/span&gt;
git revert &amp;lt;commit hash&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;使用ssh连接git&#34;&gt;使用ssh连接git&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 生成ssh key&lt;/span&gt;
ssh-keygen -t ed25519 -C &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;your_email@example.com&amp;#34;&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 把ssh公钥(pub后缀的文件)加入到git账户&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 把ssh key加入到ssh-agent&lt;/span&gt;
eval &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;ssh-agent -s&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;
ssh-add ~/.ssh/id_ed25519
&lt;span style=&#34;color:#75715e&#34;&gt;# 测试&lt;/span&gt;
ssh -T git@github.com

&lt;span style=&#34;color:#75715e&#34;&gt;# 杀掉所有ssh-agent进程&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 因为每开一个terminal就要跑这些命令，开始一个ssh-agent，运行一段时间之后，后台就会有很多进程&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# bash&lt;/span&gt;
ps -ef | grep ssh-agent | grep -v grep | awk &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt; | xargs kill -9
&lt;span style=&#34;color:#75715e&#34;&gt;# windows&lt;/span&gt;
taskkill /F /IM ssh-agent.exe /T
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;git-將文件轉移位置&#34;&gt;git 將文件轉移位置&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git mv 2017032003.md csharp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;查看某一次提交的文件列表&#34;&gt;查看某一次提交的文件列表&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git show --pretty&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; --name-only bd61ad98
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;查看某一个文件的提交历史&#34;&gt;查看某一个文件的提交历史&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git log --follow -- filename
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;同时在多个分支工作&#34;&gt;同时在多个分支工作&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;git worktree add -b hotfix ../hotfix
git worktree list
pushd ../hotfix
&lt;span style=&#34;color:#75715e&#34;&gt;# working on hotfix branch&lt;/span&gt;
popd
git worktree remove ../hotfix
git worktree prune
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;查看stash的文件具体内容&#34;&gt;查看stash的文件具体内容&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git stash show -p
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;stash单个文件&#34;&gt;stash单个文件&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git stash -- filename.ext
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;恢复在以前某个版本被删除的文件&#34;&gt;恢复在以前某个版本被删除的文件&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;### 先找到被删除时的commit&lt;/span&gt;
git log -- &amp;lt;filename&amp;gt;
git checkout &amp;lt;deletion commit hash&amp;gt;~1 -- &amp;lt;filename&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;tortoisegit也是很好用的&#34;&gt;TortoiseGit也是很好用的&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;生成patch，应用patch，以及查看diff，blame，gui还是很好用的&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;删除-git-远程仓库中忘记加入-gitignore-的资源&#34;&gt;删除 git 远程仓库中忘记加入 .gitignore 的资源&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git rm --cached remove_file
&lt;span style=&#34;color:#75715e&#34;&gt;# add file to gitignore`&lt;/span&gt;
git add .gitignore&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
git commit -m &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Excluding&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;修改分支和远程分支名&#34;&gt;修改分支和远程分支名&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git branch -m &amp;lt;old_name&amp;gt; &amp;lt;new_name&amp;gt;
git push &amp;lt;remote&amp;gt; --delete &amp;lt;old_name&amp;gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# OR shorter&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# git push &amp;lt;remote&amp;gt; :&amp;lt;old_name&amp;gt;&lt;/span&gt;
git branch --unset-upstream &amp;lt;new_name&amp;gt;
git push &amp;lt;remote&amp;gt; &amp;lt;new_name&amp;gt;
git push &amp;lt;remote&amp;gt; -u &amp;lt;new_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;clone时指定用户名&#34;&gt;clone时指定用户名&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git clone https://username@github.com/username/repository.git

&lt;span style=&#34;color:#75715e&#34;&gt;# 使用token进行clone(其实跟上面没有本质区别，token本来就是用来代替密码的)&lt;/span&gt;
git clone https://username:token@github.com/username/repository.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;git-bash中使用sh命令时出现警告__git_ps1-command-not-found&#34;&gt;git bash中使用sh命令时出现警告&amp;rdquo;__git_ps1: command not found&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;找到completion/git-prompt.sh，在~/.bash_profile或者内部引用的配置文件中添加&lt;code&gt;source /path/git-prompt.sh&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;导出svn-patch&#34;&gt;导出svn patch&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git diff --no-prefix &amp;gt; ~/some-feature.diff
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;git-rebase&#34;&gt;git rebase&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 把多个commit合并成一个&lt;/span&gt;
git rebase -i &amp;lt;待合并commit的前一个commit&amp;gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 如果已经push到了remote，rebase完成后需要强制push&lt;/span&gt;
git push -f
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://githowto.com/moving_files&#34;&gt;20. Moving files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/424071/how-do-i-list-all-the-files-in-a-commit&#34;&gt;How do I list all the files in a commit?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/3701404/how-to-list-all-commits-that-changed-a-specific-file&#34;&gt;How to list all commits that changed a specific file?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://git-scm.com/docs/git-worktree&#34;&gt;Git - git-worktree Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=s4BTvj1ZVLM&#34;&gt;How to Use Git Worktree | Checkout Multiple Git Branches at Once&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/10725729/see-whats-in-a-stash-without-applying-it&#34;&gt;See what&amp;rsquo;s in a stash without applying it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/1670970/how-to-cherry-pick-multiple-commits&#34;&gt;How to cherry-pick multiple commits&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/12420924/stash-just-a-single-file&#34;&gt;Stash just a single file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/a/42141656/19120213&#34;&gt;Git: How to remove file from index without deleting files from any repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/a/10054470/19120213&#34;&gt;How do I provide a username and password when running &amp;ldquo;git clone git@remote.git&amp;rdquo;?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://anotheruiguy.gitbooks.io/gitforeveryone/content/auto/README.html#:~:text=If%20you%20are%20seeing%20this,and%20install%20a%20new%20one.&#34;&gt;-bash: __git_ps1: command not found&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://scribu.net/wordpress/svn-patches-from-git.html&#34;&gt;svn patches from git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.git-tower.com/learn/git/faq/restoring-deleted-files&#34;&gt;Restoring deleted files in Git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.quora.com/How-do-I-kill-all-processes-with-the-same-name-in-Windows&#34;&gt;How to kill all processes with the same name in Windows - Quora&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/927358/how-do-i-undo-the-most-recent-local-commits-in-git&#34;&gt;version control - How do I undo the most recent local commits in Git? - Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/30590083/how-do-i-rename-both-a-git-local-and-remote-branch-name&#34;&gt;repository - How do I rename both a Git local and remote branch name? - Stack Overflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.sejuku.net/blog/71919&#34;&gt;これで完璧! 図解でわかるgit rebaseの2つの使い方!&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>常用软件</title>
      <link>https://deletefromuser.github.io/pgm/2022111103/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2022111103/</guid>
      <description>&lt;h3 id=&#34;eartrumpet&#34;&gt;EarTrumpet&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;windows下单独控制每个应用的音量&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;nircmd&#34;&gt;nircmd&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;使用命令行控制windows系统的音量,屏幕亮度&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;goldendict&#34;&gt;GoldenDict&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;字典应用，支持导入字典文件，选中单词&lt;code&gt;CTRL+C+C&lt;/code&gt;可全局唤出查询结果弹窗&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;proxifier&#34;&gt;Proxifier&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;设置代理规则，针对一些不提供代理选项的应用，选中exe程序设置规则即可&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;qbittorrent&#34;&gt;qBittorrent&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;bt下载工具，同时支持磁力链，rss feed&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;shadowsocksv2ray-v2rayn&#34;&gt;shadowsocks，v2ray, v2rayN&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;fuck gfw&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;calibre&#34;&gt;calibre&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;电子书阅读，转换(格式转换，去DRM，日语书竖排转横排(也可以使用注释里推友制作的工具，也不错))&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;wallabag&#34;&gt;wallabag&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;收藏文章，本地保存（可设置代理，配图也可自动下载本地保存）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;joplin&#34;&gt;joplin&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;笔记软件，也可剪藏文章，还可以只剪藏截图，选择内容&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;miniflux&#34;&gt;miniflux&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;rss订阅&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;snapdrop&#34;&gt;snapdrop&lt;/h3&gt;
&lt;blockquote&gt;
&lt;h1 id=&#34;本地网络内无线文件传送&#34;&gt;本地网络内无线文件传送&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;部署&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;部署 &lt;code&gt;docker run -d --restart=always -p 8001:80 linuxserver/snapdrop&lt;/code&gt;
2. nginx配置&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-conf&#34; data-lang=&#34;conf&#34;&gt;server {
    listen       80;
    listen      443 ssl;
    server_name  snapdrop.example.com;

    location / {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection &amp;quot;upgrade&amp;quot;;
        proxy_pass http://localhost:8001;
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;证书配置&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;dns服务商中为子域名添加A记录&lt;/li&gt;
&lt;li&gt;certbot中增加子域名配置 &lt;code&gt;certbot --expand -d existing.com,snapdrop.example.com&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;vlc--mpv&#34;&gt;vlc &amp;amp; mpv&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;视频播放&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;ubuntu-桌面自定义&#34;&gt;ubuntu 桌面自定义&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;gnome Dash to Panel&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;图片转换&#34;&gt;图片转换&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;caesium-clt&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;abc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;游戏镜像文件读取&#34;&gt;游戏镜像文件读取&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;WinCDEmu&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://nerdschalk.com/how-to-mute-an-app-on-windows-10/&#34;&gt;How To Mute an App on Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://downloads.freemdict.com/&#34;&gt;Dict file download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://news.ycombinator.com/item?id=24587059&#34;&gt;Unfortunately Calibre is pretty bad for reading Japanese novels. Every amazon.jp&amp;hellip; | Hacker News&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/yihong0618/epubhv&#34;&gt;yihong0618/epubhv: Make your epub books vertical or horizontal.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/wallabag/wallabag/issues/3273#issuecomment-1678206292&#34;&gt;fetching articles via HTTP(S) proxy · Issue #3273 · wallabag/wallabag&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/wallabag/wallabag/issues/3687&#34;&gt;Download images locally isn’t working · Issue #3687 · wallabag/wallabag&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://discourse.joplinapp.org/t/new-install-invalid-origin-error/17891/13&#34;&gt;New Install - Invalid origin error - Support - Joplin Forum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://eff-certbot.readthedocs.io/en/latest/using.html#re-creating-and-updating-existing-certificates&#34;&gt;Re-creating and Updating Existing Certificates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://unix.stackexchange.com/questions/560092/how-can-i-add-subdomains-to-letsencrypt-using-certbots&#34;&gt;How can I add subdomains to letsencrypt using certbots?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.oneworldcoders.com/apprentice-journals/4qmelzy08o0fn4jbcxipekxpd6sufk&#34;&gt;How to setup secure subdomains using nginx and certbot on a digitalocean VPS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://stackoverflow.com/questions/77252403/issue-with-certbot-no-valid-a-records-found-during-certificate-renewal&#34;&gt;Issue with Certbot: &amp;ldquo;no valid A records found&amp;rdquo; during certificate renewal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ajmaradiaga.com/Allowing-web-sockets-when-using-NGINX-as-reverse-proxy/&#34;&gt;Allowing web socket connection when using NGINX as reverse proxy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>批量下载youtube视频</title>
      <link>https://deletefromuser.github.io/pgm/2022111401/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://deletefromuser.github.io/pgm/2022111401/</guid>
      <description>&lt;ol&gt;
&lt;li&gt;获取视频url&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;F12，打开控制台，运行&lt;code&gt;[...document.querySelectorAll(&#39;[id=thumbnail]&#39;)].map(item =&amp;gt; item.href).join(&amp;quot; &amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;从播放列表中获得url，先F12选中整个播放列表，然后运行&lt;code&gt;[...$0.querySelectorAll(&amp;quot;[id=wc-endpoint]&amp;quot;)].map(item =&amp;gt; item.href).join(&amp;quot;\n&amp;quot;)&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;下载&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 下载音频&lt;/span&gt;
youtube-dl -f &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;bestaudio[ext=m4a]&amp;#39;&lt;/span&gt; --verbose --force-ipv4 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;1.中的url&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 下载视频&lt;/span&gt;
youtube-dl -f &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best&amp;#39;&lt;/span&gt; --verbose --force-ipv4 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;1.中的url&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 可用字幕列表&lt;/span&gt;
youtube-dl --list-subs https://www.youtube.com/watch?v&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;Ye8mB6VsUHw
&lt;span style=&#34;color:#75715e&#34;&gt;# 同时下载字幕&lt;/span&gt;
youtube-dl -f &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best&amp;#39;&lt;/span&gt; --verbose --force-ipv4 --all-subs &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;1.中的url&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;span style=&#34;color:#75715e&#34;&gt;# 只下载字幕，不下载视频&lt;/span&gt;
youtube-dl --all-subs --skip-download https://www.youtube.com/watch?v&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;Ye8mB6VsUHw
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;PS: 一次下载太多会遇到403，出现的话等一段时间再下载吧&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;reference&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ytdl-org/youtube-dl#options&#34;&gt;youtube-dl manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://superuser.com/questions/927523/how-to-download-only-subtitles-of-videos-using-youtube-dl&#34;&gt;How to download only subtitles of videos using youtube-dl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
  </channel>
</rss>
