初识Linux · 基本指令(2)

目录

前言:

1.1 which

1.2 alias

基本指令

2.1 ls -ld

2.2 cd

2.3 mkdir + tree

2.4 rmdir + rm + *

2.5 cp 

2.6 mv

2.7 cat tac

2.8 man


前言:

上文是Linux的部分基础指令,主要是开胃菜,先熟悉一下,但是本文还是指令的学习。但是在学习指令之前,我觉得我们应该对指令一个正确的认识,所以在前言部分我们先使用windows进行些许介绍,看:

当我们打开谷歌浏览器的快捷方式,以及打开该exe文件的时候,打开的都是同一个谷歌浏览器,难道没有人怀疑为什么快捷方式可以直接打开浏览器吗?

这是因为快捷方式的本质就是指向的该exe文件。

同理,指令本质上就是一个一个的可执行程序。

1.1 which

我们不妨可以看看,这里引入一个指令 - which指令,展示出该指令或者是文件或者是目录属于哪个位置的:

不难发现,这里的指令,实际上是在user目录下的bin目录的一个程序,所以现在学习指令,就不会有太大的陌生感了。

那么既然引入了which指令,并且有些内容可以连续介绍,前言这里就继续了。

1.2 alias

这里可以看到,我还打印了一个ll的目录,上面显示ll = ls -l --color=auto,上文也提及,ls -l其实也就是ll,那么这里的缘由是因为alias,alias的意思是起别名,和C++的typedef是一样的,那么,我们是否可以给指令起别名呢?

当然是可以的:

对吧,可以正常打印,说明确实可以。 那么删除呢,就是用unalias进行删除就可以。

我们再来看一个有意思的现象:

为什么直接使用快捷方式会有颜色的区别,不使用快捷方式就没有高亮了呢?因为ls给的不止是ls。系统给ls取别名了,我们这样写就可以了:

这是前言涉及到的内容,本质是想告诉大家,指令的本质就是一个一个的可执行程序。


基本指令

2.1 ls -ld

我们首先来看,ls -ld,本质是ls -l -d,是ls的一个子指令,作用是让目录像文件那样展示。

那么我们主要是关心,Aug 18 20:55这个东西,一般都知道这时文件的创建日期,但是如果我们

用stat,就可以看到ACM时间,这里的ACM可不是竞赛的ACM:

那么什么是ACM时间呢?且听下回分晓。

2.2 cd

啊没错,又是cd,我们上文已经知道,cd最基本的功能是进入某个目录,那么今天介绍的是:

cd -,这个的意思代表回退,是回退到上一个你使用的目录,而不是当前目录的上个目录:

就像这种,还可以反复横跳,应用场景呢就像,我们创建了很多个目录,想要快速的返回上个我们使用的目录,不可能一个一个的回跳回去吧,我们直接cd -就可以了。

cd还有用法是 ,cd ~,作用是进入用户家目录。可能有点抽象,我们不妨使用Windows来思考一下。

一台电脑可以被多个用户一起使用吧?那么每个人都有自己对应的文件夹,以不同的用户名登录进电脑的时候,操作系统就会加载不同的场景。比如:

在windows里面的用户里面,就会创建不同的用户文件夹,今天张三来了,使用的就是张三的文件夹,李四来使用了,就是使用的李四的文件夹,那么具体使用,或者说更具象化一点:

进入用户的文件夹之后,桌面显示的是不同的吧,因为桌面这个文件夹就有不同的信息,那么对应上cd ~,什么是用户家目录呢?一台机器可以有不同的用户,不同的用户拥有的不同的文件夹就是不同的家目录,所以cd ~,就是进入到对应的家目录里面去:

因为我们的登录用户名就是root,所以我们cd ~就是到了root文件夹里面去了。

当然了,因为我们是超级用户,如果是普通用户的话,那么普通用户的家目录就是/home/XXX了。

2.3 mkdir + tree

mkdir我们知道了最基本的使用方法,那么我们如何快速的创建一长串的目录呢?加个-p就可以了:

这样就创建好了,那么我们怎么知道有没有真的创建好了呢?难道要一个一个的进去看吗?

当然不用,我们可以使用tree指令:

使用之后,就会像树状结构一样打印所有的目录了。

2.4 rmdir + rm + *

我们现在会创建目录了,那么我们如何删除目录或者删除文件呢?

引入rmdir,使用:

可以直接删除目录。

但是呢,不能直接删除文件,所以我们这时候试试rm?

因为我们是超级用户,所以直接删除的时候都会问你一下,毕竟超级用户,做事需要谨慎一点。

那么我们不希望它问我们,老是问老是问,就烦得很,所以我们加上 -f,让它别问了,直接删:

这样就直接删除了,那么rm可以用来删除目录吗?

它说d是一个目录,所以不支持删除,但是我们就要删除,我们就加上 -r,表示递归删除,管你里面有什么,统统都删除了:

同样的,不希望问我们,加个r就可以了:

这是一种十分暴力的删除,这么说吧,只要执行了,即表示根目录执行,它会竭尽它所能,把能删的全部删了,到时候就只能重装系统了。

然后现在引入通配符的概念,*,比如我们现在有这么多个目录:

我想一口气把,以5为结束的目录都删除了,就需要用到*:

现在就没有data5 data15了,那么想要全部删除也很简单:

好了,就没有了。

2.5 cp 

cp很好理解,copy嘛,复制拷贝,使用的时候我们可以使用这个模板:

cp src dst , src就是来源的意思,dst是目标的意思,那么我们先来实现拷贝操作:

这样就实现了完美的复制操作,dst不仅可以是目录,也可以是路径名。

cp的还有一个操作是可以重命名,我拷贝过去了我顺便就重命名了,只需要加 -rf即可:

这是cp的基础用法。

2.6 mv

mv ,move的简写嘛,可以直接对该目录或者是文件重命名:

那么也可以将文件剪切到对应的目录里面去:

那么我们想要剪切的同时也要重命名呢?和cp一样就可以了:

2.7 cat tac

相对于上面的指令,cat tac就很简单了,它们的作用是正着打印或者是倒着打印文本内容:

它们有两个子指令,一个是-n打印行号,一个-s尽量删除多余的空行:

当然了,这里本身没有什么空行所以效果不大。

2.8 man

man这个指令呢,可以说它是一本手册,因为它可以帮你查阅资料,比如man man就可以查它自身的内容:

 

就很多,使用不上可能是因为没有安装,安装一下就可以了。那么man的重点是:

man man之后我们可以看到如上内容,这是man的修炼手册,比如第二行是系统命令,第一行是shell 指令,第三行是C语言库的内容,所以我们不仅可以直接查C语言的内容也可以查相关的命令,比如man ls ,man printf,但是这里printf查出来就不是我们想要的,因为printf也是一条指令,man的查找顺序是从上到下,如果我们不指定直接查的话,默认从第一章开始,所以正确做法是:

这样可以查到我们想要的,当然了,平时的话还是去cplusplus吧,使用的时候最好加上第几个章节,我们平时用的最多的还是第二章。


感谢阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值