BlueSkyXN 综合工具箱
- 说明:BlueSkyXN 综合工具箱 Linux Supported ONLY,集成了很多脚本。
- GitHub 地址:https://github.com/BlueSkyXN/SKY-BOX
- 执行代码:
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh
服务器测速脚本:SuperSpeed 修复版
-
说明:用来检测服务器到国内三网运营商速度的一键脚本 SuperSpeed 修复版,可以测速你的服务器到国内各大节点的速度。
-
执行代码:
bash <(curl -Lso- https://git.io/superspeed_uxh)
-
备用代码:
bash <(curl -Lso- https://raw.githubusercontent.com/uxh/superspeed/master/superspeed.sh)
查看服务器CPU占用
- 说明:常用查看命令
top
,如果希望美观,可以先执行下面的代码,然后使用命令htop
。yum -y install htop && htop
流媒体解锁查看
- 说明:用于检查 VPS 的 IP 是否可用于各种 OTT 平台
- 执行代码:
bash <(curl -L -s raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh)
三网回程测试
# 第一个
wget https://raw.githubusercontent.com/nanqinlang-script/testrace/master/testrace.sh
bash testrace.sh
# 第二个
wget -qO- git.io/besttrace | bash
# 第三个
curl http://tutu.ovh/bash/returnroute/test.sh | bash
科技lion 一键脚本工具
- 说明:科技Lion的 Shell 脚本工具是一款全能脚本工具箱,专为 VPS 监控、测试和管理而设计。
- GitHub 地址:https://github.com/kejilion
- 官网版一键脚本
curl -sS -O https://kejilion.pro/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh
- GitHub 版一键脚本,如果遇到官网版出现大段乱码!可使用该版本。
curl -sS -O https://raw.githubusercontent.com/kejilion/sh/main/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh
VPS 改成 root 登录(适合甲骨文、谷歌云等)
sudo -i
echo root:你的密码 |sudo chpasswd root
sudo sed -i 's/^.*PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^.*PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo reboot
查看系统启动时间
systemd-analyze
一键纯净更新(Debian,Ubuntu 系统)
apt update -y && apt full-upgrade -y && apt autoremove -y && apt autoclean -y
# 脚本解释:
# "update -y" 只是更新软件包索引,但不包含下载
# "full-upgrade -y" 更新系统软件包,并把旧版本删除
# "autoremove -y" 删除未更新的弃用的软件包
# "autoremove -y" 删除所有软件包的缓存
一键纯净更新(CentOS 系统)
yum update -y && yum upgrade -y && yum autoremove -y && yum clean all
一键清理垃圾(Debian,Ubuntu 系统)
# 删除无用的依赖包
sudo apt autoremove --purge
# 删除下载的软件或安装包
sudo apt clean
# 删除跟系统没关系的过期的依赖包
sudo apt autoclean
# 删除残留的配置文件
sudo apt remove --purge $(dpkg -l | awk '/^rc/ {print $2}')
# 删除 journal 日志
sudo journalctl --rotate
# 删除前一秒的 journal 日志
sudo journalctl --vacuum-time=1s
# 删除大小是 50 MB 的 journal 日志
sudo journalctl --vacuum-size=50M
# 删除旧的内核的定向包
sudo apt remove --purge $(dpkg -l | awk '/^ii linux-(image|headers)-[^ ]+/{print $2}' | grep -v $(uname -r | sed 's/-.*//') | xargs)
一键清理垃圾(CentOS 系统)
sudo yum autoremove
sudo yum clean all
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
sudo journalctl --vacuum-size=50M
sudo yum remove $(rpm -qa kernel | grep -v $(uname -r))
查看服务器系统版本
# Debian
cat /etc/debian_version
# Ubuntu
cat /etc/lsb-release
# CentOS
cat /etc/centos-release
Docker 一键安装
# 更新、安装必备软件
apt-get update && apt-get install -y wget vim
# 国外服务器:
curl -sSL https://get.docker.com/ | sh
# 国内服务器:
curl -sSL https://get.daocloud.io/docker | sh
# 设置开机自动启动
systemctl enable docker
# 查看 Docker 版本
docker -v
Docker 卸载
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Docker-Compose 一键安装
# 国外服务器:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# 查看 Docker-Compose 版本
docker-compose --version
# 国内服务器:
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
容器操作
更多信息参考:
https://lvbibir.cn/archives/171
docker run 创建并启动一个新的容器
docker run:创建一个新的容器并运行一个命令
语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS 说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
只指定容器端口(宿主机端口随机映射)
docker run -p 80 -it ubuntu /bin/bash
主机端口:容器端口
docker run -p 8080:80 -it ubuntu /bin/bash
IP:容器端口
docker run -p 0.0.0.0:80 -it ubuntu /bin/bash
IP:端口:容器端口
dokcer run -p 0.0.0.0:8080:80 -it ubuntu /bin/bash
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
-env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷
docker ps 查看容器
docker ps:列出容器
语法:
docker ps [OPTIONS]
OPTIONS 说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
例如:
列出所有创建的容器 ID:docker ps -a -q
docker start/stop/restart 开启、关闭、重启一个容器
docker start:启动一个或多个已经被停止的容器
docker stop:停止一个运行中的容器
docker restart:重启容器
语法
docker start [OPTIONS] CONTAINER [CONTAINER…]
例如:启动已被停止的容器 myrunoob
docker start myrunoob
docker stop [OPTIONS] CONTAINER [CONTAINER…]
例如:停止运行中的容器 myrunoob
docker stop myrunoob
docker restart [OPTIONS] CONTAINER [CONTAINER…]
例如:重启容器 myrunoob
docker restart myrunoob
Docker 扩展阅读
- Docker 入门
https://vuepress.mirror.docker-practice.com/ - Docker 实践
https://vuepress.mirror.docker-practice.com/cases/os/
Linux 系统目录结构
以下是对这些目录的解释:
-
/bin
bin
是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 -
/boot
这里存放的是启动Linux
时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev
dev
是 Device(设备)的缩写, 该目录下存放的是Linux
的外部设备,在Linux
中访问设备的方式和访问文件的方式是相同的。 -
/etc
etc
是 Etcetera(等等)的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home
用户的主目录,在Linux
中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。 -
/lib
lib
是 Library(库)的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows
里的DLL
文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media
Linux
系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux
会把识别的设备挂载到这个目录下。 -
/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/
上,然后进入该目录就可以查看光驱里的内容了。 -
/opt
opt
是 optional(可选)的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE
数据库则就可以放到这个目录下。默认是空的。 -
/proc
proc
是 Processes(进程)的缩写,/proc
是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping
命令,使别人无法ping
你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin
s
就是 Super User 的意思,是 Superuser Binaries(超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序。 -
/selinux
这个目录是Redhat/CentOS
所特有的目录,Selinux
是一个安全机制,类似于windows
的防火墙,但是这套机制比较复杂,这个目录就是存放selinux
相关的文件的。 -
/srv
该目录存放一些服务启动之后需要提取的数据。 -
/sys
这是Linux2.6
内核的一个很大的变化。该目录下安装了2.6
内核中新出现的一个文件系统sysfs
。
sysfs
文件系统集成了下面3种文件系统的信息:针对进程信息的proc
文件系统、针对设备的devfs
文件系统以及针对伪终端的devpts
文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。 -
/tmp
tmp
是 temporary(临时)的缩写这个目录是用来存放一些临时文件的。 -
/usr
usr
是 unix shared resources(共享资源)的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows
下的program files
目录。 -
/usr/bin
系统用户使用的应用程序。 -
/usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src
内核源代码默认的放置目录。 -
/var
var
是 variable(变量)的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/run
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有/var/run
目录,应该让它指向run
。
在 Linux
系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc
,上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin
, /sbin
, /usr/bin
, /usr/sbin
,这是系统预设的执行文件的放置目录,比如 ls
就是在 /bin/ls
目录下的。
值得提出的是 /bin
、/usr/bin
是给系统用户使用的指令(除 root
外的通用用户),而 /sbin
, /usr/sbin
则是给 root
使用的指令。
/var
这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log
目录下,另外 mail
的预设放置也是在这里。
更多代码扩展阅读
- 代码速查表 Quick Reference:https://wangchujiang.com/reference/
说明:为开发人员分享快速参考备忘清单【速查表】。这是英文版 Reference 的中文版本。