当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪有关linux i节点(inode)的知识          我们知道对于Unix系列的操作系统,大多都有v节点。但是对于linux来说,只有通用的i节点,却没有v节点。     linux中,文件查找不是通过文件名称来查找的。实际上是通过i节点来实现文.........
    ▪修改Linux命令提示符的方法            Linux修改环境变量PS1(命令行提示符),可以使用vi编辑/etc/profile文件,在最后加上:export PS1=’[u@h W]$ ‘即可,其中u显示当前用户账号,h显示当前主机名,W显示当前路径,$显示’$'.........
    ▪linux文件描述符与输入输出重定向      文件描述符(file descriptor) 每个进程都有打开的一组文件,这些打开的文件保存在一个数组中。文件描述符即保存在此数组的索引中。 最低可用文件描述符(lowest_available_fd) 当打开一个文.........

[1]有关linux i节点(inode)的知识
    来源: 互联网  发布时间: 2013-12-24

    我们知道对于Unix系列的操作系统,大多都有v节点。但是对于linux来说,只有通用的i节点,却没有v节点。

    linux中,文件查找不是通过文件名称来查找的。实际上是通过i节点来实现文件的查找定位的。我们可以形象的将i节点看做是一个指针fip。当文件存储到磁盘上去的时候,文件肯定会存放到一个磁盘位置上,可以这样想象,既然文件数据是存放在磁盘上的,如果我们知道这个文件数据的地址,当我们想要读写文件的时候,我们是不是直接使用这个地址去找到文件就可以了呢?
    是的,linux下,i节点其实就是可以这么认为,把i节点看作是一个指向磁盘上该文件存储区的地址。只不过这个地址我们一般是没办法直接使用的,而是通过文件名来间接使用的。事实上,i节点不仅包含了文件数据存储区的地址,还包含了很多信息,比如数据大小,等等文件信息。但是i节点是不保存文件名的。文件名是保存在一个目录项中。每一个目录项中都包含了文件名和i节点。

    我们可以通过一个图来看看目录项,i节点,文件数据四者之间的关系。

    从上图可以看到,目录项中包含了文件名和i节点。

同时,你会发现上图中,目录项A和目录项B的i节点指向同一个存储区,其中这个存储区存放的是printf("ha")的数据。

也就是意味着helloA.c和helloB.c的内容是一样的。

硬链接和符号链接的概念

硬链接  ln -d
符号链接 ln -s。

要想得到helloA.c和helloB.c这种关系,我们可以使用如下命令:
 

代码如下:
#ln -d  helloA.c  helloB.c 

这样,就得到了helloA.c的硬链接helloB.c

对于硬链接来说。如果删掉源文件helloA.c,那么磁盘上数据文件时不会删除的。因为i节点上记录了该文件的硬链接数。只有硬链接数是0的时候,删除文件名的时候,该数据在磁盘上才会删除。

也就是说。这里,如果我们使用命令:
 

代码如下:
# rm  -rf  helloA.c 

helloB.c同样可以正常使用,其内容就是printf("ha");

但是如果是符号链接:
 

代码如下:
#ln -s  helloB.c  helloC.c 

这就是所谓的符号链接,符号链接其实是文件索引的索引。当源文件helloB.c删除之后,其实磁盘数据文件还在,helloC.c也无法使用。
符号链接包含了一个文件名的路劲,如果这个文件名被删除,这符号链接自然就不能正常工作了。


    
[2]修改Linux命令提示符的方法
    来源: 互联网  发布时间: 2013-12-24

      Linux修改环境变量PS1(命令行提示符),可以使用vi编辑/etc/profile文件,在最后加上:export PS1=’[u@h W]$ ‘即可,其中u显示当前用户账号,h显示当前主机名,W显示当前路径,$显示’$'符号。W 代替 w 就可以实现绝对路径到相对路径的转换。

  默认的特殊符号所代表的意义:
  d :代表日期,格式为weekday month date,例如:”Mon Aug 1″
  H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
  h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
  t :显示时间为24小时格式,如:HH:MM:SS
  T :显示时间为12小时格式
  A :显示时间为24小时格式:HH:MM
  u :当前用户的账号名称
  v :BASH的版本信息
  w :完整的工作目录名称。家目录会以 ~代替
  W :利用basename取得工作目录名称,所以只会列出最后一个目录
  # :下达的第几个命令
  $ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
  但是这样设置之后显示的提示符是没有颜色的,如果希望加入颜色设置,可以这样:
  PS1=”e[1;32mue[me[1;33m@e[me[1;35mhe[m:w$ "
  此时,在终端中的显示应该是彩色的提示符了,其中的e[1;xxm和e[m就是改变终端字体颜色的部分,前者是修改颜色,后者是恢复到正常显示。但是 这时还会有问题,在提示符中输入第一行时,回车换行不正常,导致显示很混乱,因此,除了这个修改之外,还需要将全部非打印字符用专用的 bash 转义序列 "[" 和 "]” 括起来。这两个序列通知 bash,被括起来的字符不占用行 上的任何空间,这样就使自动换行能够继续正常工作。最终版本如下(可解决带颜色提示符的不换行问题):
  PS1=”[e[1;32m]u[e[m][e[1;33m]@[e[m][e[1;35m]h[e[m]:w$ “
  其中,颜色表示为:30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white。
  
如果需要改变目录在命令行下显示颜色:
  1、将/etc/DIR_COLORS文件cp到~/下,并改名为.dir_colors。
  2、编辑.dir_colors文件,找到“DIR 01;34   # directory”,将34改为36。
  
你可以找到文件的两行注释:
  # Text color codes:
  # 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
  按照颜色对应的数字,你还可以把目录显示颜色改成其他的。
  同样其他的显示效果(包括背景)也可以参照说明进行修改。
  这样你就可以定制自己的linux下命令行方式下的个性化显示效果了。
  
    3、重新登录,即可看到修改后的效果。


    
[3]linux文件描述符与输入输出重定向
    来源: 互联网  发布时间: 2013-12-24

文件描述符(file descriptor)
每个进程都有打开的一组文件,这些打开的文件保存在一个数组中。文件描述符即保存在此数组的索引中。

最低可用文件描述符(lowest_available_fd)
当打开一个文件时,内核为此文件安排的文件描述符总是此数组中最低可用文件描述符。
文件描述符通过exec调用传递,且不会被改变。

标准输入文件描述符是0  标准输出文件描述符是 1  标准输出文件描述符是 2    
unix假设文件描述符0、1、2都已经被打开,并且都连接到终端设备上。可以分别进行读写操作。
大多数程序将结果输出到文件描述符1,将错误消息输出到文件描述符2。

若是想修改程序的输入输出就必须修改相应的文件描述符。将0、1、2绑定到不同的文件即可实现重定向。

程序默认是从标准输入读取数据,将文件描述符0绑定到一个文件。即可实现从文件读取数据。
实际上,进程并不是从文件读取数据,而是从文件描述符读取数据。
如果文件描述符0定位到一个文件,那么这个文件就是标准输入的源。

您可能感兴趣的文章:
linux下设置文件描述符的方法
深入理解linux文件描述符fd和文件指针flip(图文)
Linux中查看与设置文件描述符的方法(图文)
Linux重定向实例详解
解析:Linux之管道与重定向
深入linux中重定向及管道详解
深入linux上shell重定向详解>>
Linux中重定向命令行的方法总结
shell i/o常用重定向方法详解
深入理解Linux重定向的使用
有关I/O重定向的详细教程


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3