九个能够提高生产效率的bash命令技巧
技巧一、用命令行往文件的顶部添加文字
每次我都会重新寻找这个命令的写法。下面就是如何使用往一个文件顶部添加一行的方法:
复制代码代码如下: sed -i '1s/^/line to insert/' path/to/file/you/want/to/change.txt
技巧二、用命令行往配置文件里插入多行文本
这种方法非常简单,很多人都知道,下面就是如何用命令行将(>>)多行文本插入一个文件中。这里使用的是语法,它能让你通过块文本符号来将段落插入文件中,通常用的符合是EOF(意思是 “End Of File”):
复制代码代码如下:catpath/to/file/to/append-to.txt"EOF"
export PATH=$HOME/jdk1.8.0_31/bin:$PATH
export JAVA_HOME=$HOME/jdk1.8.0_31/
EOF
>><<
两个”EOF“之间的所有内容都会被添加到文件中。
技巧三、用命令行递归方式全局搜索目录文件和替换
如果你使用Eclipse,ItelliJ或其它IDE,这些工具的强大重构能力也许会让你轻松实现很多事情。但我估计很多时候你的开发环境中没有这样的集成工具。
如何使用命令行对一个目录进行递归搜索和替换?别想Perl语言,你可以使用 and 。
复制代码代码如下:# OSX version
find . -type f -name '*.txt' -exec sed -i 's/this/that/g' {} +
使用了一段时间后,我总结写出了一个函数,添加入了 .bashrc ,就像下面这样:
复制代码代码如下:function sr {
find . -type f -exec sed -i "s/$1/$2/g" {} +
}
你可以像这样使用它:
复制代码代码如下:sr wrong_word correct_word
技巧四、用命令行在vim和Dropbox里开启一个临时文件
我过去喜欢用Emacs里的scratch facility功能。也经常用Vim快速创建临时文件。下面这两个函数是使用openssl生成随机的字符串作为文件名:
复制代码代码如下:function sc {
gvim ~/Dropbox/$(openssl rand -base64 10 | tr -dc 'a-zA-Z').txt
}
function scratch {
gvim ~/Dropbox/$(openssl rand -base64 10 | tr -dc 'a-zA-Z').txt
}
在命令行窗口输入sc或scratch,一个新的gvim或macvim窗口就会弹出来,里面会加载一个随机文件名的临时文件。
技巧五、用命令行下载文件,支持链接转向、HTTPS和安全加密等情况
下载一个页面输出到终端,跟随链接转向,忽略安全异常:
复制代码代码如下:curl -Lks some-url
<>
下载一个链接,跟随链接转向,忽略安全异常:
[/code]curl -OLks
这里用了很多参数,你可以阅读这个简单的文档来了解它们。
技巧六、Bashmarks
你还没有在.bashrc里使用吗?还在等待什么?它真的非常有用。它能帮你保持历史操作,跳回到你经常使用的目录。下面是我的配置文件里脚本,但我想上面的链接能提供你更多技巧:
复制代码代码如下: # USAGE:
# s bookmarkname - saves the curr dir as bookmarkname
# g bookmarkname - jumps to the that bookmark
# g b[TAB] - tab completion is available
# l - list all bookmarks
# save current directory to bookmarks
touch ~/.sdirs
function s {
cat ~/.sdirs | grep -v "export DIR_$1="~/.sdirs1
mv ~/.sdirs1 ~/.sdirs
echo "export DIR_$1=$PWD"~/.sdirs
}
# jump to bookmark
function g {
source ~/.sdirs
cd $(eval $(echo echo $(echo \$DIR_$1)))
}
# list bookmarks with dirnam
function l {
source ~/.sdirs
env | grep "^DIR_" | cut -c5- | grep "^.="
}
# list bookmarks without dirname
functionl {
source ~/.sdirs
env | grep "^DIR" | cut -c5- | grep "^.=" | cut -f1 -d "="
}
# completion command for g
function _gcomp {
local curw
COMPREPLY=()
curw=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -W '_l' -- $curw))
return 0
}
# bind completion command for g to _gcomp
complete -F _gcomp g
>>>
技巧七、从格式化输出里提取一列(我最常使用的awk技巧)
我几乎天天都会使用它。真的。经常会有一些输出,我只需要其中的第二列,或第三列,下面这个命令就能做到这些:
复制代码代码如下:#Sample output of git status -s command:
$ git status -s
M .bashrc
?? .vim/bundle/extempore/
# Remove status code from git status and just get the file names
$ git status -s | awk '{print $2}'
.bashrc
.vim/bundle/extempore/
为什么不写个函数,让我们随时都可以用呢?
复制代码代码如下: function col {
awk -v col=$1 '{print $col}'
}
这使得提取列非常容易,比如,你不想要第一列?简单:
复制代码代码如下:$ git status -s | col 2
.bashrc
.vim/bundle/extempore/
技巧八、忽略头x个词
我对很着迷,我感觉它就像一把快刀。但有时候用它获得的结果需要调整一下,也许需要取得一些值。例如,你想去掉下面文件影像里的一些信息:
复制代码代码如下:function skip {
n=$(($1 + 1))
cut -d' ' -f$n-
}
下面是如何使用它:
使用 docker images 得到下面的输出:
复制代码代码如下:$ docker images
REPOSITORY TAG IMAGE IDCREATED VIRTUAL SIZE
none none65a9e3ef71713 weeks ago 1.592 GB
none none7c01ca6c30f23 weeks ago 11.1 MB
none none9518620e6a0e3 weeks ago 7.426 MB
none none430707ee7fe83 weeks ago 7.426 MB
boot2docker/boot2dockerlatest1dbd7ebffe313 weeks ago 1.592 GB
spaceghost/tinycore-x86_64 5.4 f47686df00df7 weeks ago 11.1 MB
durdn/bithub latestdf1e39df8dbf8 weeks ago 100.9 MB
none nonec5e6cf38d9858 weeks ago 100.9 MB
nginxlateste426f6ef897e12 weeks ago100.2 MB
zoobab/tinycore-x64latest8cdd417ec6118 months ago7.426 MB
scratchlatest511136ea3c5a20 months ago 0 B
<><><><><><><><><><>
使用上面的函数,你可以获取所有的IDs:
复制代码代码如下:$ docker images | col 3
span class="type"IMAGE
65a9e3ef7171
7c01ca6c30f2
9518620e6a0e
430707ee7fe8
1dbd7ebffe31
f47686df00df
df1e39df8dbf
c5e6cf38d985
e426f6ef897e
8cdd417ec611
511136ea3c5a/span
<><>
进一步处理:
复制代码代码如下:docker images | col 3 | xargs
IMAGE 65a9e3ef7171 7c01ca6c30f2 9518620e6a0e 430707ee7fe8 1dbd7ebffe31 f47686df00df df1e39df8dbf c5e6cf38d985 e426f6ef897e 8cdd417ec611 511136ea3c5a
但前面的”IMAGE”字符我也想去掉:
复制代码代码如下:docker images | col 3 | xargs | skip 1
65a9e3ef7171 7c01ca6c30f2 9518620e6a0e 430707ee7fe8 1dbd7ebffe31 f47686df00df df1e39df8dbf c5e6cf38d985 e426f6ef897e 8cdd417ec611 511136ea3c5a
完整的写下来就是这样:
复制代码代码如下:docker rmi $(docker images | col 3 | xargs | skip 1)
技巧九、创建自己的命令包
在bash里,你可以很容易的创建自己的命令组件,你可以看一下下面我写的:
复制代码代码如下: function dur {
case $1 in
clone|cl)
git clone git@bitbucket.org:nicolapaolucci/$2.git
;;
move|mv)
git remote add bitbucket git@bitbucket.org:nicolapaolucci/$(basename $(pwd)).git
git push --all bitbucket
;;
trackall|tr)
#track all remote branches of a project
for remote in $(git branch -r | grep -v master ); do git checkout --track $remote ; done
;;
key|k)
#track all remote branches of a project
ssh $2 'mkdir -p .sshcat.ssh/authorized_keys'~/.ssh/id_rsa.pub
;;
fun|f)
#list all custom bash functions defined
typeset -F | col 3 | grep -v _ | xargs | fold -sw 60
;;
def|d)
#show definition of function $1
typeset -f $2
;;
help|h|*)
echo "[dur]dn shell automation tools"
echo "commands available:"
echo " [cl]one, [mv|move]"
echo " [f]fun lists all bash functions defined in .bashrc"
echo " [def] fun lists definition of function defined in .bashrc"
echo " [k]ey host copies ssh key to target host"
echo " [tr]ackall], [h]elp"
;;
esac
}
&&>><<><>
通过上面的脚本,我可以将ssh key拷贝到任何网站服务器——只需要键入 dur key user@somehost.
总结
你可以试一下我的这个文件,或你自己也可以写一个。
推荐系统
微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载
语言:中文版系统大小:5.13GB系统类型:Win11微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化 1、保留 Edge浏览器。 2、隐藏“操作中心”托盘图标。 3、保留常用组件(微软商店,计算器,图片查看器等)。 5、关闭天气资讯。
Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载
语言:中文版系统大小:4.75GB系统类型:Win11Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
番茄花园Ghost Win7 x64 SP1稳定装机版2022年7月(64位) 高速下载
语言:中文版系统大小:3.91GB系统类型:Win7欢迎使用 番茄花园 Ghost Win7 x64 SP1 2022.07 极速装机版 专业装机版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,集成最全面的硬件驱动,精心挑选的系统维护工具,加上独有人性化的设计。是电脑城、个人、公司快速装机之首选!拥有此系统
相关文章
- win8系统怎么查找电脑产品id win8系统查找电脑产品id的方法步骤
- win7系统如何添加局域网中已经共享的打印机
- 解析iptables中SNAT和MASQUERADE之间的区别
- Windows 10最新Build 10122 ISO镜像下载地址
- Vista 修改注册表全面禁用控制面板
- 在Linux下的Docker中新建容器的方法
- Win8蓝屏故障0x00000050怎么办 Win8蓝屏故障0x00000050解决办法
- 在Win10里如何找到Internet Explorer?
- Win10预览版14342自制中文ISO系统镜像下载 32位/64位
- WinXP下如何隐藏光驱使用的时候再开启
- 怎样在windows的cmd命令行下创建删除文件和文件夹
- win7系统中怎么删除我的电脑中腾讯微云的图标?
- 如何查看Win8.1版本 简单查看Win8.1版本方法
- 更新Win10后电脑速度变慢该怎么解决?
- Win10一周年更新重大改进:操作中心互动卡片UI、全新日历设计
- 老旧的Win10电脑如何体验Windows Hello?
- Win8分屏显示功能强制开启方法突破限制
- ubuntu 13.04 安装mysql数据库教程
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 4雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1雨林木风 Ghost XP SP3系统 装机极速版 YN2018年8月 ISO镜像下载
- 2雨林木风Ghost Win8.1 (X32) 六一节 快速纯净版2020年6月(免激活) ISO镜像快速下载
- 3新萝卜家园 Ghost Win7 x64 SP1 极速版2019年1月(64位) 好用下载
- 4笔记本系统Ghost Win8.1 (X64) 新春特别 全新纯净版2022年2月(永久激活) 提供下载
- 5新萝卜家园 Ghost XP SP3系统 电脑城极速装机版 2018年8月 ISO镜像下载
- 6深度技术Ghost Win7 Sp1 电脑城万能装机版2022年5月(32位) ISO高速下载
- 7深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年3月(64位) 高速下载
- 8新雨林木风 Windows10 x86 企业装机版2019年1月(32位) ISO镜像免费下载
- 9番茄花园 Windows 10 官方企业版 版本1903 2021年4月(64位) ISO高速下载
- 10番茄花园系统 Ghost XP SP3 海量驱动装机版 2018年7月 ISO镜像下载