分类目录归档:技术
整理常用Linux命令
这不仅仅是一篇文章,要时时更新与添加最新的使用方法与技术
找到PHP配置文件的地方:
php -i | grep “Loaded Configuration File”
文件路径/etc/sysconfig/iptables
开关 重启 /etc/init.d/iptables start|stop|restart
查看防火墙信息/etc/init.d/iptables status
20200407更新
“D:\Program Files\Git\usr\bin\split.exe” -b 100000000 nohup.out
花生壳类似软件
ngrok
yum install
yum remove
定时任务
crontab -l
crontab -e
参考
每周六早上5点整更新mp_customer
0 5 * * 6 sh /root/task/mp_customer.sh >> /root/task/logs/mp_customer.log
alias
alias 显示列表
alias mtr=/usr/local/sbin/mtr 关联
unalias mtr 删除关联
unzip dokuwiki.zip -d dokuwiki
ngrok
http://www.racksam.com/2016/12/18/aliyun-centos7-install-ngrok/
/opt/ngrok/bin/ngrokd -tlsKey=/opt/ngrok/server.key -tlsCrt=/opt/ngrok/server.crt -domain=dev.mydomain.com -httpAddr=:80 -httpsAddr=:443 -tunnelAddr=:4443 > /opt/ngrok/ngrok.log &
systemctl –type=service
systemctl enable tomcat.service
systemctl start tomcat.service
systemctl restart tomcat.service
统计目录下文件数
ls -l | grep “^-” | wc -l
停止 php fpm
kill -INT cat /opt/php-5.3.29-2/var/run/php-fpm.pid
zip -r tsinghuaao.zip tsinghuaao 压缩mydata目录
压缩:tar zcvf FileName.tar.gz DirName
解压:tar zxvf FileName.tar.gz
目录操作
更改目录权限:chmod -R 777 www
重命名文件夹:mv 123 abc 123是原名,abc是想要改的名字
内拷贝内容:cp -r demo/. www/
不提示拷贝:\cp -ar Uploads/ ../../demo/Public/
zip 解压
解压到当前目录下
$ unzip text.zip
将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
$ unzip -n text.zip -d /tmp
查看压缩文件目录,但不解压。
$ unzip -v text.zip
lampp安装路径:/opt/lampp/lampp
iptables 防火墙
文件路径/etc/sysconfig/iptables
开关 重启 /etc/init.d/iptables start|stop|restart
查看防火墙信息/etc/init.d/iptables status
重要!!开启端口一定要在这句之上
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
命令设置开启端口
/sbin/iptables -I INPUT -p tcp –dport 8080 -j ACCEPT
CentOS安装32位兼容包:yum install glibc*
修改语言
修改后的/etc/sysconfig/i18n 文件为:
LANG=”en_US.UTF-8″
xampp软件地址:http://www.apachefriends.org/zh_cn/xampp-linux.html
scp命令远程拷贝
ssh 10.10.8.151
cd /bea/user_projects/domains/uumsdomain/applications/uums/WEB-INF/jsp/
scp root@10.10.8.27:/root/transfer/initPrinter.jsp ./
系统相关
查看内存大小:free -m
显示当前路径:pwd
查找和定位文件:locate tomcat
linux vi
一般模式:
/word 查找
:1,$s/word1/word2/g[c] 替换
x删除一个字符
dd删除一行,剪切
yy复制一行
p粘贴一行
u重复前一个动作
ctrl+b上一页
ctrl+f下一页
j下一行
k上一行
编辑模式:
i插入
a增加
o新加一行
esc退回一般模式
命令模式:
:w存盘
:q退出
:wq存盘退出
:q!强制退出
v进入可视模式,选择文本
e 由游标所在位置至该字串的最后一个字元。
w 由游标所在位置至下一个字串的第一个字元。
b 由游标所在位置至前一个字串的第一个字元。
$ 由游标所在位置至该行的最后一个字元。
0 由游标所在位置至该行的第一个字元。
怎么使SSH服务开机自动运行
chkconfig sshd on
reboot
切换用户
如何在linux中切换用户
su root ,也可以切换到其它用户,root是默认的,所以只要写su就可以了。
如果是临时切换可以用:
sudo ls ….
sudo文件路径/etc/sudoer
Linux中如何新建用户
adduser joe
passwd joe
[输入用户密码]
[再次输入用户密码确认]
Linux中如何删除新建用户
userdel -r shgaj
linux怎么退出图形界面
Ctr+Alt+BackSpace
linux进入图形界面的方法
安装有图形界面的情况下,启动linux在终端下输入: startx
如何设置自动进入命令界面
/etc/inittab
id:3:initdefault:
将3改为5
常用操作
删除文件命令
rm -rf
设置时间
date 010318242008(月日时分年)
查看磁盘空间
df -lh
查看文件的最后部分
tail -f nohup.out
移动文件
mv
查看目录占用空间
du -s /bea
linux下如何查看cpu型号和主频
key: linux cpu 型号 主频
cat /proc/cpuinfo
开机自启动服务 sftp服务器
systemctl enable httpd.service
systemctl enable squid.service
Java正则类
之前一直研究正则的内容,一直忽略java的类,最近由于需要经常用到,把代码记录下来:
String line = “This order was placed( iOS 10.3.1;) for QT3000! OK?”;
String pattern = “iOS ([^;]*);”;Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find()) {
System.out.println(“Found value: ” + m.group(0));
System.out.println(“Found value: ” + m.group(1));
} else {
System.out.println(“NO MATCH”);
}
内网应用更新方案
SSH生成密钥对,登录服务器
最简单的生成方法:
ssh-keygen
按照提示写文件名就可以了,假设我们生成了xxx.pub和xxx,其中xxx是密钥文件,xxx.pub是公钥文件
配置CentOS的免密码登录:
- 用vim打开文件,拷贝里面的内容到需要登录账号的主目录,如/root
- 打开vim /root/.ssh/authorized_keys,如果没有这个目录则这样创建
- mkdir .ssh
- chmod 700 .ssh
- cd .ssh
- touch authorized_keys
- chmod 644 authorized_keys
- 将xxx.pub里面的内容(应该是一行)拷贝到authorized_keys里面(单独占一行)
- ssh root@xxx.xxx.xxx.xx,选择xxx密钥文件,就可以不用密码登录了
局限性
我总是认为,一些理论的东西没有太大的用处,于是只是在寻找哪些可以具体实施的技术细节。一直认为把开发的框架,开发硬件,中件间的优化一配置,数据库的设计,应用服务器的负载均衡,分布式数据库的使用,内存数据库的使用,缓存技术的应用这些综合起来都是架构的一部分,但一遇到理论的部分,我好像什么也不知道……
在没有弄懂一件事情之前,一定不要对它下结论:这啥用。也许之前的我更关注的是在整个软件过程中的具体技术细节的实现,对于架构的理解也是停留于框架和服务器的设计方面。而架构师却是需求与设计之间的一个角色
那系统分析师应该是偏向需求这个方向的,架构师偏向技术这个方向的。这么讲吧,拿出来一个架构方面的概念我好像听都没听过,我拿了架构师的教程,翻到架构师这一章,所有根据都看不懂,看了里面简略的解释(这本教材虽然厚,但涉及的面太广,根本达不到学习的目的)。其实在听课程之前,我连架构师属于哪个阶段的概念都比较模糊。
当然,我比较精于里面技术的部分,无论是计算机组成还是操作系统或者是计算机网络,有逻辑思考能力的环节起码在考试知识点这块都不那么担心,担心的是软件工程部分,里面理论太多。担心是的开发和数据结构部分,这块考试的时候大部分时候竟然都是考试概念,并不会让我们真的写一段代码。还有就是架构与安全部分,大部分时候考试的也是理论的部分。
说到这,其实现在的关键点是,考试逻辑的部分非常少,只是上午题中的一部分,下午题简答和论文,都需要有清晰的理论概念,然后加上实际的案例来做论述,而之前自身的局限性让我学习这些知识时会无比痛苦。
PV操作
至少有三次机会我可以把它学好,但还是对一些概念模糊
PV操作主要分两类:互斥和同步
简单讲,互斥的PV是同一个信号量,或者讲只有一个信号量。而同步的PV在同一段代码中是不同的信号量。同步一般是两个信号量。
那么信号量是什么?具体的概念书本上有,我这边理解信号量是指示队列的。因为如果简单把信号量定义成资源的个数,同步的时候完全可以只用一个信号量,因为池的大小是固定的,两个信号量就会浪费资源嘛。
这也是我一直不理解的地方,同步的时候为什么一直使用两个信号量。把信号量定义为指示队列的就好理解了。生产者消费者模式里面,生产者如果被阻塞就会形成一个阻塞队列,消费者如果被阻塞,了会形成一个消费者的队列。那么信号量S1就指示的是生产者的队列,如果等于负数就是队列中有进程等待,否则就没有进程等待。S2指示的是消费者的队列,如果为负数就表示队列中有消费者在等待,其绝对值就是等待消费者的个数。
PV里面一个重大的特点是阻塞进队列,唤醒队列中的进程。如P(S1),表示我会无论如何先减1,占用一个资源,如果资源还有,那么我就执行接下来的操作,如果资源没有了,那么我进队列。重点是后半部分的进入队列。如果同步只有一个信号量的话,就不能完成进队列和唤醒的操作。而消费者在消费完一个商品后,会执行V(S1),这个操作里面也有一个判断,如果S1的值是负数,则在执行完之后还要去生产者的队列唤醒一个进程。
其实在想不通为什么他们会这样做的时候,可以先把我们要解决的问题拿出来,看我有没有更好的办法去解决这个问题,一旦发现自己的理论不能解决这个问题的时候,你就会发现书本上提供方法的巧妙之处了。比如我一直觉得,同步模型完全可以使用一个信号量表示缓冲池空余的个数。先不说没办法统一定义PV的操作,光是两个队列都不好表示了,因为一个信号量只能真实反应池中空余的个数,并不能并未已经阻塞了多少生产者和多少消费者。当然有办法,可以再定义一个池的大小,这样也是两个变量,表面上更好理解了,但对PV的统一性造成了破坏。
互斥模型比较好理解,因为在同一做代码中,PV操作使用的是同一个信号量,这个信号量既表示了阻塞的队列,也能表示资源剩余的个数。因为大家都是同样的并行进程,所以大家都进入一个队列。
论文写作规范
有幸参加系统架构师的考试,正好有一个千载难逢的写论文机会,我一定要好好把握,尽管这次是为了应付考试,但谁又能说不是我通向论文的入门之中呢?
写作的两部分:理论和实践
论文的题目是4选1,每个题目都会有一段描述和三个要求,第一个要求是统一的,就是要联系自己的职位和项目论述问题。第二个是最主要的,里面涉及到架构的方方面面。第三个也是可以部分套用的,就是总结一下自己所谈项目及对第二个问题的回答后,所取得的成就和不足的总结。
那么这篇论文就从上述两个方面展开。在项目方面,需要选择一个比较有典型性的项目,并且这个项目最好能够套用大部分架构的场景。这个项目可以事先准备好,以不变应万变。如果自己的项目比较多的话,要吧多准备两个。
其实我更关注是的理论的部分,实践的部分我们已经在工作中遇到更多,但理论的部分往往是我们忽略的。如软件工程中需要分析的几种方式,架构中的软件性能瓶颈及硬件性能瓶颈。上面两个也是我乱猜的两个,具体的还要看希赛给的论文范例,里面有各个方面所准备的范例。这也是我需要从这些论文中学习的东西:这些范例论文中是如何使用理论知识回答第二个问题的。如果这方面的问题解决了,剩下的问题就都不是问题了。
写作套路总结如下:
摘要 300-400字
项目概要 400-600字
开发项目的概要
开发的体制和“我”担任的工作
项目在系统设计方面的情况
把握用户需求的重要性 100-200字
采用过的手段 1000字-1400字
采取的手段中有效果的手段,效果体现在什么地方 200-300字
采取的手段中无效果的手段,为什么没有效果 200-300字
总结 100-200字
苹果禁止热更新及微信的小程序
如果腾讯开发团队同样收到了苹果公司的热更新警告,如果不巧针对的是微信和QQ的话,那么接下来苹果和微信的对决就比较好看了
大背景
最近苹果公司发给了不符合规范要求的开发者一封邮件,明令禁止热更新技术。啥叫热更新呢?从用户角度来讲就是,你在上架的时候App的全部功能已经固定了,不可能在不发布新版本的情况下出现新的功能。
微信的小程序算不算热更新?
从上面的定义可以知道,如果所有的小程序全部打包到微信的更新版本里面了,那就不属于热更新,否则就属于。我们知道小程序是不断在更新的,有更多的小程序加入到微信里面,也有部分小程序从微信中下架,所以不可能是微信把所有的小程序打包到某个版本的微信里面了,所以从严格的定义来看,微信的小程序100%属于热更新。
腾讯会不会向苹果屈服?
如果要在短短几天内修改小程序的框架将是一个非常棘手的事情,几乎是不可能。但腾讯也不太会直接放弃iPhone的市场。那最大的可能是双方坐下来谈判,拿出来一个双方都可以接受的方案。
苹果会不会下架腾讯的全部产品?
6月12号如果收到热更新提醒的开发者不提交新的版本删除相关功能,将会被苹果下回。基于上面的分析,微信肯定存在热更新并且在短时间内肯定改不了,如果苹果严格执行规则的话,就是下架所有腾讯的产品。但这种情况不太可能会出现,因为腾讯的产品对iPhone太重要了,加上腾讯会主动跟苹果联系,提出折中的解决方案,所以双方会出现妥协,妥协的结果可能是给腾讯一定的整改时间,腾讯也不会完全移除所有的热更新,只是象征性的删除一些功能,再发布个更新,给苹果有个台阶下。
以上的分析,都是基于腾讯的开发者团队收到了警告邮件,不排除苹果针对这么大影响力的腾讯会做特殊处理,不直接发邮件给开发者,而是通过另外一种渠道来协商