UNIX 基础知识

1,内核是操作系统的一部分(还有一些应用软件),可以看成是个软件,内核的接口叫系统调用,应用程序可以使用公用函数库或系统调用。

2,、登录与shell

shell原来有这么多种

/bin/sh 是steven bourne在贝尔实验室开发的Bourne shell,并得到广范的应用。<Bourne shell>

/bin/ksh 是 Bourne shell(/bin/sh)的后继者,它与Bourne shell向上兼容,并具有作业控制、命令行编辑等c shell 具有的东西<Korn shell >

/bin/csh 是Bill Joy 开发的,叫做C shell,控制流类似于c语音,支持/bin/sh没有的一些特色功能,作业控制、历史机制、命令编辑等。<C shell>

/bin/tcsh 是C shell的加强版。在C shell上增加了很多的特性,常被用来替换C shell。

/bin/bash 是Bourne-again shell 是GNU shell,所有的linux系统都提供这个。遵循POSIX标准,保留了Bourne shell的兼容性,支持C shell 和Korn shell两者的特色功能。《最强王者》

 用户输入有时来自于终端(交互的shell),有时来自于文件(shell脚本)

登陆:登陆名+密码(/etc/passwd)

name:加密口令:数字组ID:组ID:注释字段:起始目录:以及shell程序

3、一种文件的复制:

#define BUFSIZE 128
while(( n=read(STDIN_FILENO,buf,BUFSIZE) )>0)
{
    if(write(STDOUT_FILENO,buf,n)!= n)
    {
        perror("write:");
    }
}

编译后命令行输入:./a.out  < infile  >ofile

:infile作为输入,拷贝到ofile中

4、出错处理:

        unix函数出错时,通常会返回一个负值,errno通常被设置为具有特定的信息的值。

对于errno应该注意两条规则:

        如果没有出错,其值不会被例程清除,仅当函数出错,才检验其值。

        任何函数函数都不会讲errno设置为o,其定义的<errno.h>中定义的所以常量都不为0;

c语言定义的函数:打印出错信息

char *strerror(int errno);

void  perror(const char *msg);

出错恢复:致命性错误(无法恢复,最多打印一条出错信息)和非致命性错误(暂时性的,如资源短缺)

5、用户标识

用户ID:通常每个用户有一个唯一的ID。口令文件  (user ID)

组ID:一般来说口令文件中有多个登陆项具有相同的组ID。允许同组成员共享资源。/etc/group

ID 都是一个数值,但为了用户方便,所以口令文件中包含了登陆名和用户ID之间的映射关系。

        附属组ID:一个用户可以是多个组中。

6、时间值

日历时间:1970年开始的。。。(2038问题)【time_t  保持】

进程时间:cpu时间,以时钟滴答计算,度量进程使用的中央处理器资源。【clock_t 保存】

 度量进程的执行时间:系统维护了3个进程时间值

        时钟时间:墙上时间,是所以进程时间运行的总和

        用户CPU时间:执行用户指令所用的时间

        系统cpu时间:执行内核的调用时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值