来自: 首页 » 常用开发环境

常用开发环境

本文基于dockerfile,方便记录

Shell

Cyberpunk 风 Hyper

// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.

module.exports = {
  config: {
    // choose either `'stable'` for receiving highly polished,
    // or `'canary'` for less polished but more frequent updates
    updateChannel: 'stable',

    // default font size in pixels for all tabs
    fontSize: 14,

    // font family with optional fallbacks
    fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

    // default font weight: 'normal' or 'bold'
    fontWeight: 'normal',

    // font weight for bold characters: 'normal' or 'bold'
    fontWeightBold: 'bold',

    // line height as a relative unit
    lineHeight: 1,

    // letter spacing as a relative unit
    letterSpacing: 0,

    // terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
    cursorColor: '#ed17c5',//'rgba(248,28,229,0.8)',

    // terminal text color under BLOCK cursor
    cursorAccentColor: '#000',

    // `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
    cursorShape: 'BLOCK',

    // set to `true` (without backticks and without quotes) for blinking cursor
    cursorBlink: true,

    // color of the text
    foregroundColor: '#03fedd',

    // terminal background color
    // opacity is only supported on macOS
    backgroundColor: '#1c1769',

    // terminal selection color
    selectionColor: '#ed17c5',//'rgba(248,28,229,0.3)',

    // border color (window, tabs)
    borderColor: '#1c1769',

    // custom CSS to embed in the main window
    css: '',

    // custom CSS to embed in the terminal window
    termCSS: '',

    // if you're using a Linux setup which show native menus, set to false
    // default: `true` on Linux, `true` on Windows, ignored on macOS
    showHamburgerMenu: '',

    // set to `false` (without backticks and without quotes) if you want to hide the minimize, maximize and close buttons
    // additionally, set to `'left'` if you want them on the left, like in Ubuntu
    // default: `true` (without backticks and without quotes) on Windows and Linux, ignored on macOS
    showWindowControls: '',

    // custom padding (CSS format, i.e.: `top right bottom left`)
    padding: '12px 14px',

    // the full list. if you're going to provide the full color palette,
    // including the 6 x 6 color cubes and the grayscale map, just provide
    // an array here instead of a color map object
    colors: {
      black: '#333333',
      red: '#ed17c5',
      green: '#1DC121',
      yellow: '#C7C329',
      blue: '#0A2FC4',
      magenta: '#C839C5',
      cyan: '#03fedd',
      white: '#C7C7C7',
      lightBlack: '#686868',
      lightRed: '#FD6F6B',
      lightGreen: '#67F86F',
      lightYellow: '#FFFA72',
      lightBlue: '#6A76FB',
      lightMagenta: '#FD7CFC',
      lightCyan: '#68FDFE',
      lightWhite: '#FFFFFF',
    },

    // the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    // if left empty, your system's login shell will be used by default
    //
    // Windows
    // - Make sure to use a full path if the binary name doesn't work
    // - Remove `--login` in shellArgs
    //
    // Bash on Windows
    // - Example: `C:\\Windows\\System32\\bash.exe`
    //
    // PowerShell on Windows
    // - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
    shell: '',

    // for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
    // by default `['--login']` will be used
    shellArgs: ['--login'],

    // for environment variables
    env: {},

    // set to `false` for no bell
    bell: 'SOUND',

    // if `true` (without backticks and without quotes), selected text will automatically be copied to the clipboard
    copyOnSelect: false,

    // if `true` (without backticks and without quotes), hyper will be set as the default protocol client for SSH
    defaultSSHApp: true,

    // if `true` (without backticks and without quotes), on right click selected text will be copied or pasted if no
    // selection is present (`true` by default on Windows and disables the context menu feature)
    quickEdit: false,

    // choose either `'vertical'`, if you want the column mode when Option key is hold during selection (Default)
    // or `'force'`, if you want to force selection regardless of whether the terminal is in mouse events mode
    // (inside tmux or vim with mouse mode enabled for example).
    macOptionSelectionMode: 'vertical',

    // URL to custom bell
    // bellSoundURL: 'http://example.com/bell.mp3',

    // Whether to use the WebGL renderer. Set it to false to use canvas-based
    // rendering (slower, but supports transparent backgrounds)
    webGLRenderer: true,

    // for advanced config flags please refer to https://hyper.is/#cfg
  },

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: ['hyperpower', "hyperborder", "hyper-quit"],

  // in development, you can create a directory under
  // `~/.hyper_plugins/local/` and include it here
  // to load it and avoid it being `npm install`ed
  localPlugins: [],

  keymaps: {
    // Example
    // 'window:devtools': 'cmd+alt+o',
  },
};

发行版选择

parrotsec os

系统工具

ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8


RUN sed -i 's/\(security\|deb\).debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


RUN echo "alias ll='ls $LS_OPTIONS -l --color=auto' 2>/dev/null" >> ~/.bashrc \
        && echo "alias l.='ls $LS_OPTIONS -d .* --color=auto' 2>/dev/null" >> ~/.bashrc \
        && echo "alias ls='ls $LS_OPTIONS --color=auto' 2>/dev/null" >> ~/.bashrc \
        && /bin/bash -c "source ~/.bashrc"

PHP 相关

RUN apt-get update && apt-get install -y \
      libfreetype6-dev \
      libjpeg62-turbo-dev \
      libcurl4-openssl-dev \
      libpng-dev \
      libicu-dev \
      libmcrypt-dev \
      libreadline-dev \
      libzip-dev \
      pkg-config \
      libssl-dev \
      libmagickwand-dev \
      && rm -rf /var/lib/apt/lists/* \
      && docker-php-ext-install -j$(nproc) \
      intl \
      bcmath \
      pdo_mysql \
      sockets \
      zip \
      calendar \
      gettext \
      && docker-php-ext-configure gd \
      && docker-php-ext-install -j$(nproc) gd

RUN pecl install imagick-${EXT_IMAGICK_VERSION}  \
      && pecl install apcu-${EXT_APCU_VERSION} \
#      && pecl install swoole-${EXT_SWOOLE_VERSION} \
      && pecl install mongodb-${EXT_MONGODB_VERSION} \
      && pecl install redis-${EXT_REDIS_VERSION} \
      && docker-php-ext-enable imagick apcu swoole mongodb redis \
      && rm -rf /tmp/pear

# composer 
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

Node环境

docker  run -it --rm --name node-tmp -v "$PWD":/usr/src/app -w /usr/src/app node bash 

node相关工具

# git-cz/pm2
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash \
        && apt-get install -y nodejs \
        && npm config set registry http://registry.npm.taobao.org/ \
        && npm i -g commitizen pm2

Ascii Art

██████╗██╗ ██╗██╗ ██╗ ██████╗ ███████╗ ██╔════╝██║ ██║██║ ██║██╔═══██╗██╔════╝ ██║ ███████║███████║██║ ██║███████╗ ██║ ██╔══██║╚════██║██║ ██║╚════██║ ╚██████╗██║ ██║ ██║╚██████╔╝███████║ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝

安全工具

AntSword 中国蚁剑

https://doc.u0u.us/zh-hans/getting_started/get_antsword.html

Jetbrains配置文件

https://github.com/DongyunLee/IdeaTemplate

qv2ray

{
    "outbounds": [
        {
            "mux": {
            },
            "protocol": "vmess",
            "sendThrough": "0.0.0.0",
            "settings": {
                "vnext": [
                    {
                        "address": "iplc.jijifun.com",
                        "port": 30001,
                        "users": [
                            {
                                "alterId": 2,
                                "id": "711D2412-834C-F24D-1E9D-85025AF83E6F",
                                "level": 0,
                                "security": "auto",
                                "testsEnabled": "none"
                            }
                        ]
                    }
                ]
            },
            "streamSettings": {
                "dsSettings": {
                    "path": "/"
                },
                "httpSettings": {
                    "host": [
                    ],
                    "path": "/"
                },
                "kcpSettings": {
                    "congestion": false,
                    "downlinkCapacity": 20,
                    "header": {
                        "type": "none"
                    },
                    "mtu": 1350,
                    "readBufferSize": 1,
                    "seed": "",
                    "tti": 20,
                    "uplinkCapacity": 5,
                    "writeBufferSize": 1
                },
                "network": "tcp",
                "quicSettings": {
                    "header": {
                        "type": "none"
                    },
                    "key": "",
                    "security": ""
                },
                "security": "none",
                "sockopt": {
                    "mark": 0,
                    "tcpFastOpen": false,
                    "tproxy": "off"
                },
                "tcpSettings": {
                    "header": {
                        "request": {
                            "headers": {
                            },
                            "method": "GET",
                            "path": [
                            ],
                            "version": "1.1"
                        },
                        "response": {
                            "headers": {
                            },
                            "reason": "OK",
                            "status": "200",
                            "version": "1.1"
                        },
                        "type": "none"
                    }
                },
                "tlsSettings": {
                    "allowInsecure": false,
                    "allowInsecureCiphers": false,
                    "alpn": [
                    ],
                    "certificates": [
                    ],
                    "disableSessionResumption": true,
                    "disableSystemRoot": false,
                    "serverName": ""
                },
                "wsSettings": {
                    "headers": {
                    },
                    "path": "/"
                }
            },
            "tag": "outBound_PROXY"
        }
    ]
}