【linux】单行命令-第3部分:Alias&Others

2021-04-22  本文已影响0人  高大石头

Linux操作中经常用到的指令可以赋值为好理解的别名(Alias),下面就来共同学习Bioinformatics one-liners中的那些骚操作吧!

好用的别名

避免反复敲,诸如cd ../../..的命令,可以进行下面的别名:

alias ..='cd ..'
alias ...='cd ../../'
alias ....='cd../../../'
alias .....='cd../../../../../'
alias ......='cd../../../../../../'

向前、向后预览

alias u='clear; cd ../; pwd; ls -lhGgo'
alias d='clear; cd -; ls -lhGgo'

覆盖文件时,先确认:

alias mv="mv -i"
alias cp="cp -i"
alias rm="rm -i"

常用的ls别名:

alias ls="ls -lp --color=auto"
alias l="ls -lhGgo"
alias ll= "ls -lh"
alias la="ls -lhGgoA"
alias lt="ls -lhGgotr"
alias lS="ls -lhGgoSr"
alias lhead="ls -lhGgo | head"
alias ltail="ls -lhGgo | tail"
alias lmore="ls -lhGgo | more"

ls(全称:list files)选项:

选项 功能
l 以长列表(list)的形式显示
h human readable人类可阅读的形式
t time 按文件先后顺序列出
r reverse 文件以相反次序显示(默认英文字母顺序)
p file type文件名后标识以显示文件类型
S 按文件大小排序

cut用空格和逗号分隔文件:

alias cuts ="cut -d \" \""
alias cutc="cut -d \",\""

解压缩tar.gz文件:

alias tarup="tar -zcf"
alias tardown="tar -zxf"

tar选项:

选项 功能
z (g)zip属性,用于gzip,ungzip和gunzip
c creat, 创建新的压缩文件
x extract, 解开压缩文件
v verbose, 显示所有进程
f file name, 使用压缩后的名字,此参数必须为最后一个参数

也可以使用更普通的“extract”函数:

extract () {
   if [ -f $1 ] ; then
       case $1 in
        *.tar.bz2)      tar xvjf $1 ;;
        *.tar.gz)       tar xvzf $1 ;;
        *.tar.xz)       tar Jxvf $1 ;;
        *.bz2)          bunzip2 $1 ;;
        *.rar)          unrar x $1 ;;
        *.gz)           gunzip $1 ;;
        *.tar)          tar xvf $1 ;;
        *.tbz2)         tar xvjf $1 ;;
        *.tgz)          tar xvzf $1 ;;
        *.zip)          unzip $1 ;;
        *.Z)            uncompress $1 ;;
        *.7z)           7z x $1 ;;
        *)              echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
}

使用“mcd”创建目录,并cd到该目录:

function mcd { mkdir -p "$1" && cd "$1"}

跳转到上级目录,并列出其中的内容:

alias u="cd ..; ls"

好看的grep:

alias grep="grep --color=auto"

.bashrc - The individual per-interactive-shell startup file
.bashrc文件主要保存个人的一些个性化设置,例如别名(alias)、路径(path)等。

刷新.bashrc文件:

alias refresh="source ~/.bashrc"

编辑.bashrc文件:

alias eb="vi ~/.bashrc"

使用pandoc转markdown文档为PDF格式:
用法:mdpdf document.md ducument.md.pdf

alias mdpdf="pandoc -s -V geometry:margin=lin -V documentclass:article -V fontsize=12pt"

对当前目录搜索关键词(ft "mytext" *.txt):

function ft {find . -name "$2" -exec grep -il "$1" {} \;; }

其他内容

重复运行上一条命令:

sudo !!

跳到一个目录,执行命令,然后返回当前目录(()的用法):

(cd /tmp && ls)

计时秒表(Enter或Ctrl+D停止):

$ time read
real    0m59.000s
user    0m0.001s
sys 0m0.000s

上次执行的命令生成一个脚本:

echo "!!" > foo.sh

重用上次命令的所有参数:

!*

列出或删除一个目录中所有不匹配特定后缀的文件(如:所有不是压缩的文件,删除所有不以foo和bar后缀结尾的文件)

ls !(*.gz)
rm !(*.foo|*.bar)

激活一个快捷的编辑器(GNU nano):

fc

输出特定的行(比如36行):

sed -n 36p file.txt

终结一个冻结的ssh section:
[ENTER]~.


grep去除文件空行,结果保存到新文件:

grep . filename > newfilename

查找大文件,例如大于600M:

find . -type f -size +600M

利用cut取列(取一个tab分割文件的第5列):

cut -f5 --complement

查找包含特定字符的文件:

grep -lir "some txt" *
选项 功能
l 只输出文件名
i 忽略大小写
r 遍历子目录

参考链接:

上一篇 下一篇

猜你喜欢

热点阅读