有趣的Linux命令17:
今晚要讲的是shell前后台任务切换命令,这个命令在vps上比较实用,比如编译一些比较耗时的大型软件可以切到后台,避免多开终端。
当用bash启动一个程序,你可以在程序后加 & ,实现程序在后台运行。
例如:
如果想调运行中的任务到前台运行的话,首先查看运行中的任务号,
-------------华丽分割线------------
那么运行中的任务怎么切换到后台呢?按 Ctrl + z 暂停前台工作切换到后台,注意这时任务在后台是暂停状态。
如果要把后台的任务切换到前台,还是一样
1.
2.
3.
4.
PS: "n" 为jobs查看到的任务编号。
今晚要讲的是shell前后台任务切换命令,这个命令在vps上比较实用,比如编译一些比较耗时的大型软件可以切到后台,避免多开终端。
当用bash启动一个程序,你可以在程序后加 & ,实现程序在后台运行。
例如:
vi & vi这个程序就在后台运行了。如果想调运行中的任务到前台运行的话,首先查看运行中的任务号,
jobs 命令查询,一般显示1、2、3等。fg 1 即可调出后台运行的任务到前台,后面1即是任务号。-------------华丽分割线------------
那么运行中的任务怎么切换到后台呢?按 Ctrl + z 暂停前台工作切换到后台,注意这时任务在后台是暂停状态。
jobs 查询任务号bg 2 在后台挂起的任务会继续在后台运行了,和 vi & 效果一致。(bg后面的2还是任务号)如果要把后台的任务切换到前台,还是一样
fg 2 即可。1.
command & 让进程在后台运行2.
jobs 查看后台运行的进程3.
fg n 让后台运行的进程n到前台来4.
bg n 让进程n继续在后台运行PS: "n" 为jobs查看到的任务编号。
有趣的Linux命令18:
今晚要讲的是迟来的ssh命令,主要用于远程登陆服务器。下面的name指的是登陆用户,IP就是你服务器IP
1、查看SSH版本:
2、连接远程主机,其中的name可以是root或者其它,默认端口是22:
3、带端口连接远程主机:
4、通过远程主机1跳到主机2:
5、通过SSH执行远程shell命令:
比如远程查看服务器内存使用状况:
6、修改SSH监听端口:
找到
今晚要讲的是迟来的ssh命令,主要用于远程登陆服务器。下面的name指的是登陆用户,IP就是你服务器IP
1、查看SSH版本:
ssh -V2、连接远程主机,其中的name可以是root或者其它,默认端口是22:
ssh name@IP3、带端口连接远程主机:
ssh -p 10086 name@IP4、通过远程主机1跳到主机2:
ssh -t IP1 ssh IP25、通过SSH执行远程shell命令:
ssh -l name IP command比如远程查看服务器内存使用状况:
ssh -l root IP free6、修改SSH监听端口:
vi /etc/ssh/sshd_config找到
Port 22 这行,去掉前面#号,并修改成你需要的端口,然后重启ssh/etc/init.d/ssh restart有趣的Linux命令19:
今晚要讲的是 history 命令,这个命令可以读取历史命令记录。
然后可以执行历史命令,比如第四个
要查看最近的10条历史命令:
清除命令历史记录:
今晚要讲的是 history 命令,这个命令可以读取历史命令记录。
history 会显示历史操作命令,前面会显示序列号,如下:1 ll
2 uname -a
3 mkdir /root/.ssh
4 ll
5 vi /root/.ssh/authorized_keys
6 apt install vim
7 vi /root/.ssh/authorized_keys
8 vi /etc/ssh/sshd_config
9 systemctl restart sshd
然后可以执行历史命令,比如第四个
ll 命令:!4要查看最近的10条历史命令:
history 10清除命令历史记录:
history -c最近RackNerd,hosthatch,GreencloudVPS分别发送邮件说明Debian10 漏洞,他们建议Debian10用户重装系统。
具体问题是SolusVM官方系统模板Debian10里的'debianuser'用户没删除,可能会导致安全问题。
解决建议:
检查 debianuser的登陆情况
cat /var/log/auth.log | grep 'debianuser'
如果没登陆过, 删掉这个用户
userdel debianuser
rm -r /home/debianuser
如果已经被登陆过, 马上备份数据并重装系统。
by:隐身的**
具体问题是SolusVM官方系统模板Debian10里的'debianuser'用户没删除,可能会导致安全问题。
解决建议:
检查 debianuser的登陆情况
cat /var/log/auth.log | grep 'debianuser'
如果没登陆过, 删掉这个用户
userdel debianuser
rm -r /home/debianuser
如果已经被登陆过, 马上备份数据并重装系统。
by:隐身的**
有趣的Linux命令20:
好久没更新了,今晚要讲的是 timedatectl 命令,此命令可以查询和更改系统时钟和设置。
1、显示系统的当前时间和日期
2、查看所有可用的时区
3、设置中国上海时区
4、设置UTC时间
5、设置日期和时间
好久没更新了,今晚要讲的是 timedatectl 命令,此命令可以查询和更改系统时钟和设置。
1、显示系统的当前时间和日期
timedatectl status2、查看所有可用的时区
timedatectl list-timezones3、设置中国上海时区
timedatectl set-timezone "Asia/Shanghai"4、设置UTC时间
timedatectl set-timezone UTC5、设置日期和时间
timedatectl set-time '23:40:45 2021-03-11'有趣的Linux命令21:
今晚讲讲NPM命令,NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题。
安装npm:
https://github.com/nodesource/distributions
npm常用命令:
今晚讲讲NPM命令,NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题。
安装npm:
https://github.com/nodesource/distributions
npm常用命令:
npm version 查看详细版本npm install hexo -g 安装hexonpm install hexo 目录安装npm uninstall hexo 卸载hexonpm install hexo --registry=https://registry.npm.taobao.org 使用淘宝镜像安装npm install folder ./hexo-next-share 本地文件安装插件npm ls 查看安装的模块npm cache clean -f 清理缓存npm install -g npm-check 安装npm-checknpm-check 查看系统插件是否需要升级npm install -g npm-upgrade 安装npm-upgradenpm-upgrade 更新package.jsonnpm update -g 更新全局插件npm update --save 更新目录插件GitHub
GitHub - nodesource/distributions: NodeSource Node.js Binary Distributions
NodeSource Node.js Binary Distributions. Contribute to nodesource/distributions development by creating an account on GitHub.
网际互联及OSI七层模型:
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
==========================================
物理层
作用:定义一些电器,机械,过程和规范,如集线器;
PDU(协议数据单元):bit/比特
设备:集线器HUB;
注意:没有寻址的概念;
==========================================
数据链路层
作用:定义如何格式化数据,支持错误检测;
典型协议:以太网,帧中继(古董级VPN)
PDU:frame(帧)设备:以太网交换机;
备注:交换机通过MAC地址转发数据,逻辑链路控制;
===========================================
网络层
作用:定义一个逻辑的寻址,选择最佳路径传输,路由数据包;
典型协议:IP,IPX,ICMP,ARP(IP->MAC),IARP;
PDU:packet/数据包;
设备:路由器
备注:实现寻址
============================================
传输层:
作用:提供可靠和尽力而为的传输;
典型协议:TCP,UDP,SPX,port(65535个端口),EIGRP,OSPF,
PDU:fragment 段;
无典型设备;
备注:负责网络传输和会话建立;
=============================================
会话层:
作用:控制会话,建立管理终止应用程序会话;
典型协议:NFS, SQL, ASP, PHP, JSP, RSVP(资源源预留协议), windows,
备注:负责会话建立;
==============================================
表示层:
作用:格式化数据;
典型协议:ASCII, JPEG. PNG, MP3. WAV, AVI,
备注:可以提供加密服务;
===============================================
应用层:
作用:控制应用程序;
典型协议:telnet, ssh, http, ftp, smtp, rip, BGP, (未完待续)
备注:为应用程序提供网络服务;
====
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
==========================================
物理层
作用:定义一些电器,机械,过程和规范,如集线器;
PDU(协议数据单元):bit/比特
设备:集线器HUB;
注意:没有寻址的概念;
==========================================
数据链路层
作用:定义如何格式化数据,支持错误检测;
典型协议:以太网,帧中继(古董级VPN)
PDU:frame(帧)设备:以太网交换机;
备注:交换机通过MAC地址转发数据,逻辑链路控制;
===========================================
网络层
作用:定义一个逻辑的寻址,选择最佳路径传输,路由数据包;
典型协议:IP,IPX,ICMP,ARP(IP->MAC),IARP;
PDU:packet/数据包;
设备:路由器
备注:实现寻址
============================================
传输层:
作用:提供可靠和尽力而为的传输;
典型协议:TCP,UDP,SPX,port(65535个端口),EIGRP,OSPF,
PDU:fragment 段;
无典型设备;
备注:负责网络传输和会话建立;
=============================================
会话层:
作用:控制会话,建立管理终止应用程序会话;
典型协议:NFS, SQL, ASP, PHP, JSP, RSVP(资源源预留协议), windows,
备注:负责会话建立;
==============================================
表示层:
作用:格式化数据;
典型协议:ASCII, JPEG. PNG, MP3. WAV, AVI,
备注:可以提供加密服务;
===============================================
应用层:
作用:控制应用程序;
典型协议:telnet, ssh, http, ftp, smtp, rip, BGP, (未完待续)
备注:为应用程序提供网络服务;
====
#xmr #btc
服务器挖 XMR (门罗币),独服或者部分 VPS 可以玩玩,一天大概能挖不到1块钱,有些 IDC 商家限制挖矿的,留意!
1、注册钱包
前往门罗币官方网站下载页面: https://web.getmonero.org/zh-cn/downloads/#gui
下载安装门罗币钱包后,按照提示创建账号,设置钱包密码。获取门罗币账号地址等信息,保存在安全的地方。
2、选择矿池
你可以到这里找到门罗币矿池: https://monero.org/services/mining-pools/
这里选择猫池: https://c3pool.com/cn/
3、开挖
打开猫池主页,上面填上门罗币钱包地址,然后选择下面的一键脚本,选择 Linux 脚本,复制。
服务器或者 VPS 上,运行脚本。
启动命令: systemctl start c3pool_miner.service
服务器挖 XMR (门罗币),独服或者部分 VPS 可以玩玩,一天大概能挖不到1块钱,有些 IDC 商家限制挖矿的,留意!
1、注册钱包
前往门罗币官方网站下载页面: https://web.getmonero.org/zh-cn/downloads/#gui
下载安装门罗币钱包后,按照提示创建账号,设置钱包密码。获取门罗币账号地址等信息,保存在安全的地方。
2、选择矿池
你可以到这里找到门罗币矿池: https://monero.org/services/mining-pools/
这里选择猫池: https://c3pool.com/cn/
3、开挖
打开猫池主页,上面填上门罗币钱包地址,然后选择下面的一键脚本,选择 Linux 脚本,复制。
服务器或者 VPS 上,运行脚本。
启动命令: systemctl start c3pool_miner.service
getmonero.org, 门罗币项目
下载
在这里你可以下载到最新版本的门罗币应用,包括适用于硬件钱包、轻钱包和手机端钱包的软件。
#haha #linux
大家节日愉快,唠唠嗑!
姥爷关于 Linux 的教程,都是以 Ubuntu 18.04 Server 和 Debian 10 Server 为主,且都是 root 用户,不关注桌面,没有 sudo 等用户命令。
C 环境包:
大家节日愉快,唠唠嗑!
姥爷关于 Linux 的教程,都是以 Ubuntu 18.04 Server 和 Debian 10 Server 为主,且都是 root 用户,不关注桌面,没有 sudo 等用户命令。
C 环境包:
apt install build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev
golang 环境:wget https://golang.org/dl/go1.16.3.linux-amd64.tar.gz -O - | tar -xz -C /usr/local/
vi ~/.profile
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$HOME/.cargo/bin
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
source ~/.profile
go version
rust 安装:curl https://sh.rustup.rs -sSf | sh
docker 安装:curl https://get.docker.com -fsSL | sh#proxy
个人认为switchyomega这个插件是比较简单好用的,各代理之间切换比较方便,比如Tor、ss、v2ray、xx-net之间切换,只要端口不同就ok了。而且规则添加,删除也较PAC简单。下面是别人家的教程推荐:
https://yearliny.com/switchyomega-tutorial/
个人认为switchyomega这个插件是比较简单好用的,各代理之间切换比较方便,比如Tor、ss、v2ray、xx-net之间切换,只要端口不同就ok了。而且规则添加,删除也较PAC简单。下面是别人家的教程推荐:
https://yearliny.com/switchyomega-tutorial/
有趣的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