有趣的Linux命令22:
好久没说命令了,今晚讲一下dd命令,dd命令用于读取、转换并输出数据。这个命令写入镜像是真的比Windows下方便多了。
下面就来演示一下写入Ubuntu镜像到U盘,然后你就可以拿着U盘去安装系统了。
1、下载镜像,以Ubuntu为例,当然Windows或者其它桌面iso文件都行:
2、插入U盘后,用
3、写入镜像到U盘:
上面各项参数解读如下:
if=/root/ubuntu-20.04.2-live-server-amd64.iso: 输入文件名,默认为标准输入。即指定源文件。
of=/dev/sdb: 输出文件名,默认为标准输出。即指定目的文件。
bs=bytes: 同时设置读入/输出的块大小为 bytes 个字节。
是不是很简单,一条命令就可以写入U盘安装镜像。
好久没说命令了,今晚讲一下dd命令,dd命令用于读取、转换并输出数据。这个命令写入镜像是真的比Windows下方便多了。
下面就来演示一下写入Ubuntu镜像到U盘,然后你就可以拿着U盘去安装系统了。
1、下载镜像,以Ubuntu为例,当然Windows或者其它桌面iso文件都行:
wget -P /root https://releases.ubuntu.com/20.04.2/ubuntu-20.04.2-live-server-amd64.iso2、插入U盘后,用
df -h 命令查看U盘分区路径信息。下面以U盘在 /dev/sdb 路径为例。3、写入镜像到U盘:
sudo dd if=/root/ubuntu-20.04.2-live-server-amd64.iso of=/dev/sdb bs=1440k上面各项参数解读如下:
if=/root/ubuntu-20.04.2-live-server-amd64.iso: 输入文件名,默认为标准输入。即指定源文件。
of=/dev/sdb: 输出文件名,默认为标准输出。即指定目的文件。
bs=bytes: 同时设置读入/输出的块大小为 bytes 个字节。
是不是很简单,一条命令就可以写入U盘安装镜像。
#tor
Tor和相关插件开源地址:
Tor GitHub:
https://github.com/torproject/tor
Obfs4proxy GitHub:
https://github.com/Yawning/obfs4
Snowflake GitHub:
https://github.com/keroserene/snowflake
Tor和相关插件开源地址:
Tor GitHub:
https://github.com/torproject/tor
Obfs4proxy GitHub:
https://github.com/Yawning/obfs4
Snowflake GitHub:
https://github.com/keroserene/snowflake
GitHub
GitHub - torproject/tor: unofficial git repo -- report bugs/issues/pull requests on https://gitlab.torproject.org/ --
unofficial git repo -- report bugs/issues/pull requests on https://gitlab.torproject.org/ -- - torproject/tor
有趣的Linux命令23:
今晚要讲的是 echo 命令,echo为输出命令,在 sh 脚本中用的较多,本来想 echo 和 printf 两个命令一起讲的,考虑到篇幅太长,还是先讲 echo 命令吧。
1、显示普通字符串:
上面双引号也可以省略,如下:
2、显示转义字符
结果显示:
同样双引号也可以省略
3、显示变量
这里用到 read 命令,这个命令下次再讲,read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
写个脚本先,下面代码保存为 test.sh,name将是一个变量:
运行上面脚本
将会要求你输入变量,此处输入
那么将会显示:
4、显示换行
将会显示
5、显示不换行
将会显示:
6、显示结果覆盖整个文件
7、显示结果追加到文件结尾
8、原样输出字符串,不进行转义或取变量
将会显示:
9、显示命令执行结果
echo
上面 date 命令包含了两个反引号,TG 给忽略了,注意!date 命令将会显示时间日期:
今晚要讲的是 echo 命令,echo为输出命令,在 sh 脚本中用的较多,本来想 echo 和 printf 两个命令一起讲的,考虑到篇幅太长,还是先讲 echo 命令吧。
1、显示普通字符串:
echo "It is a test"上面双引号也可以省略,如下:
echo It is a test2、显示转义字符
echo "\"It is a test\""结果显示:
"It is a test"同样双引号也可以省略
3、显示变量
这里用到 read 命令,这个命令下次再讲,read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
写个脚本先,下面代码保存为 test.sh,name将是一个变量:
#!/bin/sh
read name
echo "$name It is a test"
运行上面脚本
sh test.sh将会要求你输入变量,此处输入
Hi,那么将会显示:
Hi,It is a test4、显示换行
echo -e "OK! \n"echo "It is a test"将会显示
OK!
It is a test
5、显示不换行
echo -e "OK! \c"echo "It is a test"将会显示:
OK! It is a test6、显示结果覆盖整个文件
echo "It is a test" > myfile7、显示结果追加到文件结尾
echo "It is a test" >> myfile8、原样输出字符串,不进行转义或取变量
echo '$name\"'将会显示:
$name\"9、显示命令执行结果
echo
date上面 date 命令包含了两个反引号,TG 给忽略了,注意!date 命令将会显示时间日期:
Thu May 20 01:19:27 CST 2021#ssh #linux
服务器上使用 ssh 密钥登录
1、本地客户端生成密钥对
使用下面命令生成密钥对:
id_rsa.pub: 表示公钥
查看公钥内容,然后复制下来:
2、服务端新建authorized_keys
root目录下新建 .ssh 文件夹
3、修改 sshd_config 内容
服务器上使用 ssh 密钥登录
1、本地客户端生成密钥对
使用下面命令生成密钥对:
ssh-keygen -t rsa -P
-P表示空密码,一路回车,在 .ssh 目录会生成下面三个文件cd ~/.ssh && lsid_rsa: 表示私钥,不要泄露
id_rsa id_rsa.pub known_hosts
id_rsa.pub: 表示公钥
查看公钥内容,然后复制下来:
cat ~/.ssh/id_rsa.pub
上面客户端完成,开始折腾服务端2、服务端新建authorized_keys
root目录下新建 .ssh 文件夹
mkdir /root/.ssh
.ssh 文件夹新建 authorized_keys 文件vi /root/.ssh/authorized_keys
上面添加客户端复制下来的 id_rsa.pub 内容,保存。3、修改 sshd_config 内容
vi /etc/ssh/sshd_config
禁用密码登陆PasswordAuthentication no
允许root用户登录PermitRootLogin yes
指定公钥数据库文件AuthorsizedKeysFile .ssh/authorized_keys
以启用密钥登陆PubkeyAuthentication yes
最后重启 sshd 服务:systemctl restart sshd#linux #proxy
Linux 终端挂代理,下面分享两种方法:
1、ProxyChains 是一个终端代理方案,使用比较简单,直接安装:
Linux 终端挂代理,下面分享两种方法:
1、ProxyChains 是一个终端代理方案,使用比较简单,直接安装:
apt install proxychains
编辑 /etc/proxychains.conf 文件,vi 翻至最下面,把默认的 tor 的代理方式、端口换成你的代理端口,比如常用的 Shawdowsocks 代理:vi /etc/proxychains.conf先启动代理,连接至服务器,然后,只需要在运行程序的命令前加上 proxychains 即可。比如:
翻到最下面把 tor 端口改成:
socks5 127.0.0.1 1080
proxychains curl www.google.com
2、把代理服务器地址写入 shell 配置文件 .bashrcecho "export ALL_PROXY=socks5://127.0.0.1:1080" >> /root/.bashrc
然后: source /root/.bashrc
这种方法会导致所有请求都走代理了,没有第一种来得方便。#gitalk
解决博客评论,使用 Gitalk 登录授权报 403 的问题:
近期发现使用 gitalk 在登录 github 授权时出现错误
发现不少朋友使用更换代理地址的方式来解决问题,但将自己网站的服务依赖于第三方,也不是长久之计,为什么不搭建一个反向代理来自己使用呢?
可以使用 nginx 简单的配置一下,即可达到反向代理请求 github 的目的。
配置 nginx 在443端口下添加一个反代即可:
解决博客评论,使用 Gitalk 登录授权报 403 的问题:
近期发现使用 gitalk 在登录 github 授权时出现错误
error: request failed with status code 403
这是因为 gitalk 在访问 github 时为了解决跨域问题使用了一个反向代理,这个默认的反向代理近期限制了访问,所以无法使用了。发现不少朋友使用更换代理地址的方式来解决问题,但将自己网站的服务依赖于第三方,也不是长久之计,为什么不搭建一个反向代理来自己使用呢?
可以使用 nginx 简单的配置一下,即可达到反向代理请求 github 的目的。
配置 nginx 在443端口下添加一个反代即可:
location = /login/oauth/access_token {
proxy_pass https://github.com;
}
然后,只需要在 gitalk.js 中添加你的网址也就可以了,如下:proxy: 'https://yeahwu.com/login/oauth/access_token'#openssl #hash #passwd
openssl hash 加密,及判断 hash 的类型
描述:开始的 $1$ 位为加密标志,后面8位$中间内容为加密使用的 salt,最后面的为 hash
长度:34个字符
加密算法:2000次循环调用MD5加密
试一下,还原上面的密文,命令:
$1$ 为 MD5 加密
$5$ 为 SHA-256 加密
$6$ 为 SHA-512 加密
……
另,爆破上面的密文,可以试试 hashcat
openssl hash 加密,及判断 hash 的类型
$1$QzybI4X/$P/iFld6vSYKBoZd5.bn201
上面是一串加密了的密文,明文密码为: starts.sh描述:开始的 $1$ 位为加密标志,后面8位$中间内容为加密使用的 salt,最后面的为 hash
长度:34个字符
加密算法:2000次循环调用MD5加密
试一下,还原上面的密文,命令:
openssl passwd -1 starts.sh
回显:$1$cZCelkE6$qsiWcTgHN4O9aotAHQjG60
呀,和上面的密文不一样?原因是没有固定 salt 值,那么再试一下:openssl passwd -1 -salt QzybI4X/ starts.sh
回显:$1$QzybI4X/$P/iFld6vSYKBoZd5.bn201
这下就还原了上面的密文了。$1$ 为 MD5 加密
$5$ 为 SHA-256 加密
$6$ 为 SHA-512 加密
……
另,爆破上面的密文,可以试试 hashcat
vim 小技巧:
即便在
也还是不能粘贴。
解决方法:
添加:
最后:
apt install vim即便在
/etc/vim/vimrc 中添加了set mouse=a也还是不能粘贴。
解决方法:
vi ~/.vimrc添加:
set mouse-=a最后:
source ~/.vimrc#network #linux
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
支持 DHCP 的服务器,是不用自己手动配置 IP、网关、掩码等,系统安装好了,也自动配置好网络了。下面贴出 Ubuntu 和 Debian 的 DHCP 自动配置文件:
Ubuntu:
支持IPv6,添加下面内容:
Debian:
支持IPv6,添加下面内容:
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
支持 DHCP 的服务器,是不用自己手动配置 IP、网关、掩码等,系统安装好了,也自动配置好网络了。下面贴出 Ubuntu 和 Debian 的 DHCP 自动配置文件:
Ubuntu:
vi /etc/netplan/10-ens3.yaml支持IPv6,添加下面内容:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: yes
dhcp6: yes
Debian:
vi /etc/network/interfaces支持IPv6,添加下面内容:
auto lo
iface lo inet loopback
allow-hotplug ens3
iface ens3 inet dhcp
iface ens3 inet6 auto
#vim
vim 打开多个文件,并同时显示、切换
1、打开多个文件
vim窗口启动后,可以继续打开文件:
2、文件之间切换
下一个文件:
上一个文件:
当然,如果打开的文件太多,可以使用ls命令查看打开的文件,记住前面的序号:
然后使用下面命令来切换:
num 是ls命令后,前面的文件序号
3、一个窗口显示多个文件
竖向显示多个文件:
横向显示多个文件:
窗口间切换方法:
Ctrl键 + ww
vim 打开多个文件,并同时显示、切换
1、打开多个文件
vi file file1 file2vim窗口启动后,可以继续打开文件:
:open file32、文件之间切换
下一个文件:
:bn上一个文件:
:bp当然,如果打开的文件太多,可以使用ls命令查看打开的文件,记住前面的序号:
:ls然后使用下面命令来切换:
:b numnum 是ls命令后,前面的文件序号
3、一个窗口显示多个文件
竖向显示多个文件:
:sp横向显示多个文件:
:vsp窗口间切换方法:
Ctrl键 + ww
#ssl #certbot #cron
申请或删除Let's Encrypt证书方法:
1、安装certbot
5、查看证书剩余日期等详细信息
申请或删除Let's Encrypt证书方法:
1、安装certbot
apt install certbot
2、certbot申请证书,申请前先关掉nginx等web服务certbot certonly --standalone --email youmail@mail -d abc.com -d www.abc.com
3、下面是cron每月1号凌晨2点自动检查更新ssl证书配置crontab -e
0 2 1 * * /usr/bin/certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
service cron restart
4、如果要更换域名则可以删除证书,重新申请rm -rf /etc/letsencrypt/live/*
rm -rf /etc/letsencrypt/archive/*
rm /etc/letsencrypt/renewal/*
停止nginx后,重复上面第2步就可以了。5、查看证书剩余日期等详细信息
certbot certificates#301 #nginx
域名设置301跳转,比如点击老域名跳转到新域名,nginx上添加如下:
域名设置301跳转,比如点击老域名跳转到新域名,nginx上添加如下:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name starts.sh www.starts.sh;
return 301 https://111111.online$request_uri;
root /var/www/blog;
}制作 ss 或者 v2ray 节点订阅:
首先新建一个节点列表文件:
写入内容如下,一行一个节点:
保存后,base64加密到网站目录:
当然,你也可以把加密后的 subscribe 文件上传到任何可以链接到的地方,比如 GitHub,或者网盘,等等。
首先新建一个节点列表文件:
vi dingyue.txt写入内容如下,一行一个节点:
vmess://ew0KICAidiI6ICIyIiwNCiAgInBdd
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpl
保存后,base64加密到网站目录:
base64 dingyue.txt >/var/www/subscribe当然,你也可以把加密后的 subscribe 文件上传到任何可以链接到的地方,比如 GitHub,或者网盘,等等。
#v2ray #bt #nginx
v2ray代理,怎么屏蔽bt下载,官方有屏蔽bt的配置,好像对IPv6无效,所以怎么手动找到IP,然后屏蔽。下面以ws代理为例,演示一下。
1、首先,你得打开v2ray的log日志:
2、下面是利用 Nginx 来屏蔽掉这些IP或IP段:
3、在 nginx.conf 文件 http 字段,添加如下内容:
v2ray代理,怎么屏蔽bt下载,官方有屏蔽bt的配置,好像对IPv6无效,所以怎么手动找到IP,然后屏蔽。下面以ws代理为例,演示一下。
1、首先,你得打开v2ray的log日志:
"log": {
"loglevel": "warning",
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log"
},
重启 v2ray,等待一段时间,然后进入log文件夹:cd /var/log/v2ray
搜索关键字 “tracker”:find .|xargs grep -ri "tracker"
这样就找到使用BT的IP了。2、下面是利用 Nginx 来屏蔽掉这些IP或IP段:
mkdir /etc/nginx/conf.d
新建一个 blocksip.conf 文件: vi /etc/nginx/conf.d/blocksip.conf
内容如下:deny 185.59.222.33;最后,还得把 blocksip.conf 文件关联到 nginx.conf 文件才行。
deny 2408:8270:102f:2ca0:4231:3cff:fe1e:dfbb;
#上面是需屏蔽的单个IP,下面是IP段
deny 185.59.222.33/24;
3、在 nginx.conf 文件 http 字段,添加如下内容:
include /etc/nginx/conf.d/*.conf;
重启 Nginx 后就可以屏蔽做坏事的IP了。systemctl restart nginx#haha
唠叨一下v2ray的log吧,v2ray的日志是非常清晰的,主要记录你的IP和访问网站、时间戳。有没有看黄片,有没有浏览境外反动网站,清清楚楚。
比如,俺想屏蔽bt,俺甚至能屏蔽掉哪些预谋犯罪(预谋bt),还没犯罪(还没bt下载)的用户。也就是你在浏览bt网站阶段就被俺逮住了。
所以,那些爱国爱党的机场,大家还是上点心吧。
唠叨一下v2ray的log吧,v2ray的日志是非常清晰的,主要记录你的IP和访问网站、时间戳。有没有看黄片,有没有浏览境外反动网站,清清楚楚。
比如,俺想屏蔽bt,俺甚至能屏蔽掉哪些预谋犯罪(预谋bt),还没犯罪(还没bt下载)的用户。也就是你在浏览bt网站阶段就被俺逮住了。
所以,那些爱国爱党的机场,大家还是上点心吧。
随手改了改萌咖的DD脚本,本来是自用的,精简了下,剔除了Centos相关代码,重新分了一下区,简单配置一下,增加些常用软件。分享出来骗点赞吧。
可DD Ubuntu18.04、20.04, Debian 9、10 四个系统,适用于支持DHCP服务的VPS或是杜甫,傻瓜式操作,只要运行脚本就行了。
项目地址:
https://github.com/yeahwu/InstallOS
可DD Ubuntu18.04、20.04, Debian 9、10 四个系统,适用于支持DHCP服务的VPS或是杜甫,傻瓜式操作,只要运行脚本就行了。
项目地址:
https://github.com/yeahwu/InstallOS
GitHub
GitHub - yeahwu/InstallOS: Network reinstallation of the Linux system.
Network reinstallation of the Linux system. Contribute to yeahwu/InstallOS development by creating an account on GitHub.
#centos selinux
CentOS更换源和关闭SELinux
CentOS更换源
1、更换CentOS-Base.repo源:
1、启动防火墙: systemctl start firewalld
2、禁用防火墙: systemctl stop firewalld
3、设置开机启动: systemctl enable firewalld
4、停止并禁用开机启动: sytemctl disable firewalld
5、重启防火墙: firewall-cmd --reload
6、查看状态: systemctl status firewalld
CentOS更换源和关闭SELinux
CentOS更换源
1、更换CentOS-Base.repo源:
centos 6版本2、运行
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
centos 7版本
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
centos 8版本
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
yum makecache
3、安装epel源yum -y install epel-release
关闭SELinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sed -i 's/SELINUX=permissive/SELINUX=disabled/g' /etc/selinux/config
最后重启: /sbin/reboot
4、CentOS 7 关闭打开防火墙1、启动防火墙: systemctl start firewalld
2、禁用防火墙: systemctl stop firewalld
3、设置开机启动: systemctl enable firewalld
4、停止并禁用开机启动: sytemctl disable firewalld
5、重启防火墙: firewall-cmd --reload
6、查看状态: systemctl status firewalld
俺平时用的比较多的是 Shadowsocks-libev 和 v2ray-wss 代理,于是就随手写了个两种代理的搭建脚本,可以选择单独安装或一起安装。本来想把https正向代理一起写进去,想到没啥使用场景,也就算了。
支持Debian、Ubuntu、Centos,支持amd、arm多平台。
项目地址:https://github.com/yeahwu/v2ray-wss
支持Debian、Ubuntu、Centos,支持amd、arm多平台。
项目地址:https://github.com/yeahwu/v2ray-wss
#golang
安装golang脚本,也适用于甲骨文arm机器:
脚本运行后:
安装golang脚本,也适用于甲骨文arm机器:
#!/bin/sh
is64=`uname -m`
if [ "$is64" = "x86_64" ];then
wget https://studygolang.com/dl/golang/go1.16.6.linux-amd64.tar.gz -O - | tar -xz -C /usr/local/
sleep 3s
else
wget https://studygolang.com/dl/golang/go1.16.6.linux-arm64.tar.gz -O - | tar -xz -C /usr/local/
sleep 3s
fi
echo -e "export PATH=\$PATH:/usr/local/go/bin\nexport PATH=\$PATH:\$HOME/.cargo/bin\nexport GOROOT=/usr/local/go\nexport GOBIN=\$GOROOT/bin\nexport PATH=\$PATH:\$GOBIN" >> ~/.profile
source ~/.profile
脚本运行后:
source ~/.profilego version