Command

  • I. Linux/Mac Terminal/Win Gitbash
  • II. Windows cmd
  • III. Git
  • IV. svn
  • V. npm
  • VI. Network
  • I. Linux/Mac Terminal/Win Gitbash

    解压打包

    1. 格式:

    2. 操作:

    
      

    sftp

    $ sftp sftp@host
    sftp> cd /data
    sftp> ls
    sftp> get portal_0909.zip # 从ftp下载到本地
    sftp> lpwd # 显示本地当前路径
    sftp> put README.html # 从本地上传到ftp
    

    cp/sh/scp/ssh

    $ cp -r dir1 dir2 targetdir
    $ scp -r gulp-cdn/css gulp-cdn/img gulp-cdn/js root@172.16.40.11:/data/targetdir
    $ scp root@172.16.40.9:/srv/file.tar.gz targetdir
    $ sh task.sh
    $ ssh root@172.16.40.11  "rm -rf /data/css /data/img /data/js"
    

    ln

    $ ln -s /git/h.markbuild.io/ /markbuild/blog/ && mv h.markbuild.io h
    

    stdin stdout stderr pipe

    - echo takes a string and puts it on stdout
    - “>” 创建/覆盖写入文件,“>>“创建/追加写入文件, 这是stdout重定向到文件的pipe
    $ some_command 2>stderr.log 1>stdout.log # 1> 等同于 >
    $ some_command &>stdout_stderr.log # stdout stderr 同时流向一个文件
    $ some_command 2>/dev/null # 流向黑洞
    
    # tee截取stdout流不仅在屏幕上显示,并同时写到log1和log2
    $ ls -l|tee log1 log2
    
    # Pipe(``)
    $ git rm `git status|grep deleted|awk '{print $2}'`
    $ for i in `ls`;do mv -f $i "front"$i;done # 批量重命名
    
    # Pipe(|) 批量杀进程
    $ ps aux|grep 'php\s-f'|awk '{print $2}'|xargs kill -9
    $ pgrep 'php\s-f'|xargs kill -9 # 同上,pgrep直接筛出进程ID数组
    

    crontab

    $ crontab -e
    $ service crond restart
    

    II. Windows cmd

    ftp://: @

    III. Git

    Config

    $ git config --global user.name "Mark Li"
    $ git config --global user.email e@mail.com
    # 这样会生成一个配置文件:~/.gitconfig
    # 查看 git config user.email
    $ git config --global core.ignorecase false
    

    仓库

    $ git init  # 初始化仓库
    $ rm .git  # 删除仓库
    $ git add .  # copy workspace stage
    $ git checkout .  # copy stage workspace
    $ git reset .  # unstage(reset stage)
    $ git rm --cached [file]  # untrack
    $ git rm `git status|grep deleted|awk '{print $2}'`   # 'git rm' all deleted files shown by 'git status'
    $ git reset --soft HEAD^  # 撤销commit
    $ git reset --soft HEAD~2  # 撤销2次commit
    $ git reset --soft [commit]  # 撤销到指定commit
    $ git stash  # 缓工作区
    $ git stash pop 
    

    分支

    $ git branch  # 列出所有分支
    $ git branch -r  # 列出所有远程分支
    $ git checkout -b newbranch  # 新建一个分支newbranch 并切换到newbranch分支
    $ git branch newbranch [commit]  # 基于指定commit新建一个分支newbranch
    $ git checkout newbranch  # 切换分支 更新工作区
    $ git checkout -b newbranch origin/oldbranch  # 基于oldbranch创建newbranch
    $ git branch --set-upstream-to=origin/newbranch  # 关联远程分支,否则每次git push时都要指定远程分支
    $ git merge origin/master  # 合并远程主干分支到当前分支
    
    $ git branch -d [branch-name]  # 删除分支
    $ git push origin --delete [branch-name]  # 删除远程分支
    

    比较

    $ git diff master   # 当前分支与master分支对比
    $ git diff master --stat   # 仅显示不同的文件名
    $ git diff master src/App.vue   # 当前分支与master分支比较src/App.vue这个文件
    $ git diff origin/master --stat src   # 当前分支与远程master分支比较src目录
    $ git checkout master public/people/echarts-4.3.0.min.js   # 将主分支上文件替换当前分支
    

    IV. svn

    $ svn checkout
    $ svn update
    $ svn add dir
    $ svn commit -m "ud"
    $ svn revert -R .
    

    V. npm

    $ npm config list   查看配置
    $ npm cache clean --force 清缓存
    

    VI. Network

    curl

    $ curl -v -H "Range: bytes=0-0" https://wordpress.org/latest.tar.gz
    -H: 指定request header参数 -i: Show Response Headers -v: Show handshake + Request & Response Headers 更多参考F12 > Network > Copy as curl

    netstat

    netstat -ano win
    netstat -anotu Linux
    

    IP

    ping {ip|domain}
    
    Port
    telnet {ip|domain} {port}
    

    查PID

    lsof -i:{port} mac
    sudo lsof -i:{port} linux
    netstat -ano -p tcp|findstr {port} win
    

    查PID所属程序

    ps -ef|grep {pid} mac
    tasklist |findstr {pid} win
    

    ARP

    将IP地址转化成物理地址的协议
    # win Mac Linux
    arp -a  # 可以查看arp缓存表的内容了
    arp -d  # 可以删除arp缓存表里的所有内容
    arp -s  # 可以手动在arp表中指定ip地址与mac地址的对应关系
    

    第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息

    第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向用错误的MAC地址假网关(告诉它192.168.1.1网关的MAC址=我的MAC地址)发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,网络掉线了

    MAC泛洪: 交换机mac表的空间有限,当mac表存满了mac地址的时候会报错,并且进入非正常状态,在这个状态交换机工作的时候会把接受的信息用广播的形式发出去,这样就可以用抓包工具把广播的信息抓到

    DNS

    nslookup markbuild.com
    
  • hosts
  • whois
  • Reverse IP Lookup