Linux-Config文件
个人linux常规配置
华为云: https://mirrors.huaweicloud.com
修改默认默认登录zsh
usermod -s /bin/zsh [username]
将 [username]
替换为你想要更改登录 shell 的用户名
迁移宝塔目录
可在宝塔的设置里面进行转移
宝塔面板故障修复
curl https://download.bt.cn/install/update_panel.sh|bash
SSH-keygen免密登录
创建一个 SSH key
ssh-keygen -t rsa -C "your_email@example.com"
# 存放在位置:~/.ssh
ls ~/.ssh
目录下会包含两个文件: 私钥:id_rsa
公钥:id_rsa.pub
将公钥复制到远程主机中
第一种方式: 使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_keys 文件中
ssh-copy-id root@192.168.0.1 // 回车后输入密码
第二种方式:
现在服务器 的==~/ .ssh/==目录下创建 authorized_keys
文件,然后将本地的公钥(id_rsa.pub
)添加到这个文件即可
cat ~/.ssh/id_rsa.pub // 复制本机公钥信息
登录服务器,创建 authorized_keys
文件,并把刚刚复制的公钥粘贴进去就ok了。
vim ~/.ssh/authorized_keys
如果你想多个个人电脑 免密登录同一台服务器 ,只要按照上面的步骤操作,当我们把 2+1台个人电脑的公钥添加到authorized_keys
这个文件时,记得是追加,不是替换。
window在git中使用alias
bash: cd && vim .bashrc
=============================
alias cls="clear && ls"
alias web="cd /d/laragon/www"
ubuntu卸载默认的apache
sudo apt-get --purge remove apache2
sudo apt-get --purge remove apache2.2-common
sudo apt-get autoremove
sudo find /etc -name "***apache***" -exec rm -rf {} \;
sudo rm -rf /var/www
重装apache2
sudo apt-get install **apache**2
sudo /etc/init.d/**apache**2 restart
Linux 查看端口占用情况
Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。
lsof
lsof(list open files)是一个列出当前系统打开文件的工具。
lsof 查看端口占用语法格式:
lsof -i:端口号
查看服务器 8000 端口的占用情况:
# lsof -i:8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nodejs 26993 root 10u IPv4 37999514 0t0 TCP *:8000 (LISTEN)
可以看到 8000 端口已经被轻 nodejs 服务占用。
lsof -i 需要 root 用户的权限来执行,如下图:

更多 lsof 的命令如下:
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
netstat 查看端口占用语法格式:
netstat -tunlp | grep 端口号
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建立相关链接的程序名
例如查看 8000 端口的情况,使用以下命令:
# netstat -tunlp | grep 8000
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 26993/nodejs
更多命令:
netstat -ntlp //查看当前所有tcp端口
netstat -ntulp | grep 80 //查看所有80端口使用情况
netstat -ntulp | grep 3306 //查看所有3306端口使用情况
kill
在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:
kill -9 PID
如上实例,我们看到 8000 端口对应的 PID 为 26993,使用以下命令杀死进程:
kill -9 26993
禁止linux进入休眠
方法一
最新买了一台工控机,于是安装了一个manjaro系统,用于人服务器使用,但是这个玩意长时间不懂她,他自己就睡着了,必须得按一下电源键,那如何阻止他休眠呢?
禁止休眠
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
解除禁止休眠
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
方法二
- 编辑
/etc/default/grub
文件,将GRUB_CMDLINE_LINUX_DEFAULT="quiet"
改为GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi=off apm=off"
- 执行
sudo update-grub
命令
简单的vimrc配置
"======== orangbus .vimrc ===============
"github:https://github.com/orangbus/tool
"About Me : Bili search: Orangbus
"======== orangbus.cn ===================
syntax on "语法高亮
syntax enable
colorscheme desert "设置颜色
set number "设置行号
set history=1000 "设置历史记步
set nocompatible "关闭vi兼容模式
set ruler "右下角显示光标的行列信息
set tabstop=4 "设置所有的Tab和缩进为4个空格
set wrap "自动换行
set hlsearch "搜索逐字符高亮
set encoding=utf-8 "设置编码
set autowrite "自动保存
set laststatus=2 "显示状态栏(默认值为1,表示无法显示状态栏)
set completeopt=longest,preview,menu "文件类型自动检测,代码智能补全
"用浅色高亮显示当前行"
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul
"============= 插件相关==================
filetype on " 检测文件类型
systemctl
启动服务:systemctl start xxx.service
关闭服务:systemctl stop xxx.service
重启服务:systemctl restart xxx.service
显示服务的状态:systemctl status xxx.service
在开机时启用服务:systemctl enable xxx.service
在开机时禁用服务:systemctl disable xxx.service
查看服务是否开机启动:systemctl is-enabled xxx.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
centos8替换源
cd /etc/yum.repos.d/ &&
rm -rf ./*.repo &&
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo &&
yum clean all && yum makecache
子管理员权限
sudo vim /etc/sudoers
=======================
root ALL=(ALL) ALL
orangbus ALL=(ALL) ALL
chmod 用法
chmod -R 777 dirname
git clone 配置代理
设置HTTP代理:
git config --global http.proxy <代理地址>
将
<代理地址>
替换为你的代理服务器地址,例如http://proxy.example.com:8080
。设置HTTPS代理:
git config --global https.proxy <代理地址>
将
<代理地址>
替换为你的代理服务器地址,例如http://proxy.example.com:8080
。执行git clone命令:
git clone <仓库URL>
将
<仓库URL>
替换为你要克隆的Git仓库的URL。
这样,Git将通过代理服务器进行克隆操作。
如果你需要移除已配置的代理,可以使用以下命令:
移除HTTP代理:
git config --global --unset http.proxy
移除HTTPS代理:
git config --global --unset https.proxy
请注意,这些命令是针对全局Git配置的。如果你只想为特定的Git仓库设置代理,可以在仓库目录中执行相应的命令,而不使用--global
选项。
代理地址可通过window的设置查看

格式化磁盘
查看磁盘
sudo fdisk -l
磁盘 /dev/sdd:1000.2 GB, 1000204886016 字节,1953525168 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
格式化磁盘
sudo mkfs.ext4 /dev/sdd
linux 使用uuid挂载硬盘
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda ext4 4177fa60-7e85-4b7d-abc6-d682469c4e30
sdb
├─sdb1 vfat SYSTEM 942F-8B56 /boot/efi
├─sdb2
├─sdb3 ntfs Windows 1C043015042FF106
├─sdb4 xfs 4b104684-94d2-4a13-898d-491c92196a49 /boot
└─sdb5 LVM2_member YaEeLR-oF0w-gG37-yZ2e-0Rt2-8tiK-XB9EfZ
├─centos-root ext4 76d8b0e9-57da-4365-9810-23ae1c2d6094 /
├─centos-swap swap 3c85e57b-d9ff-4720-b727-f82dcc9d3bda [SWAP]
└─centos-home ext4 d5771069-9e41-4a7b-b1f3-a59f9ddc52f5 /home
sdc ext4 06393c7c-466f-4c94-b085-fa00d7ba230e
UUID=4177fa60-7e85-4b7d-abc6-d682469c4e30 /data ext4 defaults 0 0
UUID=06393c7c-466f-4c94-b085-fa00d7ba230e /cloud ext4 defaults 0 0
sudo mount UUID=4177fa60-7e85-4b7d-abc6-d682469c4e30 /data
sudo mount UUID=06393c7c-466f-4c94-b085-fa00d7ba230e /cloud
开机自启
编辑一下文件,保存后会自动开机自启,并且自动识别
sudo vim /etc/fstab
UUID=4177fa60-7e85-4b7d-abc6-d682469c4e30 /data ext4 defaults 0 0
UUID=06393c7c-466f-4c94-b085-fa00d7ba230e /cloud ext4 defaults 0 0
手动挂载
sudo mount UUID=4177fa60-7e85-4b7d-abc6-d682469c4e30 /data
sudo mount UUID=06393c7c-466f-4c94-b085-fa00d7ba230e /cloud
# 方式2
sudo mount /dev/sda /data
git设置代理
在命令行中,使用以下命令设置代理。将 <proxy-url>
替换为你代理服务器的实际地址。
# HTTP 代理
git config --global http.proxy http://home.com:20172
# HTTPS 代理
git config --global https.proxy https://home.com:20172
取消代理设置
如果需要取消代理设置,可以使用以下命令:
# 取消 HTTP 代理
git config --global --unset http.proxy
# 取消 HTTPS 代理
git config --global --unset https.proxy
检查代理设置
你可以使用以下命令检查当前 Git 配置中是否存在代理设置:
git config --global --get http.proxy
git config --global --get https.proxy
这将显示当前的代理设置,如果没有代理设置,将不会显示任何输出。
针对某个仓库配置代理
如果你只想为某个特定的 Git 仓库配置代理,可以在该仓库的目录下执行相同的命令,但不使用 --global
选项。
# 在特定仓库配置 HTTP 代理
git config http.proxy http://home.cc:20171
# 在特定仓库配置 HTTPS 代理
git config https.proxy https://home.cc:20171
linux终端走代理
export HTTP_PROXY=http://127.0.0.1:2017
export HTTPS_PROXY=https://127.0.0.1:20171
export ALL_PROXY=http://127.0.0.1:20171
# 清除代理
unset HTTP_PROXY
unset HTTPS_PROXY
unset ALL_PROXY
快捷方式,将下面的配置添加到 ~/.bashrc
中
on() {
export HTTP_PROXY=http://127.0.0.1:20171
export HTTPS_PROXY=http://127.0.0.1:20171
export ALL_PROXY=http://127.0.0.1:20171
echo "HTTP/HTTPS Proxy on"
}
off() {
unset HTTP_PROXY
unset HTTPS_PROXY
unset ALL_PROXY
echo "HTTP/HTTPS Proxy off"
}
宝塔docker端口无法访问
当宝塔开启防火墙以后,使用docker部署的项目映射到宿主机的端口无法访问
举例:我使用docker运行一个mysql映射3307端口到宿主机,但是不能通过3307端口访问,宝塔上也放行了3307度那口
1、检查是否开启ipv4转发
sysctl net.ipv4.ip_forward
如过返回是1,代表是服务器开启了转发
如果没有开启的话,打开这个文件 /etc/sysctl.conf
添加一行配置:
net.ipv4.ip_forward = 1
回到SSH终端中执行
sudo sysctl -p
github action 打包docker发布
在项目目录下创建一个:.github/workflows/docker-build.yml
文件
name: 打包docker镜像发布到dockerhub
on:
push:
branches:
- master
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: "拉取代码"
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: orangbus/movie-player:latest
上面的配置有两个变量
DOCKER_USERNAME:dockerhub 用户名
DOCKER_TOKEN:dockerhub 密码
找到对应仓库的setting里面添加上即可
