arch linux (linux 命令很强大, 命令才是王道啊~~~)

  1. f.lux 根据经纬度调整屏幕亮度

  2. 网易云音乐 (这段时间跪了, 打开白板 )

  3. sublime text 偶尔当下记事本

  4. 为知笔记 笔记软件, 因为跨平台我就支持了

  5. input

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #export XIM=fcitx
    #export XIM_PROGRAM=fcitx
    #export GTK_IM_MODULE=fcitx
    #export QT_IM_MODULE=fcitx
    #export XMODIFIERS="@im=fcitx"

    #firefox keyi dazile
    export LC_ALL=zh_CN.UTF-8
    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS=“@im=fcitx”
    exec openbox-session
    #exec xfce4-session
    #exec gnome-session
  6. 文件比较: meld vimdiff diff等

  7. 文本编辑器 emacs vim

  8. webtorrenter-desktop 播放bt文件

  9. 图形界面连接网络 sudo pacman -S network-manager-applet (需要启动
    systemctl start NetworkManager)

  10. rescue time 有兴趣可以看看, 这个是记录你一天在干嘛的软件, 后台运行
    nohut rescuetime &(会在当前文件夹下生成nohup.out文件)

  11. 跨平台文件传输 feige
    url:http://www.feige360.com/ipmsg/download.html

  12. 锁屏 yaourt -S xlockmore

  13. create_ap github下的一个项目, 共享热点必备

    1
    配置启动: nohup sudo create_ap wlp2s0 enp0s20u2u4 archer 1234567890 > /tmp/create_ap.log & tail -f /tmp/create_ap.log
  14. 数据传输工具, 类似飞球, yaourt -s iptux,
    但是最新的0.75版本有问题, 不能扫描局域网用户,
    目前使用0.6.4版本进行源码编译安装

  15. 使用zsh + oh my zsh

  16. 开发工具使用idea, community

    • 插件:
      • ideavim: vi模式, 用过都说好
      • Key promoter: 快捷键菜鸡必备,比如我
      • Markdown support
  17. sqldeveloper安装

    • oracle 限制, 需要登录下载,
      所以先到官网下载sqldeveloper18.nojar.zip
    • pacman -S oracle-sqldeveloper
    • 安装过程中将刚刚下载的zip包放到其他pass文件同级的目录, 继续即可
  18. postman curl 模拟请求

  19. processon/graphviz 流程图

    • c-c c-c编译执行dot文件
  20. dropbox

  21. ag搜索 the_silver_searcher

  22. xml处理工具 xmlstarlet, jq处理json, shyaml处理yaml

  23. 命令行剪贴板工具xclip

  24. pandoc 文档转换工具

  25. cairo-dock dock工具,样式挺好看,不过习惯了launcher运行, 不喜欢点,
    不使用

  26. 同步工具

    • Dropbox 这玩意儿有qiang, 并且你的文件需要服务器中转
    • syncthing, 这个东东是通过p2p发送,可以设备互传,好东西
  27. 截图工具 scrot

    • scrot 全屏
    • scrot -s 截取
    • scrot -e 'mv $f ~/Pictures/scrot_screenshots' 截图后执行命令
  28. 命令行下模糊搜索工具 fzf

    • 搭配其它工具或者自己组合命令都很6,可以作为插件加入到vim, ranger,
      zsh中
    • 通过搜索可以更方便的打开文件,不用一一展开
  29. 简化版命令手册 tldr, 我这里使用的是tealdeer,arch默认的使用不了,
    可以优雅的查看常用命令的基本使用方式

  30. 远程连接windows桌面

    • rdesktop 192.168.2.144 -p lt@180606 -u lt1 -g workarea
    • rdesktop 192.168.2.144 -p password -u username -r
      disk:share=/tmp
      可以将当前系统下/tmp目录作为共享磁盘给远程服务器,可以实现文件copy

问题处理

  1. 网易云音乐白板 : rm `locate netease |grep cache` 删掉缓存即可

制作U盘启动盘

  • 下载archlinux镜像
  • 下载powerison
  • 将镜像刻录到U盘中

设置bios

  • 如果已经安装了win8+系统,
    开机重启然后按f1,进入设置界面,加载启动项中将usb放到最前
  • 保存后,插入启动盘重启,按f12, 选择启动项,选择archlinux

分区

  • 工具:fdisk , 使用m指令查看支持的操作
  • 重建分区表干掉所有分区 fdisk /dev/sda, g(是gpt分区表)
    w(这个指令后所做的配置就会生效)
  • 创建分区 n{ /dev/sda1(efi), dev/sda2(), /dev/nvmxxx(/home)},
    我的分区是nvmxx(固态在前, 所以分区方案是/dev/nvm1(efi),
    dev/nvmxx2()…)
  • 格式化分区
    • mkfs.vfat -F32 /dev/sda1
    • mkfs.ext4 /dev/sda2 , 其他分区都使用ext4
  • 分区挂载
    • mount /dev/sda2 /mnt
    • mount /dev/sda1 /mnt/boot/efi
    • mount /dev/sda3 /mnt/home

网络连接

  • 有网线的情况下直接跳过第二步
  • 连接wifi
    • 首先查看网卡 ip link命令列出网卡id
    • systemctl stop dhcpxxx.service 关闭现有网络
    • wifi-menu -o wlp3s0,选择可连接网络连接
  • 配置服务镜像
    • 如果是在中国, 就把mirrorlist中的china相关镜像提前,
      我这里只把163的镜像放最前面

安装系统

  • 安装基本包

    • pacman -sy 刷新系统更新文件
    • 安装基础系统及后续工具, base-devel也可以装好系统后再安装
      #pacstrap -i /mnt base base-devel
  • 配置fstab

    • # /dev/nvme0n1p2
      UUID=7bdc64d4-20ed-4073-bcef-dacefcee8e9a       /               ext4            rw,relatime     0 1
      
      # /dev/nvme0n1p1
      UUID=FAB8-E796          /boot/efi       vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro       0 2
      
      # /dev/nvme0n1p3
      UUID=48256cfb-3694-4102-85fb-33d9142f554c       /home           ext4            rw,relatime     0 2
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21

      - 挂载机械硬盘/dev/sda1时需要注意,直接在fstab中配置方式导致开机无法启动,后查看官方文档,改为按需挂载,
      这种情况下正常启动,如果有外部对改磁盘进行了引用也会自动挂载

      UUID=6e3a49e9-131b-4003-b251-cc26eae107ca /mnt/d ext4
      noauto,x-systemd.automount 0 0

      - 安装引导工具(这里一定要弄对,否则进不去系统, 严格顺序执行)
      后续操作全部在安装的系统里进行
      - 下面这个必须执行, 生成grub.cfg配置文件, 默认安装系统会自带一个

      ``` {.example}
      arch-chroot /mnt
      GRUB启动, UEFI的系统,要装grub-efi-x86_64和efibootmgr
      #pacman -S grub-efi-x86_64, efibootmgr
      把GRUB装到EFI分区里,这样就多一条GRUB启动项了。
      #grub-install --efi-directory=/boot/efi --bootloader-id=arch-grub --recheck
      生成grub配置文件(否则启动一致会报grub的错误)
      pacman -S os-prober
      #grub-install /dev/sda(根目录下, 如果出现grub缺少文件时候再执行)
      grub-mkconfig -o /boot/grub/grub.cfg
  • 为了下次可以连无线最好安装下 pacman -S iw wpasupplicant dialog

  • exit, 取消必要的挂载后重启, 系统已经安装完成

一些必要的优化及软件安装

重启后进入自己安装好的系统

时区,编码

  • 生成localtime的软链就算设置时区了。 #ln -s
    /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  • 设置系统时间是当地时间,Linux默认是UTC时间,Windows默认是当地时间,改成一致。
    #hwclock –localtime

编码

  • 打开locale.gen文件,把enUS.UTF-8, zhCN.UTF-8,
    zhCN.GBK前面的#去掉。
  • 运行locale-gen命令,重建编码表。

host设置

  • 设置电脑名,随你喜欢。

    • #echo arch-zhao > /etc/hostname
  • 设置hosts文件 vim /etc/hosts

    1
    2
    3
    127.0.0.1 localhost
    ::1 localhost
    127.0.1.1 arch-zhao.localdomain arch-zhao

图形界面

  • 安装xorg pacman -S xorg

  • 触摸板驱动 pacman -S xf86-input-synaptics

  • 根据自己显卡类型安装对应的驱动

    • 确认型号 lspci | grep VGA

    • 官方提供驱动

      1
      2
      3
      4
      通用———————————-xf86-video-vesa 
      intel———————————-xf86-video-intel
      Geforce7+————————–xf86-video-nouveau
      Geforce6/7————————-xf86-video-304xx
  • 安装字体(图形界面需要) pacman -S ttf-dejavu wqy-microhei

  • 安装yaourt vim /etc/pacman.conf [archlinuxcn] SigLevel=Never
    Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

  • binutils, yaourt 需要进行二进制编译(安装了base-devel后不需要)

  • 安装桌面环境 xde(好看), xfce(轻量), openbox(定制化)

    • kde桌面安装 pacman -S plasma
    • 文件管理器 pacman -S dolphin
    • 命令行 pacman -S konsole
    • kde工具套件 pacman -S kde-applications(这个我没安装)
  • 启动网络管理 systemctl enable NetworkManager , 安装前端管理工具
    network-manage-applet, 或者pacman -S plasma-nm

  • 安装slim (启动管理器, 用习惯了,类似还有很多), 执行systemctl enable
    slim(允许开机自启)

  • .xinintrc配置 cp etc/X11/xinit/xinitrc ~.xinitrc vim ~/.xinitrc
    加入exec startkde 启动kde

  • 安装openssh sudo pacman -S openssh (非必须)

  • 安装chromium

  • reflector 镜像刷新工具, 可以扫描最快的镜像提前

    1. 备份原镜像 cp /etc/pacman.d/mirrorlist
      /etc/pacman.d/mirrorlist.bak
    2. 查找最快200个源并写入到镜像文件 reflector –verbose -l 200 -p
      http –sort rate –save /etc/pacman.d/mirrorlist
  • 后续软件按个人需要安装

环境准备

  • 华为云 centos系统
  • 本地已经正常使用, 需要部署到服务器并且需要用docker启动
  • web容器使用weblogic10.3.6
  • 本人的原始环境为archlinux

操作步骤

本地环境打包

  • 注意: 采用本地环境为了省事, 本地环境包含整个的weblogic环境, 及jdk,
    如果自己心情好完全可以再搭建一套
1
2
tar -zcvf weblogic.tar.gz ~/Oracle #这个目录是weblogic的默认安装及建域目录, 相应的war包也在该目录下
tar -zcvf jdk.tar.gz ~/applications/jdk1.7 #jdk

上传到云服务器

  • 上传打包好的文件

    • weblogic

      1
      2
      scp weblogic.tar.gz root@11x.xxx.xxx.xxx:/root  
      根据提示输入密码稍等上传完成
    • jdk

      1
      2
      scp jdk.tar.gz root@11x.xxx.xxx.xxx:/root  
      根据提示输入密码稍等上传完成
  • 解压, 找一个自己喜欢的目录,建议跟本地保持一致

    • 在服务建立与本地一致的目录

      1
      mkdir ~/applications
    • 解压文件

      1
      2
      tar -zxvf /root/weblogic.tar.gz -C ~
      tar -zxvf /root/jdk.tar.gz -C ~/applications
  • 在云服务器上配置启动web服务,
    并通过弹性公网访问或者服务器本地确认服务启动正常

    • 进入domain目录启动服务验证

      1
      nohup ./startWeblogic.sh & tail -f nohup.out

使用docker容器启动

制作docker镜像

  • Dockerfile文件

    • touch ~/Dockerfile

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      #Dockerfile  
      # 基于centos构建本容器
      FROM centos
      # 跟本地映射的端口, 这里相当与访问本地7003会自动转发到容器中7003
      EXPOSE 7003
      #设置环境变量,所有操作都是非交互式的
      ENV LANG en_US.UTF-8
      ENV LC_ALL en_US.UTF-8
      ENV DEBIAN_FRONTEND noninteractive
      #可以安装软件
      #RUN yum install xx
      # 需要打到docker中的文件全部copy到docker对应的目录中, 本地目录是相对当前目录,不能写绝对路径, 后面这个路径最好加/
      COPY . ~/
      COPY cmd.sh /cmd.sh
      # 容器启动后直接执行给定脚本
      CMD sh /cmd.sh
      #End
    • 制作镜像

      • 进入目录 ~ 在目录 ~中目前存在

        1
        2
        3
        4
        drwxr-xr-x 3 root root 4096 Sep 30 10:49 applications
        -rwxr-xr-x 1 root root 128 Sep 30 11:17 cmd.sh
        -rw-r--r-- 1 root root 305 Sep 30 17:07 Dockerfile
        drwxr-xr-x 3 root root 4096 Jul 14 18:39 Oracle
      • 执行命令 docker build -t payimage .

        • 最后的点表示dockerfile在当前目录
      • 查看存在镜像 docker images

        1
        2
        3
        REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
        payimage latest d7b3db0e1d59 15 hours ago 2.22 GB
        centos latest c5507be714a7 7 weeks ago 199.7 MB
  • docker commit命令通过运行中容器制作镜像

    1
    docker commit pay7003 payimages:v1.0

启动容器

  • cmd.sh

    1
    2
    3
    #!/bin/bash
    domainname=$1 # 这里如果没有其他情况可以写死
    nohup sh ~/Oracle/Middleware/user_projects/domains/$domainname/startWebLogic.sh > /7003.log & tail -f /7003.log
  • 通过上一步镜像启动

    1
    2
    3
    4
    5
    6
    7
    8
    9
    docker  run -itd --net=host --name pay7003 payimage sh /cmd.sh
    命令解释:
    -i:
    -t:
    -d: 保持,退出后不关闭docker
    --name: docker容器的名称
    payimage: 镜像名称
    --net=host: 这个必须有,否则启动报错
    sh /cmd.sh: 这个是容器启动会执行的命令, 以后docker start 也会执行该文件
  • 可以省略第一步操作直接制作容器启动, 不使用docfile直接制作镜像

    1
    2
    3
    4
    docker run itd -v weblogic:weblogic idk:jdk --net=host -p7003:7003 --name=pay7003 centos
    上面的weblogic前后分别表示本地的目录和远程的目录
    -v 可以达到dockfile中copy的效果
    -p 表示端口映射
  • 容器管理

    1
    2
    3
    docker start pay7003
    docker stop pay7003
    docker rm pay7003 #删除容器, 先stop再rm

连接容器,检查服务

  • 查看现有容器

    • docker ps -a

      1
      2
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      dc2eeca7873e payimage "sh /cmd.sh" 15 hours ago Exited (137) 15 hours ago pay7003
  • 登录容器

    1
    2
    docker exec -it pay7003 bash #这里pay7003是容器name, 也可以使用容器id
    通过该命令可以连接到容器pay7003的bash中, 跟正常操作cenos系统一样, 完成后exit即可

容器管理

大杀器片甲不留, 自己玩可以用

1
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a) 

删除镜像

1
docker rmi payimage

问题处理

archlinux中启动docker实例报错

  • systemctl start docker.service报错,直接使用systemctl enable
    docker.service重启机器正常

docker镜像持久化到本地(待测试)

  • 有的项目太大了,而且是公司内部使用不合适到公网
  • docker save java -o ./java.tar
  • copy到其他伙伴机器后可以使用: docker load -i java.tar,
    加载到对方容器中
  • 参考: https://segmentfault.com/a/1190000006843830

docker到底能干个啥?

  • 在团队内部构建本地的仓库,标准化所有的开发环境,使得团队的新人可以快速上手
  • 在生产环境部署Docker,这其实是PaaS的虚拟化和自动化的一种方式,利用LXC和Docker能够更便捷地实施PaaS
  • 尝试用Docker做分布式集群模拟和测试,成本会更加低廉,更加容易维护
  • 参考:
    https://www.csdn.net/article/2014-06-19/2820312-Docker-lxc-paas-virtualization

nodejs项目初始化

  1. 创建目录 mkdir nodejs & cd nodejs

  2. npm init (根据提示,或者一路回车即可)

  3. 创建server.js文件,并写入以下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // 内置组件  
    var http=require("http");

    http.createServer(function(request, response){
    // 发送 HTTP 头部
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {"Content-Type":"text/plain"});

    //响应数据
    response.end("hello nodejs");
    }).listen(8888);
    //服务启动成功后输出日志
    console.log('Server running at http://127.0.0.1:8888/');
  4. node server.js 启动成功

  5. 浏览器访问 127.0.0.1:8888

npm使用(root)

搜索

  • npm search

更新

  • npm install -g npm

  • npm update -g npm

安装卸载模块

  • 当前目录
    npm install
    npm uninstall

  • 全局
    npm install -g
    npm uninstall -g

查看模块安装信息

  • 一个
    npm list -g

  • 所有
    npm list

Package.json属性说明

1
2
3
4
5
6
7
8
9
10
name - 包名。
version - 包的版本号。
description - 包的描述。
homepage - 包的官网 url 。
author - 包的作者姓名。
contributors - 包的其他贡献者姓名。
dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
keywords - 关键字

whatis npm

  1. npm就是js下的maven, 支持包依赖, 执行等
  2. package.json == pom.xml

var 和 const

初始化buffer

  • 类似于初始化一个list
  • Buffer.alloc(5)

nodejs对标的是其他的后端语言类似java

require的执行流程

  1. 如果 X 是内置模块
  2. 返回内置模块
  3. 停止执行
  4. 如果 X 以 ‘/‘ 开头
    1. 设置 Y 为文件根路径
  5. 如果 X 以 ‘./‘ 或 ‘/‘ or ‘../‘ 开头
    1. LOAD_AS_FILE(Y + X)
    2. LOAD_AS_DIRECTORY(Y + X)
  6. LOAD_NODE_MODULES(X, dirname(Y))
  7. 抛出异常 “not found”

extend

Sub 仅仅继承了Base 在原型中定义的函数,而构造函数内部创造的 base 属 性和 sayHello 函数都没有被 Sub 继承。

总结

如果有一定变成基础,nodejs还是很easy的, 例子6一下就可以, 入门容易,用好就需要code code code!

  1. everything 搜索神器, 强烈推荐
  2. faststone capture 红绿小工具,工具小功能强
  3. clcl 复制粘贴神器
  4. f.lux linux和windows都用,自动根据经纬度调整屏幕亮度
  5. launchy 运行软件(可以自己将软件的快捷方式起别名放入一个目录,该软件引用,很爽)
  6. 自己编写的一些 bat小工具 自动化
  7. 远程工具 anydesk teamview
  8. zeal 文档阅读器
  9. itellij idea java开发工具
    插件推荐: vim plantuml(这个玩意儿依赖于一个小软件(graphviz), 需要单独装)、 jprofiler(需要配套对应的软件, 用来查看系统耗时,作为调节性能的依据)
  10. 软媒魔方 偶尔用用 更新软件了什么的, 现在随便找个软件管理什么的,可以省下满世间找软件的尴尬
  11. unlocker 文件诡异的锁住了,用这个解锁,随便搞
  12. ccleaner 电脑清理的,不知道为啥一直用着
  13. beyond compare 文件比较软件
  14. rescue time 有兴趣可以看看, 这个是记录你一天在干嘛的软件
  15. gvim 文本编辑器 我一般只用这个和notepad++
  16. scoop命令行下的包管理器,软件有点少但是社区还是很给力的, 建议添加extral包
  1. dism++ 垃圾清理, 备份还原,等。
  2. spacesniffer 无需安装,分析磁盘,清理文件
  3. 独立版本qq软件管理

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

0%