游玩Linux(01)-理解Linux文件类型及玩法

背景:第一次听说Linux的文件后缀名跟文件类型无关时,有些惊讶,于是查阅了Linux的文件到底是什么,以及基于此的玩法。


首先,Linux在大的文件分类上,有7种,可见:Linux: Linux的文件类型及查看文件类型的方法 - 夜行过客 - 博客园

其中我们碰到最多的应该是,普通文件("-")和文件夹("d")。文件夹好理解,那么,问题是,普通文件是什么意思?

继续细分,普通文件大致能分3类:纯文本文件,二进制文件,数据文件。

什么叫纯文本文件?

简单地说,就是里面全是文本……当你

cat filename

时,显示在屏幕上的是正常文字,你可以理解为,就是windows下的txt文件

但二进制文件就不一样了,你cat出来就全是乱码,二进制文件是拿来执行的

./filename

且还需要执行权限(没有就chomd +x一下)

那既然如此,我们平常听到的“脚本”又是怎么回事呢?那些xx.sh xx.py是什么文件呢?

答案是,它们就是纯文本文件……

可纯文本文件不是记录文字的吗?为什么可执行?

因为你并不能像二进制文件一样,直接执行它们,你需要解释器(有时不需要是调用了系统默认解释器),如

python xx.py
bash xx.sh
zsh xx.txt
source xx.sh 

解释器将这些纯文本翻译成计算机能懂的再执行,所以说,你如下玩,也没关系

python haha.sh
python xx.fuck
python what
python you.txt
bash haha.py

只要该文件内部的语法,是解释器能读懂的,有没有后缀,后缀是什么,不重要。(这种文件也叫脚本可执行文件,实际上就是能找到解释器的纯文本)

但有一个细节是,source并不是解释器,而是逐条执行该文本文件的内容的意思,执行时,还是调用默认解释器来做,一般是bash。source filename 跟 bash filename的区别在于source直接在本shell内执行,而bash是开一个子shell,在子shell内玩。

所以说,基于以上,我们就明白了:平常操纵的普通文件,大多要么就二进制直接可执行,要么就是一个纯文本,你要找解释器来执行或者把它变成二进制。

所以,我们就可以,自己写一堆指令到一个fuck.txt或者啥的纯文本里,source/bash一下,直接执行。

我就是这么写了ubuntu的环境配置脚本,装新的虚拟机/新机时,一键配环境,效率大大提升,后面没问题的话开源到github上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值