https://talk.linuxtoy.org/using-cli/#10
[toc]
統(tǒng)計歷史命令使用比例
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] 訪問下一條命令
# !!執(zhí)行上一條命令
apt install wget
sudo !!
# 使用!foo執(zhí)行以foo開頭的命令
!his
# !?foo執(zhí)行包含foo的命令
!?is
# !n 執(zhí)行第n各命令
!10
!-n # 執(zhí)行倒數(shù)第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
# !* 上一條命令的所有參數(shù)
!!
![?]字符串
![-]數(shù)字
!#
- n
- ^|$
- [n]*
- x-y
:h選取路徑開頭
ls /usr/share/fonts/truetype
cd !$:h
:t 選取路徑結(jié)尾
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