目录
[一 补充命令](#一 补充命令)
[1 ls补充](#1 ls补充)
[2 指令的本质](#2 指令的本质)
[3 软件安装的本质](#3 软件安装的本质)
[4 对下载和安装最朴素的理解是什么?](#4 对下载和安装最朴素的理解是什么?)
[5 Windows下常见指令](#5 Windows下常见指令)
[二 man指令](#二 man指令)
[1 定义与使用](#1 定义与使用)
[2 下载](#2 下载)
[三 Linux下一切皆文件](#三 Linux下一切皆文件)
[四 echo指令](#四 echo指令)
[1 定义](#1 定义)
[2 使用(echo && >&&输出重定向)](#2 使用(echo && >&&输出重定向))
[4 追加重定向(>>)](#4 追加重定向(>>))
[5 显示器的字符设备](#5 显示器的字符设备)
[五 cp指令](#五 cp指令)
[1 定义](#1 定义)
[2 简单使用](#2 简单使用)
[3 指令](#3 指令)
[六 mv指令](#六 mv指令)
[1 定义](#1 定义)
[2 语法](#2 语法)
基础指令(1)回顾:【【Linux】linux基础指令入门(1)
一 补充命令
1 ls补充
ls的本质是显示文件的属性,不管是文件名还是文件时间,都叫做文件属性,也叫做文件的源信息。
(1)alias命令---ls-l和ll的区别
我们发现,使用ls-l和ll,显示的内容是等价的

那两个指令有什么区别呢?

alias命令:起别名,别称
我们自己也可以取别名,但是自己最好不要使用,容易混淆
如果我们起了别名,怎么取消呢?
可以给别名直接置为空。也可以关闭xsell,重新登陆
(2)ls颜色

(3)which命令
which命令:是查找Linux系统中,指定命令所在的路径(就是在/usr/bin/下查找)
当我们用which查找pwd指令时,发现pwd指令是一个文件

(4)长选项和短选项

2 指令的本质
指令的本质其实是Linux系统特点路径下的一个可执行文件
Linux指令,就是二进制文件被安装到(拷贝)系统路径下
命令,指令,可执行程序,二进制文件,可执行程序,都是一回事
人和软件都可以用命令的形式运行起来
3 软件安装的本质
Linux中,所谓软件安装的本质,就是把可执行文件拷贝到系统路径下
例如我们上面打开的指令位置,发现指令一直在路径/usr/bin 下,就是因为当时编写指令的大佬把指令都拷贝到了/usr/bin/下
我们自己写一个指令也可以拷贝到/usr/bin/ 下,用到拷贝指令cp(后面再讲解)。也可以删除这个指令,用到指令rm(上一篇讲到)----->相当于朴素版的卸载
4 对下载和安装最朴素的理解是什么?
在windows中,所谓的可执行程序(应用),本质就是特定路径下的文件。
下载时:下载的是.exe文件
安装时:拷贝到Windows路径下
比如说我们打开网易云音乐

我们发现,可以通过对应的路径,来打开对应的可执行程序.exe
但是我们通过对应的路径,打开程序,太过于麻烦,这个时候就出现了快捷方式(例如Windows桌面上的图标)
快捷方式:替代输入路径,直接打开
C++/cb编译:形成了一个可执行程序.exe,
不管是自己写的.exe还是下载的.exe,可执行文件(.exe)也是文件!包含路径和文件名
5 Windows下常见指令
Windows下也有指令,例如shutdown
二 man指令
1 定义与使用
man命令:查看指定命令的使用手册,在线查看手册的工具
比如:man ls, man pwd , man rm等等
man man就会查出man的使用手册:
man的手册分为九章,我们基本只使用前三个

1是普通的命令
2是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么
头⽂件)
3是库函数(C语言),如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件
注意:回车键时往下翻,退出是按q
man的匹配原则是就近原则,最近的匹配不上,才会匹配后面的
例如:printf
在C语言中,printf是输出数据
在Linux下:printf是按照指定格式输出文本或变量
在使用printf时,会默认匹配手册1,匹配到了就不会再匹配了

2 下载
如果在使用的时候发现用不了man指令,那可能时云服务器没有安装man指令,需要自己按照下面的下载:

三 Linux下一切皆文件
Linux认为,Linux下,一切皆文件。例如显示屏,键盘,磁盘,显卡等等,都是文件
从键盘获取数据,键盘时文件,读取键盘文件
向显示器打印数据,显示器是文件。向显示器文件,写入数据
C/C++中有三种默认输入输出被打开,分别叫做:标准输入,标准输出,标准错误
FTLE*:文件指针
因为Linux一切皆文件,所以键盘,显示器也是文件,用C/C++的方式打开
当我们想要标准输出的时候(向显示器做文件写入),不仅可以使用fprintf,还可以使用fwrite
例如:fopen把指定路径下的键盘文件,或显示器文件打开,得到一个stdin,stdout,stderr这样的文件指针
为什么Linux一切皆文件-----未来要简化在系统层面,对设备的访问
为什么要默认打开这三个标准输入,输出?
因为程序需要通过标准输入获取数据,通过标准输出打印接结果
四 echo指令
1 定义
将传递给它的参数(文本字符串)输出到标准输出,默认情况下,标准输出就是显示器
例如:

本质就是echo向自己的标准输出打印
2 使用(echo && >&&输出重定向)

这是我们就引入了一个新的概念:输出重定向 (命令的输出结果(标准输出 stdout 或错误输出 stderr)从默认的终端屏幕,转向到文件或其他设备的操作)
当echo xxxxxx(字符串) > 文件名,这样的结构时,就是将字符串输入到这个文件中**。如果这个时候文件中有内容,就会自动删除文件中原本的内容,输出这个字符串。如果这个文件原本不存在,就会自动创建文件。**
相同的,printf也是如此:如果输出时没有这个文件,就会自动新建文件

那我们之后就不需要用touch创建新文件,可以直接用一个>来创建新文件

创建了一个大小为0的新文件
输出重定向就可以 新建,清空,输出
3输入重定向(< )
小于号 < 输出重定向

当我们输出重定向和输出重定向结合的时候,就构成了文本文件拷贝功能

就是将text.c中的内容拷贝到1.txt 中
4 追加重定向(>>)
注意:两个符号中间不能有空格
当我们写入的时候,如果不想清空怎么办,就用到了追加重定向

5 显示器的字符设备
当我们写了一个数字12345,在显示的时候,是整数还是字符'1''2''3''4''5' ?答案是:字符。因为显示器叫做字符设备,上面只能显示字符。
例如:int a = 12345; printf("%d", a); printf会把a转化成字符(格式化控制)
五 cp指令
1 定义
拷贝命令:复制文件或目录。
2 简单使用
我们可以把指定文件拷贝到另一个文件的内容,如果不存在被拷贝的文件,则会自动生成一个新文件。
也可以拷贝到上级文件中(使用..)
3 指令

指令说明:
(1)cp指令用于复制文件或目录;
(2)如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
常⽤选项
• -f或--force强⾏复制⽂件或⽬录,不论⽬的⽂件或⽬录是否已经存在
• -i或--interactive覆盖⽂件之前先询问⽤⼾
• -r递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符
号链接,则⼀律视为普通⽂件处理
六 mv指令
1 定义
mv命令是move的缩写,可以⽤来移动⽂件或者将⽂件改名(move(rename)files,经常⽤来备份⽂件或者⽬录
2 语法
mv [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录
3 功能
4 使用
例如:把1.text挪动到上级目录下(剪切):

如果想把118挪到上级目录并改名(剪切并重名):

对普通文件和目录都可以重名
