软件安装
$ sudo dpkg -i/-r <name>.deb
$ sudo apt-get install/remove <name>
$ sudo apt-get -f install
$ sudo apt-get autoremove
常用
显示路径 Ctrl+L
粘贴板 Ctrl+;
显示隐藏文件 Ctrl+H
Pycharm格式化 Ctrl+Alt+L
透明度 Alt+鼠标滚轮
Python关闭多线程 Ctrl+\
# 文件夹打不开
$ killall nautilus
# 重启输入法
$ killall fcitx
$ killall sogou-qinpanel
$ fcitx
# 终端后台
$ <命令>&
$ jobs
$ fg %n #前台
$ bg %n
$ exec bash #切换终端
$ chsh -s /bin/zsh #要重启
$ ls -a
$ top # https://www.cnblogs.com/me115/p/3842081.html
# 下载上传文件
$ scp [email protected]:/root/project/django.tar.gz /home/wcg/
$ scp /home/wcg/django.tar.gz [email protected]:/root/
# 压缩解压
$ tar -czvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
$ tar -xzvf /tmp/etc.tar.gz
$ ls -lR 递归列出文件的所有文件和详细资料
$ ls -l t* 列出t开头的文件
$ cd ... 返回上上级目录
$ mkdir -p /Todo/todo 创建多级目录
$ mkdir -vp scf/{lib/,bin/,doc/{info, product}, service/deploy/{info, product}} 创建项目结构
$ tree scf/ 查看项目结构
$ rm -f a.log 删除不提示
$ rm -i *.log 删除log结尾,逐一提示
$ rm -r test 递归删除目录
$ rm -rf test 不提示
$ cp -R 复制目录及目录所有项目
$ tail -f test.log 循环查看文件内容
$ which 查看可执行文件的位置
$ whereis 查看文件的位置
$ locate 配合数据库查文件位置,会定期更新,可设置
$ find 查找文件名称
$ find -atime -2 找出48小时内修改过的文件
$ find . -name "*.log" 关键字查找
$ find . -type f -exec ls -l {} \; 找到普通文件并列出详细
$ find . -type f -mtime +14 -exec rm {} \; 找出更改时间在n日以前的文件并删除它们
$ find . -name "*.log" -exec mv {} .. \; 查找文件移动到指定目录
$ find . -type f -print | xargs file 它是取出一部分文件而不是全部,不像-exec那样
$ chmod a+x a.log 给所有用户组增加可执行权限 r=4, w=2, x=1
$ chmod 777 a.log
$ chgrp -v bin a.log 更改文件的群组属性
$ chown wcg:wcg a.log 改变拥有者和群组
$ df -h 显示磁盘使用情况
$ du -h 显示目录和大小
$ free 显示内存使用情况
$ lsof 查看进程打开的文件
$ lsof -i tcp:80 查看tcp端口
$ ps -ef | grep nginx 查看nginx进程
$ ifconfig 查看网络配置
$ route 显示当前路由
$ ping -c 10 ip ping指定次数
$ traceroute blog.itswcg.com * 表示可能防火墙封掉了icmp,没有返回信息
$ netstat -ap | grep ssh 找出程序运行的端口
$ netstat -anpt | grep ':80' 找出运行指定端口的进程
$ ss 更高级更快的netstat
$ ln -s 软链接 没有s的是硬链接,软链接生成一个文件的镜像,硬链接生成一个和源文件大小一样的文件,都保持同步变化,删除后,软链接提示源文件不存在,硬链接不受影响
$ wc a.log 统计文件字数,行数等
$ ps -aux | grep nginx 显示详细的信息包含使用者的
$ watch -n 1 'cat /proc/loadavg' 1秒输出一次平均负载
$ at 5pm+3 days 三天后下午5点执行
at> /bin/ls
at> <EOT>
$ cat /etc/crontab
$ crontab -l
$ crontab -e
死机
# Ctrl+Alt+F1
$ top
$ kill <id>
# Ctrl+Alt+F7
Sublime
Ctrl+左键 批量改
选中 Alt+F3 改选中所有
Ctrl+Shift+U 侧边栏
Ctrl+Alt+L 格式化python
Ctrl+Shift+L 格式化html
Vim
命令行 Esc Shift+; wq
Normal模式
i 插入
a 下一个位置
o 下一行
dd 删除当前行
yy 拷贝当前行
0yw 复制第一个单词
p 粘贴剪贴板
P 粘贴到光标上方
0 移到行头
$ 移到行尾
Ctrl+F 下一Page
Ctrl+B 上一Page
u undo
ctrl+r redo
gg 到第一行
NG 到N行
G 到最后一行
# 日志成一行
:set wrap!
# 粘贴混乱
:set paste
:set nopaste
# 显示行标
:set nu
:set nu!
vim 搜索
/wcg 正序搜索
?wcg 倒序搜索
n 下一个
N 上一个
# https://github.com/wsdjeg/vim-galore-zh_cn
:e file2 打开另个文件
:ls 列出缓冲区
:e scp://[email protected]/.vimrc 打开远程文件
ctrl+v j选择 A或I 插入写 esc退出效果 多行编辑
vimdiff 比较两个文件
vim -O a.py b.py 垂直分屏, o水平分屏
:new a.py 水平分屏
: vs b.py 垂直分屏
: close 关闭当前窗口
ctrl+w q 关闭窗口
ctrl+w h j k l w 切换窗口
git
$ git init
$ git add .
$ git commit -m ''
$ git remote add origin <地址>
$ git push/pull orign master #更新/同步
$ git push -u origin +master #强制更新
$ git push orign master:<名称> #提交分支
$ git branch -a #查看所有分支
$ git branch #查看当前分支
$ git branch <name> #创建分支
$ git branch -d <name> #删除分支
$ git checkout -b <name> #创建一个分支并切换到
$ git checkout <name> #切换分支
$ git rm -r --cached . #.gitignore不生效
$ git reset --hard #撤销未push的
$ git revert <SHA> #撤销push的
$ git fetch #远程服务器有更新,更新到本地
$ git merge <name> #把分支合并到当前分支
$ git tag #查看标签
$ git tag <name> #新建标签
$ git tag -a <name> -m 'commit' #新建含注释的标签
# git flow
$ git flow init
# 开发新特性
$ git flow feature start MYFEATURE #增加新特性
$ git flow feature publish MYFEATURE #发布新特性
$ git flow feature finish MYFEATURE #合并特性到develop,同时删除
$ git flow feature pull origin MYFEATURE #提取分支
# release版本
$ git flow release start RELEASE [BASE]
$ git flow release publish RELEASE
# git flow release finish RELEASE
# 紧急修复
$ git flow hotfix start VERSION [BASENAME]
$ git flow hotfix finish VERSION