苹果设备常用命令:
1. 无法正常开关机:
首先尝试: shift + control + option + 开机键 重置 SMC,按住4、5秒松手后等待30秒以上再次开机尝试。
如果不行: 开机后,迅速按住 command + option + P + R 键不松手,等到出现4次开机声音后松手进入。
2. Mac系统下生成带密码的zip压缩包:
zip -rP 123 其他.zip test // zip:命令, -r:递归目标文件夹及子文件夹,P:密码,其他.zip:要生成的zip压缩包名称,test:要压缩的目标文件夹路径或文件路径
Linix常用命令:
1.查找某一个或多个文件:
ls | sort | grep "2012-09-13.log"
find -name "*2012-09-13.log"
2.给文件赋权限:
chmod +x *.sh
来为bin目录下的所有.sh文件赋予可执行权限(x=1=可执行权限,r=4=可读,w=2=可写)
3. netstat -tnl 查看 8080 8009 这2个端口,如果打开了,证明CentOS系统的tomcat正常运行。
tcp 0 0 :::8009 :::* LISTEN
tcp 0 0 :::8080 :::* LISTEN
4.查看端口是否被占用:
lsof -i:80
显示占用该端口的进程情况,该端口正在运行的程序
5.首先使用如下命令插入执行定时任务,在需要打开时去掉注释,修改内容切入按 i,退出esc,退出,强制退出!q crontab -e
#cpu mem monitor
sh /cuiser/cpstest.sh >> /cuiser/monitor.log
执行shell脚本内容并保存到monitor.log文件中
下面是查看shell脚本命令以及内容
[root@buss-bak3 cuiser]# more cpstest.sh
cd /cuiser/
chmod 775 *
date
vmstat 3 2
6.打包、压缩、备份 http://www.cnblogs.com/end/archive/2011/04/20/2022614.html
tar:
tar -zcvf ./castomcat.tar.gz ./tomcat-6.0.35-cas2.0/
将当前目录下tomcat-6.0.35-cas2.0文件夹下所有文件打包并压缩为文件castomcat.tar.gz
tar -ztvf ./castomcat.tar.gz
查阅上述 ./castomcat.tar.gz 文件内有哪些文件,由於使用 gzip 压缩,所以要查该 tar file 内的文件时,就得加上 z 这个参数
tar -zxvf ./castomcat.tar.gz
解压缩,把castomcat.tar.gz解压到当前文件夹下
gzip:
gzip -9 被压缩文件名
gzip catalina.out
直接压缩catalina.out到当前目录下
7z:
7z x yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,x是解压到压缩包命名的目录下
cat /dev/null > catalina.out
//清空日志文件,不删除,不需要重启机器
7.向远程主机拷贝文件(提示:此处 P 是大写)
拷贝本地的castomcat.tar.gz 到远程(192.168.18.29)的 /home/hotcity/
scp -
P36100 -r ./castomcat.tar.gz [email protected]:/home/hotcity/
拷贝远程(10.0.24.103)的/home2/backup/ 到本地的 /home/mover00/shadow_bak/sites/
scp -
P36100 -r [email protected]:/home2/backup/ /home/mover00/shadow_bak/sites/
8.登陆远程主机
ssh -
p36100 192.168.18.29
ssh name@server
9.tcpdump抓包
抓指定网卡(bridge100)的8085端口数据包,并输出到文件(port8085.cap):
sudo tcpdump -i bridge100 port 8085 -w port8085.cap -v
//tcpdump tcp port 8080 -n -s 0 -w /tmp/tcp.cap
tcpdump -i any -s0 port 7890 -w port7890.cap -v
-l 使标准输出变为缓冲行形式;
-n 不把网络地址转换成名字;
-c 在收到指定的包的数目后,tcpdump就会停止;
-i 指定监听的网络接口;
-w 直接将包写入文件中,并不分析和打印出来;
-s 指定记录package的大小,常见 -s 0 ,代表最大值65535,一半linux传输最小单元MTU为1500,足够了
-X 直接输出package data数据,默认不设置,只能通过-w指定文件进行输出
10. Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据, 用于检验本机各端口的网络连接情况
netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n
11. 查看ftp进程,重启ftp server
# path /home/hotcity/apache-ftpserver-1.0.5/res/home/files
ps ax|grep apache-ftpserver-1.0.5
./stpd.sh ./res/conf/ftpd-typical.xml &
12. Linux查看磁盘空间命令:
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
更多功能可以输入一下命令查看:
df --help
du --help
13. 防火墙
(1) 重启后永久性生效:
开启:chkconfig iptables on
关闭:chkconfig iptables off
(2) 即时生效,重启后失效:
service iptables status 查看防火墙状态; /etc/init.d/iptables status 会得到一系列信息,说明防火墙开着。
service iptables stop 关闭; /etc/rc.d/init.d/iptables stop 关闭防火墙
service iptables start 开启
开启相关端口:
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state ——state NEW -m tcp -p tcp ——dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state ——state NEW -m tcp -p tcp ——dport 22 -j ACCEPT
14. rpm
安装程序: rpm -ivh 以.rpm结尾的程序包
卸载: rpm -e 程序全名,例如查看telnet程序全名:rpm -qa|grep telnet
15. ssh-keygen -t rsa -C "邮箱" 生成私钥。
切换到用户 .ssh目录下,复制秘药文本内容至git公司网站并添加
git常用命令
git clone xxx.git
git branch
git branch -r
git checkout -b 1.5.5 创建一个本地库指针
git branch -D 1.5.5 删除
git checkout v1.5.0重构 切换到某一个库指针
git status
git commit -a -m"测试一下"
git pull
git log
TCP连接的KEEPALIVE
一、关于keepalive的内核参数
tcp_keepalive_time - INTEGER
在连接被标记为需要keepalive后,最后数据被发送和第一个keepalive探测包的间隔.
默认值: 2hours.
tcp_keepalive_probes - INTEGER
在决定连接被断掉,通知应用层前,发送keepalive探测包的次数.
默认值: 9.
tcp_keepalive_intvl - INTEGER
在keepalive探测包开始后,探测包每隔多长时间发送一次.
默认值: 75s
根据上述参数来看,如果一个client发送一个标记为keepalive的包后,如果断开了
服务端需要7200s+9*75s=7875s后,连接才释放掉。
二、 TIME_WAIT 的处理
根据TCP协议,主动发起关闭的一方,会进入TIME_WAIT状态(TCP实现必须可靠地终止连接的两个方向(全双工关闭)),持续2*MSL(Max Segment Lifetime),缺省为240秒. 为什么 TIME_WAIT 状态需要保持 2MSL 这么长的时间?
TIME_WAIT的等待时间为2MSL,即最大段生存时间.如果 TIME_WAIT 状态保持时间不足够长(比如小于2MSL),第一个连接就正常终止了。第二个拥有相同相关五元组的连接出现(因为连接终止前发起的一方可能需要重发 ACK,所以停留在该状态的时间必须为MSL的2倍。),而第一个连接的重复报文到达,干扰了第二个连接。TCP实现必须防止某个连接的重复报文在连接终 止后出现,所以让TIME_WAIT态保持时间足够长(2MSL),连接相应方向上的TCP报文要么完全响应完毕,要么被丢弃。建立第二个连接的时候,不 会混淆。
注:MSL(最大分段生存期)指明TCP报文在Internet上最长生存时间,每个具体的TCP实现都必须选择一个确定的MSL值。RFC 1122建议是2分钟,但BSD传统实现采用了30秒。TIME_WAIT 状态最大保持时间是2 * MSL,也就是1-4分钟。
有关内核级别的keepalive和time_wait的优化调整
vi /etc/sysctl
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog =8096
修改完记的使用sysctl -p 让它生效
以上参数的注解
/proc/sys/net/ipv4/tcp_tw_reuse
该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。
/proc/sys/net/ipv4/tcp_tw_recycle
recyse是加速TIME-WAIT sockets回收
对tcp_tw_reuse和tcp_tw_recycle的修改,可能会出现.warning, got duplicate tcp line warning, got BOGUS tcp line.上面这二个参数指的是存在这两个完全一样的TCP连接,这会发生在一个连接被迅速的断开并且重新连接的情况,而且使用的端口和地址相同。但基本 上这样的事情不会发生,无论如何,使能上述设置会增加重现机会。这个提示不会有人和危害,而且也不会降低系统性能,目前正在进行工作
/proc/sys/net/ipv4/tcp_keepalive_time
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时
/proc/sys/net/ipv4/tcp_fin_timeout 最佳值和BSD一样为30
fin_wait1状态是在发起端主动要求关闭tcp连接,并且主动发送fin以后,等待接收端回复ack时候的状态。对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。
/proc/sys/net/core/netdev_max_backlog
该文件指定了,在接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
三、 进行处理
Linux系统中TCP是面向连接的,在实际应用中通常都需要检测连接是否还可用.如果不可用,可分为:
a. 连接的对端正常关闭.
b. 连接的对端非正常关闭,这包括对端设备掉电,程序崩溃,网络被中断等.这种情况是不能也无法通知对端的,所以连接会一直存在,浪费国家的资源.
TCP协议栈有个keepalive的属性,可以主动探测socket是否可用,不过这个属性的默认值很大.
全局设置可更改/etc/sysctl.conf,加上:
net.ipv4.tcp_keepalive_intvl = 20
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_time = 60
在程序中设置如下:
int keepAlive = 1; // 开启keepalive属性
int keepIdle = 60; // 如该连接在60秒内没有任何数据往来,则进行探测
int keepInterval = 5; // 探测时发包的时间间隔为5 秒
int keepCount = 3; // 探测尝试的次数.如果第1次探测包就收到响应了,则后2次的不再发.
setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));
setsockopt(rs, SOL_TCP, TCP_KEEPIDLE, (void*)&keepIdle, sizeof(keepIdle));
setsockopt(rs, SOL_TCP, TCP_KEEPINTVL, (void *)&keepInterval, sizeof(keepInterval));
setsockopt(rs, SOL_TCP, TCP_KEEPCNT, (void *)&keepCount, sizeof(keepCount));