刚开始接触 Linux 的时候用的是 Ubuntu14.04LTS ,最近在 VMware 虚拟机上安装了 Centos7 进行学习。这里仿照具神的博客记录一些我认为比较重要的点。

安装 Centos7

准备材料

安装过程

- 开机时按 F2 进入 BIOS ,开启虚拟化
- VMware 新建虚拟机时选择 "自定义(高级)" 
  安装客户机操作系统时选择 "稍后安装操作系统" 
  选择客户机操作系统时选择 "Linux" ,版本 "Centos 64 位"
  设置最大磁盘大小为 "120GB" , "将虚拟磁盘存储为单个文件"
  硬件 处理器 选择 虚拟化VT
  硬件 CD 选择 Centos7 镜像
- 安装过程中语言选择英语,进入系统后可更改为汉语。
- 选择区域为上海后时间可能不对,手动修改即可
- 自动分区
- 添加 zhao 为 管理员用户

安装 VMware Tools

安装 VMwaretools 后可以在物理机和虚拟机之间随意复制粘贴,实现虚拟机全屏,可以添加共享文件夹等。

进入 Centos7 系统后,点击 虚拟机 - 安装 VMware Tools ,挂载后将 VMware Tools 工具包拷贝到 ~/ 下,执行如下命令

$ sudo yum -y install perl gcc make kernel-headers kernel-devel  # 安装编译环境
$ tar -zxvf VMwareTools-xxx
$ cd vmware-tools-distrib
$ ./vmware-install.pl

# 出现 What is the location of the "ifconfig" program on your machine?
$ sudo yum install net-tools.x86_64

# 出现 The path "" is not a valid path to the 3.10.0-327.el7.x86_64 kernel headers.
#Would you like to change it?
$ sudo yum install kernel-devel
# 在上面步骤中输入 /usr/src/kernels/3.10.0-327.36.3.el7.x86_64/include

# 出现 The path "/usr/src/kernels/3.10.0-327.36.3.el7.x86_64/include" is not a valid 
#path to the 3.10.0-327.el7.x86_64 kernel headers
$ ln -s /usr/src/kernels/3.10.0-327.36.3.el7.x86_64/include/generated/uapi/linux/version.h /usr/src/kernels/3.10.0-327.36.3.el7.x86_64/include/linux/version.h

Enjoy,
--the VMware team
# 卸载 cdrome

安装成功后,在 虚拟机设置 - 选项 中设置 共享文件夹,设置成功后会挂载在 /mnt/hgfs/

$ sudo ln -s  ~/Desktop/share_directory /mnt/hgfs/share_directory # 在桌面建立软链接

备份系统

为了防止系统猝死,每天下班前使用 VMware 的快照功能进行备份,填写详细描述。

配置系统环境

$ sudo yum install epel-release                  # 安装 EPEL 源
$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # ELRepo 源,包含硬件驱动
$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
$ sudo yum install yum-axelget                   # 安装 yum-axelget ,使 yum 安装软件时可并行下载
$ sudo yum update # 更新

各种安装

# gcc 系列
$ sudo yum install gcc                     # C 编译器
$ sudo yum install gcc-c++                 # C++ 编译器
$ sudo yum install gcc-gfortran            # Fortran 编译器
$ sudo yum install compat-gcc-44           # 兼容 gcc 4.4
$ sudo yum install compat-gcc-44-c++       # 兼容 gcc-c++ 4.4
$ sudo yum install compat-gcc-44-gfortran  # 兼容 gcc-fortran 4.4
$ sudo yum install compat-libf2c-34        # g77 3.4.x 兼容库
# 软件开发辅助工具
$ sudo yum install make patch
$ sudo yum install gdb     # 代码调试器
$ sudo yum install cmake   # Cmake
$ sudo yum install git     # 版本控制
# Java
$ sudo yum install java                      # java 运行环境
# perl plenv
$ sudo yum install perl-Parallel-ForkManager  # 并行模块
# python2 pyenv
$ sudo yum install python-matplotlib  # 2D 绘图库
$ sudo yum install PyQt4  # Qt4 的 Python 绑定
$ sudo yum install numpy  # 数组操作库
$ sudo yum install scipy  # 科学计算库
$ sudo yum install python-requests  # 网页请求
$ sudo yum install python-docopt  # 命令行参数分析器
$ sudo yum install gdal-python    # gdal 的 Python 绑定
# ghostscript
$ sudo yum install ghostscript
# guake 
$ sudo yum install guake
# zsh
$ sudo yum install zsh
$ curl -L http://install.ohmyz.sh | sh
$ chsh -s /bin/zsh               # 重启生效
# texlive2017
# source-code-pro
# shutter
$ sudo yum install shutter
# 其它
$ sudo yum install ImageMagick   # 其中的 import 和 convert 命令很有用
$ sudo yum install dos2unix unix2dos  # Windows 和 Linux 换行符互相转换
$ sudo yum install meld          # 图形界面下的文件差异比较工具

使用习惯

目前,将所有的工作目录放到了桌面,将所有的小程序放到了 ~/bin 下,将一些脚本放到了 ~/Script 文件夹下

$ cd ~
$ ls -l bin
总用量 18356
-rwxrwxr-x. 1 zzy zzy    23048 Sep 17 18:00 catwin32
-rwxrwxrwx. 1 zzy zzy  4016346 Nov 14  2016 cpdf
-rwxrwxr-x. 1 zzy zzy    13064 Sep  7 18:16 distaz
-rwxrwxr-x. 1 zzy zzy    82062 Sep 17 19:09 FetchData
-rwxrwxr-x. 1 zzy zzy    37897 Sep 17 19:09 FetchEvent
-rwxrwxr-x. 1 zzy zzy    35880 Sep 17 19:09 FetchMetadata
-rwxrwxr-x. 1 zzy zzy    28871 Sep 17 19:09 FetchSyn
-rwxr-xr-x. 1 zzy zzy 12554976 Sep 13 19:04 hugo
-rwxrwxr-x. 1 zzy zzy   178080 Sep 12 21:02 hypodd
-rwxrwxrwx. 1 zzy zzy   191884 Sep 13 17:41 mseed2ascii
-rwxrwxrwx. 1 zzy zzy   218340 Sep 13 17:41 mseed2sac
-rwxrwxr-x. 1 zzy zzy    44800 Sep 12 21:03 ph2dt
-rwxr-xr-x. 1 zzy zzy  1224891 Oct  4  2012 rdseed
-rwxrwxr-x. 1 zzy zzy    18968 Sep 17 17:09 sac2col
-rwxrwxr-x. 1 zzy zzy    27712 Sep 17 17:09 sacch
-rwxrwxr-x. 1 zzy zzy    18960 Sep 17 17:09 saclh
-rwxrwxr-x. 1 zzy zzy    41744 Sep 17 18:04 win2sac_32

$ ls -l Desktop
总用量0
drwxr-xr-x. 2 zzy zzy  58 Sep 18 08:50 CENC_data   # 下载 CENC 波形数据
drwxrwxr-x. 6 zzy zzy  78 Sep 17 21:33 FetchScript  # 下载 IRIS 数据
drwxrwxr-x. 6 zzy zzy  83 Sep 26 17:48 Github      # github 工作空间
drwxrwxrwx. 2 zzy zzy  21 Sep 18 08:45 HI-NET_data  # 日本 HI-NET 波形数据
drwxrwxr-x. 2 zzy zzy  67 Sep 20 15:13 ObsPy_data   # obspy 下载的数据
drwxrwxr-x. 6 zzy zzy 106 Sep  5 15:37 oh-my-cap-1.1  # 震源机制
drwxrwxrwx. 7 zzy zzy 101 Sep 12 20:56 relocation   # 双差定位
lrwxrwxrwx. 1 zzy zzy  26 Sep  7 18:08 share_directory -> /mnt/hgfs/share_directory/
drwxrwxr-x. 3 zzy zzy  18 Sep 13 09:39 SOD_data  # sod 下载数据
drwxrwxr-x. 6 zzy zzy  64 Sep 20 11:13 workspace  # 垃圾桶

$ ls -l Script
总用量 20
-rw-rw-r--. 1 zzy zzy  412 Sep 18 08:46 CENC_data.py
-rw-rw-r--. 1 zzy zzy  611 Sep 17 18:06 HINET_demo.py
-rw-rw-r--. 1 zzy zzy  205 Sep 17 22:49 mseed2sac.py
-rw-rw-r--. 1 zzy zzy 2488 Sep 20 12:37 Obspy_test.py
-rw-rw-r--. 1 zzy zzy 2083 Sep 13 09:40 sod_demo.xml

参考文献