提高工作效率的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命令配合使用findxargsgrep
从当前目录及子目录下,搜索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

PREVIOUSlibevent 偏移读取缓存evbuffer_copyout_from
NEXT常见代码英文词汇缩写