03、04、05、06————linux命令、目录相关命令、文件相关命令、远程管理命令
终于进入正题了!!!!!!接下来就是各种玩转Ubuntu的命令了
到此,Linux的学习终于开了个头!!!进入正题
为什么要学习各种命令,原文是这么写的:
1、尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。可以说不会命令,就不算会 Linux。
2、在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成。如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
3、Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已
第二条的意思就是工作的时候要进行服务器维护,使用的都是SSH客户端,它没有图形界面,工作用的都是输入命令来完成的;以及后端程序员或多或少都要用到linux常用的终端命令
实际上我就第三条看懂了O(∩_∩)O哈哈~
好的,光说不练假把式,开干
一、常用Linux命令的基本使用

有些命令学了三年都不一定用得到,所以只需要用常用的10几个就行了
切入正题,开始练习命令
关于如何练习,首先回答默写出下面这7个问题:
问题①:ls命令是什么单词的缩写
问题②:pwd命令是什么单词的缩写
问题③:cd命令是什么单词的缩写
问题④:touch这个命令是啥意思
问题⑤:mkdir命令是什么单词的缩写
问题⑥:rm命令是什么单词的缩写
问题⑦:clear这个命令是啥意思
list,print work directory,change directory,touch,make directory,remove
。。。。。。要不要这么麻烦,实际上还是理解和实操更重要
在我敲了5遍左右后,大概理解了
首先是ls,pwd,cd:显示,确认,跳转目录
然后是touch,mkdir:创建文件,创建目录
最后是rm,clear:删除文件,清屏
敲完5遍以后,在脑海里大概理解了这个意思(当然是配合视频的讲解,这个老师讲解的还不错,能讲透要点,一下就领悟到了精髓)
——————————→ok,这个可以过掉了,学会了
PS:关于放大缩小终端窗口字体的放大字体为什么要加一个shift:
如下图所示,是虚拟键盘
可以看出来默认是“-”,它的右边是“=”,所以缩小字体只需要:Ctrl + -
而因为“-”右边是“=”,所以需要按下shift键,让它变为“+”,所以放大字体需要:Ctrl + shift + =


以及另外两个小技巧:

简而言之就是:
1、Tab可以自动补全(一下Tab),或者显示所有可能(两下Tab)
2、按“上/下”可以切换曾经使用过的命令
3、退出当前输入的命令:ctrl + c(输太多发现前面输错了,可以按这个直接重头开始)
二、Linux终端命令
————————01、终端命令格式
关于终端命令格式,如下图所示,大概意思就是:
各种命令后面带有各种功效,可以分为三种(注意空格,[ ]表示可选)
一种是直接命令的,如ls,pwd,clear
一种是带有参数的,如cd 目录,touch 文件名称,mkdir 文件名称,rm 文件名称
还有一种是带有选项的,比如rm 文件名称就只能删除用来文件,不能用来删除目录
但是变为“rm -r 目录名称”就可以删除目录了,这个时候,-r就是所谓的选项
注意,rm -r 目录名称————学到的第八个linux命令,作用是删除目录
属于终端命令格式中:同时带有命令名,选项,参数的linux命令

————————02、查阅命令帮助信息的两种方法
只要有这两种方法查阅命令帮助就行,因为要先学习常用命令
若遇到问题,借助网络搜索;
这两种方法是在你忘记常用命令的时候,帮你回忆起来进行查询的
不用去网络搜索,打断工作节奏
另外注意,它们使用后,显示的都是英文

一个-,后面带参数,意味着是选项
而两个-,即--,后面带参数,意味着是固定选项

第二种查询命令帮助就不举图了,建议使用第一种(第二种全英文)
附上这种命令的操作说明图

三、目录相关命令
————————00、目标
之前已经学习了几个命令,等下讲解它的使用场景:
查看目录内容:ls
切换目录:cd
创建和删除操作:touch,mkdir,rm
等下要学习的几个新的命令:
拷贝和移动文件:cp,mv
查看文件内容:cat,more,grep
其他:echo,重定向>和>>,管道|
————————01、终端实用技巧
如下图所示,自动补全和曾经使用过的命令这两个终端实用技巧(虽然我已经会了,但还是补全笔记来)
自动补全是有关于Tab的,有两种效果:按一次,按两次
发现新用法:实际上Tab更多是用来补全你输入的文件夹目录的,而不是命令
曾经使用过的命令:就是上/下光标键
如果觉得输错了,还写的很多,按下ctrl + c 清空当前行所输入的,重新输入

注意这个Tab对目录的自动补全会带有“/”(其实可以直接回车的,比如下图所示可以直接回车)
如果是多个开头相同的,就需要两次Tab键

————————02、ls命令说明(关于隐藏文件和两个点的用法)

又复习了一遍为什么要学习这个终端命令:
工作的时候是要利用SSH客户端来远程控制服务器进行维护的
因为服务器存放的地方很吵,不利于长时间工作!
因为要用SSH客户端,所以要使用终端命令
其中最常见的就是对某个文件夹进行修修改改,第一用到的就是ls命令确认有要修改的文件
Windows系统有隐藏文件,Linux系统也有隐藏文件的概念
以下是要记住的内容:
Linux文件或者目录名称最长可以有 256 个字符
以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
.代表当前目录
..代表上一级目录
关于隐藏文件的使用,如下图所示
先创建了两个文件,一个隐藏,一个不隐藏
其中以.开头的文件是隐藏文件
用ls命令查看,只能显示不隐藏的文件
再用ls -a命令查看,显示所有隐藏和不隐藏的文件
用rm命令删除隐藏和不隐藏的两个文件,再用ls -a命令查看
发现创建的两个文件全部删除掉了

用ls -a命令查看时,能注意到开头的 . 和 .. 两个蓝色部分(视频还是没有说这行的三个点到底是干啥的,小脑袋犯糊涂不清楚哈哈~~~)
.代表当前目录
..代表上一级目录
它们是这么使用的:可以用来返回上一个目录
如下图所示:
cd .没有任何反应,仍然在当前目录
而cd ..产生反应,跳转到上一个目录
使用pwd查询当前所在目录,可以发现跳转到上一个目录
最后使用ls命令查看根目录下的文件

关于如何回到最初的目录,如下图所示,使用cd

————————03、ls常用选项

如图所示,介绍的是ls的三个选项:-a,-l,-h的用法
需要注意的是:-h无法单独使用,它必须配合-l一起使用,放在-l的后面
-l能以列表的方式显示文件的详细信息,如下图所示,这些详细信息有(从右到左的每列):
文件的创建时间,文件和文件夹占用的磁盘空间大小,两列python后面课程会讲到
然后是最前面那一列:如果是目录,那么就是d开头;如果是文件,那么就是-开头

使用ls -l -h
可以和上面的图进行对比,所谓的人性化的方式指的是以人性化的方式来显示文件的大小
更直观地知道文件大小

小技巧:
在Linux中,终端命令的选项,如果有多个选项,我们可以分开来输入,也可以合在一起来输入
举个例子,上面的输入是ls -l -h
可以合在一起输入ls -lh,如下图所示,分开来输入和合在一起输入没什么区别
注意,合在一起是不分顺序的(实际上ls -h -l和ls -l -h效果一样)
如果是ls -lha,或者是ls -lah,输出都一样,且会带有隐藏文件
这些隐藏文件是安装的各种日常使用应用程序配置文件,不要乱删

————————04、ls通配符的使用
通配符通常用于在大量文件里找到自己想要修改的那个文件

①用法举例之通配符*:代表任意个数个字符
首先创建几个txt文件:111,121,123,223,323,423,523
假设我们想要找到以1开头的文件,如何使用通配符来找到它们:ls 1*
假设我们想要找到以1结尾的文件,如何使用通配符来找到它们:ls *1.txt
注意,如果是找结尾的文件,需要把后缀也加上去
如果没有加上后缀,那么会提示无法访问
实际上也可以利用通配符解决加不加后缀的问题:ls *3*
这个命令的意思就是把3结尾的所有类型文件都显示出来
如下图所示

②用法举例之通配符?:代表任意一个字符,至少1个
假设我们想要找到以1开头和结尾的txt文件,如何使用通配符来找到它们:ls 1?1.txt
假设我们想要找到中间是数字2的txt文件,如何使用通配符来找到它们:ls ?2?.txt
下图顺便举例了?和*的结合(*代表显示所有后缀文件,但这里只有txt文件)

此时再创建一个11.txt,如何使用通配符来查询以1开头和结尾的txt
由下图可以看出来ls 1?1.txt是无法查到11.txt的(包括后面的1abc1.txt也查不到)
只有ls 1*1.txt有效果
如果再创建一个1abc1.txt,还能再查询到吗?
ls 1*1.txt当然是能的(*表示任意个数个字符,包括0个字符)

③用法举例之通配符[]:表示可以匹配字符组中的任意一个
此时桌面有五个txt文件很有特点:123,223,323,423,523
都是后面两个数字相同,开头的第一个数字不同
如何将它们提取出来呢?这个就是通配符[]的用法:ls [12345]23.txt
如下图所示
[abc]匹配a、b、c中的任意一个

此外,还有一种用法是[a-f]:匹配从a到f范围内的任意一个字符

————————05、cd
讲解了关于cd这个命令的扩展用法
哈哈,看到这个我才发现原来只要输入cd然后回车就可以直接回到用户的主目录了!!!(没说之前,真没注意😄)
另外就是这节的扩展用法:输入cd ~也可以直接回到用户的主目录!

cd和cd ~返回家目录举例,如下图所示
实际上开头在输入pwd之前,有个蓝色的“~”,表示当前位置
提示你当前是在用户的主目录
蓝色的~:表示用户的主目录
蓝色的/:表示根目录

cd .和cd ..,这个在之前就学习了,就不举例了
然后是关于cd -的用法:可以在最近两次工作目录之间来回切换
如下图所示
先跳转到Desktop目录,然后再跳转到Documents目录
注意cd ~表示切换回用户的主目录,那么~/Documents就是用户主目录下面的Documents目录
然后再用cd -,切换回上一个目录;
再按下向上键,然后回车,又能继续切换目录
使用cd -会切换到最近两个目录(实际上就是切换回上一个使用的目录)

————————06、相对路径和绝对路径

绝对路径:表示从根目录/家目录开始的具体目录位置;在输入路径时,最前面是 / 或者 ~
使用绝对路径可以切换到精准目录位置(只要你记得住这个文件在哪里)
cd 后面加上绝对路径示例,如下图所示

相对路径:表示相对当前目录所在的目录位置;在输入路径时,最前面不是 / 或者 ~
实际上这个相对路径就指的是相对于当前目录的其他目录
自己理解到了就行,因为它只是一个概念
你输入的永远都只有绝对路径,相对路径是对于你当前目录的其他目录,相对路径是给你自己看的一个概念
四、文件相关命令
————————01、touch

touch命令的扩展补充:
如下图所示,touch如果输入的是已存在的文件,则可以修改文件的末次修改日期
下面的111.txt文件之前已经被我用了touch,然后为了截图效果,又重新弄了一个哈哈
当然会发现笔者现在是凌晨4点在敲代码哈哈哈!!!
继续学习

————————02、mkdir

简单来说,就是你想创建一个俄罗斯套娃的目录,就可以用这个
你想创建一个a目录,再在a目录下面创建一个b目录,然后在b目录下面创建一个c目录。。。
大概意思是创建一个:a/b/c/d这么个目录,如下图所示
在不使用这个用法之前,正常的创建流程是这样的

学了这个用法之后,创建流程是这样的
创建了一个a1/b2/c1/d1这么个目录(不小心把b1写成了b2哈哈)


此外还有一个重要细节需要注意:
Linux里,不管是文件还是目录,名字都不能重名,且文件名和目录名一样不能重名

————————03、rm

rm命令删除后是直接从磁盘删除的,不会像图形界面那样先放到回收站那里
rm -r之前已经演示过了,用来删除目录,实际上能删除目录下的所有目录和文件
关于rm -f,使用它会强制删除,不管删除的文件存不存在,哪怕不存在的文件它也会删除

注意,如果是删除目录,但你只用了rm -f,它依旧会报错哈哈

rm也可以和通配符一起使用,如下图所示
rm *1.txt删除所有以1结尾的文件
rm -r *删除所有文件目录
友情提示:不要在根目录里输入:rm -rf *,不然直接崩溃哦哈哈哈

————————04、拷贝和移动文件命令之tree
学习新命令啦!

首先在图形界面新建一个文件夹,一个文件和它的复制文件
然后把文件放到文件夹里面去
好的,新命令开始学习!

tree的用法是:tree [目录名]
作用是:以树状图列出文件目录结构
直接在桌面输入tree后回车,效果如下图所示
其中,蓝色的 . 表示当前目录
然后尝试输入:tree ~

然后尝试在这个文件里面创建一个a/b/c目录
在c目录里面创建一个123.txt
再在b目录创建两个321.txt和322.txt
然后用tree进行验证,最下面显示一共有4个directories,5个files(4个目录,5个文件)

关于tree的扩展用法,只有一个,那就是tree -d

————————05、拷贝和移动文件命令之cp

cp的用法是:cp 源文件 目标文件
作用是:复制文件或者目录
Ubuntu自带的txt文本查看的文件是gedit
Document文件里面有一个readme.txt文件,我们要把它复制到桌面上来
根据cp的用法,得出大概是这么写的:cp 源文件路径 目标文件路径
即:cp ~/Documents/readme.txt ./readme.txt

这里有个小技巧,因为是复制到桌面上的当前目录,且文件名没有改变
所以目标文件可以直接这写一个 . 就可以了
即:cp ~/Documents/readme.txt .
同时发现,cp这个命令可以同时修改文件名

cp的简单用法就讲到这里,此外还有两个扩展用法:

关于cp里面的覆盖文件:
如果你复制的是一个相同名字内容不一样的文件
且两个地方都已经存在这个相同名字的文件
但是你依然输入了cp命令进行了复制
就会出现源文件内容把目标文件内容替换掉的情况
且执行这种行为之前是没有任何“覆盖文件前的提示的”


为了避免出错,我们希望在执行覆盖文件之前能有一个提示
①即在使用cp命令的使用时候 -i 的选项
即:cp -i ~/Documents/readme.txt .
它会问你是否覆盖:输入y(是)或者n(否)
输入n,没有覆盖
如果输入y,就会被执行覆盖

当我们想要复制一个目录的时候,如果直接用cp,它只是能复制文件的,无法复制目录,它会提示略过目录
这个时候我们就要用 -r 这个命令了
如下图所示,我们想要复制桌面的目录a到另一个目录test(这个目录当前没有,在复制的时候会新建)
②用法是:cp -r a test

————————06、拷贝和移动文件命令之mv

。