跳转至

云服务器环境搭建

搭建一个轻量且灵活的云服务器环境,便于进行 Linux 系统练习、生物信息学软件安装和流程调试。该环境适用于个人学习、开发和测试分析流程。云服务器提供了许多灵活的管理选项,在系统出问题或配置出错时,可以轻松进行重启、恢复或重置系统。

查看服务器信息

可以通过多种方法查看服务器的详细信息,包括 CPU、内存、磁盘、网络等硬件和系统配置。以下是查看服务器各种信息的常用命令,适用于大多数 Linux 发行版(如 CentOS、Ubuntu 等)。

# CPU 基本信息
lscpu

# 内存使用情况
free -h

# 磁盘使用情况
df -h

# 系统版本和内核信息
uname -a

# 操作系统发行版本
cat /etc/os-release

Linux用户和权限

Linux 系统是多用户,多任务系统,可以允许多个用户同时运行。Linux 的用户分为管理员用户(通常为 root)和普通用户。管理员用于权限过大,如果误操作,影响非常大。管理员用户可以进行各种系统配置,例如安装 gcc, glibc 这些配置以及用户管理等工作。管理员安装的软件工具,可以让所有用户同时使用。

Warning

登陆云服务器默认是root用户,强烈不建议使用管理员账户进行各种数据分析工作。可以使用root用户进行一些基础配置,然后日常使用普通用户。

root用户

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。通过su和exit命令,可以切换用户和退回上一个用户

# 切换用户
su [-] [用户名]

exit # 退回上一个用户
  • -选项是可选的,表示是否在切换后加载环境变量。
  • 用户名省略时表示切换到root用户
  • 切换用户后,可以使用exit命令退回上一个用户。

sudo命令可以为普通命令授权,临时以root身份运行。

sudo 其他命令

普通用户

使用 useradd 命令添加一个新的普通用户。例如,创建一个名为 software 的用户:

useradd software

# 同时创建用户主目录
useradd -m software

# 为新用户设置密码,使用 passwd 命令:
passwd software

# 将用户添加到 sudo 组
usermod -aG sudo software

# 验证用户
id software

-m 参数自动添加主目录,这将为 software/home/software 路径下创建一个主目录。

建议

推荐创建一个 software 用户专门管理软件,同时可以共享给其他用户使用。

环境设置

用户设置bashrc配置文件,当bash shell被打开时,该文件被读取。

1 Alias 部分

alias 主要是设置一些别名,方便将一些长的命令和选项参数进行简化,以下是一些常用的 alias 命令,可以添加到.bashrc 中。

# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias df='df -h'
alias du='du -skh'
alias grep='grep --color'
alias ls='ls -hF --color=tty' # classify files in colour
alias dir='ls --color=auto --format=vertical'
alias ll='ls -lh --color=auto' # long list
alias l='ls -CF' #
alias lla='ls -a -l'
alias e='exit'
alias le='less -S'
alias d='display'
alias t='top -u $USER'

2 PS 部分

Linux 系统中的 PS 变量用来控制命令行设置,其中 PS 即是 Prompt String,命令提示符的意思, 可以看到有 PS1,PS2,PS3,PS4 等。其中最重要的就是 PS1,PS2 用来设置二级提示符。 修改 PS 中的设置就可以对命令行进行个性化的设置。

# 个人命令行提示符设置
PS1="\[\033]2;\h:\u \w\007\033[33;1m\]\u \033[35;1m\t\033[0m \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]$ \[\e[0m\]"

Tip

在 macOS 中的 Zsh (.zshrc 文件) 中,某些转义序列与 Bash 中稍有不同。

# 个人命令行提示符设置(适用于 macOS Zsh)
PS1="%F{yellow}%n%f %F{magenta}%*%f %F{cyan}%~%f
%F{green}$ %f"

# 个人命令行提示符设置(适用于 macOS Zsh,带粗体)
PS1="%F{yellow}\e[1m%n\e[0m%f %F{magenta}\e[1m%*\e[0m%f %F{cyan}\e[1m%~\e[0m%f
%F{green}\e[1m$\e[0m %f"

# 个人命令行提示符设置(适用于 macOS 自带终端, 带粗体)
PS1="%F{yellow}%B%n%b%f %F{magenta}%B%*%b%f %F{cyan}%B%~%b%f
%F{green}%B$ %b%f"

3 export 部分

export 是最重要的一部分,这部分内容是修改系统一些默认变量的行为,例如敲 env 命令会 显示出当前账户所有环境变量,其中比较重要的就是 PATH 变量,export 之后,每次登录之 后,系统会重新配置默认环境变量。除了 PATH,也可以修改 perl 模块目录,python 模块 目录以及其他一些配置等。

修改 PATH 变量

PATH 变量中会包含多个软件路径,当在命令行输入命令时,例如 ls,软件会自动按顺序从 PATH 变量的路径下开始寻找同名的软件,如果找到直接运行;如果找不到,则到下一个目录查找,以此类推。当所有目录下都找不到的时候,则提示command not found...。修改 PATH 变量一定要小心,需要提前备份一份,如果设置错误,可以重新恢复。

#首先备份一下
cp ~/.bashrc ~/.bashrc.bak
#打开 vim 修改
vim ~/.bashrc
#将路径添加到 PATH 变量中,可以在一行中添加,也可以新建一行 export PATH="$PATH:./:/usr/bin:/ifs1/Software/bin/:$PATH" #刷新设置
source ~/.bashrc

基础配置

文本编辑器

Linux 系统提供了多种文本编辑器,适合不同的使用需求和用户偏好。常见的文本编辑器有vimnanoemacs等等。

我个人喜欢使用vim,建议直接使用neovim,Neovim 是对 Vim 的重构,保持 Vim 的模式编辑理念,同时增强了代码功能和扩展性。

# Centos 安装 nvim #

# 1. 启用 EPEL 仓库
sudo yum install epel-release -y
# 2. 安装 nvim
sudo yum install neovim -y

# Ubuntu 中安装 Neovim #

# 添加 Neovim 官方 PPA 来安装最新版本
sudo add-apt-repository ppa:neovim-ppa/stable
sudo add-apt-repository ppa:neovim-ppa/unstable

sudo apt update
sudo apt install neovim -y

要将 nvim 设置为默认的命令行编辑器,可以在 .bashrc.zshrc 中添加以下配置:

export EDITOR="nvim"
export VISUAL="nvim"

Neovim 的配置文件是 ~/.config/nvim/init.vim。如果文件不存在,可以创建它:

mkdir -p ~/.config/nvim
touch ~/.config/nvim/init.vim

init.vim 中可以进行自定义配置,以下是一些常用的配置示例:

" 启用语法高亮
syntax on

" 启用行号
set number

" 更好的缩进设置
set autoindent
set smartindent
set tabstop=4        " Tab 显示为 4 个空格
set shiftwidth=4     " 缩进 4 个空格
set expandtab        " 将 Tab 替换为空格

" 设置相对行号,便于跳转
set relativenumber

" 启用鼠标支持
set mouse=a

" 启用括号匹配高亮
set showmatch

" 启用状态栏
set laststatus=2

" 搜索设置
set ignorecase       " 搜索时忽略大小写
set smartcase        " 智能大小写
set incsearch        " 增量搜索
set hlsearch         " 高亮搜索结果

" 显示当前行和列
set cursorline       " 高亮当前行
set cursorcolumn     " 高亮当前列

安装GCC

GCC 是一个开源编译器套件,它支持 C、C++、Fortran 等多种编程语言。生物信息学中的许多工具和库,如 SAMtoolsBWAHTSlibFastQC 等,通常需要从源码编译,并且依赖于 GCC 来编译代码。

# CentOs
sudo yum install gcc

# Ubuntu
sudo apt install build-essential

安装Autoreconf

autoreconf 是一个自动生成 configure 脚本的工具,通常在从源代码编译某些软件时使用。

# CentOS
sudo yum install autoconf

# Ubuntu
sudo apt install autoconf

安装压缩库

安装Bzip2 压缩库和 XZ 压缩库,一些生物信息学工具,特别是处理 **CRAM 文件**时需要用到一些压缩算法,在CentOS系统中通过以下方式安装

 # CentOs
 sudo yum install bzip2-devel
 sudo yum install xz-devel

 # Ubuntu
 sudo apt install pigz

安装Git

安装 Git,以便能够从 GitHub 等代码仓库中克隆生物信息学相关的软件和工具。

sudo yum install git

# 验证是否成功安装
git --version

自定义欢迎信息

在登录 Linux 系统时,通常可以通过自定义 "MOTD"(Message of the Day).bashrc 文件来设置登录后显示的欢迎信息。下面是如何自定义登录时的欢迎信息内容的几种方法。

修改 MOTD

编辑 /etc/motd 文件

====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*===*====*
                                欢迎使用,京东云服务器计算平台

常用文档:
    ● 个人文档:https://ywu.info
    ● 登录:ip 116.198.236.130,port 22
    ● LSF使用:hpc.ncpgr.cn/cluster/016-LSF
    ● Linux基础:https://ywu.info/Linux/
    ● mamba代替conda:https://ywu.info/Software/Mamba/

修改 .bashrc

如果你只想为特定用户显示欢迎信息,可以修改该用户的 .bashrc.bash_profile 文件。这些文件会在用户每次登录时执行。

在文件的末尾添加你希望显示的内容。例如:

echo "Welcome to $(hostname)"
echo "You are logged in as $(whoami) on $(date)"