Contents
网络与时间
手动设置terminal代理
export all_proxy=http://127.0.0.1:10800;
export https_proxy=http://127.0.0.1:10800;
export http_proxy=http://127.0.0.1:10800;
# socks5代理:
export https_proxy=socks5://127.0.0.1:10801;
export http_proxy=socks5://127.0.0.1:10801;
浏览器、 软件输入法、字体等(Manjaro)
#浏览器、网盘、通讯软件
sudo pacman -S firefox firefox-i18n-zh-cn telegram-desktop dropbox chromium
#常用拼音、日语输入法
sudo pacman -S fcitx fcitx-googlepinyin fcitx-mozc fcitx-cloudpinyin fcitx-configtool fcitx-gtk3 fcitx-gtk2
#输入法需要的环境变量,重新登入后生效
nano ~/.pam_environment
## 这里不是 shell,不写 export
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
[email protected]=fcitx
# 常用字体
sudo pacman -S noto-fonts-emoji adobe-source-han-sans-otc-fonts adobe-source-code-pro-fonts noto-fonts-cjk ttf-dejavu
Docker相关
刷新DNS缓存
sudo systemctl restart nscd
# windows:
ipconfig /flushdns
查看已监听端口
sudo apt-get install lsof
lsof -i -P
#或者
netstat -tulnp
zerotier内网穿透
# 安装zerotier
curl -s https://install.zerotier.com/ | sudo bash
# zerotier加入某个网络
sudo -H zerotier-cli join 你的网络ID
ohmyzsh,zsh时钟
#ohmyzsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
#zsh时钟
nano .zshrc
nano .zshrc.local
# 添加如下内容
setopt PROMPT_SUBST
PROMPT='%B%F{red}%n@%m%f%F{yellow}[%D{%L:%M:%S}]%f:%F{blue}${${(%):-%~}}%f$ %b'
TMOUT=1
TRAPALRM() {
zle reset-prompt
}
设置时间、时间同步服务
# 设置时区
sudo timedatectl set-timezone Asia/Shanghai
# 让 Linux 使用本地时间
sudo timedatectl set-local-rtc true
# ubuntu删除可能冲突的ntp:
sudo apt remove ntp
#编辑设置文件:
sudo nano /etc/systemd/timesyncd.conf
#添加时间服务器如下
[Time]
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org 0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org time.google.com
# 设置时间同步服务:
sudo systemctl enable systemd-timesyncd
sudo systemctl restart systemd-timesyncd
#查看时间同步服务状态
sudo systemctl status systemd-timesyncd
开启Linux内核BBR
# 开机后 uname -r 看看是不是内核 >= 4.9
# 执行 lsmod | grep bbr,如果结果中没有 tcp_bbr 的话就先执行
modprobe tcp_bbr
echo "tcp_bbr" | sudo tee --append /etc/modules-load.d/modules.conf
# 修改系统相关设置
echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf
# 让相关设置生效
sudo sysctl -p
# 检测1,如果结果都有 bbr, 则证明你的内核已开启 bbr
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
# 检测2,执行 lsmod | grep bbr, 看到有 tcp_bbr 模块即说明 bbr 已启动
lsmod | grep bbr
禁用 IPv6
# 1、临时禁用IPv6
# 将一个特定的网络接口禁用IPv6,使用以下命令:
sudo sh -c 'echo 1 > /proc/sys/net/ipv6/conf/<interface-name>/disable_ipv6'
# 重新启用eth0接口的IPv6:
sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6'
# 想要将整个系统所有接口包括回环接口禁用IPv6,使用以下命令:
sudo sh -c 'echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6'
# 2、永久禁用IPv6
# 通过 /etc/sysctl.conf 文件对 /proc 进行永久修改
# 用文本编辑器打开 /etc/sysctl.conf 然后添加以下内容:
# 禁用整个系统所有接口的IPv6
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用某一个指定接口的IPv6(例如:eth0, lo)
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
# 在 /etc/sysctl.conf 使这些更改生效,运行以下命令,或直接重启:
sudo sysctl -p /etc/sysctl.conf
安装caddy与常用插件
CADDY_TELEMETRY=on curl https://getcaddy.com | bash -s personal http.forwardproxy,http.git,http.webdav,tls.dns.cloudflare
安装Syncthing(Ubuntu)
# Add the release PGP keys:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
# Add the "stable" channel to your APT sources:
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
# Update and install syncthing:
sudo apt-get update
sudo apt-get install syncthing
aria2 下载器设置
#创建aria2的配置文件,我这里将配置文件放在了/etc/aria2目录下
#文件保存目录自行修改
dir=/var/www/html/download
disable-ipv6=true
#打开rpc的目的是为了给web管理端用
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#rpc-listen-port=6800
continue=true
input-file=/etc/aria2/aria2.session
save-session=/etc/aria2/aria2.session
max-concurrent-downloads=3
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=true
# 打开IPv6 DHT功能, PT需要禁用
enable-dht6=true
bt-enable-lpd=true
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=true
# BT Peer客户端识别代码
peer-id-prefix=-qB334-
# BT Peer客户端描述信息
peer-agent=qBittorrent/3.3.4
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=2.0
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
# bt-save-metadata=true
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://exodus.desync.com:6969/announceBT,http://nyaa.tracker.wf:7777/announce,udp://open.stealth.si:80/announce,udp://tracker.coppersurfer.tk:6969/announce,udp://exodus.desync.com:6969/announce
#保存退出,用配置文件启动:
sudo aria2c --conf-path=/etc/aria2/aria2.conf
#如果没有提示任何错误信息,那就按ctrl+c停止上面的语句,运行
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D
系统优化
将VPS重装为Archlinux
vps2arch项目地址:
https://github.com/drizzt/vps2arch
wget http://tinyurl.com/vps2arch
chmod +x vps2arch
./vps2arch
# 设置镜像服务器
./vps2arch -m http://mirrors.163.com/archlinux/
# 如果需要syslinux
./vps2arch -m http://mirrors.163.com/archlinux/ -b syslinux
常用命令行软件
pacman -S htop zsh git vim curl unzip neofetch python lsof psmisc bmon net-tools sudo ranger
SSH更改默认端口、允许Root登陆
sudo nano /etc/ssh/sshd_config
##修改以下两句
#PermitRootLogin yes
#Port 22345
## 重启SSH服务
sudo systemctl restart sshd
sudo systemctl status sshd
更改系统编码
具体参考 Archlinux维基
# 查看系统编码
locale
# 更改系统编码,取消相关行注释
sudo nano /etc/locale.gen
sudo locale-gen
sudo nano /etc/default/locale
# 添加一行
LANG="en_US.UTF-8"
# 使其生效
source /etc/default/locale
#或者
localectl set-locale LANG=en_US.UTF-8
alias 命令别名
echo "alias check='python3 /root/check.py'">>.bashrc
source /root/.bashrc
# 注意 >是覆盖,>>是追加。
alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias vi='vim'
alias javac="javac -J-Dfile.encoding=utf8"
alias grep="grep --color=auto"
alias -s html=mate # 在命令行直接输入后缀为 html 的文件名,会在 TextMate 中打开
alias -s rb=mate # 在命令行直接输入 ruby 文件,会在 TextMate 中打开
alias -s py=vi # 在命令行直接输入 python 文件,会用 vim 中打开,以下类似
alias -s js=vi alias -s c=vi
alias -s java=vi
alias -s txt=vi
alias -s gz='tar -xzvf'
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'
byobu
F2创建窗口
shift+F2生成水平分隔
ctrl+F2生成垂直分隔
ctrl+shift+F2生成新会话
F3 回到先前窗口
F4:跳到下一个窗口
shift+F3在一个窗口的分隔中回到上一个子窗口,可循环
shift+F4在一个窗口的分隔中回到下一个子窗口,可循环
F5 重新加载文件
F6 释放该次对话并退出Byobu环境,回到当前终端窗口,并且当你下次登录时,它会记住你上回的设置,非常智能
F7 进入 复制/回滚模式
F8 重新命名一个窗口
F9 启动配置窗口,从这里可以了解byobu的热键设置,并且也可以自己修改设置一些选项,建议每次多看看。
k-vim
sudo apt-get remove vim
#支持python的vim
sudo apt-get install vim-nox
# https://github.com/wklken/k-vim
# ubuntu
sudo apt-get install ctags
sudo apt-get install build-essential cmake python-dev #编译YCM自动补全插件依赖
sudo apt-get install silversearcher-ag
sudo pip install flake8 yapf
cd k-vim/
sh -x install.sh
# 移除k-vim
cd ~ && rm -rf .vim .vimrc .vimrc.bundles && cd -
后台运行
#將前台任务丟到后台中暂停:
[ctrl]+z
#查看后台的工作状态:
jobs
#将后台的任务拿到前台来处理:
fg $1
#或
fg caddy
#将任务放到后台中去处理:
bg $1
#或
bg caddy
#管理后台的任务
kill -9 name
#后台运行,关掉终端会停止运行
caddy &
#后台运行,关掉终端也会继续运行
nohup caddy &
定时执行
#列出当前任务:
crontab -l
#设置默认编辑器:
export EDITOR=nano
#编辑:
crontab -e
#编辑加入,每10分钟执行一次:
*/10 * * * * /usr/bin/python3 /root/check.py
#重启定时任务
service cron restart
#查看日志看某个job有没有执行/报错:
tail -f /var/log/cron
service cron status
### 通过命令获取MariaDB用变量PUID PGID
```bash
id username
磁盘管理
参考:
https://wiki.archlinux.org/index.php/Fstab_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
# 手动卸载、加载
sudo umount /dev/sda1 && sudo mount /dev/sda /home/bai/usb/
# 格式化磁盘
sudo mkfs -t ext3 /dev/mmcblk1
# 自动挂载
sudo nano /etc/fstab
# 允许任意用户挂载 不干扰开机 dump工具不备份 所有人都有读、写、运行权限 文件系统检查顺序:其他
/dev/sda1 /home/qiao/aria2 auto defaults,users,nofail,noatime,exec 0 2
# 重新加载/etc/fstab
mount -a
小技巧
多命令连续执行
#用;可以让多个命令连续知行,中间出现错误并不会中断后面命令,如:
mkdir test; mkdir test; rmdir test;
#用&&分割的命令,如果没有错误会一直执行下去,出现错误立即中止,如:
mkdir test && mkdir test && rmdir test
#用||分割的命令,如果有错误就一直执行下去,直到一次正确立即中止,如:
mkdir test || mkdir test || rmdir testmkdir test || mkdir test || rmdir test || mkdir test
文件搜索
# 按文件名搜索:
find -name caddy
# 按文件名搜索(用数据库):
sudo apt-get install mlocate
sudo updatedb
locate fstab
#按大小搜索(查看大于100M的文件):
sudo du -ht 200M /
查看命令信息
which ls
whatis ls
apropos time
man ls
查看Systemctl日志
journalctl --disk-usage
journalctl
apt-get 指定版本(Debian、Ubuntu)
apt-cache madison shadowsocks-libev
apt-get install shadowsocks-libev=3.1.2
查看、更改文件内容
#输出文件内容:
cat test.txt
more test.txt
# less better than more (^——^)
less test.txt
#管道符:
history | less
#重定向,重写,如果文件里面有内容会覆盖:
la -alh / > lsout.txt
#重定向,追加,如果文件里面有内容会把新内容追加到文件尾:
la -alh / >> lsout.txt
查看、转换文本文件编码
sudo apt install enca
# 查看
enca -L zh_CN file.txt
# 转换
enca -L zh_CN -x UTF-8 file
其他简单命令
#删除“不以backup开头的文件”
rm -rf !(backup*)
#清空当前目录下log文件:
for i in find . -name "*.log"; do cat /dev/null >$i; done
#网络查看工具:
sudo pacman -S bmon
#在目录之间来回跳转:
pushd
popd
#查看文件类型:
file sample.txt
#日历:
cal
#命令记录:
history
#切换到管理员
sudo -s
#加运行权限:
chmod +x
#清屏:
ctrl+l
#查看磁盘挂载 :
df -h
文章评论