236-876-9107

平时在用 man 命令查看help 文档时, 看到的都是黑白的字体, 页面没有生机, 今天在 Twitter 中发现了一些小建议. 我觉得挺有意思, 关键是提高了看文档的效率吧. 收藏下来, 以备以后使用.

  1. 编辑~/.zshrc(我用的是zsh, 如果你用的是bash, 应该是~/.bashrc)
  2. 添加以下配置:
export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'
  1. 运行source ~/.zshrc(同~/.bashrc)

Tips:
31: 表示红色, 32 表示绿色, 33 表示黄色
\e后, 0: 重置/正常, 1: 粗, 4: 下划线.

然后就可以看到有色彩生动的 man 页面了.
参考 demo

当然你也可以安装most命令, 我是一个有洁癖的人, 不想为这种小事还安装一个命令, 也觉得必要性不大.
以下是参看的主要内容, 你可以再深入研究.

参考文章或链接:
1. How to view colored man pages in linux

counteragent

ngrok 是一个使用go语言编写的反向代理软件,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。由于工作中, 和 http 打交道比较的多, 暂时不用 https.

搭建服务端

cd /usr/local/
git clone /github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="ngrok.alpnut.com"
cd ngrok
GOOS=linux GOARCH=386 make release-server # 编译服务端, 32位系统内核, 64位 amd64
vim /usr/local/ngrok/src/ngrok/log/logger.go
# 将log4go包应用改为 "github.com/keepeye/log4go", 在"墙内"

服务端:

/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" --httpAddr=":8080" --httpsAddr=""

客户端:

./ngrok -config=./ngrok.cfg -subdomain=test -proto=http 8080 #表示仅支持http 并映射到 8080 端口. 本地服务就搭建在 8080 端口

将 阿里或腾讯的 DNS 添加 *.ngrok.alpnut.com 记录.适用于ngrok的二级域名.

提示: 可以使用 supervisor 加载为守护进程

安装 ArchLinux 总结

  • 准备 镜像 U盘
    先用 U盘 刷入 archlinux 的 镜像, 在类Unix 中采用 dd 命令. 在 Win 中使用 usbwriter 软件 刷入即可.

  • 手动磁盘分区
    cfdisk 进入 分区界面 主要有: /boot 挂载点 / 挂载点 swap 交换区

    mkfs.ext4 /dev/sda1 格式化 /boot / 等挂载点

    mkswap /dev/sda6 创建 swap 文件系统
    swapon /dev/sda6 运行 swap

    mount /dev/sda5 /mnt

    mkdir /mnt/boot
    mount /dev/sda1 /mnt/boot

注意: 必须先挂在 / 分区, 其他目录都要在 / 分区中创建然后再挂载, swap 分区不需要挂载.

  • 连接网络
    dhcpcd 连接网络, 插网线的.
    wifi-menu wlp6s0 连接网络, 连接 wifi的. 其中 wlp6s0 是连接的网卡

  • 设置软件源
    vi /etc/pacman.d/mirrorlist 设置软件源. 可以加快下载速度.
    Server=/mirrors.163.com/archlinux/$repo/os/$arch

注意: 更新 软件源之后, 一定要强制刷新数据库. pacman -Syy . 最快的软件源写在最上面, 会最先使用最上面的.

  • 安装操作系统
    pacstrap /mnt base 安装基本系统
    genfstab -U -p /mnt >> /mnt/etc/fstab
    vim /mnt/etc/fstab 检查生成的 fstab 是否正确.
    注意: 若在 执行 genfstab 中发生了错误, 就不要再执行 genfstab了, 直接编辑 fstab 文件.

arch-chroot /mnt /bin/bash 进入系统中去配置. 权限最大.

  • 配置系统

  1. 设置Locale:

vi /etc/locale.gen 编辑:
注释 zh_CN zh_TW zh_HK en_US 中的 UTF-8 字符.

locale-gen 生成 locale 文件.
创建 locale.conf:
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8 设置语言.

  1. 设置时区:

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  1. 设置硬件时间:
    hwclock --systohc --utc

  2. 设置主机名:
    echo archlinux > /etc/hostname

修改 /etc/hosts
添加
127.0.0.1 archlinux.localdomain archlinux

  1. 设置 自动连接有线网络:
    systemctl start dhcpcd
    systemctl enable dhcpcd

passwd 修改 root 密码

  • 配置 boot-loader 安装 grub:
    grub 引导:
    pacman -S grub os-proper
    grub-install --target=i386-pc --recheck --debug /dev/sda
    grub-mkconfig -o /boot/grub/grub.cfg

注意: 在 gpt 中, grub 会出现问题.

可以 安装 syslinux 来引导:
pacman -S syslinux
syslinux-install_update -i -a -m
vi /boot/syslinux/syslinux.cfg
查看 LABEL arch 下的 APPEND root 所对应的值是不是 / 的挂载点的.

卸载分区并重启机器:
exit 退出安装环境
umount -R /mnt/boot
umount -R /mnt
reboot 重启

  • 添加用户
    useradd -m -g users -s /bin/bash username
    passwd username

  • 安装桌面
    安装 lxde 桌面
    ping -c baidu.com 测试网络

pacman -S alsa-utils 安装声卡驱动

pacman -S xf86-dideo-vesa 安装显卡

pacman -S lxdm lxde 安装LXDM管理器和LXDE桌面

systemtcl enable lxdm 设置 lxdm 开机启动

安装 Gnome 桌面
pacman -S gnome gnome-extra 安装 gnome 桌面, 以来比较的多, 会下载比较长的时间.
pacman -S iw wpa_supplicant dialog network-manager-applet networkmanager 开启 网络管理的包
pacman -S xf86-input-synaptics 触控板
systemctl enable NetworkManager.service 开机启动 wifi网络
systemctl enable gdm.service 开机启动桌面

  • 配置输入法
    pacman -S fcitx tar leafpad xarchiver firefox firefox-i18n-zh-cn firefox-adblock-plus flashplugin 安装常用软件

pacman -S ttf-dejavu wqy-zenhei wqy-microhei

vi ~/.profile 配置输入法, 输入一下内容:

export XIM=fcitx
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XIM_PROGRAM=fcitx

注意: 每个用户都需要手动创建 .profile 文件. 否则无法启动输入法.

重启.

卸载 gnome 桌面:
pacman -Rcusn gnome gnome-extra

卸载 kde 桌面:
pacman -Rcusn kdelibs

卸载之后, 一般还要修改 /etc/inittab 里的桌面管理器.

Git学习笔记

Git 文件中的三种状态:
committed: 已经被提交的.
modified: 已经发生更改过的.
staged: git add 进去的. 准备提交的.

  • 全局配置
    git config --global user.email "ftchao@foxmail.com”
    git config --global user.name "ftchao”
    git config —list #显示当前的Git配置
    git config -e #编辑Git配置文件
  • 克隆分支
    git clone git@xxxx/xxx.git ./svn/xxx
  • 查看分支, -a 所有分支(远程)
    git branch
    git branch -a
  • 切换分支
    git checkout develop
  • 添加文件到仓库
    git add . # 添加所有的文件.
    git add filename
    git add -p #选择性的添加文件

  • 删除文件到仓库
    git rm [file1] [file2] # 删除工作区文件,并且将这次删除放入暂存区.
    git rm —cached [file] # 停止追踪指定文件,但该文件会保留在工作区.
    git mv [file-original] [file-renamed] # 改名文件并且将这个改名放入暂存区

  • 推送到仓库
    git commit -m "fix: “
    git commit -v #提交时显示所有diff信息.
    git commit —amend -m [message] 使用一次新的commit,替代上一次提交. 如果代码没有任何新变化,则用来改写上一次commit的提交信息
    git commit —amend [file1] [file2] … # 重做上一次 commit , 并包括指定文件的新变化.

  • 推送到远程仓库
    git push origin develop

  • 拉取远程代码
    git pull origin develop

  • 合并develop分支
    git merge develop

  • 删除本地develop2分支,并推送到远程分支
    git branch -d develop2
    git branch -r -d origin/develop2
    git push origin :develop2

  • 分支
    git branch dev-xxx 新建分支,但依然停留在当前分支上
    git branch 列出所有本地分支
    git branch -r 列出所有远程分支.
    git branch -a 列出所有本地和远程分支.
    git checkout -b [branch] 新建一个分支,并切换到该分支.
    git branch —track [branch] [remote-branch] 新建一个分支,与指定的远程分支建立追踪关系.
    git branch [branch] [commit] 新建一个分支,并指向指定的commit ID 号.
    git checkout - 切换到上一个分支.
    git branch —set-upstream [branch] [remote-branch] #建立追踪关系,在现有分支与指定的远程分支之间.
    git cherry-pick [commit] # 选择一个commit ,合并进当前分支.

  • 推送到远程的仓库
    git remote add origin git@gitserver:/opt/git/project.git
    git push origin master

  • 标签
    git tag # 列出所有tag
    git tag [tag] # 新建一个 tag 在当前 commit
    git tag [tag] [commit] # 新建一个 tag 在指定 commit
    git tag -d [tag] # 删除本地tag.
    git push origin :refs/tags/[tagName] # 删除远程 tag
    git show [tag] 查看 tag 信息
    git push [remote] [tag] 提交指定tag
    git push [remote] —tags 提交所有tag.
    git checkout -b [branch] [tag] # 新建一个分支,指向某个 tag

  • 查看信息
    git status # 显示有变更的文件.
    git log —stat # 显示commit 历史,以及每次commit 发生变更的文件
    git log -S [keyword] 搜索提交历史,根据关键词.
    git log

Linux 主机种的 iptables 命令

iptables是linux上特有的防火墙机制,其功能非常强大.

  • 查看iptables的规则
    iptables -nvL

  • -F把当前规则清除, 但这只是临时的,重启iptables 服务还会加载已经保存的规则. 所以 需要保存一下。
    防火墙规则保存在了 /etc/sysconfig/iptables
    iptables -F; /etc/init.d/iptables save

iptables 三个表:

  1. filter 主要用于过滤包的,是系统预设的表,内建三个链 INPUT,OUTPUT以及FORWARD

INPUT作用于本机的包,OUTPUT作用于本机送出的包,FORWARD作用于那些跟本机无关的包.

  1. nat 主要用处是 网络地址转换,也有三个链.
  2. mangle 主要用于给数据包打标记,然后根据标记去操作那些包.

iptables 基本语法

查看规则以及清除规则.
iptables -t nat -nvL
-t 后跟表名,-nvL即查看该表的规则, -n 表示不针对IP反解析主机名;-L表示列出的意思.
而 -v 表示列出的信息更加的详细.

注意: 不加 -t 默认是针对表 filter 操作.

增加/删除一条规则.
iptables -A INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 -dport 80 -j DROP

增加一条规则,
省略 -t 所以针对的是 filter表.
-A表示增加一条规则.
另外还有 -I(大写的i) 表示插入一条规则
-D删除一条规则. 后面的INPUT 即链名称.还可以是 OUTPUT或者FORWORD;
-s 后跟源地址;
-p 协议 (tcp,udp,icmp);
--sport/--dport 后跟源端口/目标端口;
-d 后跟目的IP(主要针对内网或者外网);
-j 后跟动作 (DROP即把包丢掉,REJECT即包拒绝,ACCEPT即允许包)

787-701-0986 9542823813 (346) 818-4057 2168327910 3525022675 330-951-3673 physical 313-589-4054 (209) 879-5415 7059231303 231-468-8170 913-677-4096 Body brussels