清除所有GIT历史记录

有些时候,git 仓库累积了太多无用的历史更改,导致 clone 文件过大。如果确定历史更改没有意义,可以采用下述方法清空历史, 先 clone 项目到本地目录 (以名为 mylearning 的仓库为例) git clone git@gitee.com:badboycoming/mylearning.git 进入 mylearning 仓库,拉一个分支,比如名为 latest_branch git checkout --orphan latest_branch 添加所有文件到上述分支 (Optional) git add -A 提交一次 git commit -am "Initial commit." 删除 master 分支 git branch -D master 更改当前分支为 master 分支 git branch -m master 将本地所有更改 push 到远程仓库 git push -f origin master 关联本地 master 到远程 master git branch --set-upstream-to=origin/master

2022-12-01 09:49:29 · 1 min · Eddie Wang

GIT 重新设置远程url

git remote set-url origin repo-url

2022-12-01 09:46:13 · 1 min · Eddie Wang

Deepin安装man命令

想查资料,发现 deepin 居然没有 man 这个命令。 安装 sudo apt-get install man-db 使用介绍

2022-11-03 11:55:51 · 1 min · Eddie Wang

Linux 日志系统简述

1. 序言 日志文件包含系统的运行信息,包括内核、服务、应用程序等的日志。日志在分析系统故障、排查应用问题等方面,有着至关重要的作用。 2. 哪些进程负责管理日志? 默认情况下,系统上有两个守护进程服务管理日志。journald和rsyslogd。 journald是systemd的一个组件,journald的负责收集日志,日志可以来自 Syslog日志 内核日志 初始化内存日志 启动日志 所有服务写到标准输出和标准错误的日志 journal收集并整理收到的日志,使其易于被使用。 有以下几点需要注意 默认情况下,journal的日志是不会持久化的。 journal的日志是二进制的格式,并不能使用文本查看工具,例如cat, 或者vim去分析。journal的日志需要用journalctl命令去读取。 journald会把日志写到一个socket中,rsyslog可以通过这个socket来获取日志,然后去写文件。 3. 日志文件文件位置 日志文件位置 /var/log/ 目录 4. 日志配置文件位置 /etc/rsyslog.conf rsyslogd配置文件 /etc/logrotate.conf 日志回滚的相关配置 /etc/systemd/journald.conf journald的配置文件 5. rsyslog.conf 5.1. 模块加载 注意 imjournal就是用来负责访问journal中的日志 imuxsock 提供本地日志输入支持,例如使用logger命令输入日志 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imjournal # provides access to the systemd journal 5.2. 过滤 5.2.1. 优先级过滤 **模式:FACILITY.**PRIORITY 设备(FACILITY): kern (0), user (1), mail (2), daemon (3), auth (4), syslog (5), lpr (6), news (7), cron (8), authpriv (9), ftp (10), and local0 through local7 (16 - 23). 日志等级:debug (7), info (6), notice (5), warning (4), err (3), crit (2), alert (1), and emerg (0). 正则 = 指定某个级别 ! 排除某个级别 匹配所有级别 Example: ...

2022-10-26 08:44:12 · 3 min · Eddie Wang

Ubuntu 使用过程中遇到的问题以及解决方案

1. ubuntu wine 微信中文乱码 修改文件 /opt/deepinwine/tools/run.sh /opt/deepinwine/tools/run_v2.sh 将WINE_CMD那行中加入LC_ALL=zh_CN.UTF-8 WINE_CMD="LC_ALL=zh_CN.UTF-8 deepin-wine" 参考 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu 2. ubuntu 20.04 wine 微信 qq 截图时黑屏 之前截图都是好的的,不知道为什么,今天截图时,点击了微信的截图按钮后,屏幕除了状态栏,都变成黑色的了。 各种搜索引擎搜了一遍,没有发现解决方案。 最后决定思考最近对系统做了什么变更,最近我好像给系统安装了新的主题,然后在登录时,选择了新的主题,而没有选择默认的ubuntu主题。 在登录界面的右下角,有个按钮,点击之后,可以选择主题。 最近我都是选择其他的主题,没有选择默认的ubuntu主题,然后我就注销之后,重新在登录时选择默认的ubuntu主题后,再次打开微信截图,功能恢复正常。 所以说,既然选择ubuntu了,就没必要搞些花里胡哨的东西。ubuntu默认的主题挺好看的,而且支持自带主题的设置,就没必要再折腾了。 3. [open] ubuntu 20.04 锁屏后 解锁屏幕非常慢 super + l可以用来锁屏,锁屏之后屏幕变成黑屏。 黑屏之后,如果需要唤醒屏幕,可以随便在键盘上按键,去唤醒屏幕。但是这个唤醒的过程感觉很慢,基本上要随便按键接近十几秒,屏幕才能被点亮,网上搜了下,但是没有找到原因。 但是有个解决办法,就是在黑屏状态下,不要随便输入,而要输入正确的密码,然后按回车键, 这样会快很多。 也就是说,系统运行正常,可能是显示器的问题。 4. ubuntu 20.04 xorg 高cpu 桌面卡死 sudo systemctl restart gdm 5. ubuntu 状态栏显示网速 sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt-get install indicator-sysmonitor 在任务启动中选择System Monitor 在配置中可以选择开机启动 在高级中可以设置显示哪些列, 我只关系网速,所以只写了{net} 6. 在命令行查看图片 实际上终端并不能显示图片,而是调用了外部的程序取显示图片。 ...

2022-10-25 12:56:41 · 2 min · Eddie Wang

树莓派初始化配置

我已经装过几次树莓派的系统了,记录一些使用心得。 1. 选择哪个版本 最好用无桌面版,无桌面版更加稳定。我之前用过几次桌面版,桌面版存在以下问题。 使用偶尔感觉会卡 经常使用一天之后,第二天要重启系统。 2. 关于初始设置 默认的用户是 pi,默认的密码是raspberry 登录成功之后,sudo passwd pi 来修改pi用户的密码 登录之后,sudo passwd root 来设置root的用户密码 3. 开启ssh 远程登录服务 raspi-config 4. root用户ssh登录 默认树莓派是禁止使用root远程登录的,想要开启的话,需要编辑/etc/ssh/sshd_config文件,增加一行PermitRootLogin yes, 然后重启ssh服务 vi /etc/ssh/sshd_config PermitRootLogin yes sudo systemctl restart ssh // chong 5. 关于联网 联网有两个方案 用网线连接,简单方便,但是有条线子,总会把桌面搞得很乱 使用wifi连接,简单方便 使用wifi连接,一种方式是编辑配置文件,这个比较麻烦。我建议使用树莓派提供的raspi-config命令来设置wifi。 在命令行中输入:raspi-config, 可以看到如下界面 按下箭头,选择NetWork Options,按回车确认 进入网络设置后,按下箭头,选择N2 Wi-fi 然后就很简单了,输入wifi名称和wifi密码,最好你的wifi名称是英文的,出现中文会很尴尬的。 6. 如何找到树莓派的IP地址 某些情况下,树莓派在断电重启之后会获得新的IP地址。在没有显示器的情况下,如果找到树莓派的IP呢? 树莓派的MAC地址是:b8:27:eb:6c 开头 所以你只需要输入: arp -a 就会打印网络中的主机以及MAC地址,找以b8:e7:eb:6c开头的,很可能就是树莓派。 7. 设置清华镜像源 https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/

2022-10-25 12:12:05 · 1 min · Eddie Wang

Wireshark抓包教程

1. HTTP抓包例子 案例:本地向 http://192.168.40.134:31204/some-api,如何过滤? http and ip.addr == 192.168.40.134 and tcp.port == 31204 语句分析: http 表示我只需要http的包 ip.addr 表示只要源ip或者目标ip地址中包含192.168.40.134 tcp.port 表示只要源端口或者目标端口中包含31204 2. 为什么我写的表达式总是不对呢?😂 很多时候,你写的表达式背景色变成红色,说明表达式错误了,例如下图:http and ip.port == 31204 写出ip.port这个语句,往往是对传输协议理解不清晰。😅 ip是网络层的协议,port是传输层tcp或者udp中使用的。例如你写tcp.port == 80,udp.port ==3000这样是没问题的。但是port不能跟在ip的后面,如果你不清楚怎么写,你可以选择wireshark的智能提示。 智能提示会提示所有可用的表达式。 3. 常用过滤表达式 一般我们的过滤都是基于协议,ip地址或者端口号进行过滤的, 3.1. 基于协议的过滤 直接输入协议名进行过滤 3.2. 基于IP地址的过滤 3.3. 基于端口的过滤 基于端口的过滤一般就两种 tcp.port == xxx udp.port == xxx 3.4. 基于host的过滤 4. 比较运算符支持 == 等于 != 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于 ip.addr == 192.168.2.4 5. 逻辑运算符 and 条件与 or 条件或 xor 仅能有一个条件为真 not 所有条件都不能为真 ip.addr == 192.168.2.4 and tcp.port == 2145 and !tcp.port == 3389 6. 只关心某些特殊的tcp包 tcp.flags.fin==1 只过滤关闭连接的包 tcp.flags.syn==1 只过滤建立连接的包 tcp.flags.reset==1 只过滤出tcp连接重置的包 7. 统计模块 7.1. 查看有哪些IP Statistics -> endpoints ...

2022-10-25 09:12:00 · 1 min · Eddie Wang

Tcpdump抓包教程

查看帮助文档 从帮助文档可以看出,包过滤的表达式一定要放在最后一个参数 tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ] [ -c count ] [ --count ] [ -C file_size ] [ -E spi@ipaddr algo:secret,... ] [ -F file ] [ -G rotate_seconds ] [ -i interface ] [ --immediate-mode ] [ -j tstamp_type ] [ -m module ] [ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ] [ -r file ] [ -s snaplen ] [ -T type ] [ --version ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ] [ --time-stamp-precision=tstamp_precision ] [ --micro ] [ --nano ] [ expression ] 列出所有网卡 tcpdump -D 1.enp89s0 [Up, Running, Connected] 2.docker0 [Up, Running, Connected] 3.vetha051ecc [Up, Running, Connected] 4.vethe67e03a [Up, Running, Connected] 5.vethc58c174 [Up, Running, Connected] 指定网卡 -i tcpdump -i eth0 所有网卡 tcpdump -i any 不要域名解析 tcpdump -n -i any 指定主机 tcpdoump host 192.168.0.1 指定源IP或者目标IP # 根据源IP过滤 tcpdump src 192.168.3.2 # 根据目标IP过滤 tcpdump dst 192.168.3.2 指定协议过滤 tcpdump tcp 指定端口 # 根据某个端口过滤 tcpdomp port 33 # 根据源端口或者目标端口过滤 tcpdump dst port 33 tcpdump src port 33 # 根据端口范围过滤 tcpdump portrange 30-90 根据IP和地址 tcpdump -i ens33 tcp and host 192.168.40.30 抓包结果写文件 tcpdump -i ens33 tcp and host 192.168.40.30 -w log.pcap 每隔30秒写一个文件 -G 30 表示每隔30秒写一个文件 文件名中的%实际上是时间格式 tcpdump -i ens33 -G 30 tcp and host 192.168.40.30 -w %Y_%m%d_%H%M_%S.log.pcap 每达到30MB产生一个文件 -C 30 每达到30MB产生一个文件 tcpdump -i ens33 -C 30 tcp and host 192.168.40.30 -w log.pcap 指定抓包的个数 在流量很大的网络上抓包,如果写文件的话,很可能将磁盘写满。所以最好指定一个最大的抓包个数,在达到包的个数后,自动退出。 ...

2022-10-25 09:09:05 · 2 min · Eddie Wang

http抓包工具httpry使用

git clone https://gitee.com/nuannuande/httpry.git cd httpry yum install libpcap-devel -y make make install cp -f httpry /usr/sbin/ httpry -i eth0

2022-10-25 09:07:04 · 1 min · Eddie Wang

Hugo Timezone没有设置, 导致页面无法渲染

写好了博客,但是没有在网页上渲染出来,岂不是很气人! 我的archtypes/default.md配置如下 --- title: "{{ replace .Name "-" " " | title }}" date: "{{ now.Format "2006-01-02 15:04:05" }}" draft: false --- 当使用 hugo new 创建一个文章的时候,有如下的头 --- title: "01: 学习建议" date: "2022-09-03 10:23:10" draft: false --- Hugo 默认采用的是 格林尼治平时 (GMT),比北京时间 (UTC+8) 晚了 8 个小时,Hugo 在生成静态页面的时候,不会生成超过当前时间的文章。 如果把北京时间当作格林尼治时间来计算,那么肯定还没有超过当前时间。 所以我们要给站点设置时区。 在config.yaml增加如下内容 timeZone: "Asia/Shanghai"

2022-09-03 10:20:48 · 1 min · Eddie Wang