这是一个持续会更新的教程,专为B10K入门的新人们编写,旨在快速理解并使用一些常用脚本、软件等……
1. Bash
1.1 环境变量
当我们使用mobaxterm
或iterm2
以ssh usrname@ipaddress
登录到集群上时,文件/home/usrname/.bash_profile
会被加载。
我们常说的环境变量记录在了这一文件中。手动加载该文件的方式为source ~/.bash_profile
。此处 ~
即为 /home/usrname/
。
为了更好的知道,我们上一行命令是否执行完成,我们有两种做法:
执行命令并输出一个tag文件,需要用到
&&
命令。- 例如
sleep 60 && touch sleep_60.done
或者sleep && echo sleep_60 done
。 - 两者的差异是执行完
sleep 60
后touch
命令生成了一个新文件 和echo
命令在屏幕端输出了一行字符。
- 例如
修改环境变量中
PS1
参数,通过^_^
与O_O
两个符号判断命令行是否执行成功,可以减少屏幕端的输出或一个新文件的生成。# 良渚端PS1参数示例 #### BASIC ENV #### export PS1="\ \[\033[33;1m\]\h:\u \033[35;1m\t \ \$(if [[ \$? -gt 0 ]]; then printf \"\\[\\033[01;31m\\]O_O\"; else printf \"\\[\\033[36;1m\\]^_^\"; fi) \[\033[36;1m\]\w\ \[\033[0m\] LiangZhu \[\e[32;1m\]$ \ \[\e[0m\]" export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" export HISTSIZE=9999 export HISTFILESIZE=9999
将上述代码添加至文件
/home/usrname/.bash_profile
后,通过source
手动加载该文件,输入sleep 60
后使用ctrl+c
的方式感受一下^_^
与O_O
。
1.2 常用缩写
仔细观察文件/home/usrname/.bash_profile
后,会发现除了加载当前文件以外还额外加载了文件/home/usrname/.bashrc
,我会把常用的一些缩写写在该文件中。此处,我直接放出我的常用示例:
alias rm='rm -i'
alias mv='mv -i'
alias le='less -S'
alias ls="ls -v --color=auto"
alias ll="ls -lh -v"
alias lt="ls -lh -t -r"
alias la="ls -a -lh -v"
alias wl='ll | wc -l'
alias c='clear' # 快速清屏
alias p='pwd'
alias vi="vim"
alias ps="/bin/ps ux --sort=pcpu,pmem,user,pid | cat"
alias h.my="htop -u chenguangji"
## Colorize the grep command output for ease of use (good for log files)##
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias tf='tail -f '
alias j='jobs -l'
alias tf='tail -f '
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias ta='tmux attach'
# 进入目录并列出文件
alias ..="cdl .."
alias .2="cd ../.." # 快速进入上上层目录
alias .3="cd ../../.."
alias cd..='cdl ..'
#Start calculator with math support
alias bc='bc -l'
# sbatch
alias sb='sbatch '
alias sq='squeue -u chenguangji'
alias sj='scontrol show job '
alias sdir='echo "Running" && sq | awk '\''$5=="R"'\''|awk '\''{print "scontrol show job "$1}'\''|sh|grep "WorkDir"|sort|uniq -c && echo "PENDING" && sq | awk '\''$5=="PD"'\''|awk '\''{print "scontrol show job "$1}'\''|sh|grep "WorkDir"|sort|uniq -c'
alias sdirR='echo "Running" && sq | awk '\''$5=="R"'\''|awk '\''{print "scontrol show job "$1}'\''|sh|grep "WorkDir"|sort|uniq -c'
alias sdirP='echo "PENDING" && sq | awk '\''$5=="PD"'\''|awk '\''{print "scontrol show job "$1}'\''|sh|grep "WorkDir"|sort|uniq -c'
alias scom='echo "Running" && sq | awk '\''$5=="R"'\''|awk '\''{print "scontrol show job "$1}'\''|sh|grep "Command"|sort|uniq -c && echo "PENDING" && sq | awk '\''$5=="PD"'\''|awk '\''{print "scontrol show job "$1}'\''|sh|grep "Command"|sort|uniq -c'
# quota
alias quota='mmlsquota -u chenguangji --block-size auto;mmlsquota -g zhanglab --block-size auto;echo "";df -h ./'
我最为常用的命令有:ta
、sq
、sdir
、quota
以及..
与.3
。
Next_time_upadte
- perl 脚本
- python 脚本
- B10K项目简介及相关数据
- 并行化处理