Linux 传送文件

作者: 分类: linux 时间: 2018-01-31 评论: 暂无评论

[方式1] windows通过xshell登录centos平台的

yum  install lrzsz
rz a.sh #下载
sz a.sh #上传

[方式2] linux平台scp

scp 本地文件名 主机用户名@主机IP地址:主机目录

SVN迁移到GIT

作者: 分类: git,php 时间: 2018-01-18 评论: 暂无评论

安装git-svn

yum install -y git-svn

window打开gitbash
[设置对应的用户信息]
新建 /data/user.txt写入

svn账户=git用户名<邮箱>
user1=xw<xw@by.com>
user2=zq<zq@by.com>

必须在gitlab添加ssh个人密钥,没有添加会在下面的推送命令出错

直接输入

ssh-keygen -t rsa -C "your_email@example.com"

三次enter后,根据对应的地址,找到.ssh/id_rsa.pub文件,添加到gitlab个人密钥

git svn clone svn地址 --authors-file=/data/user.txt
git remote add origin https://username:password@github.com/project/test.git
git push -u origin master

[注意] clone如果项目是空的,那么clone的时候会有提示,哪个用户没有定义

[删除远程地址]

git remote rm origin

gitlab安装、汉化、完全卸载

作者: 分类: php 时间: 2018-01-18 评论: 暂无评论

[官方版]

sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://xx.xx.xx.xx" yum -y install gitlab-ee
sudo gitlab-ctl reconfigure 
sudo gitlab-ctl start

此方法可以更新到最新个人版10.3.3,但是汉化补丁8.8.5还没更新到最新版,所以推荐用第二种,安装指定版本
[清华大学源]

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-8.8.5-ce.1.el6.x86_64.rpm
rpm -ivh gitlab-ce-8.8.5-ce.1.el6.x86_64.rpm

[docker版本]
https://hub.docker.com/r/denghui/gitlab-ce-zh/
先安装docker..自行百度

docker pull twang2218/gitlab-ce-zh  #可能是阿里云的公共gitlab 仓库找到的镜像,忘了
docker run  --detach --restart=always  --publish 10443:443 --publish 8080:80 --publish 10022:22 --name gitlab --volume /home/gitlab/etc:/etc/gitlab --volume /home/gitlab/log:/var/log/gitlab --volume /home/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh
需要进入docker修改external_url 

[修改配置文件]

vim /etc/gitlab/gitlab.rb  #修改完配置需要执行 gitlab-ctl reconfigure 

#external_url 'http://localhost'修改成 external_url 'http://你的gitLabIP'

sudo gitlab-ctl reconfigure

[安装最新版git]
地址 http://vocp.cn/git/17.html
[查看本地gitlab版本]

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 或者rpm -q gitlab-ee

[安装补丁]

cd ~
git clone https://gitlab.com/larryli/gitlab.git
cd  gitlab
git fetch
git branch -a
git checkout -b 8-8-stable remotes/origin/8-8-stable
git checkout -b 8-8-zh remotes/origin/8-8-zh
git diff 8-8-stable 8-8-zh > /tmp/8.8.diff
cd /opt/gitlab/embedded/service/gitlab-rails
git apply /tmp/8.8.diff  

[卸载]

sudo gitlab-ctl stop
sudo gitlab-ctl uninstall
sudo gitlab-ctl cleanse
sudo rm -rf /opt/gitlab
rpm -e gitlab-ce

[520错误]
1.内存至少要2g,太小安装完成后会返回502。可以设置下虚拟内存。
2.gitlab-ctl tail 查看错误 网上查找是权限不够问题
chmod -R o+x /var/opt/gitlab/gitlab-rails/sockets

进程、线程、协程

作者: 分类: php 时间: 2017-08-13 评论: 暂无评论

  进程
  第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。
  线程
  线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个 进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程 在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。就绪状态是指线程具备运行的所有条件,逻辑上可以运行,在等待处理机;运行状态是指线程占有处理机正在运行;阻塞状态是指线程在等待一个事件(如某个信号量),逻辑上不可执行。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。
  在单个程序中同时运行多个线程完成不同的工作,称为多线程。
  协程
  一个程序可以包含多个协程,可以对比与一个进程包含多个线程,因而下面我们来比较协程和线程。我们知道多个线程相对独立,有自己的上下文,切换受系统控制;而协程也相对独立,有自己的上下文,但是其切换由自己控制,由当前协程切换到其他协程由当前协程来控制。

PHP 常用函数整理——字符串

作者: 分类: php 时间: 2017-08-12 评论: 暂无评论

1.explode(separator,string,limit)
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可选。规定所返回的数组元素的数目。0是1个,-1去掉最后一个
2.implode(separator,array)
separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array 必需。要组合为字符串的数组。
3.str_split(string,length) 函数把字符串根据长度length分割成数组。
4.str_pad(string,length,pad_string,pad_type)
string 必需。规定要填充的字符串。
length 必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。
pad_string 可选。规定供填充使用的字符串。默认是空白。
pad_type
可选。规定填充字符串的哪边。
可能的值:
STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。
STR_PAD_LEFT - 填充字符串的左侧。
STR_PAD_RIGHT - 填充字符串的右侧。默认
5.strlen(string str) 字符串长度
6.substr ( string string, int start [, int length] ) 截取字符串
7.strpos(string,find,start) 查找字符串在另一字符串中第一次出现的位置,大小写敏感。 stripos()大小写不敏感
string 必需。规定要搜索的字符串。
find 必需。规定要查找的字符串。
start 可选。规定在何处开始搜索。
8.strrpos(string,find,start)函数查找字符串在另一字符串中最后一次出现的位置,大小写敏感。 strripos()大小写不敏感
string 必需。规定被搜索的字符串。
find 必需。规定要查找的字符。
start 可选。规定在何处开始搜索。
9.strstr(string,search,before_search) 返回出现那个字符串及之后的所有字符// stristr()大小写不敏感
string 必需。规定被搜索的字符串。
search 必需。规定要搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。
before_search 可选。默认值为"false"的布尔值。如果设置为 "true",它将返回 search参数第一次出现之前的字符串部分。
10.substr_replace(string,replacement,start,length)
string 必需。规定要检查的字符串。
replacement 必需。规定要插入的字符串。
start 必需。规定在字符串的何处开始替换
正数 - 在字符串中的指定位置开始替换
负数 - 在从字符串结尾的指定位置开始替换
0 - 在字符串中的第一个字符处开始替换
length 可选。规定要替换多少个字符。默认是与字符串长度相同。
正数 - 被替换的字符串长度
负数 - 表示待替换的子字符串结尾处距离 string 末端的字符个数。
0 - 插入而非替换
11.ucfirst() 函数把字符串中的首字符转换为大写。lcfirst() - 把字符串中的首字符转换为小写
12.strtolower() - 把字符串转换为小写 strtoupper() - 把字符串转换为大写
13.ucwords() - 把字符串中每个单词的首字符转换为大写
14.round(x,prec) 函数对浮点数进行四舍五入。
x 可选。规定要舍入的数字。
prec 可选。规定小数点后的位数。
15.ceil() 函数向上舍入为最接近的整数 floor()函数向下舍入为最接近的整数。
16.parse_str(string,array) 将字符串解析成变量 id=1&&key=dk //ps 可以用 $_SERVER['QUERY_STRING'] 获取url参数
string 必需。规定要解析的字符串。
array 可选。规定存储变量的数组的名称。该参数指示变量将被存储到数组中。$arr['id']=1;

17.sprintf(format,arg1,arg2,arg++)
format 必需。规定字符串以及如何格式化其中的变量。
可能的格式值:
%% - 返回一个百分号 %
%b - 二进制数
%c - ASCII 值对应的字符
%d - 包含正负号的十进制数(负数、0、正数)
%e - 使用小写的科学计数法(例如 1.2e+2)
%E - 使用大写的科学计数法(例如 1.2E+2)
%u - 不包含正负号的十进制数(大于等于 0)
%f - 浮点数(本地设置) 常用
%F - 浮点数(非本地设置)
%g - 较短的 %e 和 %f
%G - 较短的 %E 和 %f
%o - 八进制数
%s - 字符串 常用
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

  • (在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记)
    ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 "x" 作为填充))
  • (左调整变量值)
    [0-9] (规定变量值的最小宽度)
    .[0-9] (规定小数位数或最大字符串长度)
    注释:如果使用多个上述的格式值,它们必须按照以上顺序使用。
    arg1 必需。规定插到 format 字符串中第一个 % 符号处的参数。
    arg2 可选。规定插到 format 字符串中第二个 % 符号处的参数。
    arg++ 可选。规定插到 format 字符串中第三、四等 % 符号处的参数。
    格式:
    eg: sprintf("%-'x8.2f",1234) //1234.00x
    %s = %符号和后面属性符号(s)总称为插入标记组合,也就是把后面准备进行格式化的值(%s)替换在这个位置
    $是代表有多个值准备格式化
    '(补位值) 表示补位
    8.2 总宽度3 ,小数2位 小数点算一位,-号表示从右边开始补位
    eg: printf("[%'x4.2s]",1234) //%x.ys这里是截取字符串 显示4位,前面补充2位xx
Top ↑