linux 查漏补缺 2

Linux 下软件安装相关

2.1 文件属性和可执行属性

2.1.1 文件属性

文件属性 rwx 中 r 表示 read (数字表示为 4)、w 表示 write (数字表示为 2)、x 表示执行 (数字表示为 1)。三个为一
组,连续出现三次 (如下面命令行中所示), 第一组表示文件的所有者拥有的权限,第二组为文件所有者所在的用户组所拥
有的权限,组内所有成员都具有的权限,第三组为其它用户的权限。

ct@ehbio:~$ ls -l /home
-rwxr-xr-x 1 ct ct 26 12 月 7 2016 ct
# 让自己的家目录只自己可见
ct@ehbio:~$ chmod go-rwx /home/ct
ct@ehbio:~$ ls -l /home
-rwx------ 1 ct ct 26 12 月 7 2016 ct
# 同组人增加可读和可执行属性
ct@ehbio:~$ chmod g+rx /home/ct
ct@ehbio:~$ ls -l /home
-rwxr-x--- 1 ct ct 26 12 月 7 2016 ct
# 所有人增加可读和可执行属性
ct@ehbio:~$ chmod a+rx /home/ct
ct@ehbio:~$ ls -l /home
-rwxr-xr-x 1 ct ct 26 12 月 7 2016 ct

2.1.2 可执行属性

which: 表示查看命令的路径。一般用于当我们想知道使用的命令来源于什么地方时,比如安装了多个 R 或多个 python,
但又分不清用的是哪个时,which 一下,立即明了。在这儿我们用 which 获取的是可执行的命令所在的路径,进而查看
其属性。

ct@ehbio:~$ ls -l "`which cd`"
-rwxr-xr-x 1 root root 26 12 月 7 2016 /usr/bin/cd

ct@ehbio:~$ ls -l "`which mkdir`"
-rwxr-xr-x. 1 root root 79768 11 月 6 2016 /usr/bin/mkdir

ct@ehbio:~$ ls -l "`which python`"
#l: 代表软连接
# 软连接自身是所有人可读可写,但具体的权限依赖于其链接的文件
lrwxrwxrwx. 1 root root 7 3 月 22 15:04 /usr/bin/python -> python2
ct@ehbio:~$ ls -l "`which python2`"
# 第二层链接
lrwxrwxrwx. 1 root root 9 3 月 22 15:04 /usr/bin/python2 -> python2.7
# 链接的原始文件
ct@ehbio:~$ ls -l "`which python2.7`"
-rwxr-xr-x. 1 root root 7136 11 月 6 2016 /usr/bin/python2.7

chmod a+x file: 表示给文件增加所有人 (a) 可执行权限 (+x)
chmod u+x file: 表示给文件增加所有者 (u,user,) 可执行权限 (+x)
chmod g+x, chmod o+X: 表示给文件增加组内人或其它人可执行权限
chmod 755 file: 表示拥有者有可读写执行权限,其它人有可读执行权限。

2.2 环境变量

ct@ehbio:~$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
ct@ehbio:~$ export PATH=$PATH:/home/ct
ct@ehbio:~$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ct

对于普通用户,在远程登录终端时,家目录下的 ~/.bash_profile (不是 ~/.bashrc, 在本地登录时才会被读取) 会
自动被读取,所以我们需要把 export 语句加入到这个文件中。


师兄的图

建议分开写,方便后续查看,多用绝对路径
常见的命名 用alias 建立快捷方式就好了

前面提到,系统查找命令的顺序是从环境变量的第一个目录到最后一个目录,在第一次碰到查询的命令后,就调用执行。
假如系统存在一个 python 命令,我们自己又安装了一个 python (假如在/home/ct/anaconda/bin 目录下),如果我们
想执行自己的 python 程序,就需要把/home/ct/anaconda/bin 写在 PATH

2.3 软件安装的几种方式

2.3.1 系统包管理器安装

# centos
# 如果长时间没更新,先运行下update
yum update
# 如果不知道软件具体名字,可以先用一个关键字search一下, 选择正式的名字
# 需要注意的是一般的服务器都是64bit,需要选x86_64版本
yum search soft_name or soft_description
yum search soft_official_name

2.3.2 下载二进制文件

wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.7.1+-x64-linux.tar.gz
tar xvzf ncbi-blast-2.7.1+-x64-linux.tar.gz
cd ncbi*
cd bin
ln -s pwd/* ~/bin# 直接进入 bin 目录,找到对应可执行文件,链接到在环境变量的目录中去。

2.3.3 源码编译安装

• configure 是检查系统的库文件、类文件、依赖软件是否存在以及它们的版本是否满足需求,并根据实际检测结果生成 Makefile 的工具。一般是一堆 bash 命令的组合。通常也需要在这一步配置一些参数。最常用的就是指定软件的
安装目录--prefix=/home/ct/soft/specific_name。
• make 则是具体的编译过程。编译的语句都写在了 Makefile 中。make 默认编译 Makefile 中出现的第一个 target,
也可以指定 target 编译,并根据 Makefile 的设置方式依次编译所有依赖的东西。
• make install 通常是拷贝 make 编译出来的可执行文件或者依赖的库文件 (如果有的话) 到 configure 时的--prefix 指定的目录下。

文章来源:生信宝典

你可能感兴趣的:(linux 查漏补缺 2)