目录
[一. 快速认识一些简单的linux指令](#一. 快速认识一些简单的linux指令)
[1.1 clear](#1.1 clear)
[1.2 pwd](#1.2 pwd)
[1.3 mkdir 和 ls](#1.3 mkdir 和 ls)
[1.4 touch](#1.4 touch)
[二. linux 基本指令详解](#二. linux 基本指令详解)
[2.1 ls](#2.1 ls)
[2.1.1 相关小知识: 文件和目录](#2.1.1 相关小知识: 文件和目录)
[2.1.2 ls -l](#2.1.2 ls -l)
[2.1.3 ls -a](#2.1.3 ls -a)
[2.1.4 ls 指定目录](#2.1.4 ls 指定目录)
[2.1.5 ls -d](#2.1.5 ls -d)
[2.2 pwd](#2.2 pwd)
[2.2.1 相关小知识:路径分隔符](#2.2.1 相关小知识:路径分隔符)
[2.3 cd](#2.3 cd)
[2.3.1 相关小知识: linux 根目录](#2.3.1 相关小知识: linux 根目录)
[2.3.2 相关小知识: . 和 ..](#2.3.2 相关小知识: . 和 ..)
[2.3.3 cd 目录名](#2.3.3 cd 目录名)
[2.3.4 cd ~](#2.3.4 cd ~)
[2.3.5 cd -](#2.3.5 cd -)
[2.4 Linux 目录结构](#2.4 Linux 目录结构)
[2.4.1 路径](#2.4.1 路径)
[2.5 touch](#2.5 touch)
[2.6 mkdir](#2.6 mkdir)
[2.7 tree](#2.7 tree)
[2.7.1 tree 的下载](#2.7.1 tree 的下载)
[2.7.2 tree 的使用](#2.7.2 tree 的使用)
[2.7.3 相关小知识: ctrl+c](#2.7.3 相关小知识: ctrl+c)
[2.8 alias](#2.8 alias)
[2.8.1 实操](#2.8.1 实操)
[2.9 rmdir](#2.9 rmdir)
[2.10 rm](#2.10 rm)
[2.10.1 rm -f](#2.10.1 rm -f)
[2.10.2 rm -r](#2.10.2 rm -r)
[2.10.3 rm -i](#2.10.3 rm -i)
[2.11 man](#2.11 man)
[2.11.1 示例](#2.11.1 示例)
[2.11.2 man man](#2.11.2 man man)
[2.11.3 退出](#2.11.3 退出)
[2.12 cp](#2.12 cp)
[2.12.1 复制文件](#2.12.1 复制文件)
[2.12.2 复制目录(cp -r)](#2.12.2 复制目录(cp -r))
[2.12.3 cp -f](#2.12.3 cp -f)
[2.12.4 cp -i](#2.12.4 cp -i)
[三. 指令到底是什么](#三. 指令到底是什么)
[3.1 which](#3.1 which)
一. 快速认识一些简单的linux指令
1.1 clear
clear 主要用于清除历史指令。

1.2 pwd
pwd 主要用于查看当前的工作路径。

1.3 mkdir 和 ls
mkdir 主要用于在当前路径创建一个目录(文件夹)。
ls 主要用于列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

1.4 touch
touch 主要用于在当前路径创建一个普通文件。

我们会发现如果是以 d 开头说明这是一个目录,以 - 开头说明这是一个普通文件。
二. linux 基本指令详解
2.1 ls
ls 主要用于列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
2.1.1 相关小知识: 文件和目录
在认识 ls 之前我们先来认识一下 文件和 目录 这两个概念
在linux中,目录就等价于我们熟知的文件夹;文件我们可以看作由文件内容和文件属性组成,所以哪怕我们创建一个空文件也是占用磁盘空间的,因为要存储文件属性。

2.1.2 ls -l
ls -l 相较于 ls来说会显示 子目录、文件的更多属性,而 ls 默认只显示名字。

2.1.3 ls -a
列出目录下的所有文件,包括以.开头的隐含文件(目录同理)。

所以,如果我们想要创建一个隐藏文件的时候,我们只需在文件名前面加上一个 **.**即可:touch .youcannotseeme
还有就是选项之间可以组合使用:ls -a -l、ls -l -a、ls -al、ls -la所达成的效果是一致的。
2.1.4 ls 指定目录
在之前的学习中,ls 一般是作用于当前目录,但是实际上我们也可以指定目录访问**(这里要注意的是指定目录访问时,也分为绝对路径和相对路径,在直接指定目录时要注意这也是基于当前目录)****:**

2.1.5 ls -d
ls -d 的主要作用是将目录像文件⼀样显示,而不是显示其下的文件。如:ls ‒d指定目录。

2.2 pwd
pwd主要用于显示当前所处目录下的路径。
2.2.1 相关小知识:路径分隔符
windows的路径分隔符是****' \ '****:
D:\安装\Xshell
linux 的路径分隔符是' / ':
/root
2.3 cd
2.3.1 相关小知识: linux 根目录
我们在使用 pwd 显示当前所处目录的工作路径时,往往会发现开头有一个' / ',但是这不是我们前面提到的路径分隔符,而是根目录,我们可以验证一下:

2.3.2 相关小知识: . 和 ..
在使用 ls -al 的时候,我们发现出现了**.和..**这两个隐藏目录,这里我们来详细了解一下。

对于任何一个目录(包括空目录)来说,**系统都会默认自带 . 和 .. 目录,其中 . 代表的当前目录,.. 代表的是上级目录,**这一点我们可以在后面做出验证。
2.3.3 cd 目录名
这个语法的主要作用是:**改变工作目录。将当前工作目录改变到指定的目录下。**比如我想从 root 跳转到 mydir:

当然你也可以把路径完整写出,效果是一样的,但是要注意直接写目录名的意思是在当前目录下查找:

那么我们也可以通过这个来验证 . 和 .. 的含义(我们会发现 cd .所处目录不变,cd ..则返回到了上级目录):

2.3.4 cd ~
cd ~ 可以理解为跳转到当前用户的家目录(home directory)
家目录:操作系统的用户,在登录系统之后,默认所处的路径。
对于 root 用户来说,家目录是**/root 。**
对于 普通用户(lzx为例),家目录是**/home/lzx 。**
2.3.5 cd -
cd - 可以理解是在两个最近访问的目录之间跳转。

2.4 Linux 目录结构
在之前我们提及了 linux 根目录,那么现在我们来学习一下 linux 目录结构
linux 的目录结构可以看作是一个树形结构:
a. 叶子节点:一定是普通文件或者空目录。
b. 非空叶子节点:一定是一个非空目录。

2.4.1 路径
Linux 文件系统以 / 为根形成树形结构。普通目录通常只有一个父目录,因此从根目录 / 出发,沿着一级一级的目录名,就可以定位到目标文件或目录。
绝对路径:以 ' / ' 为参照位置,定位一个文件或者目录。
绝相对路径:以非' / '为参照位置,定位一个文件或者目录。
比如说我想查看 /root/mydir/mydir.c 的文件属性:

2.5 touch
touch 除了在目录下创建普通文件外,还可以对已存在的普通文件更新访问时间和修改时间。

2.6 mkdir
mkdir 除了创建目录,还可以用来创建一串路径(加上选项 -p)。

2.7 tree
tree就是把目录内容按照"树形结构"显示出来,我们同样可以指定目录(不写默认当前目录)
2.7.1 tree 的下载
博主的云服务器用的是Ubuntu,这里仅展示Ubuntu的下载指令:
bash
tmp install -y tree
2.7.2 tree 的使用
比如我之前创建了一串路径: a/b/c/d,现在我想把目录 a 的内容以树形结构的形式展现出来:

2.7.3 相关小知识: ctrl+c
如果在命令行中出现了异常,统一尝试 ctrl+c 解决。
假如我不小心 tree / 我想终止,也可以用 ctrl+c:

2.8 alias
alias 就是给一条命令起一个"别名"。
bash
[whb@bite-alicloud test]$ alias hello='ls -a -l -n'
[whb@bite-alicloud test]$ which hello
alias hello='ls -a -l -n'
/usr/bin/ls
[whb@bite-alicloud test]$ hello
total 36
drwxrwxr-x 2 1003 1003 4096 Jan 11 17:59 .
drwx------ 22 1003 1003 4096 Jan 11 17:57 ..
-rw-rw-r-- 1 1003 1003 28667 Jan 11 18:29 temp.txt
2.8.1 实操

2.9 rmdir
rmdir 的作用就是删除对应路径的空目录(文件和非空目录都不行)。

2.10 rm
rm 在默认情况下只能删除文件。

2.10.1 rm -f
即使文件属性为只读(即写保护),亦直接删除。
2.10.2 rm -r
删除目录及其下所有文件**(递归删除)****。**

2.10.3 rm -i
删除前逐⼀询问确认(y 表示确认,n 就是取消)。

2.11 man
man 可以理解为是一本手册,我们想要了解陌生的指令就可以用到它。
2.11.1 示例

2.11.2 man man
man man也是可以使用的,意思是用 man 查看 man 自己的使用手册。

这里通过我们的截图会发现有 1,2,3.....的数字,我们可以理解为这是 man 的不同章节:

如果我们在使用的时候加上章节,就会在对应的章节搜索,例如:
bash
man 3 printf
就会在第三章查找对应的 printf。如果不加上章节,man 会按照系统规定的章节搜索顺序进行查找,并显示第一个匹配到的手册页。
2.11.3 退出
要退出手册的话,只要按下 q 键就可以了。
2.12 cp
cp 就是 copy(复制),用于复制文件或目录。
2.12.1 复制文件
复制文件的常见的写法有三种:
bash
//将目标文件的副本 dstfile 拷贝到当前目录下
cp srcfile dstfile
//将目标文件拷贝到目录 dstdir 下
cp srcfile dstdir
//将目标文件的副本 dstfile 拷贝到目录 dstdir 下
cp srcfile dstdir/dstfile

2.12.2 复制目录(cp -r)
复制目录的常用写法和复制文件没什么区别,只是要额外加上一个选项**-r 。**

2.12.3 cp -f
有时我们在拷贝目录、文件的时候,如果已存在同名的目录、文件,往往会询问我们是否要对已有的文件、目录实现覆盖(y 表示确认,n 表示取消),加上选项 -f 就表示不要询问,直接覆盖。

2.12.4 cp -i
这个就是实现覆盖之前先询问下我们的意见。
三. 指令到底是什么
3.1 which
在弄清楚指令到底是什么之前,我们先来再学一个指令 which:
which 的作用是查找某个命令实际对应的可执行文件路径。

也就是说命令的本质就是一个文件。