在开始之前,你需要做一些准备工作,去阿里买一台服务器,服务器的具体细节其实并不是十分重要,我也不会在这里一步一步的教大家如何去买一个服务器。百度一下足够了,但是还是要贴一下这篇文章中,我所使用的服务器系统及其版本:
版本之间应该不会有太大的差异,但是最好不要选太新的版本,因为还不够稳定。好了,下面我们开始进入正题。
作为一台电脑,我们首先要知道的就是其目录的含义及用处,在后面的学习中十分重要,这些都是最基础的概念。我们可以先来看一下,linux中都有哪些目录:
我们看到一共有这些目录,那么下面我们一一解释一下:
以上只是简单地目录结构,还不够详细,但是目前这些足够了,更细致的内容会在后面的学习中更加深入。
1、命令提示符
我们先来看个图:
上面的图中实际上有四个关键信息,是这样的[当前登录用户@主机名 当前工作目录]提示符。我们再来看上图:
2、命令格式
这个我就简单说下吧,很好理解。命令格式就是这样的:
命令 [选项][参数]
其中当有多个选项的时候,可以写在一起,参数呢有简化和完整写法,是等效的。
3、ls命令
ls [选项][目录或文件],即查询目录中的内容,选项有这些:
以上的命令,其实都不复杂,大家自己要去试一下。
那么这里有个需要详细说明一下的内容,就是当我们使用ls -l命令,显示的信息是什么意思,如下图所示:
我们先分解下红框里的内容:
d rwx r-x r-x . | 2 | root | root | 6 | May 4 19:18 | readbook |
---|---|---|---|---|---|---|
文件类型和权限 | 硬链接引用计数 | 所有者 | 所属组 | 文件大小 | 最后修改时间 | 文件名 |
这里面唯一要多解释一下的就是文件类型和权限,表格中的部分我都用空格分割开了,一一解释一下:
我们先罗列一下常用命令及其含义:
以上,我们已经了解了一些基本的文件处理命令,那么下面,我们基于此来看一些例子:
ok,我们先执行cd /,来到根目录
然后,我们执行mkdir a/b/c
哦吼,他报错了,当然它肯定会报错的,我们回忆一下,好像缺了点什么
是的,我们缺了一个“-p”的选项,好了,目录创建完了,我们进去看看吧。执行cd a
一如我们所料,那...我想把b文件删了,该怎么办呢?哦对了,rmdir命令。我们来试一下
可惜,又报错了,好像又缺了点什么,它说文件夹不是空的,哦对了,刚才我们创建了一个递归的目录,所以b下面还有c,所以以此可以知道rmdir不能删除非空文件夹,那在怎么办呢?
根据上面学习的内容试了下-r和-f,好像都不行,哎?给了提示,试一下--help。哦,好像用-p可以:
终于可以了。
除此以外,还有另外一种方法,rm -r也可以。
但是这样好像有点麻烦,它会一级一级的让你去确认,有没有更舒服一点的方法呢,那我们把删除掉的b/c复原一下(复原过程省略)。于是我们的目录又变成这样了:
我们使用rm -rf
这里尤其强调一下,如果在实际工作中,你有root权限,请一定要小心使用这个命令,如上图所示,删除了所有的东西又不会有任何提示。
好了,我们上面是删除的目录,那我删除个文件试试:
删除文件会有提示。
以上,我们经历了简单地创建文件夹、进入文件夹、删除文件夹及文件等内容。下面我们继续。
首先我们先想一个问题,假设我不是root用户,我刚进入服务器,或者我经历了大量的操作,忘记了当前目录在哪。怎么办呢?
pwd命令可以告诉你所处的位置。
那,我们现在来试试复制一个文件夹或文件:
我们进入到a目录,把之前存在的b目录删掉,然后创建两个文件夹b1和b2,所以我们的目录现在是这样的:
然后呢,我们进入b1,创建个文件,名字叫c1.js好了。
最后呢,我们把c1.js复制到b2中去:
这样就完成了复制。
如果我想复制的时候改名的话,可以试一下-i选项。
ok,我们完成了复制,那我想把c1.js从b1目录移动到b2目录怎么办呢?我们使用时光机,回到b1文件夹中有c1.js而b2中没有的那个时刻,然后移动c1.js到b2目录
很简单,这样我们就完成了移动。
最后,我们来看下链接怎么使用。我们先到b2里。然后执行命令
这样,我们就创建了一个硬链接。然后,我们再来创建个软连接:
那,这也看不出来软和硬到底有啥区别啊,那我们这样:
可以看到一点区别了吧,具体的内容跟我上面说过的一样哦,如果不理解,可以回过头去看一下之前的内容。
承前一篇,之前我们已经简单地了解了linux的一些基本命令,这一篇文章,我们继续往下。首先,我们先学习下文件搜索命令。
按照我们之前的方式,先把相关的命令罗列一下:
/var/lib/mlocate
后台数据库,每天更新一次updatedb
命令立刻更新数据库通配符,其实就是类似于js正则。
我们来实践一下我们学习过的命令:
1、首先,我们在根目录创建一个demo文件夹,在demo文件夹内创建一个test.js的文件,那么现在我们的目录结构看起来是这样的:
然后,要注意的是locate命令需要依赖一个mlocate数据库。我们通过yum install mlocate -y安装即可。然后我们使用locate test.js命令:
结果什么也没发生,好像不太对劲,哦对了,mlocate是依赖数据库的,它大概每五分钟更新一次,所以,刚才我们创建的test.js文件还未更新,我们可以使用updatedb命令立即更新数据库,然后再执行查询命令:
这样就达到我们的目的啦。
2、whereis是用来查询我们所使用的命令的相关文件在哪里,很简单:
那么第一个路径就是它的执行文件路径,第二个就是帮助页面所在路径、后面就是它的源文件。如果只是想查看它的可执行文件路径,可以使用:
3、which比较简单,就是查找别名
输出的结果什么意思呢,就是我们使用的ls实际上是命令ls --color=auto的别名,执行ls就相当于执行ls --color=auto了。
4、打印环境变量,这个也没啥好说的
5、find命令的选项比较多,需要大家都试一下。
6、这个要注意,它查找的是文件的内容,而不是文件名啊什么的。那,我们现在test里面通过vim(下节会讲)写东西:
好了,我们把之前学过的命令都简单实践了一遍,我们往下继续学下压缩。
我们继续实践:
1、我们继续使用之前的test.js文件来实践压缩命令即可:
多了个zip文件,那名字是我们随便写的么?
答案是是的。解压缩的命令,大家可以自己去试一下哦。有惊喜哦。
2、gzip使用的比较多,因为压缩比比较大。
我们看到,gzip压缩后,源文件消失了。
那我们先把刚压缩的gz包解压缩一下:
然后为了让目录干净点,我们把test.zip和test.zip.js删除掉。只留下test.js。
假设我们不想让gzip压缩后的源文件消失,我们可以这样用:
这里要强调一下,zip可以压缩目录和文件,但是gzip只能压缩文件,不能压缩目录。
3、tar命令仅仅只是打包命令,不是压缩命令,所以tar经常与gzip压缩一起使用。这样就可以打包并压缩文件夹了。
我们新建一个book目录,,然后book目录下有两本书,分别是zaking.txt和wong.txt。
然后我们可以先执行tar打包命令,再执行gzip压缩:
然后再压缩我们刚才打包的tar包:
这样就有了最终的book.tar.gz,但是其实我们还可以使用更简单的命令,直接打包压缩成tar.gz,我们先把现在book.tar.gz删除了:
一步到位!
这个就简单说一下
这些命令就不带大家去一一实践了,有兴趣自己玩下。哈哈。
/var/log/wtmp
文件 这些命令咱们可以来玩一下:
1、w,直接一个w就完事。具体的字段上面有解释
2、who,解释看上面,哈哈
last和lastlog,大家可以自己试下,其实都没啥。毕竟基础的命令,哎。。。。
这几个命令很短小,但是十分有用。我们一起来试一下:
我们就用刚刚的那本叫wong.txt的书,我已经在里面写了一些内容,通过cat来查看:
这样会全部显示到命令行中,不太好查看,所以我们可以使用more命令。
head和tail命令,大家可以自行尝试。这里就不多说了。
好了,今天就到此为止了,我们总结一下目前学过的内容:
1、我们简单学习了linux系统的基本目录结构。以及/和~都是什么。
2、还学习了命令的基本格式。
3、然后,我们还学习了一些常用的增删改查的命令,以及软硬链接的区别。
4、还学习了一些文件搜索命令、压缩命令、用户信息相关,以及文件内容查看的命令。
5、最后我们一起对学习过的命令进行了实际的操作
实际上,这篇内容仅仅只是简单地罗列了基本的linux命令以作了解和学习,以上的每一个命令其实都由更深入的内容,比如更多的选项,更多的关联性,更多的底层原理等等。这些应该在更深入的背景下再去学习。本人能力有限,也是初学linux。无法给大家提供更深入的理解。