Maccrt软件
sudo spctl --master-disable
打开软件,复制到app,按照sn.txt输入即可
sudo spctl --master-enable
crt快捷键
crtl + l 清屏
crtl + u 清除当前行
crtl + w 删除当前光标到行首
crtl + k 删除当前光标到行尾
crtl + e 移动到当前行尾
crtl + a 移动到当前行首
鼠标复制:
options -> global options -> Terminal 钩上Copy on select,并钩上paste on middle button
这样在secrecrt中用鼠标选中一段字符,就可以直接复制到剪切板,按鼠标中间的齿轮完成复制粘贴
Options->Session Options->Terminal->Anti-idle->勾选Send protocol NO-OP 超时
Macftp软件
打开软件即用
压缩与解压
wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz rar a jpg.rar *.jpg //rar格式的压缩 unrar e *.rar //解压 tar –cf jpg.tar *.jpg //将目录里所有jpg文件打包成jpg.tar *.tar 用 tar –xvf 解压 tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz *.tar.gz和*.tgz 用 tar –xzf 解压 zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux *.zip 用 unzip 解压
linxusvn服务
CentOS7下安装SVN服务
1. yum命令即可方便的完成安装
# sudo yum install subversion
测试安装是否成功:
# svnserve --version
更改svn的默认配置(更改默认的指向目录和默认端口)
# sudo vim /etc/sysconfig/svnserve 默认/var/run
编辑示例:
OPTIONS="-r /data/svn --listen-port 3661"
2. 建立版本库根目录
# sudo mkdir -p /data/svn
创建版本库:
# sudo svnadmin create /data/svn/poppy
如果删除版本库:
# sudo rm -rf /data/svn/poppy
3. 配置svn配置文件
# sudo vim /data/svn/db/conf/svnserve.conf
编辑示例:
[general]
anon-access = none #控制非鉴权用户访问版本库的权限
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名
authz-db = authz #指定权限配置文件名
realm = /data/svn/poppy #指定版本库的认证域,即在登录时提示的认证域名称
4. 编辑svn用户配置文件
# sudo vim /data/svn/db/conf/passwd
编辑示例:
[users]
poppy = poppy123 用户密码
joker = joker123
5. 编辑svn权限控制配置文件
# sudo vim /data/svn/db/conf/authz
编辑示例:
[groups]
admin = admin #admin为用户组,等号之后的admin为用户
dahei = joker
[/] #表示根目录(/data/svn/poppy),poppy: svn仓库名
@admin = rw #表示admin组对根目录有读写权限,r为读,w为写
[/dahei] #表示dahei目录(/data/svn/poppy/dahei)
@dahei = rw #表示pro1组对pro1目录有读写权限
6. 启动,查看和停止SVN服务
启动SVN服务:
# sudo systemctl start vnserve.service 监听默认路径
# svnserve -d -r /data/svn/poppy,这是手动指定监听的目录,但是你一定要注意,如果-r后面是仓库路径,在checkout的时候不需要加版本库名称的也就是,svn co svn://ip/,这样的话就会把存在于poppy下的目录和文件全部fllow下来,但-r后面加的是版本库前一级目录的话,在checkout的时候就需要加仓库名称了,就是svn co svn:/ip/poppy
如何在poppy下建立可以共给其他开发者co的目录?
svn mkdir 1 / 2 /3
svn commit -m ' ' -- svn co svn://ip/1-2-3
其他开发者就可以通过fllow文件下来
svn co svn://ip/poppy/dahei --username=joker --password=joker123
查看SVN服务:
# sudo ps aux|grep svnserve #默认端口为:3690
# sudo systemctl status svnserve.service
8. 设置开机启动
在centos7, 设置开机启动:
# sudo systemctl enable svnserve.service #注意:根目录必须是/var/svn 这样才能设置成功!!
#设置开机启动后就可以按下面的方式开启或停止服务了
# sudo systemctl start svnserve.service
# sudo systemctl stop svnserve.service
提交后自动更新到目录
cd /data/www
svn co svn://remoteip/poppy --username=poppy --password=poppy123 /home/www/maidong
这样就是将poppy仓库目录下的分枝目录,文件等fllow下来,无论你是从poppy提交文件,还是从分枝目录提交都会变动
root@mon01:/data/svn/svnrepos/hooks# cat post-commit.bak #!/bin/bash # --by joker in 2018-7-24-- REPOS="$1" # 仓库的路径 REV="$2" # 新提交的版本号 # 字符集,命令 export LANG=en_US.utf8 SVN_PATH=/usr/bin/svn SVNLOOK=/usr/bin/svnlook # 钩子脚本的日志 LOGFILE=/var/log/svn-update.log # 获取变动目录 TIME=$(date "+%Y-%m-%d %H:%M:%S") AUTHOR=$($SVNLOOK author -r $REV $REPOS) #提交作者 CHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS) #修改的目录集合 # SVN客户端配置,需要自行修改 CLIENTSVNROOT=/data/www/maidong #WEB服务器的代码根目录,这真的就是目录而已 SVNUSER="poppy" SVNPASSWD="poppy123" # update echo "[$TIME]--[$AUTHOR] svn commit file: $1 $2" >> $LOGFILE for change_dir in $CHANGEDDIRS do echo "[$TIME]--[$AUTHOR] svn commit file: $1 $2 | $change_dir" >> /tmp/svn.log $SVN_PATH update --username $SVNUSER --password $SVNPASSWD --no-auth-cache -N $CLIENTSVNROOT/$change_dir >> $LOGFILE 2>&1 done # 远程同步 rsync -e 'ssh -l www' -avl --delete --exclude eat/uploads/ /data/www/* web02:/home/work/www/
Mac终端svn命令
1. 将文件checkout到本地目录
svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/demo 简写:svn co
2. 往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3. 将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关) 例如:svn commit -m “改动提交“ test.php 简写:svn ci
4. 加锁/解锁
svn lock -m “LockMessage“ [--force] PATH 例如:svn lock -m “加锁“ test.php 例如:svn unlock PATH
5. 更新到某个版本
svn update -r m path 例如: svn update 如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。 svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
冲突解决 svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit) 简写:svn up
6. 查看文件或者目录状态
1 svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2 svn status -v path(显示文件和子目录状态)
7. 删除文件
svn delete path -m “delete test fle“ svn delete test.php 然后再 svn ci -m ‘delete test file‘ 简写:svn (del, remove, rm)
8. 查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9. 查看文件详细信息
svn info path
例如:svn info test.php
10. 比较差异
svn diff path(将修改的文件与基础版本比较) 例如:svn diff test.php svn diff -r m:n path( 对版本m和版本n比较差异) 例如:svn diff -r 200:201 test.php 简写:svn di
11. 将2个版本之间的差异合并到当前文件
svn merge -r m:n path 例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12. svn帮助
svn help
svn help ci
13. 版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14. 创建纳入版本控制下的新目录
svn mkdir: 创建纳入版本控制下的新目录。
创建后需要提交 commit
15. 恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:
用法: revert PATH… ,针对未提交的修改
注意: 本命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录
svn revert --depth=infinity,恢复目录
16. 代码库url变更
svn switch (sw): 更新工作副本至不同的URL。 用法: 1、switch URL [PATH] 2、switch –relocate FROM TO [PATH...] 1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将 服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的 方法。 2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动 (比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用
17. 解决冲突
冲突的产生,服务器有较高版本,而本地没有update即提交,产生冲突文件
svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: svn resolved PATH…
vi 冲突文件
commit 提交,会在服务器增加一个版本
注意: 本命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。
centos安装php
在自己玩阿里云上有个yum源站
yum -y install php56w.x86_64 php56w-mbstring.x86_64 php56w-xml.x86_64 php56w-pdo.x86_64 php56w-mssql.x86_64 php56w-fpm.x86_64 php56w-pear.noarch php56w-pecl-redis.x86_64 php56w-common.x86_64 php56w-bcmath.x86_64 php56w-mysql.x86_64 php56w-process.x86_64 php56w-pecl-igbinary.x86_64 php56w-opcache.x86_64
[root@jokerpro ~]# cat /etc/yum.repos.d/webtatic.repo
[webtatic]
name=Webtatic Repository EL6 - $basearch
#baseurl=https://repo.webtatic.com/yum/el6/$basearch/
mirrorlist=https://mirror.webtatic.com/yum/el7/$basearch/mirrorlist
failovermethod=priority
enabled=1
gpgcheck=0
yum list |grep php
rpm -qa ql
linxu性能问题排查
1. 针对cpu跑满,top第一行,第三行
按P是排序cpu
按M是排序内存
按小k,然后进程号
针对带宽跑满
yum install iftop -y iftop -i eth1 -P 流量占用情况
112是服务器的本机ip,port,后面是客户机的ip,port
netstat -ntlp|grep 53139
yum install nethogs -y
kill + pid即可
2. 访问网站慢
ping:检测 IP 或域名的连通性。
dig/nslookup:查看 DNS 解析情况。
traceroute:显示从访问者到网站的路由连接状态。如果有节点无法连接,只需针对该故障点进行修复便可快速恢复网络。
traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。 通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。 语法 traceroute(选项)(参数) 选项 -d:使用Socket层级的排错功能; -f<存活数值>:设置第一个检测数据包的存活数值TTL的大小; -F:设置勿离断位; -g<网关>:设置来源路由网关,最多可设置8个; -i<网络界面>:使用指定的网络界面送出数据包; -I:使用ICMP回应取代UDP资料信息; -m<存活数值>:设置检测数据包的最大存活数值TTL的大小; -n:直接使用IP地址而非主机名称; -p<通信端口>:设置UDP传输协议的通信端口; -r:忽略普通的Routing Table,直接将数据包送到远端主机上。 -s<来源地址>:设置本地主机送出数据包的IP地址; -t<服务类型>:设置检测数据包的TOS数值; -v:详细显示指令的执行过程; -w<超时秒数>:设置等待远端主机回报的时间; -x:开启或关闭数据包的正确性检验。 参数 主机:指定目的主机IP地址或主机名。 实例 traceroute www.58.com traceroute to www.58.com (211.151.111.30), 30 hops max, 40 byte packets 1 unknown (192.168.2.1) 3.453 ms 3.801 ms 3.937 ms 2 221.6.45.33 (221.6.45.33) 7.768 ms 7.816 ms 7.840 ms 3 221.6.0.233 (221.6.0.233) 13.784 ms 13.827 ms 221.6.9.81 (221.6.9.81) 9.758 ms 4 221.6.2.169 (221.6.2.169) 11.777 ms 122.96.66.13 (122.96.66.13) 34.952 ms 221.6.2.53 (221.6.2.53) 41.372 ms 5 219.158.96.149 (219.158.96.149) 39.167 ms 39.210 ms 39.238 ms 6 123.126.0.194 (123.126.0.194) 37.270 ms 123.126.0.66 (123.126.0.66) 37.163 ms 37.441 ms 7 124.65.57.26 (124.65.57.26) 42.787 ms 42.799 ms 42.809 ms 8 61.148.146.210 (61.148.146.210) 30.176 ms 61.148.154.98 (61.148.154.98) 32.613 ms 32.675 ms 9 202.106.42.102 (202.106.42.102) 44.563 ms 44.600 ms 44.627 ms 10 210.77.139.150 (210.77.139.150) 53.302 ms 53.233 ms 53.032 ms 11 211.151.104.6 (211.151.104.6) 39.585 ms 39.502 ms 39.598 ms 12 211.151.111.30 (211.151.111.30) 35.161 ms 35.938 ms 36.005 ms 记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用traceroute -q 4 www.58.com,表示向每个网关发送4个数据包。 有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。 有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n参数来避免DNS解析,以IP格式输出数据。 如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
3. 根据进程查找文件,或是查看端口开启情况
lsof -p pid / lsof -i :80
[root@Poppy ~]# lsof -p 10530 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld_sa 10530 root cwd DIR 253,1 4096 1710870 /application/mysql-5.5.49 mysqld_sa 10530 root rtd DIR 253,1 4096 2 / mysqld_sa 10530 root txt REG 253,1 960472 657640 /usr/bin/bash mysqld_sa 10530 root mem REG 253,1 106070960 663472 /usr/lib/locale/locale-archive mysqld_sa 10530 root mem REG 253,1 2118128 657569 /usr/lib64/libc-2.17.so mysqld_sa 10530 root mem REG 253,1 19776 657575 /usr/lib64/libdl-2.17.so mysqld_sa 10530 root DEL REG 253,1 657639 /usr/lib64/libtinfo.so.5.9;5b1f5ac7 mysqld_sa 10530 root mem REG 253,1 159640 656965 /usr/lib64/ld-2.17.so mysqld_sa 10530 root mem REG 253,1 26254 787498 /usr/lib64/gconv/gconv-modules.cache mysqld_sa 10530 root 0r CHR 1,3 0t0 4788 /dev/null mysqld_sa 10530 root 1w CHR 1,3 0t0 4788 /dev/null mysqld_sa 10530 root 2w CHR 1,3 0t0 4788 /dev/null mysqld_sa 10530 root 255r REG 253,1 24805 1704037 /application/mysql-5.5.49/bin/mysqld_safe
4. tcpdump
[root@Poppy ~]# tcpdump -n icmp -i eth0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 13:12:11.569176 IP 访问者ip > 本机ip: ICMP echo request, id 24657, seq 0, length 64 13:12:11.569208 IP 本机ip > 访问者ip: ICMP echo reply, id 24657, seq 0, length 64
redis
yum -y install redis 405
systemctl start redis.service
redis-cli
redis-cli -h host -p port -a password 远程链接
SET runoobkey redis
DEL runoobkey
目前云数据库 Redis 版需要通过 ECS 进行内网连接访问。如果您本地需要通过公网访问云数据库 Redis,可以在 ECS Linux 云服务器中安装 rinetd 进行转发实现。
1. 在云服务器 ECS Linux 中安装 rinetd。
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz&&cd rinetd sed -i 's/65536/65535/g' rinetd.c (修改端口范围) mkdir /usr/man&&make&&make install
2. 打开配置文件 rinetd.conf。
vi /etc/rinetd.conf
3. 在配置文件中输入如下内容:
0.0.0.0 6379 Redis 的链接地址 6379
logfile /var/log/rinetd.log
说明 您可以使用 cat /etc/rinetd.conf
命令来检验配置文件是否修改正确。
4. 执行如下命令启动 rinetd。
rinetd
-
您可以通过
echo rinetd >>/etc/rc.local
将 rinetd 设置为自启动。 -
若遇到绑定报错,可以执行
pkill rinetd
结束进程,再执行rinetd
启动进程 rinetd。 -
rinetd 正常启动后, 执行
netstat -anp | grep 6379
确认服务是否正常运行。
5. 在本地进行验证测试。
- 您可以在本地通过 redis-cli 连接 ECS Linux 服务器后进行登录验证,比如安装了 rinetd 的服务器的 IP 是 1.1.1.1,即
redis-cli -h 1.1.1.1 -a Redis的实例ID:Redis密码
。或者通过 telent 连接 ECS Linux 服务器后进行操作验证。假设 ECS Linux 服务器的 IP 是 1.1.1.1,即telnet 1.1.1.1 6379
。 - 连接上 ECS Linux 服务器后,输入连接 Redis 的密码:
auth Redis的连接密码
。 - 进行数据写入及查询验证。
通过上述步骤即可实现:您本地的 PC 或服务器通过公网连接 ECS Linux 6379 端口,对云数据库 Redis 进行访问。
vim
/word
向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word
向光标之上寻找一个字符串名称为 word 的字符串。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:
『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
d$ 删除游标所在处,到该行的最后一个字符
d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
home/shift+6 行首
end/shift+4 行尾