curl命令 2015-11-17 10:04:00 http://blog.csdn.net/hqzxsc2006/article/details/50547684 -s 静默输出;没有-s的话就是下面的情况,这是在脚本等情况下不需要的信息。 监控首页各项时间指标: 1 2 3 4 5 6 7 curl -o /dev/null -s -w '%{time_connect} %{time_starttransfer} %{time_total}' http://www.miotour.com 0.244 1.044 2.672 时间指标解释 : time_connect 建立到服务器的 TCP 连接所用的时间 time_starttransfer 在发出请求之后,Web 服务器返回数据的第一个字节所用的时间 time_total 完成请求所用的时间 在发出请求之后,Web 服务器处理请求并开始发回数据所用的时间是 (time_starttransfer)1.044 - (time_connect)0.244 = 0.8 秒 客户机从服务器下载数据所用的时间是 (time_total)2.672 - (time_starttransfer)1.044 = 1.682 秒 -x 指定访问IP与端口号 1 curl -x 61.135.169.105:80 http://www.baidu.com -I 仅仅取文件的http头部 1 curl -I -x 192.168.1.1:80 http://www.miotour.com 用referer做的防盗链,就可以使用-e来设置 1 curl -e "http://www.qiecuo.org" http:// www.miotour.com -v -I -H去构造你想要的http头部 1 curl -H "X-Forward-For:8.8.8.8" http://www.miotour.com -v -I curl提交用户名和密码 1 2 curl http://name:passwd@www.miotour.com curl -u name:passwd http://www.miotour.com -b “cookie” 此参数用来构造一个携带cookie的请求 USER AGENT 关于浏览器发送的http请求信息. Curl允许用命令制定. 发送一些用于欺骗服务器或cgi的信息. 1 curl -A 'Mozilla/3.0 (Win95; I)' http://www.nationsbank.com/
alias命令 2015-11-17 09:48:00 功能说明: 设置指令的别名。 语 法: alias[别名]=[指令名称] 参 数: 若不加任何参数,则列出目前所有的别名设置。 举 例: 1 2 3 4 5 6 7 8 alias alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto' 说 明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。 如果你想给每一位用户都生效的别名,请把alias la=‘ls -al’ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用.
tcp连接建立过程 2015-10-31 22:13:00 一、server 1. 接收syn 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 tcp_v4_do_rcv { nsk = tcp_v4_hnd_req(sk, skb); nsk == sk tcp_rcv_state_process { icsk->icsk_af_ops->conn_request(sk, skb) tcp_v4_conn_request { __tcp_v4_send_synack { 2. 发送syn/ack } } } } 2. 接收ack 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 tcp_v4_do_rcv { nsk = tcp_v4_hnd_req(sk, skb) { req = inet_csk_search_req nsk = tcp_check_req { tcp_v4_syn_recv_sock { tcp_create_openreq_child { inet_csk_clone { newsk->sk_state = TCP_SYN_RECV; } } } } } nsk != sk { tcp_child_process { tcp_rcv_state_process { if (!tcp_validate_incoming(sk, skb, th, 0)) return 0; /* step 5: check the ACK field */ if (th->ack) { int acceptable = tcp_ack(sk, skb, FLAG_SLOWPATH) > 0; switch (sk->sk_state) { case TCP_SYN_RECV: tcp_set_state(sk, TCP_ESTABLISHED); } case TCP_ESTABLISHED: tcp_data_queue(sk, skb); queued = 1; break; } } } } } } 二、client 1. 发送syn 1 2 3 4 5 6 7 8 9 10 tcp_v4_connect { tcp_set_state(sk, TCP_SYN_SENT); tcp_connect { __tcp_add_write_queue_tail tcp_transmit_skb inet_csk_reset_xmit_timer } } 2. 接收syn/ack 1 2 3 4 5 6 7 8 9 10 11 12 tcp_v4_do_rcv { sk->sk_state == TCP_SYN_SENT tcp_rcv_state_process { queued = tcp_rcv_synsent_state_process(sk, skb, th, len) { tcp_set_state(sk, TCP_ESTABLISHED); tcp_send_ack(sk); // 发送ack } } }