Linux基本指令(三)


一、alias指令

alias指令,它是给指令起别名,其实指令ls -l和ll是相同的作用,它们执行同样的操作,
在这里插入图片描述
在介绍这个指令之前,先来谈谈指令,nano工具先写一段代码
在这里插入图片描述
./的方式执行这个可执行程序,然后这个程序就跑起来了,再看执行ls,ll,pwd,touch这些指令时,时不时一输入按回车它们就执行起来了
在这里插入图片描述
是的,输入这些指令,就执行了。其实不难发现,指令和可执行程序都是可以被执行的,其实这些指令啊本质上都是可执行程序,
在执行指令之前是在做啥?
当我随便输入一条指令时,
在这里插入图片描述
随便输入的一条指令,会报指令找不到这样一个错误,所有在执行指令之前是在去找对应的指令,输入合法指令可以找到并执行,不合法就是找不到。对于那些能找到并执行的指令,它们是存在于哪的?一般是存在于 /usr/bin 系统当中跟目录下usr/bin路径下存在的。
在这里插入图片描述
在这里插入图片描述
所有的指令在系统中是存在的。所有啊指令是存在于系统特定的路径下,它一定是可执行程序,如果不可执行,他怎么执行
如果我想将我自己写的程序改为常用指令如何弄,mv a.out mycode
在这里插入图片描述
然后将其拷贝到系统存放指令的路径下,cp mycode /usr/bin/
在这里插入图片描述
拷进去之后,我就可以像执行指令那样执行我自己写的可执行程序了,所有也证实了指令的本质就是可执行程序,和自己编写好的代码没有本质的区别,其实windows下也是一样的,桌面快捷方式,点它就可以运行,其实点开它的属性它是存在系统某路径下的,如果他都不存在,也就执行不起来
在这里插入图片描述
它在系统中存在的路径,指令的本质就是文件,只不过是可执行程序文件罢了,它在系统之定路径下存在
正是由于指令存在于系统中,当去查看指令所在位置时,查看ll却发现没有这个命令,但是它却能跑,
在这里插入图片描述
有这么一条指令,which它可以查看指令所在的位置,但是会发现有些指令前面有alias 这是啥,当查ll会发现并没有ll,只是ls,
在这里插入图片描述
在这里插入图片描述
ll 是等号后面的那一串的别名,它就是相当于给别人起外号。
which查看指令在系统中的位置。alias起别名,可以用自己喜欢的指令来代替常用的指令,你可以随意起,但是一般不建议 alias 自己想的指令=‘系统指令’如果对于这个指令的别名不想用了,你可以再alias 自己想的指令=‘空 ’就行了。这是对指令的重命名hhhh,但是不建议,如果一直用自己用的,可不好,主要是如果用习惯了自己重命名的指令,那么当有一天你发现它原本的这个指令的时候,就有可能会不知道这个指令是什么意思。

二、Linux下的一些知识

LInux下一切皆文件(读写功能),如显示器、键盘、普通文件等都是文件。

显示器为啥是文件?

因为平时就是我们看东西都是从显示器上看的,而显示器上的东西是如何来的,还不是一个个的程序向显示器打印东西,然后呈现给我们,它向显示器打印就是给他写东西(write),但是程序并不能向显示器读取,读取是空的,我们只能肉眼从显示器上看东西。

键盘

就像一些c语言程序,需要读入数据才可以正常运行,用scanf函数,而键盘就是充当向键盘输入数据的角色,程序从键盘之中读入数据,但是却并不能将输入打印到键盘上。

普通文件

而普通文件有正常的读写方法。

虽然显示器、键盘它们的读写方式可能有区别,但是它们在根上来看都具有读写方法。在LInux看来它们都具有读写方法,只是有可能为空,但是Linux看来和普通文件没啥差别,所有在Linux看来,Linux下一切皆文件,当然不止这些设备,如触摸板啊,话筒麦克风那些很多很多。

echo 指令将其后面跟的字符串打印到显示器上,现在可以解释为,他将字符串内容写到显示器文件当中。
在这里插入图片描述
所有嘞 > 将原本应该写入到显示器上的内容重新写入到文件中,而这也叫做输出重定向。
在这里插入图片描述
这将本来应该写到显示器文件的内容写到了普通文件,但是如果我还想向这个文件中写内容,还可以写吗?
在这里插入图片描述
可以写,但是发现每次写入数据之后,以前的数据就不见了,只剩下刚刚才写入的数据,没错,>向同一个文件重复写入数据时,新写入的数据会将会将原数据覆盖,就是它在向目标文件写入数据时,是覆盖写的。
其实他做了两步,

  • 清空目标文件的内容。
  • 向目标文件写入新内容。

那么当有一天我只想清空文件数据,那么可以直接 > 文件名即可清空

在这里插入图片描述

但是如果我们想向文件持续写入东西,那么如何做,就是原始数据保留,给其追加新的内容,此时也就还有一个重定向 >>,名:追加重定向

在这里插入图片描述
这种重定向,是向文件中追加内容,它每次向文件的结尾处写入内容
在这里插入图片描述

当向一个不存在的文件写入内容时,这个文件不存在的话,就会自动创建这个文件,所有当想要创建一个文件时,不一定要用touch可以 > 文件名
在这里插入图片描述

三、cat指令

cat指令上面用到几次了,可以发现它是将文件里面的内容显示出来它是打印文件的内容,它是将文件的内容数据写入到了显示器文件中,cat指令是查看目标文件的内容,cat 后面跟文件名,是打印文件里面的内容
在这里插入图片描述
但是如果cat 后面什么都没跟

那么输入什么就打印什么,他就会从输入设备里面读数据,从键盘文件读,然后向显示器打印,就是输入什么打印什么。
cat 指令它也可以跟一些常用的选项

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

-n选项
在这里插入图片描述

当向这个文件写入多行空行
在这里插入图片描述
在这里插入图片描述
空行都带上行号,如果不想给空行带上编号,那么加-b选项
-b选项
在这里插入图片描述
如果不想显示多余的空行,只显示一行空行,那么选-s选项
-s选项
在这里插入图片描述
🆗,cat指令介绍完毕

四、more、less指令

cat 打印短的文件内容很好,但是当构建大文本内容时,它还可以吗,写入很多内容时,不再适合重定向一行一行的写入,有一行命令行脚本cnt=1; while [ $cnt -le 10000 ]; do echo "hello Linux $cnt"; let cnt++; done可以构建长文件内容
在这里插入图片描述
将其重定向到指定文件,构建出来了大文本,
在这里插入图片描述
cat读test.txt
在这里插入图片描述
要一直网上翻,一直翻啊翻,累,它并不适合看大文本,而适合看小文本,那么谁适合,more指令
more 文件名 它会将一屏幕打满,按回车键会从上往下翻,带选项 -n会显示文本前n行的内容,底部为第n行的内容,它可以按照指定要求可以查看想要看的行
当然也可以搜索指定行 : /
在这里插入图片描述
more不做重点强调,而重点用less指令,more指令不可上翻,而less指令可以进行上下翻动,它也同样可以文本查找 /,进入大文本之后按q退出。
但是为什么要看大文本,当有一些长场景时需要,有些项目很大,而有时需要提取某些行的内容时,提取中间行,后多少行如何办
这时需要用head,tail指令

head指令:它会取出文本前n行 tail指令:它会取出文本后面的n行

在这里插入图片描述
直接提取出它的前n行,还有时想提取后n行,用tail指令
在这里插入图片描述
而有时我想看1000~1010行之间的内容,如何办?
我可以先head前1010行,然后将其重定向到一个临时文件中,再从这临时文件提取它的后10行
在这里插入图片描述
这样可以很好的提取到一个大文本中的中间行,
但是此时又要创建一个临时文件,它是真实存在的,那么如果我不想要它生成临时文件,应该怎么办?
有一种名叫管道的符号可以解决,| ,一种符号,它会被系统解释为管道文件
在这里插入图片描述

它是将左侧的文件内容写入到管道当中,然后右边的程序又从管道文件之中读数据
管道管道顾名思意,是一个管道,用来运输东西的,入口端输入东西,然后经过管道将东西传输给出口,|,它叫管道,然后也就是执行着现实生活中的管道意思差不多,运送数据,他也有入口与出口,左侧数据进入管道,然后通过管道,运输给下一个程序,有进有出。

一个程序将结果给管道,然后另一个程序从管道中取出。

而管道嘛,可以很多连接的,在这里也是,可以加载多个管道。… | … | … | …。

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值