Bash技巧

READLINE

C-u     删除光标之前的所有字符

C-k     删除光标之后的所有字符

C-w    删除光标之前的一个单词

C-l      清屏,但是保存当前行

C-b     向左移动一个字符

C-f      向右移动一个字符

A-b      向左移动一个单词

A-f       向右移动一个单词


A-.       取上一条命令的最后一个参数,反复按可以依此取历史中命令中的最后一个参数,这个命令等价于!$,但是按键更加方便


其他常用技巧

1.为某个藏在很深的路径下的文件重命名,比如下边的文件,要把filenaem.txt,改成filename.txt(利用bash的Expansion功能,有很多Expansion,此处为Brace Expansion

/some/very/long/path/to/target/file/filenaem.txt
可以使用下边的命令
mv /some/very/long/path/to/target/file/filenaem.txt /some/very/long/path/to/target/file/filename.txt
但是,这样非常的麻烦,即使有自动补全
使用下边的命令,只需打一次路径
mv /some/very/long/path/to/target/file/{filenaem.txt, filename.txt}
更简单的,还可以这样做
mv /some/very/long/path/to/target/file/filena{em,me}.txt
即只抽取改变的部分

除此之外,还有很多种方法可以实现,下面直接引用superuser网站上的一个回答:

Here are several options:

Change to the directory:

cd /home/long/path
mv file1 file2
cd -

Change directories using the directory stack:

pushd /some/long/path
mv file1 file2
popd

Change to the directory using a subshell:

( 
  cd /some/long/path
  mv file1 file2
)   # no need to change back

Use a variable:

D=/some/long/path
mv "$D/file1" "$D/file2"
2.有些命令在执行过程中需要我们选择yes/no/cancel,linux中提供了一个非常有用的命令yes,它可以持续的输出y。

在管道中使用yes,可以省略选择的过程,当管道断开时,yes结束,例如下面的命令

yes | rm *.txt
默认情况下,yes持续输出y,当然我们还可以定制yes的输出内容,当需要持续不断地输出其他字符串时,也可以用yes,比如下面的命令持续输出hello

yes hello

3.显示当前目录下的子目录

ls -d */

4.比如首先执行了下面的一个命令

echo a b c d e

接下来,我们要引用上面命令中的参数,引用上一个命令中的参数有两种方法

第一种,如下形式,n代表参数的位置

!:n

!:0代表命令“echo”,参数表从1开始,其中a是!:1,e是!:5,因为a和e分别位于参数表开头的末尾,还可以分别用!^和!$来引用

第二种形式,采用快捷键

首先用Alt+数字,选定要引用的参数,数字的含义和上边的第一种方式相同

Alt + n

然后用下面的组合键即可把选定的参数粘贴到当前光标处

Ctrl + Alt + y













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值