1. 格式:
2. 操作:
$ sftp sftp@host sftp> cd /data sftp> ls sftp> get portal_0909.zip # 从ftp下载到本地 sftp> lpwd # 显示本地当前路径 sftp> put README.html # 从本地上传到ftp
$ 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 -s /git/h.markbuild.io/ /markbuild/blog/ && mv h.markbuild.io h
$ 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 | grep xxx`;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数组
$ set -x # 开启把它下面的命令打印到屏幕 $ set +x # 关闭
$ mkfile -n 20M ~/Download/20M.pdf
$ crontab -e $ service crond restart
$ 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 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 # 将主分支上文件替换当前分支
$ git remote add origin2 master # 本地仓库和远程仓库建立连接 $ git remote set-url origin2 http://x.com/x.git # 设置远程仓库URL $ git remote # 查看远程仓库 $ git remote -v # 查看远程仓库 $ git push origin2 $ git checkout -b newbranch origin/oldbranch # 基于远程oldbranch创建newbranch
$ svn checkout $ svn update $ svn add dir $ svn commit -m "ud" $ svn revert -R .
$ npm config list 查看配置 $ npm cache clean --force 清缓存
$ 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 -ano win netstat -anotu Linux
ping {ip|domain}
Port
telnet {ip|domain} {port}
lsof -i:{port} mac sudo lsof -i:{port} linux netstat -ano -p tcp|findstr {port} win
ps -ef|grep {pid} mac tasklist |findstr {pid} win
# 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地址的时候会报错,并且进入非正常状态,在这个状态交换机工作的时候会把接受的信息用广播的形式发出去,这样就可以用抓包工具把广播的信息抓到
nslookup markbuild.com