shell技巧分享(四)

20 Apr 2018 shell技巧分享(四)

这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。

1 常用快捷键

  • Alt+Backspace:删除光标前的一个单词
  • Alt+F:移动光标到下一个空格处
  • Alt+B:移动光标到上一个空格后第一个字符处
  • Ctrl+R:搜索执行过的命令行
  • Ctrl+U:删除光标之前所有字符
  • Ctrl+K:删除光标之后的所有字符
  • Ctrl+A:移动光标到行首
  • Ctrl+E:移动光标到行尾

这8个快捷键在命令行操作时会经常用到,如果你没有使用过,多用几次就习惯了,另外,多记住几个快捷键没什么坏处。

2 bash调试模式

示例脚本:

#!/bin/bash -x

script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo script dir is "<$script_dir>"

运行脚本:

$ ./get_cur_dir.sh
+++ dirname ./get_cur_dir.sh
++ cd .
++ pwd
+ script_dir=/media/sf_share/git/bash_practice
+ echo script dir is '</media/sf_share/git/bash_practice>'
script dir is </media/sf_share/git/bash_practice>

通过在脚本顶部添加-x选项,运行脚本时会打印出每一行命令,输出的+号个数表示命令的嵌套层数,从输出可以清楚看到每条命令的执行情况,方便调试脚本。如果去掉-x选项,运行脚本只会打印:script dir is </media/sf_share/git/bash_practice>

3 获取脚本所在目录

示例脚本:

#!/bin/bash

script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo script dir is "<$script_dir>"

运行脚本:

$ . ./get_cur_dir.sh
script dir is </media/sf_share/git/bash_practice>
$ source ./get_cur_dir.sh
script dir is </media/sf_share/git/bash_practice>
$ sh ./get_cur_dir.sh
script dir is </media/sf_share/git/bash_practice>

在shell脚本内部,经常需要去获取脚本所在目录。示例中给出的方法,无论使用source、点号或者sh方式运行脚本,都可以正确获取脚本所在目录。

LEo at 00:05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据

scrapy如何顺序执行多个爬虫

scrapy如何单线程顺序执行多个爬虫,刚开始我天真的以为将多个excute顺序罗列就能依次执行每个爬虫了,代码如下所示: ? 谁料,在执行完第一个爬虫之后,...

66510
来自专栏程序员互动联盟

【专业技术】Linux设备驱动第七篇:高级字符驱动操作之阻塞IO

我们之前介绍过简单的read,write操作,那么会有一个问题:当驱动无法立即响应请求该怎么办?比如一个进程调用read读取数据,当没有数据可读时该怎么办,是立...

3237
来自专栏Golang语言社区

Go包管理的探索与实践

引言:刚学Go没多久,但是很快我就发现了Go的一个特别坑爹的地方 —— 包管理。当然不只是GFW的问题,更多的是有的时候,每个项目使用的包的版本并不是完全一致的...

41710
来自专栏LanceToBigData

linux(三)之linux常用命令二

今天就是星期五了,又可以休息两天了。有点小激动,开心。不过还是要加油,因为还有很多东西等着我去学习呢! 七、chmod  作用:修改文件的权限 7.1、命令...

2298
来自专栏PHP在线

LINUX软链接和硬链接

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产...

4225
来自专栏喵了个咪的博客空间

phalapi-入门篇2(把它玩起来)

#phalapi-入门篇1(把它玩起来)# ? ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 这一小...

3917
来自专栏黑泽君的专栏

Java主函数解释、java/javac命令解释、classpath解释

任何一段程序必须要有一个执行的起始点,有一个入口,这个入口就是主函数,本质上这个主函数就被虚拟机所调用。 即:主函数是一个入口、它被虚拟机所调用、有了主函数就能...

1061
来自专栏帘卷西风的专栏

Linux常用指令

服务器部署会经常用到linux,很多时候都是用的时候上网查一下指令,然后用完过不了多久就忘记了,因此本文记录一些自己常用的linux指令,以作备忘。并不断添...

2443
来自专栏北京马哥教育

一周文章推送:

文章名称:nginx + php-fpm fastcgi防止跨站、跨目录的安全设置 我们知道apache php mod的方式可以很方便的配置 open_bas...

3047
来自专栏前端黑板报

不小心栽了XML的坑

最近在做一个聊天系统,前端用的框架conversejs,传输的数据是用XML格式。在测试和预发布上基本都没有问题,可以正常的得到用户列表。

1263

扫码关注云+社区

领取腾讯云代金券