Windard +
Github Zhihu RSS

CUI--command user interface

Windows/Linux(Ubuntu, Cent OS) 常用命令

发现一个好网站 (Linux工具快速教程)[http://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html]

  1. sudo apt-get update 更新源 sudo apt-get upgrade 更新软件 sudo apt-get dist-upgrade 更新系统 … 装好linux后第一件事

  2. sudo apt-get remove --purge <progrname> 彻底删除某软件

  3. sudo apt-get autoremove 自动清理 sudo apt-get autocleansudo apt-get clean

  4. sudo apt-get install software 安装软件

  5. sudo apt-cache search software 搜寻软件类似于 yum search software , sudo apt-cache show software 查看软件的相关信息

  6. cd, ls/dir,mkdir,cp/copy,rm/remove 这些就不用介绍了吧。ls -al显示全部文件的详细信息,在Ubuntu下同ll,在linux下也可以用 dir

  7. ls -lat 按最后修改时间逆序排列,ls -latr 按最后修改时间顺序排列。ls -laSh 按文件大小逆序排列,la -laShr 按文件大小顺序排列, ls -lah 查看文件大小,或者是 du -sh *

  8. type/cat 查看文本文件内容。

  9. tree 生成目录树。如果出现乱码,或者中文无法展示,试下 tree -N 或者 tree --charset UTF-8

  10. arp -a(Windows),查看arp表 , route -n 查看路由表。

  11. IE 原来是叫做 iexplore , 在 运行中输入直接打开。

  12. ipconfig/ifconfig 查看网络信息。ipconfig /all 查看详情。

  13. ip addr 现在都用 ip 命令,而不是 ifconfig

  14. ip route 查看 路由 ip -s link 查看网络流量统计信息 ip neigh 查看 ARP 记录

  15. netstat -ano(Windows),netstat -tunlp (Linux),netstat -ant (Mac) 查看当前电脑端口使用状态。

  16. netstat -an|grep -i LISTEN 查看在监听的端口

  17. lsof -i :8080 查看端口使用情况,或者 lsof -i tcp:10000 查看端口被哪个进程应用占用。

8 lsof -iTCP -sTCP:listen 查看开启监听的端口和服务

  1. ss -ltun 查看端口占用。

  2. tasklist/ps -A,查看当前进程状态。ps -aux显示详细进程信息。

  3. tasklist |findstr pythonps -aux|grep python 效果相同

  4. top(Linux),查看运行中的系统动态实时视图。

  5. htop 更漂亮的查看系统CPU 和内存使用情况

  6. glances 更更漂亮的查看系统 CPU 内存 IO 网络 磁盘的使用情况。

    yum install -y glances 或者 pip install glances

  7. kill/tskill 杀死某个进程,killall -9 processname 强制杀死进程。

  8. pkill taskname 杀死某个进程

  9. shutdown -h now 关机。(我一般就这样关)reboot 重启 halt 或者 poweroff 也可以

  10. shutdown -s -t 0 Windows下关机,shutdown -r -t 0 Windows下重启

  11. cls/clear 清屏

  12. systeminfo(windows)查看系统信息

  13. find/findstr/grep 查找 -i 忽略大小写

  14. grep -i 忽略大小写,find -iname 忽略大小写。find 没有 -i 参数

  15. grep XXX * -r 在当前目录和和目录下的文件中查找内容 * 是指当前所有文件,r 是指递归搜索

  16. 在cmd中创建空文件夹,cd.>newfilename或者copy nul newfilename或者type nul>newfilename或者echo a 2>newfilename

  17. notepad XXX/vim XXX 编辑文本文件

  18. vim +10 xxx 打开文件,并跳转到指定行数

  19. dxdiag Windows 下打开 DirectX 查看相关信息。

  20. startx 在ubuntu命令行下从文本界面进入图形化界面。

  21. sudo passwd 更改 root 密码,sudo passwd username 更改用户密码,密码默认是不会显示出来的。

  22. su -l 登陆到root用户 ,在ubuntu上默认不能使用su登陆到root用户。root 默认密码为空,使用 sudo 时输入的密码是当前用户的密码,并不是root的密码,使用 su 切换到 root 用户时输入的才是 root 的密码,这两个密码可以不一样。

  23. man/info 加命令 查看相关命令的详细介绍,按q退出

  24. logname/whoami 分别显示最初登录的用户名和当前的用户名

  25. who 能看到当前地址,即从何处登录至服务器。

  26. pwd 显示当前目录

  27. arch(Linux)=uname -m 查看系统32位或者是64位 uname -a 查看系统的详细信息 uname -r 查看系统的 Linux 版本

  28. cp/mv(copy/move) 复制和移动

  29. rm/del 删除 rm -r xx 删除非空文件夹 rmdir xxx 删除文件夹

  30. gzip xxx 压缩文件 gunzip -d xxx 解压文件

  31. tar -cvf XXX.tar dir 将dir下所有文件打包,包括子目录中打文件 tar -czvf XXX.tgz dir 将dir下所有文件压缩 tar -xzvf XXX.tgz 解压还原

  32. ln 源文件 目的地址 建立链接即创建快捷方式

  33. chmod XXX 改变文件的权限 -R 将某文件下所有文件的权限全部改变,包括子文件夹中的文件

  34. gnome-screenshot 在ubuntu的gnome桌面系统下,截取当前屏幕,也可以使用快捷键Alt+Print Screen 参数-w 只捕获当前活动窗口 -a 指定捕获内容 -d 延时捕获,可以用来关闭当前窗口 -e 给捕获内容添加效果.

  35. 在 运行 中 snippingtool,打开系统自带的截图。

  36. dpkg -i sofeware.deb Debian 安装软件包, rpm -i software.rpm RHEL(Red Hat Enterprise Linux) 安装软件包

  37. dpkg -l(Linux)查看安装了哪些软件,dpkg -l softwarename查看是否安装该软件,which softwarename查看软件安装位置。

  38. 加压解压文件大全,我对压缩与解压的需求就只有三种,将文件或多个文件压缩为一个压缩文件,将文件夹压缩为一个压缩文件,将压缩文件解压到指定文件夹, 但是linux下很多的压缩程序只能将一个文件进行压缩,能够实现这三种需求的好像只有tar.gz和.zip,所以有时候只能先打包再压缩:
    1. *.tartar -rf all.tar *.jpg将所有的jpg照片打包为all.tar,-c意为产生新的包,-f指定产生的文件名,用tar -xf all.tar解压到当前文件夹。
    2. *.tar.gz,*.tgztar -czf all.tar.gz *.jpg 将所有的jpg文件打包压缩成all.tar.gz,用tar -czvf temp.tar.gz temp将temp文件夹打包压缩为temp.tar.gz,用tar -xzf all.tar.gz解压到当前文件夹。
    3. *.tar.gz2tar -cjf all.tar.gz2 *.jpg将所有的jpg文件打包压缩为all.tar.gz2,用tar -xjf all.tar.gz2解压到当前文件夹。
    4. *.tar.bz2tar -jxvf all.tar.tar.bz2解压到当前文件夹。
    5. *.tar.Ztar -cZf all.tar.Z *.jpg将所有的jpg文件打包压缩为all.tar.Z,用tar -xZf all.tar.Z 解压到当前文件夹。
    6. *.Zuncompress all.Z解压到当前文件夹。
    7. *.gzgzip -d all.gz或者gunzip -d all.zip解压到当前文件夹, gz filename 压缩文件。
    8. *.zipzip -r all.zip *.enc将所有的jpg文件打包压缩为all.zip,用zip -r temp.zip temp将temp文件夹及其内所有文件递归打包压缩为压缩包。zip。用unzip all.zip -d data解压到data文件夹中,用unzip all.zip解压到当前目录。
    9. *.rarrar a all.rar *.jpg将所有的jpg文件打包压缩到all.rar,用rar x all.rar将all.rar解压到当前目录。用rar c all.rar为all.rar添加注释,按下Ctrl+D结束输入。
    10. *.bz2bunzip -d all.bz2解压到当前目录。
    11. *.xzxz -kz filename将文件打包压缩为filename.xz,用unxz filename.xz或者是xz -dk filename.xz提取文件,参数-k保留原始文件。
  39. df -h 查看分区空间大小,df -lhT 查看文件格式,或者是df -hl,du -h查看当前目录使用大小,包括目录里的每一个子目录,使用du -h --max-depth=1 来只查看一级目录。

  40. du -sh * 查看当前目录下一级文件及目录大小(不包括 .git 隐藏目录), du -h -d 1 查看当前目录下文件夹大小

  41. du -sh 查看当前目录大小,du -sh xx 查看指定目录大小

  42. fdisk -l 查看磁盘信息

  43. sudo mount /dev/sda1 /media/disk 将磁盘 /dev/sda1 挂载到 /media/disk , 不过这样只有 root 才有读写权限,可以在中间加上 -o uid=pi,gid=pi 在树莓派中即可让 pi 也有读写权限

  44. ls -l|grep '^-'|wc -l 统计某文件夹下文件的个数 ls -l |grep "^d"|wc -l 统计文件夹下文件的个数

  45. eog xx.jpg 在 Ubuntu 打开照片。

  46. free ubuntu查看内存使用情况 free -h 查看内存使用状况,(*unix)

  47. free -h -s 3 -t 更好的查看内存使用情况,3秒刷新,展示单位,计算总和。

  48. xkill ubuntu动态的杀死某个进程,即用鼠标点击即可

  49. file filename 查看文件类型,binwalk filename 分析文件类型.

  50. history 查看历史命令

  51. 在终端中,Ctrl + A 回到命令开头,Ctrl + E 跳到命令结尾,Ctrl + R 在 history 中搜索命令

  52. 在终端中,Ctrl + U 清除当前命令,Ctrl + L,相当于 clear 清屏

  53. diff filename1 filename2 比较两个文件的不同,vimdiff 用vim一边比较一边编辑,还是彩色的

  54. xdg-open filename ubuntu下,以默认打开工具打开文件,比如说pdf html之类的

  55. start filename Windows 下,以默认打开工具打开文件。

  56. lsusb 查看外接设备 , lspci 查看所有设备情况 , lsblk 查看块状设备,即磁盘硬盘。
    1. lsblk 显示的7个栏目名称如下:
    2. NAME : 这是块设备名。
    3. MAJ:MIN : 本栏显示主要和次要设备号。
    4. RM : 本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
    5. SIZE : 本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
    6. RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
    7. TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。(LCTT译注,此处sr0的RO项没标记为1,可能存在一些错误?)
    8. MOUNTPOINT : 本栏指出设备挂载的挂载点。
  57. dmesg 查看启动日志,dmesg -T 查看系统日志,带时间参数。

  58. last 查看用户登录日志

  59. lastlog 查看当前登陆用户

  60. lastb 查看登陆失败的登陆信息

  61. env 查看系统环境变量

  62. uptime 查看开机时间

  63. smartctl --scan 查看所有磁盘,smartctl -a /dev/sda 查看磁盘信息

  64. smartctl -H /dev/sda 查看磁盘状态,显示为 PASSED 或者 OK,即为良好,FAILED 即有问题

  65. badblocks -s -v /dev/sda 检测磁盘坏块

  66. cat /proc/scsi/scsi 查看磁盘信息,一般常用于服务器中。

  67. hdparm -tT /dev/sda 测试硬盘 IO 性能,读写速度

  68. cat /proc/cpuinfo查看cpu信息,cat /proc/meminfo查看内存信息,和使用free的效果类似。

  69. nautilus /home打开图形化文件夹

  70. pip freeze来查看安装了那些Python的库

  71. 在cmd中查看某个命令的详细信息。XXX /?,比如说find /?

  72. /etc/passwd下存储的是系统用户的账户和密码

  73. 利用ssh上传下载文件
    1. 从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir
    2. 上传本地文件到服务器 scp /path/filename username@servername:/path
    3. 从服务器下载整个目录 scp -r username@servername:/var/www/remote_dir/ /var/www/local_dir
    4. 上传目录到服务器 scp -r local_dir username@servername:remote_dir
  74. ssh ro[email protected] -o "ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p" ssh 通过 socks5 ,需要安装 nc

  75. ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

  76. find / -name 'filename' 一个很有用的ubuntu下查找文件的命令

  77. 在Windows下jpg与JPG一样,但是在Linux下严格区分大小写,所以在上传服务器时注意照片后缀名

  78. 在windows下用win+Ctrl+D创建一个新的虚拟桌面,win+Ctrl+←或win+Ctrl+→来切换虚拟桌面,win+Ctrl+F4关闭虚拟桌面。在ubuntu下用Ctrl+Alt+↑或Ctrl+Alt+↓来切换桌面

  79. 连接投影仪,用 win + P 连接投影仪并选择投影模式。

  80. 在ubuntu下,Ctrl+A 回到命令行首,鼠标中键粘贴

  81. ubuntu命令行中 在命令最后加入&表示后台执行命令,但是终端关闭也将停止进程。在命令开头加上nohup表示不随终端的关闭而关闭,如果在ssh登陆远程桌面时很有用。nohup 命令 >log &表示后台执行命令,将结果输出到log文件中,停止ssh也继续进行。

  82. ubuntu下在两个命令行之间加上;&表示两个命令依次进行,加上&&表示前一个命令执行成功之后再执行下一个命令,加上|表示前一个命令的输出作为后一个命令的输入,加上>表示写入到文件中,如果已存在则强制覆盖,加上>>表示写入到文件中,如果已存在,则加在其末尾,加上’<’表示读取文件作为下一个执行的输入。

  83. |>的区别,|表示前一个命令的输出作为后一个命令的输入,>表示前一个命令保存到文本中。

  84. Windows下PPPOE拨号上网,rasdial "宽带连接" "账号" "密码",用rasdial /d或者disconnect /disconnect断开连接,也可以使用rasdial "宽带连接" "账号" *,这样就会让你输入手动密码,而且密码不会显示。

  85. Ubuntu 下系统log一般在/var/log 下

  86. Linux 下检验md5值,md5sum filename (默认参数-t 以纯文本方式读取,-b 以二进制方式读取),如果用 echo 重定向的话,应该使用 echo -n string|md5sum,因为 echo 默认输出是带一个换行符的

  87. 现在一般不再推荐使用 md5 ,起码应该改用 sha1 。在 Linux 下也自带相关工具 sha1sum sha256sum sha512sum sha224sum sha384sum 与 md5sum 使用方法一致。

  88. strings filename 显示文件中所有的 ASCII 字符。

  89. binwalk filename 查看文件的真实格式

  90. foremost -v -i filename 从文件中提取文件

  91. dd if=输入文件名 of=输出文件名 bs=一次(读出/写入)bytes skip=跳过blocks 数据块提取

  92. skipfish -o output_folder http://www.example.com 扫描网站漏洞,谷歌出品,品质保证

  93. ln oldfile newfil 创建一个硬链接 两者是同一个文件,两者只能在同一个分区内 只能是文件

  94. ln -s olddir newdir 创建一个软链接 相当于快捷方式 文件或文件夹

  95. base64 -d data base64解密,默认无参数时为加密

  96. calc/gnome-calculator 打开计算器

  97. gnome-system-monitor 系统管理器

  98. 测试电脑 CPU 性能,openssl speed -elapsed -evp aes-256-cfb ,最终结果在 8192 个比特的时候正常电脑都是三四十万的样子。

  99. gcc filename.c -o filename 使用 gcc 编译 C语言文件

  100. tracert www.baidu.com 跟踪网络请求,查看网络中间过了哪些节点

  101. ctfmon.exe Windows 下恢复输入法

  102. date 查看当前日期,time 查看当前时间 UTC 格林尼治时间,PRC 中国北京时间 为 UTC+8 , zh_CN 中国大陆简体中文,zh_TW,zh_HK,为台湾和香港的繁体中文。

  103. date +%F 查看格式化的日期,date +%Y-%m-%d 或者 date +%Y-%m-%d:%H:%M:%S, date +%s 查看当前时间戳, date -d @1602342382 时间戳转化为时间。

  104. cal 查看日历📅,date 查看时间和日期

  105. file /sbin/init 查看系统位数和 Linux 内核版本 cat /etc/issuecat /proc/version 查看系统版本号 ,cat /etc/redhat-release 或者 cat /etc/os-release 也可查看版本号,lsb_release -a 也可以查看版本号,hostnamectl 也可以查看版本信息。

  106. cat /etc/*-release 标准查看版本信息,centos 和 Debian 都行。

  107. getconf LONG_BIT 查看操作系统位数。

  108. nohup play *.mp3 保持后台运行

  109. screen 后台运行

  110. python -c "XXX" 直接执行 python 命令,python -m "XXX" 直接执行 python 模块,如 python -m SimpleHTTPServer

  111. vmstat,iostat Linux 系统监控命令

  112. iptables 系统防火墙。sudo service iptables status 关闭防火墙

    sudo iptables --list 查看本机的防火墙规则 sudo iptables -A INPUT -p tcp --dport 8888 -j DROP 拒绝对本机 8888 端口的 TCP 访问
    sudo iptables -A INPUT -p udp --dport 8888 -j DROP 拒绝对本级 8888 端口的 UPD 访问
    sudo iptables -A FORWARD -p udp --dport 843 -j DROP 拒绝转发目的端口 843 的 UPD 包
    sudo iptables -A INPUT -tcp --dport 8888 -j ACCEPT 打开对本级 8888 端口的 TCP 访问

  113. java -jar XXX.jar 命令行中打开使用 jar 文件

  114. hostname 查看服务器名,hostname -I 查看本机 IP

  115. which XX 查看命令的所在位置

  116. type xxx 查看命令,和 which 类似

  117. whereis XX 更大范围内查找命令的位置

  118. whatis XX 用一句话简单的解释这个语句的功能

  119. nslookup www.baidu.com 域名查 IP ,其实这个命令也能 IP 反查域名

  120. more /etc/services 查看端口对应的网络服务

  121. tcpdump -i wlan0 监听 wlan0 的流量,相当于网络抓包。tcpdump -i wlan0 -I 打开网卡监听模式

  122. /etc/resolv.conf DNS 服务器,实时更改,但是在每次连接网络时会被重置,可以用 nslookup 来测试你的 DNS

  123. /etc/network/interfaces 配置网络连接状态

  124. 开机启动脚本,开机启动的服务即可放在这里 /etc/rc.d/rc.local (改文件需先 chmod +x /etc/rc.d/rc.local 以确保其能在开机时启动) 或 /etc/sysctl.conf

  125. sudo dhclient eth0 使用 DHCP 获得 IP 地址,或请求重新分配 IP 地址

  126. 重启网络 /etc/init.d/networking reload/etc/rc.d/init.d/network restrart

  127. route 查看网关和路由,route -A inet6 查看 Ipv6 网关和路由

  128. 设置IP和掩码 ifconfig eth0 192.168.5.40 netmask 255.255.255.0 设置默认网关 route add default gw 192.168.5.1 设置 DNS echo "nameserver 202.202.202.20 ">> /etc/resolv.conf

  129. route del -net 169.254.0.0 netmask 255.255.0.0 删除路由,添加 IP route add -net 169.254.0.0 netmask 255.255.0.0 dev eth0

  130. 在 Windows 下随便新建一个文件夹,将其名字及改为 some_name.{ED7BA470-8E54-465E-825C-99712043E01C} ,打开,即为 Windows 所有设置。

  131. Ctrl + Shift + Alt + R 在 Ubuntu Gnome 下录屏

  132. systemctl list-unit-files Cent OS 下查看系统服务(service)

  133. Linux 运行级别,标准为 3,多用户模式,带界面的为 5,X Window 模式,0 为停机模式,1 为 单用户模式,2 为无网络的多用户模式,3 为完全的多用户模式,4 为用户自定义模式,5 为 X Window 模式,6 重启。

  134. systemctl get-default 查看当前运行模式,systemctl set-default multi-user.target 修改默认为 多用户模式,systemctl set-default graphical.target 修改默认为 X Window 模式。

  135. Linux 运行模式配置文件为 /etc/inittab 可以在修改系统启动进入的默认运行模式。

  136. startx 即可进入 X Window 模式。

  137. chkconfig --level 345 httpd on 在 3,4,5 模式下开机启动 httpd 服务。

  138. Cent OS 下的网络配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0,/etc/sysconfig/network,/etc/hosts,/etc/resolv.conf

  139. yum makecache 更改源文件之后新建缓存,yum clean all 清除原来的缓存。

  140. useradd -d /home/test test 新建一个 test 用户。

  141. userdel -r test 完全删除 test 用户。

  142. getenforce 查看 SELinux (Security Enhanced Linux, 安全强化 Linux)状态,这是一个由 NSA (National Security Agency, 美国国家安全局) 主导开发的 Linux MAC (Mandatory Access Control, 强制访问控制系统)的一部分。在你使用本地账户的时候登陆 FTP 的时候,在你设置 Nginx 的根目录在本地账户的根目录下的时候,它就会出现,并及时的 ban 你脚。

  143. setenforce 0setenforce Permissive 临时关闭 SELinux 。。。

  144. 在无法使用本地账号登陆 FTP 的时候,可以通过 setsebool -P ftpd_full_access 1 来让本地账户登陆 FTP 。

  145. 在无法将 Nginx 的根目录放在本地用户的根目录下的时候,可以通过 chcon -Rt httpd_sys_content_t /path/to/www 来让消除 403 错误。当然你要先将 Nginx 的运行账户为你的本地账户。

  146. 如果你真的要永久关闭 SELinux 的话,在 /etc/selinux/configSELINUX=enforcing 改为 SELINUX=disabled 即可。

  147. 在 Linux 下 使用 time XXX 表示测量 XXX 运行的时间。

  148. curl -X method http://XXX.com method={GET, POST, PUT, DELETE}

  149. taskkill /f /im python.exe Windows 下命令行终端中杀死 Python 进程

  150. ffmpeg -i input.flac -acodec libmp3lame output.mp3 将 flac 音频转换为 mp3 格式

  151. ffmpeg -i your-video.mp4 -ss 00:00:00 -vframes 1 thumb.png 将视频的第一帧生成封面

  152. ffmpeg -ss 00:00:10 -to 00:00:15 -i input.mp4 -vcodec copy -acodec copy output.mp4

    注意 -ss 最好放在 -i 前面,表示对输入视频按时切割,不然就是对输出视频的切割
    -to 00:00:15-t 5 的效果一致,前者表示截止,后者表示截多少
    -vcodec copy -acodec copy 表示视频解码器和音频解码器与原来一致,也可以直接使用 -codec copy
    可以加入 -accurate_see-avoid_negative_ts 1 参数效果更好, -accurate_seek 放在 -i 之前

  153. ffmpeg --thread 4 -i vae.mp4 -b 150k -vcodec h264 -s 352*278 -r 10 vaeleast.mp4 使用 FFmpeg 压缩视频 vae.mp4 ,生成 150 kb/s 10 fps 352*278 使用 h264 压缩方式的 vaeleast.mp4 文件。

  154. ffmpeg -i Lantern.mp4 -vcodec libx264 -preset fast -crf 20 -acodec aac -ab 128k aac.mp4 将视频格式转换为视频格式为 h264 音频格式为 aac 码率为 128k 的视频

  155. 将1080p转成720p,宽度自适应 ffmpeg -i input.mkv -c copy -c:v libx264 -vf scale=-2:720 output.mkv

  156. ffprobe vaeleast.mp4 查看视频信息

  157. ffplay vae.mp4 播放视频

  158. jpegtran -copy none -progressive <inputfile> <outputfile> 将标准型 JPEG (Baseline JPEG) 文件转化为 渐进式 JPEG (Progressive JPEG)文件。

  159. ffmpeg -i vae.mp4 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//ffprobe vaeout.mp4 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,// 获取视频时长

  160. pdftotext [options] <PDF-file> [<text-file>] 将 PDF 转换为 纯文本。 如果没有输出文件名的话,默认为输入文件名,只改后缀名,在我的 cent OS 上执行会报错 Syntax Error: Expected the default config, but wasn't able to find it, or it isn't a Dictionary 但是并不影响它正常工作。

  161. pdftotext -layout <PDF-file> [<text-file>] 保持原有文件的布局格式。

  162. pdftotext -f 10 -l 15 <PDF-file> [<text-file>] 只转换第 10 页到第 15 页的部分。

  163. pdftohtml [options] <PDF-file> [<html-file>] 将 PDF 转换为 HTML 文件。

  164. pdftohtml -xml <PDF-file> [<xml-file>] 将 PDF 转换为 XML 文件

  165. wordcloud_cli.py --text mytext.txt --imagefile wordcloud.png 将文本转换为 词云。

  166. pdftotext mydocument.pdf - | wordcloud_cli.py --imagefile wordcloud.png 将 PDF 转换为 词云。

  167. tail -f filename 动态显示文件最后十行。

  168. wget -c -r -np -k -p 127.0.0.1:5002 使用 wget 下载整站

  169. winget 大家都知道 wget ,但是却不知道在 Windows 下还有一个 winget

  170. wget https://packagecontrol.io/channel_v3.json -e use_proxy=yes -e https_proxy=127.0.0.1:1080 --no-check-certificate 为 wget 使用 代理

  171. axel -n10 http://xxx.xxx.xxx 多线程下载器

  172. nohup ss-server -c 10001.json >10001.log 2>&1 & 因为正常的 nohup 是忽略错误的,还是会将错误输出到屏幕上,我们可以将标准错误 (2) 重定向到标准输出 (1),这样就能够将错误也重定向到文件中。

  173. 退出 Telnet 连接,先输入 Escape 字符 Ctrl + [ ,然后再 quit 或者 exit 即可退出

  174. Windows 下查看所有的 WiFi 密码 for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear

  175. Linux 下 ping 4 下 ping -c4 www.baidu.com

  176. 获得外网 IP 地址 curl http://httpbin.org/ip 或者其他可用的网址有
    • ip.cn 还能使用 ip.cn/127.0.0.1 查看归属地
    • ipinfo.io
    • myip.ipip.net
    • ip.sb
    • ip.gs
    • cip.cc
    • ifconfig.me
    • ifconfig.io
    • ipinfo.io
    • httpbin.org/ip
    • api.ipify.org
    • ns1.dnspod.net:6666
    • icanhazip.com
    • ipecho.net/plain
    • ident.me
    • https://tnx.nl/ip
    • whatismyip.akamai.com
    • myip.dnsomatic.com
    • haoip.cn
    • myip.ipip.net
    • api.ipify.org
  177. curl -x http://127.0.0.1:1092 -i https://www.google.com/ 使用 http 代理

  178. curl -x socks5://[user:password@]proxyhost[:port]/ url 使用 sock5 代理

  179. curl --socks5 127.0.0.1:1080 ifconfig.io 查看本地代理的IP

  180. 生成32位纯随机密码 openssl rand -base64 24

  181. pip install whatportis 查询端口服务。whatportis 3306,这样不要在使用的端口上开启 http 服务了,chrome 不认。

  182. dig baidu.com 或者 host baidu.com 查询 DNS 。根据域名找IP

  183. dig -6 ipv6.google.com 查询 Ipv6 地址,dig @8.8.8.8 google.com 指定 DNS 服务器

  184. find . -name "*.pyc"|xargs rm -f 循环递归找到文件文件夹下所有的 pyc 文件,一直想找一个递归使用的命令,原来就是 xargs,所以也可以用来计算代码行数 find . -name "*.py"|xargs cat |wc ,然后用 find . -name "*.py"|wc 查文件数。

  185. 计算代码行数有专门的 命令,叫 cloc ,还有 linec

  186. 在任何编程语言中,陷入标准输入中都很难退出来,或者是在 Linux 命令中。退出标准输入使用 EOFCtrl + D 即可退出标准输入

  187. 更改 history 保存的行数,可以修改 HISTSIZEHISTORYSIZE ,然后使用 echo $HISTSIZE 是否生效

  188. diskutil list 查看磁盘信息

  189. curl https://intoli.com/install-google-chrome.sh | bash 在 centOS 上安装 Chrome 。

  190. google-chrome-stable --headless --disable-gpu --screenshot https://ele.me 使用 Google Chrome 获取网站截图

  191. iconv -f UTF8 -t GB18030 a.csv > a_new.csv 改变文件编码方式

  192. iconv -f GBK -t UTF-8 1.txt>2.txt 改变文件编码方式

  193. nslookup windard.com DNS 查询

  194. find . -type f -size +100M 查找100M以上的大文件

  195. find . -type f -size +100M -print0 | xargs -0 du -h | sort -nr 对查找结果按照文件大小做一个排序

  196. sudo du -hm --max-depth=2 | sort -nr | head -20 查找当前目录下前20的大目录

  197. /usr/lib/systemd/system/ centOS 上 services 的位置,/lib/systemd/system Ubuntu 上 services 的位置

  198. hostname -I 查看本机内网IP,curl -s ns1.dnspod.net:6666 查看本机的外网IP。

  199. curl -u username:password http://xx.xxhttp://username:[email protected] 都可以登录 basic auth。

  200. cat ~/.ssh/id_rsa.pub|pbcopy 或者 pbcopy<~/.ssh/id_rsa.pub 复制公钥到剪贴板,在 Windows 下为clip,在 Ubuntu 下 xclip

  201. pbpaste - 粘贴在屏幕上,pbpaste>t.text 粘贴到文件中

  202. echo 'hello'>world.txt 将输出保存到文件中。

  203. echo 'hello'|tee hello.txt world.txt 将输出保存到文件中,且输出到屏幕上。

  204. xxx|tee log.txt 运行程序,日志输出,同时记录到文件中。

  205. mkfile -n 160m test1 在 Mac 下创建指定大小的文件

  206. dd if=/dev/zero of=test.file count=1024 bs=1024 创建 1m 大小的文件,也可以使用 /dev/urandom 使用随机字符串填充

  207. /usr/share/dict/words 记录了 235886 个常用英文单词…

  208. youtube-dlyou-get 竟然是两个软件,国内外视频网站均可下载,甚至可以网易云。

  209. ps -ef|grep <processname> 查看进程占用内存。netstat -anp|grep <port> 根据占用端口查看进程

  210. fgCtrl + Z 放入后台的进程放到前台继续进行。

  211. bgCtrl + Z 放入后台的进程在后台继续进行,实际上放入后台的命令是并没有执行的,已经被挂起了。

  212. jobs 查看后台进程的状态,是挂起还是执行。

  213. & 就可以将进程放入后台,继续运行。nohup 只是为了将结果输出。后台进程会继续打印结果到平面上。

  214. nohup 的实际功能是让命令不会随着终端的结束而结束,后台进程是跟随着屏幕的生命周期,nohup 可以让命令在退出登录之后继续运行,而不仅仅只在当前会话。

  215. lrzsz 可以让你以 sz 或者 rz 来下载上传文件至服务器。

  216. 在 Windows 下的 CUI 中,使用 explorer . 使用资源管理器打开当前目录,在 Mac 下使用 open . 打开当前目录。

  217. vim 有时插入数据因为 tab 的原因会有问题,在插入最后的时候可以这样
     cat >> test.py <<EOF
     > print "hello world"
     >
     > EOF
    
  218. ifconfig | grep "inet " 查看本机 ip

  219. sysctl -n machdep.cpu.brand_string Mac 上查看 CPU 的具体型号

  220. 查看 ssh 登陆失败的请求 grep "Failed password" /var/log/secure 或者 grep "Failed password" /var/log/auth.log

  221. dmesg | grep gunicorn 查看 Gunicorn 因为 OOM 内存超限被 kill 的日志

  222. ip route list table local 查看所有本机ip,包括内外网地址。

MySQL常用命令

  1. 在管理员权限下cmd里,net start mysql启动MySQL服务。常用的还有net stop mysql

  2. 在管理员权限下cmd里,httpd -k start启动Apache服务。常用的还有httpd -k stophttpd -k restart

  3. 登陆MySQL,mysql -u username -p password

  4. 查看所有的数据库,show databases;,选择某个数据库,use XXX;,查看所有的表单,show tabless;

  5. 查看某个表单的内容,select * from XXX;,也可以选择查找,select * from XXX where XXX="XXX";.

  6. 模糊查找。有两种方法:1.select * from XXX where XXX regexp "XX"; 2. select * from XXX where name like "%XXX%";

  7. 查看表单不重复的列数 select count(distinct name) from railway; 或者 select count(distinct(name)) from railway;

  8. 查询不重复的列就是 select distinct name from railway; 查询所有列就是 select count(name) from railway;

  9. 查看某表单的有哪些选项,show columns from tablename from databasename; 或者是 describe tablename; 也可以简写为 desc tablename, 前两者效果一致,如果想查看更详细内容,如查看每一列的编码方式,可以使用 show full columns from tablename;

  10. 新建数据库,create database XXX charset=utf8;,新建表单create table tablename(name char(15),id int);

  11. 新建数据库并设置编码 CREATE DATABASE 数据库名 DEFAULT CHARACTER SET UTF8 DEFAULT COLLATE utf8_general_ci;

  12. 更改已新建的数据库 ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;

  13. 创建好数据库之后为连接设定字符编码 set names utf8

  14. 新插入的行自动序号加一,AUTO_INCREMENT

  15. select 1 union select 2 union select 1 联合查询结果,将返回结果去重

  16. select 1 union all select 2 union all select 1 联合查询结果,查询结果不去重

  17. union 或者 union all 是将两个查询的结果,强行加到一起,所以其实是增加行数,并非把列合到一起。

  18. 真正的联合查询是 join 连接。默认是 inner join.

  19. 今天面试的时候学习到了,还有 natural join 也是将两个表相连,字段相同的列需要值相等,然后只保留一行。

  20. 所以 nature join 可以代表 join 而且自动 on 字段相同的列匹配。今天面试的候选人,我对不起你,我还以为语法错误了。

  21. 然后 join 的时候可以用 where 条件,可以直接当 on 使用,不过只能用于 join,不能用于其他的 left join 之类。

  22. select * from user natural join relationship where per = 'A'; 是和 select * from user inner join relationship on user.id = relationship.id where per = 'A'; 一样的结果。

  23. inner join 就是 join,只展示两张表中都有的行,如果存在不匹配,则不展示,内连接。

  24. left join 就是,返回左表所有的行,左连接

  25. right join 就是,返回右表所有的行,右连接

  26. full join,MySQL 不支持,SQL Server 才有,外连接。

  27. select A.id, B.name from user A, account B where A.id = B.user_id; 其实 联合查询也不一定非要用 join 可以直接双表联查。

  28. 插入数据,insert into tablename(name,id) values("name","id");

  29. 更新数据,update tablename set name="XX" where name="XXX";

  30. 删除表单数据,delete from XXX where XX=XX

  31. 删除表单,drop table XXX;,删除数据库,drop database XXX;

  32. 删除表中所有数据,保存表结构,truncate table tablename; 自增ID也将从1重新计数。

  33. 查看数据库编码格式,show variables like "%character%";

  34. 退出,exit或者是quit

  35. 在已有的table中插入一列 alter table tablename add column columnname varchar(20) not null;,或者是加入到某一列的后面alter table tablename add column columnname varchar(20) not null after anothercolumn;或者是加入到第一列alter table tablename add column columnname varchar(20) not null first;

  36. 设定某一列为keyALTER TABLE 表名 ADD (字段名 类型)constraint 约束的名字 primary key; ALTER TABLE 表名 ADD (字段名 类型);ALTER TABLE 表名 ADD constraint 约束的名字 primary key(字段名);

  37. 修改数据库表的字段 alter table tablename modify column columnname varchar(256); 用的是 modify 关键字,column 可以省略。

  38. 修改数据库表的字段名 alter table tablename change column old_name new_name varchar(10); 用的是 change 关键字,column 可以省略.

  39. 在已有的 table 中插入两列 alter table tablename add column columnname varchar(20) not null, add column columnname int;

  40. 删除一列 ALTER TABLE "table_name" DROP COLUMN "column_name";

  41. 插入一个索引 alter table table_name add index index_name(column_name)

  42. 删除一个索引 alter table table_name drop index index_name;

  43. ORDER BY id DESC 按逆序排列查找的结果,ORDER BY id ASC 按正常顺序,即升序排列查找的结果。

  44. grant create, drop, select, insert, update, delete, index on awesome.* to 'www-data'@'localhost' identified by 'www-data'; 创建一个用户,并赋予其创建,删除表,查找,添加,更改和删除表单的权限。

  45. grant all on test.* to test@'192.%.%.%' IDENTIFIED BY 'test'; 给用户赋予一串IP的登录管理权限

  46. MySQL 8 之后,创建用户赋予权限需要分成两步了。CREATE USER 'www-data'@'%' IDENTIFIED BY 'www-data';,GRANT ALL PRIVILEGES ON *.* TO 'www-data'@'%' WITH GRANT OPTION;

  47. CREATE DATABASE demo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创建数据库。

  48. 创建表单和插入数据

CREATE TABLE  `demo`.`user` (
`uid` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT  '用户uid',
`username` VARCHAR( 20 ) NOT NULL COMMENT  '用户名',
`password` VARCHAR( 32 ) NOT NULL COMMENT  '用户密码'
) ENGINE = INNODB;
INSERT INTO `demo`.`user` (`uid`, `username`, `password`) VALUES ('1', 'windard', MD5('123456'));
  1. 正常的创建表单 create table student(id int auto_increment primary key,name varchar(128),score int,index(id));
CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(128) DEFAULT NULL,
  `score` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
  1. 导出数据库 mysqldump -u username -p password database > database.sql

  2. 导出数据库表 mysqldump -u username -p password database table > database.sql

  3. 如果只是想导出数据,select * from user into outfile '/tmp/user.txt'

  4. 导入数据,需自行建好 database,然后 source database.sql 或者是 mysql -u username -p password database < database.sql

  5. 插入大量数据 insert into student(name,score) value('Mary',67), ('Tom',78), ('Heny',88), ('Lily',95), ('Amy',75), ('Bob',83), ('Jay',84), ('Piter',97);

  6. create table bbs_ip(id int, ip_start varchar(128), ip_end varchar(128), addr varchar(256), operator varchar(256)); 使用 MySQL 查询 IP 地址。

  7. status 查看当前数据库的状态。

  8. show engines; 查看数据库提供哪些存储引擎,show variables like '%storage_engine%'; 查看数据库当前默认存储引擎.

  9. show create table tablename; 查看数据库表的创建命令,包括使用何种引擎,何种编码。show create database databasename; 查看数据库的创建命令,包括使用何种字符集。

  10. 创建命令不一定能准确的反映出当前的数据库表的编码状态,使用 show table status from databasename where name='tablename'; 或者 mysqlshow -u username -p –-status databasename tablename

  11. 查看数据库的默认编码方式 show variables like "%character%"; 查看数据库的编码字符集 show variables like 'collation%';,查看数据库的全部表编码 show table status from databasename

  12. 创建数据库时使用 CHARSET=utf8 的最后显示的编码是 utf8_general_ci, 但是现在推荐使用 CHARSET=utf8mb4 存储更长,主要是支持 emoji ,显示的编码是 utf8mb4_general_ci .

  13. charset 显示的编码方式,collation 显示的字符集。编码方式比字符集要小,比如同样的 utf8 编码,但是字符集区却有 utf8_general_ci 和 utf8_unicode_ci 等等,可以通过 show collation; 查看数据库支持的字符集和编码格式。

  14. set password for 'root'@'localhost'=password('passwd'); 修改 ROOT 密码。

  15. update user set gender = case gender when 'F' then 'M' else 'F' end; 性别反转 update user set gender = if(gender='F', 'M', 'F');

  16. 如果性别是用 0 和 1 标识的话,还可以直接取反,注意不是按位取反。update user set sex = !sex; 如果按位取反 ~sex 得到的是负数。

  17. 磁盘整理,收集碎片 ALTER TABLE table_name ENGINE = Innodb;

  18. select table_schema,table_name,round((data_length+index_length)/1024/1024/1024,2) 'Used_GB',round((data_length)/1024/1024/1024,2) 'data_GB',round((index_length)/1024/1024/1024,2) 'index_GB',round((data_free)/1024/1024/1024,2) 'Free_GB' from information_schema.tables order by round((data_length+index_length)/1024/1024/1024,2),round((data_free)/1024/1024/1024,2) limit 10000; 查看 MySQL 磁盘占用量

vim常用命令

hjkl
左下上右
  1. Esc 退出文本编辑模式进入XX模式,按i(insert)或者a(append)进入文本编辑模式。

  2. 进入文本编辑模式还可使用 o.

  3. 在XX模式中,按v(visual)进入选择模式,若要进入文本编辑模式,先按Esc,再按下i.

  4. 在选择模式中,选取了某段文本之后,按y(yank) 复制, 按c(cut) 剪切 然后到需要粘贴的地方,按下p(paste)即粘贴,yy 即复制当前行。

  5. 撤销,在XX模式中,按u(undo)即撤销,使用 Ctrl + R 可以撤销 撤销的行为.

  6. 在XX模式中,先按/ 再输入查找的内容,即可进行查找,vim支持部分正则匹配.找到之后使用 n 跳到下一个匹配项,使用 shift + n 调到上一个匹配项

  7. 在XX模式中,先按下:!,再输入shell命令即可执行

  8. 在XX模式中,先按下:,再按下w, 即保存文本,或者按下wq即保存并退出,或者按下q!,即不保存退出。

  9. 在XX模式下,按两下d,即可删除该行,按下x,即可删除该字符

  10. XX模式表示命令模式。

  11. XX模式下,:Sex 打开另一个窗口显示当前目录文件结构,同样按:q!退出窗口

  12. XX模式下,:sp + 文件名 打开一个垂直窗口显示文件,Ctrl+W在两个窗口之间转换。

  13. XX模式下,:vs + 文件名 打开一个水平方向的窗口显示文件。

  14. XX模式下,$ 移动到行尾,0 移动到行头

  15. XX模式下,d$ 删除到行尾,dw 删除改单词

  16. XX模式下,删除的内容在寄存器中,在需要粘贴的行之上,使用 P 即可粘贴在下一行.

  17. XX模式下, 使用 r[\w] 先使用 r(replace) 进入替换模式,然后键入替换后的字符.

  18. Ctrl+P上下文寻找,自动补全。

  19. 在启用了代码折叠之后,在XX模式下,按za打开或折叠代码,按zM折叠所有代码,按zR代开所有代码

  20. XX模式下,按:加行数,可以直接跳到指定行

  21. XX模式下,按:split 分割视窗。

  22. XX模式下,按:e filename 打开编辑某文件

  23. XX模式下,Ctrl + G 查看该文件的信息

  24. gg 跳转至文件第一行开头,G(Shift + ‘g’) 跳转至文件最后一行开头

  25. :[\d] 跳转至某一行, 或者在 XX 模式下 [\d]G 注意观察输入数字时,在页面右下角会出现输入数字,然后键入 Shift + g 跳转至改行.

  26. XX模式下 :s/thee/the 将本行第一个 thee 替换为 the

  27. XX模式下 :s/thee/the/g 将本行所有 thee 替换为 the

  28. XX模式下 :%s/thee/the/g 将全文所有 thee 替换为 the

  29. vimtutor vim 的教程

  30. gg 跳到文件开头

  31. shift + g 跳到文件结尾

  32. XX模式下,:set nu 显示行号

  33. XX模式下,:colorscheme 可以查看当前配色方案,:colorscheme <tab> 可以挑选配色方案

让我来秀一下我的vimrc

"设置语法高亮
syntax enable
syntax on
"显示行号
set number
"空格代替tab
set expandtab
"设置标尺
set ruler
"设置复制模式
set paste
"代码缩进
set shiftwidth=4
set softtabstop=4
set tabstop=4
"智能对齐
set autoindent
set smartindent
"自适应不同的语言智能对齐
filetype indent on
set showmatch
"高亮搜索结果
set hlsearch
"let mapleader=";"
filetype on
filetype plugin on
"开启实时搜索
set incsearch
"搜索时忽略大小写
set ignorecase
"配色方案
set background=dark
colorscheme desert
"set laststatus=2
set ruler
"高亮显示当前行/列
set cursorline
"set cursorcolumn
"禁止折行
set nowrap
"代码折叠基于语法/基于缩进
set foldmethod=indent
"set foldmethod=syntax
"启动vim时关闭代码折叠
set nofoldenable
set laststatus=2  " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
 " 设置在状态行显示的信息

git常用命令

  1. git add -A 增加当次全部更改到暂存区

  2. git reset HEAD file 撤销暂存区的修改

  3. git checkout -- filename 用于误删文件恢复。撤销文件修改,改文件并未提交到暂存区

  4. git commit -m "XXX" 提交当次全部更改,并注释为XXX

  5. git commit --amend 将此次修改包含到上次 commit 中, git commit --amend --no-edit 可以免除编辑

  6. git push origin master 将本次全部更改提交到服务器上

  7. git pull 更新本地文件与服务器保持一致

  8. git pull origin master --rebase 当拉取远程数据的时候默认采用的 merge 模式,选择使用 rebase 拉取远程数据同步

  9. git clone https://github.com/XXX/XXX.git 将XXX的XXX项目克隆到本地, git clone https://github.com/XXX/XXX.git yyy 将项目克隆并指定到 yyy 目录

  10. git branch branchname 创建分支

  11. git checkout -b branchname 创建并切换分支

  12. git checkout -b xxx origin/develop 根据 origin develop 切换分支

  13. git checkout origin/develop 直接切换到 origin develop 分支,但是不能 push

  14. git branch -d branchname 删除分支

  15. git checkout . 舍弃当前未提交的内容,本地所有修改的,没有的提交的,都返回到原来的状态。

  16. git checkout tags/1.4.9 -b 1.4.9 切到某个 tag 版本

  17. git merge branchname 合并某分支到当前分支

  18. git status 查看当前 git 状态

  19. git tag tagname 创建 Tag

  20. git tag -d tagname 删除 Tag

  21. git push origin tagname 推送 Tag 到远程

  22. git push --tags 推送所有 tags

  23. git checkout -a 查看所有分支

  24. git rebase {branchname} 重置 HEAD 到当前分支

  25. git rebase -i {FETCH_HEAD} 将所有分支重置,并合并为一个 commit,在编辑分支页面,s 跳过,p 保留,最终同意填写 commit message

  26. 一般来说,合并 commit 就是 git rebase -i master 然后在交互式中,p 第一个,s 剩下的所有,就会全部合并称为一个 commit。

  27. git checkout {branchname} 改变本地当前分支

  28. git log 查看日志 git log --pretty=oneline 按行查看日志 git log --graph 图形化查看日志, git log test.file 查看某个文件的log 记录

  29. 在 Linux 下上一个版本是 HEAD^ 在 Windows 下是 HEAD~

  30. git reset --hard HEAD^ 回退到上一个版本,HEAD^^ 回退到上两个版本,HEAD~100 回退到前一百个版本,或者直接加版本号 git reset --hard 1c73fa

  31. git revert HEAD^ 回退到上一个版本,但是本次提交信息依旧保留,内容回滚,变为需 add 和 commit 的模样。

  32. git revert --abort 撤销此次回退。因为回滚还是会保留此次的修改,并入回滚那次的修改,如果两次有修改同一个文件,就会 merge 失败,不如用 reset。

  33. git revert commit_id -m [1,2] 回滚某次合并,-m 1 以 master 分支为主,-m 2 以 develop 分支为主。

  34. git reflog 查看 git 操作历史, 查看该分支上所有历史,包括已删除 commit 。

  35. git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git 修改远程仓库位置

  36. git remove -v 查看所有远程地址

  37. git diff 当前所有未提交的文件与上个版本之间的差异 git diff --stat 单行显示比较结果 git diff --name-status 只显示文件名

  38. git diff filename 对比已修改文件内容,只能是未提交到暂存区的文件

  39. git diff --cached 对比已经提交到暂存区与上个版本之间的差异

  40. git diff FETCH_HEAD:setup.py setup.py 专门对比某个文件的区分,或者 git diff FETCH_HEAD setup.py

  41. git diff HEAD 对比已经提交到暂存区的文件或未提交到暂存区的文件与上个版本之间的差异

  42. git diff HEAD^ 与当前版本与上一个版本对比区别,git diff 版本号1 版本号2 filename 对比两个版本号里的某个文件 git diff 版本号1 版本号2 比较两个历史版本之间的差异 (版本号也可以用于换成 branch)

  43. git difftool 使用图形化的对比工具, 即 vimdiff

  44. 在根目录下创建 .gitignore 文件,该文件内的所有文件名的文件将不再被跟踪,若上一个版本库中已有这些文件,则需先在版本库中将这些文件删去

  45. .gitignore 效果相似的是 .git/info/exclude ,将文件名写入这里也是不会被 git 跟踪

  46. 在 fork 他人的代码后在自己的代码库更新至别人最新代码。
    1. 设定一个他人的远程关联 git remote add upstream https://github.com/windard/Python_Lib.git
    2. 直接 pull 别人的最新代码 git pull upstream {branchname}
    3. push 代码到自己的远程 git push origin master
  47. git push origin --delete <branchName> 或者 git push origin :<branchName> 删除远程的分支

  48. git stash 保存当前修改到栈上,即不用 add 也不用 commit

  49. git stash pop 将上次保留到栈上的修改还原回来

  50. git stash list 查看所有的栈上保留的修改

  51. git stash clear 清空栈

  52. git stash drop 删掉 stash 栈顶更改

  53. git config --global user.name "yourusername" git config --global user.email "youremail" 设定本地账户信息

  54. git config --global core.ignorecase false 开启大小写敏感,默认在 Windows 和 Mac 上不敏感。

  55. git config --global pull.rebase true 开启 pull 使用 rebase 模式,默认是 merge 。

  56. git config -l 查看所有本地仓库 Git 变量

  57. git fetch origin master 拉取 origin 的 master 分支到本地,用来给本地分支merge或者rebase

  58. git fetch origin pull/766/head 拉取未合并的 pr 。

  59. git log --all --oneline | grep "search query" 或者 git log --grep="search query" 搜索 git commit

  60. git blame filename 查看代码文件历史记录,包括作者和commit记录

  61. git diff >1.diff 生成普通的 diff 文件,可以用来 apply,但是不能用来 am

  62. git format-patch commmit_id 生成 commit_id 之后代码变更的 git patch 文件,包含 commit 信息

  63. git format-patch -2 将最近的两次 commit 打成 git patch

  64. git apply 000-message.patch 应用代码变更

  65. git apply --stat newpatch.patch 查看变更

  66. git apply --check newpatch.patch 校验变更是否有冲突

  67. git am newpatch.patch 应用 patch ,创建对应的 commit

  68. 给 GitHub 上项目提交 pr https://github.com/apache/thrift/pull/2090

  69. GitHub 上 pr 的 diff 信息 https://github.com/apache/thrift/pull/2090.diff

  70. GitHub 上 pr 的 patch 信息 https://github.com/apache/thrift/pull/2090.patch

sublime常用快捷键

  1. Ctrl + Shift + P 打开控制面板

  2. Ctrl + Shift + T 打开上一个关闭的页面

  3. Ctrl + C 复制

  4. Ctrl + V 粘贴

  5. Ctrl + O 打开

  6. Ctrl + N 新建一个新页面

  7. Ctrl + D 往下匹配选中内容

  8. Alt + F3 匹配全文选中内容

  9. Ctrl + F 全文查找

  10. Ctrl + Shift + F 多文件查找

  11. Ctrl + Shift + L 光标移动到选中部分每一行的行尾

  12. Ctrl + G 跳转至某一行

  13. Ctrl + P 跳转至某一页面

  14. Ctrl + W 关闭当前页面

  15. Ctrl + Q 关闭应用

  16. Ctrl + S 保存

  17. Alt + F4 关闭应用

  18. Ctrl + R 跳转至当前文章的某一部分

  19. Ctrl + A 全部选中

  20. Ctrl + Z 撤销上一步

  21. Ctrl + Y 取消撤销

  22. Ctrl + B 运行程序

  23. Ctrl + H 查找并替换

  24. Esc 关闭运行窗口

  25. Ctrl + X 剪贴

  26. Ctrl + ` 打开python命令行

  27. Tab 缩进

  28. Shift + Tab 去除缩进

  29. Ctrl + L 选择整行

  30. Ctrl + / 注释选中的部分

  31. Alt + Shift + N 分屏

  32. F11 全屏模式

  33. Shift + F11 免打扰模式

  34. Ctrl + K + B 打开或关闭侧边栏

  35. Ctrl + K + U 将选中部分全部转换为大写

  36. Ctrl + K + L 将选中部分全部转换为小写

  37. Ctrl + Shift + P :view [Tabs] 打开或关闭 菜单栏,标签栏,导航地图,状态栏,侧边栏。

about_sublime

个人的用户设置

{
    "font_face": "Microsoft YaHei",
    "font_size": 14,
    "highlight_line": true,
    "ignored_packages":
    [
        "Vintage"
    ],
    "tab_size": 4,
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true,
    "update_check": false
}

使用的插件

BracketHighlighter
ChineseLocalization
Emmet
Evaluate Javascript
Git
GotoDocumentation
JsFormat
JEDI
Package Control
Tag
ConvertToUTF8
ZenCoding
CSS3
WordCount

纯享阅读~ Click me
headlogo   Windard

但行好事,莫问前程

Blog

Opinion

Project

页阅读量:  ・  站访问量:  ・  站访客数: