zoukankan      html  css  js  c++  java
  • Linix常用命令

    苹果设备常用命令:
     
    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
     
    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 root@192.168.18.29:/home/hotcity/
         拷贝远程(10.0.24.103)的/home2/backup/ 到本地的 /home/mover00/shadow_bak/sites/
          scp -P36100 -r root@10.0.24.103:/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));
     
     
     

  • 相关阅读:
    LeetCode每周记录-3
    leetcode每周记录
    leetcode每周记录
    软件工程课程总结报告
    微信抢票应用开发总结
    C#获取项目程序及运行路径的方
    python opencv 读取USB摄像头的像素问题
    去除激活水印办法
    系统激活成功仍显示水印,取消激活方法
    bytes,bytearray
  • 原文地址:https://www.cnblogs.com/water-wjf/p/8342975.html
Copyright © 2011-2022 走看看