UNIX程序设计基本概念和术语

unix体系结构
从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kernel ),因为它相对较小,而且位于环境的核心。
内核的接口被称为系统调用( system call)。公用 函数库构建在系统调用接口之上,应用程序既可使用公用函数库,也可使用系统调用。shell 是一个特殊的应用程序,为运行其他应用程序提供了一个接口。

登录名

/etc/passwd文件用于存储用户账户信息。每一行代表一个用户账户,由7个字段组成,用冒号(:)分隔,依次是:登录名、加密口令、用户ID、组ID、注释、起始目录以及shell程序。

bash 复制代码
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

UID和GID都是0表示最高权限。

/sbin/nologin表示不允许登录,大多数系统用户都使用 /sbin/nologin 作为shell,防止这些账户被用于登录。

三个标准文件描述符:

标准输入(Standard Input,stdin)

文件描述符:0

默认情况下连接到键盘

程序通过它读取输入数据

标准输出(Standard Output,stdout)

文件描述符:1

默认情况下连接到终端屏幕

程序通过它输出正常信息

标准错误(Standard Error,stderr)

文件描述符:2

默认情况下也连接到终端屏幕

程序通过它输出错误和诊断信息

参考:

APUE

unix高级编程引入apue.h

相关推荐
GeW10 小时前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx12 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位14 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
骑着蜗牛撵大象32715 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
..Dauntless..15 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
QMCY_jason16 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特16 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
あ-16 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu16 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip
老秦包你会16 小时前
Linux第十课---------Linux信号
linux