使用 linux的几个需要注意的问题(之二)_linux格式的两个要求

1.在shell脚本中改变当前目录
cd只能改变current目录,因此不能指望在一个脚本中实现cd ...(long path)的目的,脚本是通过fork/exec执行的,等于说在一个新的进程环境中执行的,一旦这个脚本执行完毕,当前进程的pwd还将是原来的shell的pwd,shell脚本中的cd对pwd的改变随着shell脚本的exit而一同消失,还是老老实实敲路径吧,其实为了避免敲过于长的路径,可以将自己的登录路径设置成那个很长的路径,另外shell提供了一个方法,那就是用source执行脚本,source和cd一样,都是shell的内建命令,当你执行source abc的时候,并不会以fork/exec的方式来执行abc而是直接读取abc的每一行,读一行便执行一行,但是要注意,用source执行shell脚本的时候,脚本中不要有exit,否则一下子连shell都退出了
2./etc/passwd维护了一个uid和用户名的对应关系,而很多程序比如ls -l都需要这个映射关系,因此所有的用户都必须对该文件可读
3.getspnam函数的行为其实就是对/etc/password文件的f2i行为,将文件数据转换为了内部数据,但是为何不将password文件也定义成二进制的呢,比如utmpx文件一样?将password定义成二进制是非常方便的,每一行一个记录,一条记录对应一个结构体,若干个记录正好是一个结构体数组,岂不很好?是很好,但是那样做的话每个需要读取password文件的程序都应该知道这个结构体的文档描述,如果是文本文件,虽然每个程序也依然需要知道文件各个字段的含义,但是却可以将说明文档写入同一个文件中,比如用注释的形式存在,unix和linux中很多配置文件都是这样的,没有单独的文档,顶多一个随程序安装的man/info,由于文档是文本的,因此为了将文档和对应的文件集成,文件也最好是文本的,编程者看见了文件,同时也可以随即参考文档,最终看懂了文件,开始编码,省去了文档的管理,这也许就是unix使用人可读的文本格式的深层次的原因吧。

原文链接: https://blog.csdn.net/dog250/article/details/5707971

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    使用 linux的几个需要注意的问题(之二)_linux格式的两个要求

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/409744

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午11:36
下一篇 2023年4月26日 上午11:36

相关推荐