如何在 OpenWRT 下产生随机数:
MY_RANDOM=$(head /dev/urandom | tr -dc "0123456789" | head -c4)
如果是的Bash, Zsh, 或者BusyBox启用了RANDOM, 是可以直接使用内置的 $RANDOM 变量
MY_RANDOM=$RANDOM
如果需要限定数字的大小,可以使用 Shell 内置的运算表达式 $(( expr )):
MY_VAL=$(( MY_RANDOM % 200 + 1 ))
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS]
"UserDefinedDoublePinyinScheme0"="Pinyin PlusPlus*1*^*uivsfgdwrtqbjhkmlqynypbxchxvzovx"
1 "" Let's start VIM journey 2 set nocompatible 3 4 "" Include default settings 5 "source $VIMRUNTIME/vimrc_example.vim 6 "source $VIMRUNTIME/gvimrc_example.vim 7 8 "" shell settings 9 let $PATH="$HOME/bin;C:/msys64/usr/bin;C:/msys64/mingw64/bin;C:/Windows;C:/Windows/System32" 10 set shell=bash.exe 11 set shellslash 12 13 "" Don't need ugly files 14 set backupdir=c:/temp/vim/backup 15 set directory=c:/temp/vim/swap 16 set nobackup 17 set swapfile 18 set undodir=c:/temp/vim/undo 19 set undofile 20 set writebackup 21 22 "" UI settings 23 set cmdheight=2 24 "set guioptions-=t 25 set laststatus=2 26 set lazyredraw 27 set lines=35 columns=160 28 set number 29 set renderoptions=type:directx 30 set ruler 31 set showcmd 32 set wildmenu 33 34 "colorscheme torte 35 colorscheme koehler 36 37 "" Tab/Space related 38 set expandtab 39 set shiftwidth=4 40 set softtabstop=4 41 set tabstop=4 42 43 "" IME settings 44 if has("multi_byte") 45 set encoding=utf-8 46 "let &termencoding = &encoding 47 set termencoding=unicode 48 " Set default encoding as UTF-8 with BOM 49 setglobal fileencoding=utf-8 "bomb "bomb introduce problem for *nix 50 set fileencodings=ucs-bom,utf-8,gb18030,cp936,cp950,latin1 51 " Walkaround the encoding problem for fenc=utf-8 && enc=ucs-2 52 augroup i18n 53 autocmd! 54 autocmd BufReadPost * if &fileencoding == "utf-8" | let &encoding = &fileencoding | endif 55 augroup END 56 endif 57 58 "" Enable the Chinese characters 59 "set guifont=Fira_Code:h11:cANSI,NSimSun:h12:cGB2312 60 set guifont=Iosevka:h12:cANSI:qDRAFT ",SimHei:h12:cGB2312:qDRAFT 61 "set guifontwide=SimHei:h12:cGB2312 62 "set guifontwide=Microsoft_YaHei:h12:cGB2312 63 set guifontwide=Noto_Mono:h12:cGB2312 64 65 "" IME 66 if has('multi_byte_ime') 67 "未开启IME时光标背景色 68 hi Cursor guifg=bg guibg=Orange gui=NONE 69 "开启IME时光标背景色 70 hi CursorIM guifg=NONE guibg=Skyblue gui=NONE 71 " 关闭Vim的自动切换IME输入法(插入模式和检索模式) 72 set iminsert=0 imsearch=0 73 " 插入模式输入法状态未被记录时,默认关闭IME 74 inoremap <silent> <ESC> <ESC>:set iminsert=0<CR> 75 endif 76 77 "" Useful Plugins 78 packadd vim-fugitive 79 "" Plugin - airline 80 let g:airline_theme='solarized' 81 let g:airline_detect_iminsert=1 82 let g:airline_highlighting_cache = 1 83 let g:airline_powerline_fonts = 1 84 let g:airline#extensions#tabline#enabled = 1 85 packadd vim-airline 86 packadd vim-airline-themes 87 88 "" Plugins 89 packadd! emmet-vim 90 packadd! ctrlp.vim 91 packadd! nerdtree 92 93 "" Key Maps 94 "" display the syntax name under the cursor 95 map <F12> :echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name")<CR> 96 "" We can navigate the list by using the <F3> and <S-F3> 97 map <F3> :cnext<CR> 98 map <S-F3> :cprevious<CR> 99 "" Let's help the tab navigation a little 100 map <F4> :try\|:next\|finish\|catch\|:tabnext\|endtry<CR> 101 map <S-F4> :bdelete<CR> 102 "" Tlist and NERDTree 103 map <F5> :NERDTreeToggle<CR> 104 map <S-F5> :Tlist<CR> 105 set tags=./tags,../tags,../../tags,../../../tags 106 "" open Terminal 107 tmap <F9> <C-W>:$tabnew +:term<CR><C-W>o 108 map <F9> :$tabnew +:term<CR><C-W>o 109 110
#!/bin/bash
/bin/winpty.exe /c/rakudo/bin/moar.exe --execname='C:\rakudo\bin\perl6.bat' --libpath="C:/rakudo/share/nqp/lib" --libpath="C:/rakudo/share/nqp/lib" --libpath="C:/rakudo/share/perl6/lib" --libpath="C:/rakudo/share/perl6/runtime" C:/rakudo/share/perl6/runtime/perl6.moarvm $*
没有 winpty.exe的话, moar.exe 和MinTTY 的交互行为就比较奇怪。自行修改为 CTRL-e 或者 指定其他按键!let g:user_emmet_expandabbr_key = ''
我的最新的 VIMRC 文件, 备份自用!
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/gvimrc_example.vim
filetype off " required before add more bundles
set rtp+=$VIM/rust.vim
filetype plugin indent on " required
" Don't need ugly files
set nobackup
set noundofile
" Other settings
set ruler
set number
set wildmenu
set showcmd
set laststatus=2
set cmdheight=1
" Tab/Space related
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
"colorscheme oceandeep
colorscheme evening
if has("multi_byte")
set encoding=utf-8
"let &termencoding = &encoding
set termencoding=unicode
" Set default encoding as UTF-8 with BOM
setglobal fileencoding=utf-8 "bomb "bomb introduce problem for *nix
set fileencodings=ucs-bom,utf-8,gb18030,cp936,cp950,latin1
" Walkaround the encoding problem for fenc=utf-8 && enc=ucs-2
augroup i18n
autocmd!
autocmd BufReadPost * if &fileencoding == "utf-8" | let &encoding = &fileencoding | endif
augroup END
endif
" Enable the Chinese characters
set guifont=Consolas:h11:cANSI,NSimSun:h12:cGB2312
set guifontwide=NSimSun:h12:cGB2312
" IME
if has('multi_byte_ime')
"未开启IME时光标背景色
hi Cursor guifg=bg guibg=Orange gui=NONE
"开启IME时光标背景色
hi CursorIM guifg=NONE guibg=Skyblue gui=NONE
" 关闭Vim的自动切换IME输入法(插入模式和检索模式)
set iminsert=0 imsearch=0
" 插入模式输入法状态未被记录时,默认关闭IME
inoremap :set iminsert=0
endif
" Set the swap file location
set dir=c:\\temp
" display the syntax name under the cursor
map :echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name")
" We can navigate the list by using the and
map :cnext
map :cprevious
" Let's help the tab navigation a little
map :tabprevious
map :tabnext
" Tlist
map :Tlist
set tags=./tags,../tags,../../tags,../../../tags
set path+=./,../,../../,../../../
" 设定 windows 下 gvim 启动时最大化
"if has("gui_running")
" if has("win32")
" autocmd GUIEnter * simalt ~x
" endif
"endif
<link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/railscasts.min.css" rel="stylesheet"></link>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<pre><code class="lang">code in lang ...</code></pre>
and railscasts color scheme. you can goto https://highlighjs.org to find more language and color scheme.
#/usr/bin/perl
use strict;
use warnings;
use constant DIV => 24;
my $v = shift or die "Usage: $0 ";
my $d = 0;
my $str = '';
do {
my $c = chr(ord('A') + ($v % DIV));
$str = $c . $str;
$v = int($v / DIV)
} while ($v > 0);
print $str;
0;
# iptables -t mangle -I PREROUTING -s 8.8.8.8/16 -m ttl --ttl-gt 63 -j DROP
# ip6tables -t mangle -I PREROUTING -s 2001:4860:4860::8844/112 -m hl --hl-gt 52 -j DROP
sudo apt-get install php5-cgi spawn-fcgi
Second, create the /etc/init.d/php-fastcgi script, as below:#!/bin/sh
### BEGIN INIT INFO
# Provides: php-fastcgi
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: PHP5 FastCGI mode
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
# Author: Yi Zhao
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="PHP5 FastCGI Service"
NAME=php5-cgi
FASTCGI_USER=www-data
FASTCGI_GROUP=www-data
SOCKET=/var/run/php-fastcgi.sock
PHP5=/usr/bin/php5-cgi
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
CHILDREN=2
DAEMON=/usr/bin/spawn-fcgi
DAEMON_ARGS="-s $SOCKET -C $CHILDREN -P $PIDFILE -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5"
# Exit if the package is not installed
[ -x "$DAEMON" -a -x "$PHP5" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
#. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --name $NAME
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
return 0
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
;;
#reload|force-reload)
#
# If do_reload() is not implemented then leave this commented out
# and leave 'force-reload' as an alias for 'restart'.
#
#log_daemon_msg "Reloading $DESC" "$NAME"
#do_reload
#log_end_msg $?
#;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
exit 3
;;
esac
:
Add php-fastcgi into the start list
sudo update-rc.d php-fastcgi default
this will start for init level 2,3,4,5
@copyright of Sam Chadwick - https://thehub.thomsonreuters.com/groups/bitcoin/blog/2017/09/10/blockchain-paper Blockchain Papers A c...