1024社区 | 1024.day
12K subscribers
406 photos
6 videos
3 files
1.06K links
这是一个分享VPS资讯以及Linux学习频道。
Download Telegram
姥爷的10刀论依然有效,抢购就是要抢便宜的,10刀以下随便抢,超过10刀,让了,让了,另注意,抢一台机换一个账号,信姥爷不吃亏!
有趣的Linux命令1:

为了查看自己的vps被别人登陆,俺们需要查询最近的登陆IP,这个时候俺们可以用

last 或者 who 来查询最近的登陆IP,俺们还可以用 lastb 来查询试图登陆你vps的坏人。

当然姥爷还是希望你们用ssh来登陆,然后禁止密码登陆,姥爷博客搜索“ssh”,可以找到答案!
#ssl
Let's Encrypt官方已经放弃了传统的letsencrypt-auto或者certbot-auto安装方式了,利用snap来安装证书方法:

# 安装snapd
apt install snapd

snap install core; snap refresh core

# 安装certbot
snap install --classic certbot

ln -s /snap/bin/certbot /usr/bin/certbot

# 申请证书
certbot certonly --standalone --email email@gmail.com -d xxxx.com

# cron自动更新证书
0 2 1 * * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
有趣的Linux命令2:
今晚要讲的是 top 命令,top显示系统当前的进程和其状况,是一个动态显示过程。

top,进入后,默认是按cpu百分比排列的,再按下下面的字母即可显示相应的内容:

P:以占据CPU百分比排序
M:以占据内存百分比排序
T:以累积占用CPU时间排序
q:退出命令:按q键退出top查看页面
s:修改刷新时间间隔。按下s键,然后按下数字,即可修改刷新时间间隔为你输入的数字,单位为秒。例如:按下s键,在按数字1键,即可实现每秒刷新一次
k:终止指定的进程。按下k键-->再输入要杀死的进程的pid-->按enter键-->常用为-9
有趣的Linux命令3:

今晚要讲的命令是 su ,此命令的主要作用是让你可以在已登录的会话中切换到另一个用户,经常被用于切换到root用户,其实此命令还可以切换到非root用户。

su = Shift user 切换用户

whoami 显示当前用户
pwd 显示当前目录
su root 切换到root用户
su git 切换到git用户

susu - 的区别:

su 命令和 su - 命令最大的区别是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。 su 切换成root用户以后, pwd 一下,发现工作目录仍然是普通用户的工作目录;而用 su - 命令切换以后,工作目录变成root的工作目录了。

susudo 的区别:

sudo = Super user do 超级用户do

两个命令的最大区别是: sudo 命令需要输入当前用户的密码, su 命令需要输入root用户的密码。

sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的Shell
有趣的Linux命令4:
今晚要讲的是 cd 命令,这是俺们常用到的命令。

cd = change directory 用于切换当前工作目录

cd 切换到用户目录或者root目录
cd / 切换到根目录
cd /etc 切换到etc目录
cd .. 切换到上级目录
cd - 返回进入此目录之前所在的目录
有趣的Linux命令5:
今天要讲的是 lscat 命令,ls命令用于显示文件目录列表,cat命令用于查看和创建文件,这是俺们常用到的命令。
ls = list files
cat = concatenate

ls常用命令:

ls 显示文件目录
ls -a 列出所有文件,包括隐藏文件
ls -l 列表详细显示,包括权限、用户等,Ubuntu中的命令为 ll
ls /home 列出home目录下的文件
ls -R 递归显示出所有的子目录和子文件

cat常用命令:

cat file.txt 会在终端打印file.txt文件内容
cat > newfile 会创建newfile文件,输入文件内容,完成后按下 `ctrl + d`返回
cat file1 file2 > newfile 把file1和file2文件合并成一个新newfile
cat /dev/null > newfile 清空newfile文件内容
有趣的Linux命令6:
今天要讲的是 ln 命令,ln命令是为一个文件在另一个位置创建一个同步链接。

ln = link files

比如v2ray的配置文件从 /etc/v2ray/config.json 搬到了 /usr/local/etc/v2ray/config.json 那么只需要创建一个软链接就可以了,而不需要cp一番。

ln -s /etc/v2ray/config.json /usr/local/etc/v2ray/config.json

再比如你不确定caddy的二进制文件具体是在 /usr/local/bin/ 还是在 /usr/bin/ 目录下,那么你创建一个软链接后,也就不用管它到底在那个文件目录下了。

ln -s /usr/local/bin/caddy /usr/bin/caddy

硬链接,由于硬链接不能跨文件系统创建,不能链接目录,所以硬链接实际应用中很少。

比如创建一个caddy的硬链接:

cd /usr/bin
ln caddy hard_link_for_caddy
有趣的Linux命令7:
今晚要讲的是 cpscp 命令,cp命令主要用于复制文件或目录,scp命令用于Linux之间复制文件和目录,比如服务器之间。

cp = copy file
scp = secure copy

cp常用命令:

把etc目录下config.json文件复制到/usr/local/etc目录下
sudo cp /etc/config.json /usr/local/etc

test目录下的所有文件复制到新目录newtest下,加上 -r 会递归复制目录下的所有文件
sudo cp -r test/ newtest

scp常用命令:

比如本地复制config.json文件到vps上,127.0.0.1为服务器ip
sudo scp /home/config.josn root@127.0.0.1:/etc/v2ray

从vps拉取nginx.conf文件
sudo scp root@127.0.0.1:/etc/nginx/nginx.conf /home

本地复制文件目录到vps
sudo scp -r /home/books root@127.0.0.1:/root

从vps拉取books文件夹
sudo scp -r root@127.0.0.1:/root/books /home

指定端口从vps拉取文件
sudo scp -P 2233 root@127.0.0.1:/etc/nginx/nginx.conf /home
有趣的Linux命令8:
今晚要讲的是 mvrm 命令,mv命令用来为文件或目录改名、或将文件或目录移入其它位置。rm命令用于删除文件或者目录。

mv = move file
rm = remove

mv常用命令:

把config.json文件改名为config.bak
mv config.json config.bak

把config.json文件移动到etc目录下
mv config.json /etc

移动books目录到cloud目录下
mv books /cloud

移动file.txt文件到/usr/local/etc下,并改名newfile.txt
mv /etc/file.txt /usr/local/etc/newfile.txt

rm常用命令:

删除file.txt文件
rm file.txt

删除books目录
rm -rf books

删除目录下的所有内容
rm -rf *

删除根目录下所有内容,慎用
rm -rf /*
#ssl #certbot #cron
博客教程里已全面更新了Let's Encrypt证书申请方式,更简单了,下面是更新部分:

安装certbot

apt install certbot

certbot申请证书

certbot certonly --standalone --email youmail@mail -d abc.com -d www.abc.com

下面是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
有趣的Linux命令9:
今晚要讲的是 wget 命令,wget是一个独立的下载程序,许多发行版Linux都是默认自带的,无需额外安装。

下载单个文件:
wget https://starts.sh/cloud/docs/torrc

下载并重命名:
wget -O torrc.txt https://starts.sh/cloud/docs/torrc

断点续传:
wget -c https://starts.sh/cloud/docs/torrc

后台下载:
wget -b https://starts.sh/cloud/docs/torrc

递归下载/下载文件夹:
-r 递归下载整个站点
-nd 不创建层层目录
-np 不搜索上层目录
-A 指定下载后缀
-R 排除下载后缀
-L 递归时不进入其它主机
比如俺要下载xvideo目录下的MP3文件,完整命令应该是
wget -r -nd -np -L -A mp3 https://starts.sh/cloud/xvideos/

下载多个文件,首先创建一个txt下载文件,比如download.txt,一行一个URL下载链,内容如下:
URL1
URL2
URL3
URL4

接下来就是批量下载命令:
wget -i download.txt
更新一下ws代理使用cloudflare的优选ip方法:
域名使用cf的dns解析,然后客户端ip填写你找到的cf ip,伪装域名填你的域名就可以了。(不管点不点亮旁边的小云朵都可以)而不用去worker反代。
小内存vps,增加或删除swap分区方法:

检查分区: free -h

              total        used        free      shared  buff/cache   available
Mem: 470M 69M 271M 3.6M 129M 386M
Swap: 1.0G 0B 1.0G

如果出现上面字样说明你的vps是存在swap分区的,这个时候想调整分区大小,俺们就要先删除原有分区,再创建。

找到swapfile文件: find -name swapfile

cd到存放swapfile的文件夹

停用swap空间: swapoff swapfile

删除swapfile文件: rm swapfile

上面完事后就等于删除swap分区了,接下来创建swap分区。

cd / && mkdir swap && cd swap

创建swap文件,后面的2048是分区大小2g,自己可以根据需要调整。

dd if=/dev/zero of=swapfile bs=1M count=2048

将文件标记为交换空间:

mkswap swapfile

启用该交换文件:

swapon swapfile

另建议给swapfile文件权限为600,也就是root权限,以免出现安全隐患:

chmod 600 swapfile

再次检查一下swap分区是否可用:

swapon --show

最后,设置swap分区为开机自动挂载:

echo "/swap/swapfile none swap sw 0 0" >> /etc/fstab

建议swap分区大小和RAM大小保持差不多。
有趣的Linux命令10:
今晚要讲的的是 tar 解压缩命令,一般发行版会自带。

tar = tape archive

.tar.gz压缩和解压
解压:
tar -zxvf cloud.tar.gz
解压到目标路径:
tar -zxvf cloud.tar.gz -C /cloud
压缩:
将cloud文件夹压缩为cloud.tar.gz
tar -zcvf cloud.tar.gz cloud

.gz解压缩
解压:
gunzip cloud.gz
gzip -d cloud.gz
压缩:
gzip cloud

.zip解压缩
解压:
unzip cloud.zip
压缩:
zip cloud.zip cloud
压缩,递归压缩,文件夹压缩
zip -r cloud.zip cloud
vps规格测试脚本:wget -qO- bench.sh | bash

vps查看回程线路脚本:wget -qO- git.io/besttrace | bash

vps的cpu性能测试:wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh && chmod +x unixbench.sh && ./unixbench.sh
有趣的Linux命令11:
今晚要讲的是查看服务器状态命令,比如内核,系统,cpu信息,硬盘,分区,内存,swap,端口信息等命令。

查看内核/操作系统
uname -a

查看CPU信息
cat /proc/cpuinfo

查看硬盘各分区使用情况
df -h

查看内存和swap交换区使用情况
free -h

查看所有进程
ps -ef

查看所有监听端口
netstat -lntp

查看所有已经建立的连接
netstat -antp
有趣的Linux命令12:
今晚要讲的是 ps 命令,用于显示当前进程的状态,类似于 windows 的任务管理器。上次俺们讲过 top 命令,用于动态显示进程信息。而这次的 ps 命令列出的是当前那些进程的快照。

ps = process status

下面列出常用的ps的命令:

显示所有进程信息:
ps -A

显示指定用户信息:
ps -u root

显示所有进程信息,连同命令行:
ps -ef

ps 与 grep 组合使用,查找特定进程:
ps -ef | grep nginx

列出目前所有的正在内存中的程序:
ps aux
nginx出现 worker_connections are not enough 错误,主要是程序和Linux打开open files数目问题。主要是增加nginx和ulimit打开文件的最大数可解决。

1:修改 nginx.conf 如下:
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
}


2:修改系统open files

1) vi /etc/security/limits.conf 添加:
* soft     nproc          65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535

bro soft nproc 65535
bro hard nproc 65535
bro soft nofile 65535
bro hard nofile 65535


2) echo "session required pam_limits.so" >> /etc/pam.d/common-session

3) echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive

4) echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.conf

3:修改file-max

echo "fs.file-max = 6553560" >> /etc/sysctl.conf

重启vps后,可以使用命令 ulimit -n 或者 ulimit -a 查看 open files 参数。
有趣的Linux命令13:
今晚平安夜,给大家讲一个有趣的命令,`screenfetch` 命令,用于在终端里展示Linux发行版的logo及系统信息。

首先debian,ubuntu,linux mint,elementary OS用户使用下面的命令安装:

apt install screenfetch

然后直接运行,就可以看见漂亮的发行版logo了:

screenfetch