提高工作效率的shell命令
网络上介绍linux命令的文章很多。我相信通过百度、Google都轻易地搜索出来,或者使用命令man YOUR_COMMAND
,会列出YOUR_COMMAND的使用手册。再造“轮子”并不是我的意愿。本文从常见的实践使用出发,介绍一些认为能提高开发效率的操作&流程。
这个网站不错,里面有详细的命令选项说明和使用实例。
前后台切换
Windows系统里,可以通过ctrl + d、alt + tab,将应用分别切换前后台。在命令行界面系统下,使用以下将几条命令就能完成同等功能。
命令 | 说明 |
---|---|
ctrl + z | 将当前前台执行的命令放到后台,并且暂停 |
jobs | 查看当前有多少在后台运行的命令 |
fg | 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg ${JOB_NUM} 将选中的命令调出,${JOB_NUM} 是通过jobs命令查到的后台正在执行的命令的序号(不是pid) |
bg | 将一个在后台暂停的命令,变成继续执行。如果后台中有多个命令,可以用bg ${JOB_NUM} 将选中的命令调出,${JOB_NUM} 是通过jobs命令查到的后台正在执行的命令的序号(不是pid) |
gdb断点调试,显示
如果你是使用gdb ./YOUR_APP
启动,调试过程中你需要不断的使用list
命令,显示源码来跟踪进度。然而启动时加上--tui
选项,就没有这个烦恼。
目录下递归查找内容
经常需要查找字符,被哪些文件里引用。实现这个功能需要3个shell命令配合使用find
、xargs
和grep
从当前目录及子目录下,搜索YOUR_WORD
find . | xargs grep YOUR_WORD
从当前目录及子目录后缀为*.txt的文件,搜索YOUR_WORD
find . -iname "*.txt" | xargs grep YOUR_WORD
svn、git的diff tool
vim -d FILE_A FILE_B
解决git/svn下载后要修改文件执行权限
- svn
linux:
svn propset svn:executable on TARGET_FILE svn commit -m "MESSAGE" TARGET_FILE
windows:
右键 - > propeties ->new ->executable. commit修改
- git
git update-index --chmod=+x TARGET_FILE git update-index --chmod=-x TARGET_FILE git add TARGET_FILE git commit -m "MESSAGE"
windows:
没细究!!欢迎提供!!
资源上传下载的3种方法
-
lrzsz 先介绍这3个方法里,我使用频率最高的命令lrzsz。它让传输文件操作,变得像在本地操作一样。但它不能在系统默认的terminal下工作, 需要依赖如xshell,securecrt,iterm2等工具才能使用。 将file从本机上传到远程机,
rz file
将file从远程机下载到本地sz file
-
scp(ssh支持的服务) 上传本地文件到服务器
scp upload_file user@host:/upload_path/
从服务器上下载文件scp user@host:/download_file down_path
以上是上传下载普通文件的命令,对于上传下载目录,只需要增加-r选项即可 上传目录到服务器scp -r upload_dir user@host:download_path
从服务器下载整个目录scp -r user@host:/dowload_dir download_path
-
netcat 从远程机下载到本地
# 远程机 nc -l -p port < file # 本地机 nc host port > get-pip.py
原文:
https://lizijie.github.io/2018/05/06/%E6%8F%90%E9%AB%98%E5%B7%A5%E4%BD%9C%E6%95%88%E7%8E%87%E7%9A%84shell%E5%91%BD%E4%BB%A4.html
作者github:
https://github.com/lizijie