本文以 `Ubuntu16.04` 系统学习,主要用来记录`Linux`的一些基础命令操作,本文持续更新
# 写在前面
不知道为什么网上的教学视频都是以 `Centos` 进行讲解的,但是基础命令差异不大。由于观看的视频年久失修,很多东西在日新月异的改变,询问了学长他们的开发环境,决定还是以较为稳定的`Ubuntu16.04`来作为学习的基础。
# 基础指令
## ls
### 作用
列出当前目录下所有的目录/文件

### 用法
#### 用法 1
**ls 路径**
> 路径可以分为两种:相对路径 / 绝对路径
> 相对路径:相对路径需要一个参照物(通常为当前的工作路径);`./`表示当前目录, `../`表示上一级目录
> 绝对路径:绝对路径不需要参照物,直接从根目录`/`下开始寻找对应的路径
**如果不加路径则默认为当前工作路径**
#### 用法 2
**ls +选项 路径**
作用:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
- ls -l 路径
- ls -la 路径
- ls -lh 路径
选项解释:
- -l 表示list,以详细列表的形式进行展示

- -a 表示all,表示展示所有的目录/文件(包括隐藏目录/文件)

- -lh 列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档大小的时候以可读性较高的形式显示

补充:
- 上述列表中,第一列表示文档的类型,其中`d`表示文件夹,`-`表示目录
- 在`Liunx`中,隐藏文件通常以`.`开头
## pwd
### 作用
print working directory,打印当前工作目录
### 用法
pwd

## cd
### 作用
change directory,切换工作目录
### 用法
cd 路径
- eg1:从`\root`目录下切换到`\home\lz`下

补充:
- 在cd时如果后面不跟路径,则默认回到`~`路径下
## mkdir
### 作用
make directory,创建目录
### 用法
#### 用法 1
**mkdir 路径**
- eg1 在`/home/lz` 下创建一个`test`目录

#### 用法 2
**mkdir -p 路径**
**作用:创建多层目录**
- eg2:在`/home/lz`创建一个`a/b/c/d`

#### 用法 3
**mkdir 路径1 路径2 ... 路径n**
**作用:同时创建多个目录**
- eg3:在`/home/lz`同时创建`b, c, d`三个目录

## touch
### 作用
touch,创建文件
### 用法
touch 路径
- eg1:在当前目录下创建一个 `Linux.txt` 文件

- eg2:在当前目录下同时创建 `a.txt,b.txt`

## cp
### 作用
copy,复制文件/目录到指定的位置
### 用法
#### 用法 1
cp 被复制的文件/目录路径 要复制到的文件/目录的路径
- eg1:将`~`目录下的`Linux.txt` 复制到 `/home/lz` 下

补充:`Linux`在复制过程中是可以重新对新位置的文件进行重命名的在被复制的路径中进行,但是如果不是必须的需要,则建议保持前后名称一致。
#### 用法 2
cp -r 被复制的文件/目录路径 要复制到的文件/目录的路径
- eg2 将 `/home/lz` 目录下的 `a` 目录复制到 `~` 目录下

补充:当使用`cp`命令进行文件夹复制操作的时候需要添加选项`-r`【-r表示递归复制】,否则目录将被忽略
## mv
### 作用
move, 移动文档到新的位置
### 用法
#### 用法 1
mv 需要移动的文件/目录的路径 需要移动到的位置路径
- eg1:将`/home/lz`目录下的`Linux.txt` 移动到`/home/lz/a`目录下

补充:在 `Linux` 中重命名的命令也是 `mv`,语法和移动语法一样。
## rm
### 作用
remove,删除文件/目录
### 用法
#### 用法 1
rm 选项 需要移除的文件/目录路径
常见选项:
- -f:force,强制删除,不提示是否删除
- -r:表示递归
- eg1:删除一个文件

- eg2:删除一个目录

#### 用法 2
同时删除多个文件/目录
rm 选项 路径1 路径2 路径n

#### 用法 3
删除一个目录下有公共特性的文档,例如都以Linux开头

补充:`*`称之为通配符,意思表示任意的字符,`Linux*`,则表示只要文件以`Linux`开头,后续字符则不管。
## 输出重定向
### 作用
**一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。**
- `>`:覆盖输出,会覆盖掉原先的文件内容
- `>>`:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
### 用法
正常执行的指令 `> / >>` 文件的路径,文件可以不存在,不存在则新建
- eg1:使用覆盖重定向,保存ls -la 的执行结果,保存到当前目录下的ls.txt

- eg2:使用追加重定向,保存ls -la的执行结果到ls.txt中

## cat
### 作用
cat 有直接打开一个文件的功能
### 用法
#### 用法 1
cat 文件的路径
在输出重定向中讲过
#### 用法 2
cat可以对文件进行合并
cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径

Linux学习记录(一)