linux命令行

2019-05-16  本文已影响0人  此番风景

https://talk.linuxtoy.org/using-cli/#10

[toc]

统计历史命令使用比例

history | 
> awk '{CMD[$2]++;count++;}END {for (a in CMD)print CMD[a] " " \
> CMD[a]/count*100 "% " a;}'|
> grep -v "./" |
> column -c3 -s " " -t |
> sort -nr |
> nl |
> head -n 10

^删除多余部分

grep fooo /var/log/auth.log
^o
grep foo /var/log/auth.log

oldnew替换输错或输少的部分

cat myflie
^li^il
cat myfile

!:gs/old/new将old全部替换为new

ansible nginx -m command -a 'which nginx'
!:gs/nginx/squid

要点: 一删,二换,三全变

忘记历史,就是背叛

# 了解历史记录
echo $HISTSIZE
# 历史记录的保持位置
echo $HISTFILE
# 历史记录的保持大小
echo $HISTFILESIZE

# 查看历史
history
history | less
histroy 5
history |grep your_string

# ctrl+r 逆向搜索历史命令
histroy 5
[ctrl+p] 访问上一条命令
[ctrl+n]  访问下一条命令

# !!执行上一条命令
apt install wget
sudo !!

# 使用!foo执行以foo开头的命令
!his

# !?foo执行包含foo的命令
!?is

# !n 执行第n各命令
!10
!-n # 执行倒数第n个命令

# 终端显示命令行编号
export PS1='!\! \u@\h:\w\$ 

# 使用!#引用当前行
cp filename filename.old
cp filename !#:1.old

# !:n 得到上一条命令的前n个
# touch {foo, baz, hh}.txt
touch foo.txt gza.txt abc.txt
vim !:2

# !* 上一条命令的所有参数

:h选取路径开头

ls /usr/share/fonts/truetype
cd !$:h

:t 选取路径结尾

wget http://nginx.org/download/nginx-1.4.7.tar.gz
tar zxvf !$:t
# tar zxvf nginx-1.4.7.tar.gz

:r 选取文件名

unzip filename.zip
cd !$:r
# cd filename

:e 选取扩展名

echo abc.jpg
echo !$:e

:p 打印命令行

echo *
!:p
# 打印上一条命令

:s 替换, :g 全局替换

echo this that
!:s/is/e
# echo the that

echo abcd abed
!:gs/ab/cd  # 全局替换,包括输出
# echo cdcd cdef
# cdcd cdef

:u 将其更改为大写(zsh),:l 小写

echo $histchars
echo !$:u
上一篇下一篇

猜你喜欢

热点阅读