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 | 遍历子目录 |
参考链接:
网友评论