ubuntu14.04 编译安装CPU版caffe
本文,试图中一个干净的ubuntu14.04机器上安装caffe的cpu版本。
http://blog.csdn.net/sinat_35188997/article/details/73530434
http://caffe.berkeleyvision.org/installation.html
http://blog.csdn.net/zly_kemgine/article/details/78749764
首先卸载掉一些包:
卸载所有cuda有关的包:
apt-get remove --purge cuda-*
卸载掉所有nvidia有关的包:
apt-get remove --purge nvidia-*
卸载掉所有cudnn包:
apt-get remove --purge libcudnn*
卸载掉所有caffe包:
apt-get remove --purge caffe-*
卸载掉conda:
直接删除conda安装目录,然后在环境变量配置文件中删除旧路径即可http://blog.csdn.net/qq_22474567/article/details/54984257
然后使用dpkg -l|grep 或 dpkg -S 软件名 或 find 查看是否卸载干净
因为我是用的是什么都没有的干净的ubuntu系统,所以免去上面的步骤。
然后安装conda:
上官网下载.sh文件,运行,运行过程中配置一下安装目录,确认一下是否要加入环境变量即可,安装完成后重启terminal即可使用
对于caffe的依赖包有哪些,请参考Prerequisites:http://caffe.berkeleyvision.org/installation.html
然后安装openblas:
源码:https://github.com/xianyi/OpenBLAS
安装教程:http://www.tuicool.com/articles/vimi6v
下载openblas源码,解压,进入目录,
make
make完成后,根据输出中的提示,修改Makefile.rule文件中的prefix字段,设置安装目录,然后执行,
make install
(或者也可以直接执行 make PREFIX=安装路径 install 命令)
然后安装protobuf:
注意,caffe暂不支持protobuf3,我们一般选择安装protobuf 2.5.0
源码:https://github.com/google/protobuf
安装教程:http://blog.csdn.net/10km/article/details/53023527
http://blog.csdn.net/nyist327/article/details/49908891
http://blog.csdn.net/missdaddio/article/details/67631777
官方教程上说,直接
$ ./configure --prefix=安装路径
$ make -j16
$make check -j16
$ make install
但是,解压后发现没有configure文件,上网搜索后发现,需要先运行autogen.sh生成configure文件
运行autogen.sh,发现程序试图从一个被墙的网站上下载gtest-1.5.0.tar.bz2,因为机器不能FQ,所以无法下载。
查看autogen.sh的代码,发现下面这段代码:

于是手动下载googletest-release-1.5.0.zip,解压缩后,改名为gtest放在protobuf-2.5.0目录下
再次运行autogen.sh,再次出错
/autogen.sh: 40: autoreconf: not found
搜了一下,发现是因为缺包
解决办法: sudo apt-get install autoconf automake libtool
再次运行autogen.sh,成功生成configure,然后
$ ./configure --prefix=安装路径
$ make -j16
$make check -j16
$ make install
最后运行protoc命令,查看是否安装成功
然后,安装到anaconda中
export PATH=/HOME_ANACONDA_PATH/bin:PATH
#cd ./python
#python setup.py build
#python setup.py test
#python setup.py install
正确安装如图:

然后安装boost:
源码:http://www.boost.org/users/history/version_1_66_0.html(这里注意,不要用github上下载的zip,github上下载下来的zip不全,会报can't cd into ...错误)
教程:
./bootstrap.sh --prefix=/usr --with-python=/opt/anaconda2/bin/ --with-python-root=/opt/anaconda2/

./b2
./b2 install
然后安装glog
源码:https://github.com/google/glog/tree/v0.3.3
教程:
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure ¨C-prefix=/usr
make && make install
然后安装gflags
源码:https://github.com/gflags/gflags
教程:
要先安装cmake:apt-get update & apt-get install cmake
cd gflags-master
mkdir build
cd build
export CXXFLAGS="-fPIC"
cmake -D CMAKE_INSTALL_PREFIX=/usr .. (这里注意最后的两个点,别漏了)
make VERBOSE=1
make
make install
然后安装hdf5
源码:https://support.hdfgroup.org/HDF5/release/obtainsrc518.html
教程:
tar -zxvf hdf5-1.8.3.tar.gz
$ ./configure --prefix=/usr
make
make check # run test suite.
make install
make check-install # verify installation.
然后安装snappy
源码:http://google.github.io/snappy/
教程:https://github.com/google/snappy/blob/master/README.md
cd google-snappy-4f7bd2d
mkdir build
cd build
(export CXXFLAGS='-fPIC')——这句后来被证明应该加上,以便在编译时产生share文件夹
cmake -D CMAKE_INSTALL_PREFIX=/usr ..
make
make install
然后安装opencv(这里注意一下,尽量编译安装opencv3。我尝试过直接用conda install opencv而不使用编译安装,结果在安装caffe时存在一些问题)
源码:https://github.com/opencv/opencv/tree/3.0.0
教程:https://www.cnblogs.com/kanuore/p/7587434.html(这个是给python3安装opencv的,2同理)
下载源码,解压,进入目录,发现是cmake的项目,故创建build文件夹并在其中cmake。
mkdir build
cd build
执行cmake命令,如下图:

发现报错,如下图,一开始进入CMakeError.log文件中查看,发现有错误提示提到ffmpeg等。以为是缺包,因此安装缺少的包:http://blog.csdn.net/zhang_shuai12/article/details/52289825
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

再次执行camke命令,还是报一样的错。
然后仔细阅读了错误提示中的内容,发现程序试图从一个被墙的网站下载ippicv_linux_20141027.tgz,下载不下来因此报错!
一定要仔细阅读错误提示!如果错误提示看不出什么的话再去看CMakeError.log文件。
根据上面的错误提示,查看3rdparty/ippicv/downloader.cmake文件,或者根据网上搜到的结果,发现需要手动下载ippicv_linux_20141027.tgz并放到指定位置(如下图)

于是从github上下载ippicv_linux_20141027.tgz,https://github.com/pkpp1233/ippicv,下载后解压得到所需压缩包,拷贝到指定文件夹中。
再次执行cmake命令,cmake通过,然后make,makeinstall,都成功了。
但是,因为我在cmake命令中指定了将opencv安装到anaconda中的python中,因此想要在python中看一下opencv是否安装成功
import cv2
结果import失败。这个包并没有被安装上。
回过头来思考,可能是cmake命令的选项出错了,因此仔细阅读了cmakelist,发现cmake命令中的的选项都在CMakeLists.txt中有解释,之前的cmake命令中好多选项写错了:

1、用ctrl查找,发现cublas是cuda的配置,应该不需要,去掉

2、查找之前输入的选项,发现有几个选项查找不出来,则说明是选项名字错了,比如PYTHON_EXECUTEABLE应该为PYTHON2_EXECUTEABLE,PYTHON_LIBRARY应为PYTHON2_LIBRARIES……逐个选项修复

错误的cmake命令:

得到正确的cmake命令:

删掉生成的/opt/opencv,删掉编译目录build,重新mkdir build,cd build,执行正确的cmake命令,make,make install。都通过了。
然后测试import cv2,成功。
总结:
cmake命令安装的时候一定要仔细阅读cmakelist.txt文件
然后安装lmdb
源码:https://github.com/LMDB/lmdb
教程:
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
打开makefile文件,修改prefix字段
make && make install
(或使用make install DESTDIR=/root/_install_caffe_cpu/lmdb命令)
然后安装leveldb
源码:https://github.com/google/leveldb/tree/v1.10
教程:
解压,进入文件夹
make
make命令发现报错:

在github上发现了关于相似问题的讨论,只不过我们是snappy库报的错,它是gflags库报的错:https://github.com/BVLC/caffe/issues/2171
原来是当时安装snappy的时候应该先执行一句export CXXFLAGS='-fPIC',这样编译后才会生成share文件夹。
所以重新安装snappy:删除build文件夹,mkdir build,cd build,export CXXFLAGS='-fPIC',cmake -D CMAKE_INSTALL_PREFIX=/usr ..,make,make install
make install,发现报错,原来leveldb的工具包不支持make install(查看makefile文件,可以发现找不到install命令的定义)
所以需要手动将make出的.a和.so文件拷贝到/usr/lib下,将include文件夹拷贝到/usr/include下
最后,安装caffe:
解压,进入caffe-master,官方推荐使用make方式编译caffe,也可以使用cmake,这里我用make
复制一份Makefile.config.example,改名为Makefile.config
根据自己的需要,修改makefile.config,以下是我的配置:
## Refer to http://caffe.berkeleyvision.org/installation.html
# Contributions simplifying and improving our build system are welcome!
# cuDNN acceleration switch (uncomment to build with cuDNN).
# USE_CUDNN := 1不使用cudnn
# CPU-only switch (uncomment to build without GPU support).
CPU_ONLY := 1CPU版本
# uncomment to disable IO dependencies and corresponding data layers
USE_OPENCV := 1使用opencv
USE_LEVELDB := 1使用leveldb
USE_LMDB := 1使用lmdb
# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)
# You should not set this flag if you will be reading LMDBs with any
# possibility of simultaneous read and write
# ALLOW_LMDB_NOLOCK := 1
# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3opencv 3.0.0
# To customize your choice of compiler, uncomment and set the following.
# N.B. the default for Linux is g++ and the default for OSX is clang++
# CUSTOM_CXX := g++
# CUDA directory contains bin/ and lib/ directories that we need.
# CUDA_DIR := /usr/local/cuda
# On Ubuntu 14.04, if cuda tools are installed via
# "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
# CUDA_DIR := /usr不使用cuda
# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.
#CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
# -gencode arch=compute_20,code=sm_21 \不使用cuda,全都注释掉
# -gencode arch=compute_30,code=sm_30 \
# -gencode arch=compute_35,code=sm_35 \
# -gencode arch=compute_50,code=sm_50 \
# -gencode arch=compute_52,code=sm_52 \
# -gencode arch=compute_60,code=sm_60 \
# -gencode arch=compute_61,code=sm_61 \
# -gencode arch=compute_61,code=compute_61
# BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
BLAS := open使用openblas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
BLAS_INCLUDE := /usr/includeopenblas安装路径为/usr,则配置其include和lib为/usr/include和/usr/lib
BLAS_LIB := /usr/lib
# Homebrew puts openblas in a directory that is not on the standard search path
# BLAS_INCLUDE := $(shell brew --prefix openblas)/include
# BLAS_LIB := $(shell brew --prefix openblas)/lib
# This is required only if you will compile the matlab interface.
# MATLAB directory should contain the mex binary in /bin.
# MATLAB_DIR := /usr/local
# MATLAB_DIR := /Applications/MATLAB_R2012b.app
# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
#PYTHON_INCLUDE := /usr/include/python2.7 \
# /usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := /opt/anaconda2关键!!使用自己安装的anaconda的python,配置自己安装的anaconda的位置,下同
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include
# Uncomment to use Python 3 (default is Python 2)
# PYTHON_LIBRARIES := boost_python3 python3.5m
# PYTHON_INCLUDE:= /usr/include/python3.5m \
# /usr/lib/python3.5/dist-packages/numpy/core/include
# We need to be able to find libpythonX.X.so or .dylib.
# PYTHON_LIB := /usr/lib
PYTHON_LIB := $(ANACONDA_HOME)/lib
# Homebrew installs numpy in a non standard path (keg only)
# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
# PYTHON_LIB += $(shell brew --prefix numpy)/lib
# Uncomment to support layers written in Python (will link against Python libs)
# WITH_PYTHON_LAYER := 1这个不知道开不开?先没开?
# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include /usr/local/include编译所用的库路径
LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib /usr/local/lib
# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
# INCLUDE_DIRS += $(shell brew --prefix)/include
# LIBRARY_DIRS += $(shell brew --prefix)/lib
# NCCL acceleration switch (uncomment to build with NCCL)
# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)
# USE_NCCL := 1
# Uncomment to use `pkg-config` to specify OpenCV library paths.
# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
# USE_PKG_CONFIG := 1
# N.B. both build and distribute dirs are cleared on `make clean`
BUILD_DIR := build
DISTRIBUTE_DIR := distribute
# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
# DEBUG := 1
# The ID of the GPU that 'make runtest' will use to run unit tests.
TEST_GPUID := 0
# enable pretty build (comment to see full commands)
Q ?= @
修改完成后,
make all
make pycaffe
make test
然后将caffe源码目录中的python文件夹配置到PYTHONPATH这个环境变量里面去(如下图)←注意别漏了这一步

make方式编译的caffe不需要install,直接使用解压的这个文件夹里的东西
测试一下caffe:
测试一下pycaffe:

成功!
参考:
opencv3.0 + cuda 8.0 error
http://blog.csdn.net/yuehanliushuang/article/details/52116926
/*
#include "precomp.hpp"
-#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
+// GraphCut has been removed in NPP 8.0
+#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
void cv::cuda::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); }
void cv::cuda::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); }
*/
OpenBLAS install
http://www.tuicool.com/articles/vimi6v
Protobuf
Install protobuf 2.4.1
$ tar ¨Cxvf protobuf-2.4.1.tar.gz
$ cd protobuf-2.4.1
$ ./configure --prefix=/root/_install_caffe_cpu/protobuf-2.4.1
$ make -j16
$make check -j16
$ make install
export PATH=/HOME_ANACONDA_PATH/bin:PATH
#cd ./python
#python setup.py build
#python setup.py test
#python setup.py install
Boost
Install boost
./bootstrap.sh --prefix=/home/inf/web_demo/tools/_install_boost_1.58.0_anaconda/ --with-python=/home/inf/anaconda2/bin/ --with-python-root=/home/inf/anaconda2/
./b2
./b2 install
Install LMDB
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
make && make install DESTDIR=/root/_install_caffe_cpu/lmdb
Install glog-0.3.3
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure ¨C-prefix=/root/_install_caffe_cpu/glog-0.3.3
make && make install
Install gflag
use master.zip
cd gflags-master
export CXXFLAGS="-fPIC"
cmake -D CMAKE_INSTALL_PREFIX=/root/_install_caffe_cpu/gflag .
make VERBOSE=1
make
make install
hdf5
tar -zxvf hdf5-1.8.3.tar.gz
$ ./configure --prefix=/usr/local/hdf5-1.8.3/
make
make check # run test suite.
make install
make check-install # verify installation.
snappy
http://blog.csdn.net/hairetz/article/details/18049257
1.去官网http://code.google.com/p/snappy/下载snappy-1.1.1.tar.gz安装包。
2.加压到指定目录
cd ~/snappy
tar -zxvf snappy-1.1.1.tar.gz
cd snappy-1.1.1
./configure -prefix=/home/tools/_install_snappy
make
make install
opencv 3
error:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/opencv -D PYTHON_INCLUDE_DIR=/opt/anaconda2/include/python2.7/ -D PYTHON_INCLUDE_DIR2=/opt/anaconda2/include/python2.7 -D PYTHON_EXECUTABLE=/opt/anaconda2/bin/python -D PYTHON_LIBRARY=/opt/anaconda2/lib/libpython2.7.so -D PYTHON_PACKAGES_PATH=/opt/anaconda2/lib/python2.7/site-packages/ -D BUILD_EXAMPLES=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON2_LIBRARY=/opt/anaconda2/lib/libpython2.7.so -D BUILD_opencv_python3=OFF -D BUILD_opencv_python2=ON -D WITH_CUBLAS=1 ..
true:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/opencv -D PYTHON2_INCLUDE_DIR=/opt/anaconda2/include/python2.7/ -D PYTHON2_EXECUTABLE=/opt/anaconda2/bin/python2.7 -D PYTHON2_LIBRARIES=/opt/anaconda2/lib/libpython2.7.so -D PYTHON2_PACKAGES_PATH=/opt/anaconda2/lib/python2.7/site-packages/ -D BUILD_EXAMPLES=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_opencv_python3=OFF -D BUILD_opencv_python2=ON ..
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/tools/_install_opencv_3.0_anaconda/ -D PYTHON_INCLUDE_DIR=/home/tools/anaconda2/include/python2.7/ -D PYTHON_INCLUDE_DIR2=/home/tools/anaconda2/include/python2.7 -D PYTHON_EXECUTABLE=/home/tools/anaconda2/bin/python -D PYTHON_LIBRARY=/home/tools/anaconda2/lib/libpython2.7.so -D PYTHON_PACKAGES_PATH=/home/tools/anaconda2/lib/python2.7/site-packages/ -D BUILD_EXAMPLES=ON -dBUILD_NEW_PYTHON_SUPPORT=ON -D PYTHON2_LIBRARY=/home/tools/anaconda2/lib/libpython2.7.so -D BUILD_opencv_python3=OFF -D BUILD_opencv_python2=ON -D WITH_CUBLAS=1 ..
sudo route add -net 172.17.0.0/17 gw 192.168.43.1
sudo route del -net 172.17.0.0/23 gw 192.168.43.1
ubuntu14.04 编译安装CPU版caffe的更多相关文章
- Ubuntu14.04编译安装mysql5.6.26
Ubuntu14.04编译安装mysql5.6.26 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libncurses5-d ...
- ubuntu安装cpu版caffe
最近在笔记本上配置了ubuntu14.04,并配置了caffe,整个过程大概花了2个小时. 希望在安装时能给大家一个启发,这里配置的是无gpu版的,因为我的笔记本时核心显卡,配置gpu版的要编译cud ...
- ubuntu14.04 编译安装highpoint rocketraid 2720驱动
highpoint官方只有ubuntu12.10驱动,对于ubuntu14.04或者12.04,需要手工编译安装驱动. 基本步骤: 1.下载rocketraid 2720驱动源代码 2.在一台装有ub ...
- ubuntu14.04 编译安装gcc-5.3.0
最近编译个源码,要求对C++14的支持了,就GCC的编译安装最新的5.3.0,整个过程以root用户进行. 1.下载GCC源码,属于事后文档整理,已经不知道从哪下载了. 2.解压:tar -zxvf ...
- ubuntu14.04编译安装Git2.7
在开源中国看文章, 随意之间, 在软件资讯栏看到git 2.7的信息. 一直在使用在git 1.9.1, 心中突感, 这个git 2.7是个什么东西, 怎么git的版本更新有如此快么. 印象里, 老外 ...
- [译]How to Install Node.js on Ubuntu 14.04 如何在ubuntu14.04上安装node.js
原文链接为 http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/ 由作者Jacob Nicholson 发表于October ...
- Ubuntu14.04下安装Libsvm,并使用Libsvm
(1)Ubuntu14.04下安装Libsvm 转载:https://blog.csdn.net/katrinawj/article/details/78915874 一.下载: 网址:http:// ...
- ubuntu14.04下安装ffmpeg
ubuntu14.04下安装ffmpeg 一.安装各种依赖包 1.yasm(libx264需要依赖yasm) sudo apt-get install yasm 2.libx264 sudo apt- ...
- ubuntu 13.04编译安装xen4.4总结
之前在ubuntu14.04上安装xen4.4失败,提示编译有问题,这次换了成了ubuntu13.04进行安装,成功完成xen4.4的安装 1. 安装环境 操作系统:ubuntu13.04 xen版本 ...
随机推荐
- maven依赖workspace和jar包
当开发maven项目时,如果workspace中有maven依赖的项目,并且groupid和artifactId都相同,maven就会优先依赖workspace中的项目文件,如果想依赖maven库中的 ...
- RIP协议两个版本对不连续子网的支持情况实验
一.连续子网与不连续子网 我们经常见到说RIPv1不支持不连续子网,仅支持连续子网,那么什么是连续子网,什么是不连续子网呢? l 不连续子网:指在一个网络中,某几个连续由同一主网划分的子网在中间被多 ...
- iOS 解决xcode设置全局断点后 执行视频播放时自动进入断点cxa_throw
iOS中遇到报错,然后断点停留在了libc++abi.dylib`__cxa_throw:里面,这是因为C++文件异常,一般直接点击下一个断点就能跳过去,然后项目还是继续可以运行. 解决方案 右键编辑 ...
- 1. DataBinding - offical tutorial
1. DataBinding - offical tutorial android DataBinding tutorial 构建环境 数据与布局文件的绑定 data binding 表达式 数据对象 ...
- Mybatis热加载Mapper.xml
开发的时候,写Mybatis Mapper.xml文件的时候,每次修改SQL都需要重启服务,感觉十分麻烦,于是尝试写了一个Mybatis的Mapper.xml热加载. 能在修改Mapper.xml之后 ...
- 木马suppoie 处理的几个思路 木马文件的权限所有者 属主数组 定时任务 目录权限
木马suppoie 处理的几个思路 木马文件的权限所有者 属主数组 定时任务 目录权限
- ROS导航之参数配置和自适应蒙特卡罗定位
我们的机器人使用两种导航算法在地图中移动:全局导航(global)和局部导航(local).这些导航算法通过代价地图来处理地图中的各种信息,导航stack使用两种costmaps http://www ...
- 努比亚Z18mini多点对焦
25点对焦 分为了中心对焦.中间对焦.边缘对焦三个区域 [参考文献] 手机上感受单反的“多点对焦”努比亚Z18mini给你想象 https://baijiahao.baidu.com/s?id=160 ...
- 【转】VC++计算当前时间点间隔N天的时间(不使用CTimeSpan类)
转自:http://blog.csdn.net/fzuim/article/details/61199351 涉及到有效期的设置,需要计算N天时间间隔的时间. C++ Code 123456789 ...
- linux中一些常用的命令总结
mv : 用于移动文件或目录, 也可以用于重名文件和目录 touch : 创建新文件, 也可以修改文件的时间标签 mkdir : 创建目录 rm : 删除文件或目录 cd : 切换到指定的目录 l ...