目录
从这一篇开始学习Linux。
这一篇主要写一点基本指令。关于如何使用Linux:买云服务器,国内有三大主流阿里腾讯华为云,还有UCloud,百度,网易等等。买完修改密码。下载Xshell7,用自己的主机ip登录。也可以用ssh 用户名 @主机ip来实现代码式登录。这部分不多写了,网上有很多相关的资料。
几个最基本的指令
ls:显示当前目录下的文件列表(包括目录,普通文本文件)
mkdir:在当前路径下,创建一个目录(在windows下这个东西就叫文件夹)
pwd:显示当前所处路径(pwd很简单,只有这么一个作用)
cd:进入指定的目录(比如先创建目录mkdir test, test就是一个目录,然后进入cd test)
touch:创建指定的目录文件
现在针对这几个指令再做点详细指令
-l是什么?这是一个命令选项。ls是命令,-l是命令选项,命令后面可以跟多个命令选项,以此来实现更多的功能。ls显示的是文件名,而加上-l,则显示文件的更多属性。属性又是什么?用windows来举例,创建一个文件后,即使我们不放入内容,也可以看到创建时间,0 kb等,这也就是属性,即使没有放入什么内容,它在存储空间里也是真实存在的。文件 = 内容 + 属性。所以-l显示的就是文件的属性
在dir这个目录内,我们查询一下,会看到17528,0,1数字,这些则是显示里面存放的内容。没放入就是0,放入则有数字,至于这个数字是怎么得到的,暂且不用管。
这个命令可以简写成ll,不过其实ll和ls -l有一点不同,但现阶段不影响。
既然命令后面有命令选项,那么ls后面也不会只有-l这个选项。接下来写的最常见的。
-a作用是显示更多的隐藏文件
在Linux下,文件目录名如果以 . 开头,那么就是一个隐藏文件。之前我创建了一个.see文件,所以现在-a一下,它就显现出来了。那么mkdir可以创建一个隐藏目录,touch也可以创建一个隐藏文件。整个命令可以写成ls -la。
会显示这个文件的id,也就是uid。比如一个学生的学号,uid和学号就类似。
cd就是进入一个目录。cd后面有两个命令选项 . 和 .. 一个点代表当前路径,两个点代表上级路径,上级路径就是上一个文件。如图
cd . 还是当前文件位置,而cd .. 则是进入到上一级目录。如果已经到了最上级的路径位置,那么再次cd .. 就不会再次进入上一级了,毕竟到头了。
这时候ls -ld一下,只显示目录,会发现一个蓝色点,这个点代表的就是根目录。
现在有一个问题,Linux下,目录里面还可以放目录吗?可以的。我们先看一下根目录
ls /查看根目录下的所有目录,ls -ld /则只查看根目录。可以看到之前创建的dir目录就在里面。
dir这个目录里有一个ttt目录,然后现在创建一个qqq目录,就可以查得到
现在思考一个问题,在windows下,我们找到一个文件夹,都会得到一个路径,Linux下也是如此。但是为什么用路径来定位这个文件呢?因为如果想找一个子文件夹,我们就要找到唯一一个父文件夹,所以路径是唯一的。比如上面几个图中,我要找到zyd.txt这个文件,只能访问dir这个目录来找到,而dir只能从root目录开始找。
路径分为绝对和相对路径。从根目录开始,定位文件的路径就是绝对的。而相对路径
相对路径可用这种方式去访问。相对路径一般是相对于当前所处的路径。当前所处路径如果变了呢?
一开始在dir/ttt/tt目录下访问,使用cd ../tt,这个.. 就代表/dir/ttt,换到qqq目录后再实现cd ../tt就无法访问了,因为上一级目录并不是ttt了,所以显示没有tt这个文件。这时候如果ls ../ttt就会正确访问,因为有个相同的上一级目录dir。
两种路径都有用处。
绝对路径:比较麻烦,一般是在某些配置文件中,进行对某种文件配置的时候采用
相对路径:用起来简单,后续指令操作时常用的路径定位方案。
cd指令后面跟路径就可以随意访问路径里的内容。
这里写几个快捷指令:
cd ~: 进入当前用户的家目录。比如即使我在dir目录里,使用这个指令,位置就会来到/root里,我的用户名就是root。
cd -: 进入上一次进入的目录。
在当前路径下创建一个普通文本文件。也可以指定路径去做。touch ../touch.txt,这里的.. 代表touch/txt的上级目录们,这个就按个人去创建这些目录。
现在还不用vim,用nano来写代码。
即使是没创建过的文件,也可以直接nano,会自动创建。进入后就是这个界面,可以直接写代码。退出时看到下面有个Exit, 这个只要按Ctrl + X即可。然后选择Y,确定好文件名回车。
如果有些指令无法用,系统提示没有这个指令。那么yum install -y 即可装,在-y后写上要装的命令即可,记住写完-y要有个空格再写命令。
cat展示文件的内容。gcc可以编译文件。
gcc编译好后,就会在当前目录生成一个a.out文件。在 ./ 后使用的a.out就是当前目录有的out,一个点表示当前目录。
mkdir可以创建目录,这个操作已经比较熟练了。不过我们想一下可不可以创建多个目录,mkdir /d1/d2/d3/d4,这样会出错。我们需要在目录前加上-p,它会创建一个多层的目录,并不是一下子创建多个同级的目录,而是q1中有q2,q2中有q3。
-rmdir删除空目录
rm删除文件。
rm则相对暴力。但是不能删目录,此时就可以加上-r来递归删除文件,-rf是强制删除,也就不需要提供yes或者no,再在后面加上rm -rf ./*就是删除当前目录的全部内容。-f也是强制删除,不过rf通常是要带上目录一起强制删除时用
但是呢,不要用./*直接删除根目录,这样云服务器会崩掉。
结束。