Linux&Windows小技巧(4)

Linux&Windows小技巧(4)

文章内容:清空iptables,清理docker image,给Wayland下的Chromium/Edge浏览器开启GPU加速

图源:《失われた深淵・宵宫》 @void_0 100377150

清空iptables规则

使用场景:在需要完全重建iptables规则,或是使用其他软件代替/包装iptables(如firewalld)时。

常见的两种清空iptables规则的方法是:

  1. 手动给每一条规则都执行iptables -D
    • 针对默认表,iptables -D <chain_name> ...
    • 针对其他表,iptables -t <table_name> -D <table_name> ...
  2. 查找规则在表的链中是第几条(Line Number),用条目序号进行删除
    • 找条目序号:iptables [-t <table_name>] -L --line-number
    • 使用条目序号进行删除:iptables [-t <table_name>] -D <chain_name> <line_nuber>

但也可以使用下面的方法批量删除:

1
2
3
4
5
6
7
8
9
10
11
# 如果iptables的默认规则不是ACCEPT,为了防止清除后主机拒绝一切数据包,将所有内置链的默认规则设置为ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# 删除所有默认表中的rules
iptables -F
# 删除指定的其他表中的rules
iptables -t <table_name> -F
# 删除默认表中所有user-defined chain(因为此时所有chain均为空)
iptables -X
阅读更多
Linux & Windows 小技巧(3)

Linux & Windows 小技巧(3)

文章内容:peco、bat,软链接与硬链接,Linux Shell Options,Windows 展台模式,LTSC 安装 Microsoft Store,与统一写入筛选器

图源:Miv4t - 《MACHiNERY》,Pid:77186528

Windows 下的 cat 和 grep

lscatgrep这三个命令,往往是Linux初学者最先了解的、日常使用Linux时不可或缺的。对于Windows系统而言,同样有三个命令可以完成上述工作:dirtypefindstr

例如,用type显示文件内容:

或者用findstr结合管道匹配先前程序输出内容中的字符串:

也可以结合正则表达式:

如果你不满足于系统命令的显示效果,你也可以尝试下面两款开源于Github的工具:

阅读更多
Linux & Windows 小技巧(1)

Linux & Windows 小技巧(1)

文章内容:Linux 下查看进程依赖,不同的16进制编辑器,与关掉Windows驱动签名认证

图源:《Magic》 Snowcow 107927390

最近又学到了一些零零碎碎的 Linux、Windows 命令,和一些可能今后会用得着的小技巧,怕自己忘记,所以把它们写在博客里面提醒一下自己,免得到时候再花费大量时间去百度、Google 找文章。

Linux 下查看进程树?

查看进程有好几种方式,tophtop 这种可视化的,还有 ps 这种纯文本输出的程序都可以做到。但是如果想要查看某一进程的父进程或者子进程PID该怎么办?可以借助另一个程序,pstree。参数很灵活,可以根据需要启用或关闭。程序截图如下:

WinHex 的替代品?

WinHex是很强大的一个二进制文件查看和编辑工具(尤其是做 CTF 杂项题的时候 :)。虽然说现在全网随便搜搜就有破解版(Cracked Version)可以用,但是多了解几个 WinHex 的替代品,有备无患。

EditPlus

说起来很巧,这个神器还是我在学校图书馆电脑上发现的。本来以为这东西只能编辑编辑文本,做 Notepad++ 的小弟,没想到这还能打开二进制文件查看16进制数据(emmm,不能编辑),而且…还支持 Windows ARM。

阅读更多
Linux & Windows 小技巧(2)

Linux & Windows 小技巧(2)

文章内容:git over ssh、lsof 与 readelf

图源:《ソード・アート・オンライン(刀剑神域)》第一季第二集 CM

博客一直在慢速更新…之前一直忙于各种事情,学校的课、比赛、不断接触和学习新的东西,因此没什么机会静下心来好好整理、记录我学到的东西,也就没有办法一并记下我对某些问题的理解和思考。

之前一度认为,“有写博客文章的时间,还不如好好学点新的东西”。但是自从领悟到我和舍友之间记忆力和知识熟练程度的差距之后,终于肯下定决心好好写自己的博客了——我比不上他们,我真的不是那种过目不忘的人,所以只能通过不断的复习和总结才能勉强记住些东西。

有人说,初学者是“什么都不会,同时自己不知道自己会什么”,稍有学识的普通人是“自己会些东西,但是自己觉得自己会的很多”,而大神则是“自己会很多东西,但是自己觉得自己学的不多而且不知道自己已经会了什么”。

可能我还是初学者吧。

git push 反复输密码很烦?

有的时候可能会遇到一种极端情况:假设你要编写脚本,比如:自动化运维脚本。其中涉及到一些对 git 仓库的操作,而且需要密码,比如:在自动脚本中让部署机器拉取私有仓库,或是让部署机器将构建后的代码使用某个 github 账号推送到某个 git 仓库。这个时候需要用户手动输入用户名和密码,但是我们往往不能手动输入——比如公用的 docker build machine,根本不允许用户在构建过程中进行交互。

那么我们该如何将用户名和密码“固化”在 clone 的本地仓库里,免去输入用户名密码的麻烦呢?一般有两种做法:首先是手动注册一个 OAuth App,并分配权限。部署机通过此 App 对相关 Repo 进行操作。但是这样做较为复杂,而且也可能存在 Token 过期的问题。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×