看了unix环境高级编程第三章,把代码也都自己敲了一遍,另主要讲解了一些IO函数,read/write/fseek/fcntl;这里主要是c函数,比较容易,看多了就熟悉了。对fcntl函数讲解比较到位,它可以得到和改变打开文件的属性(只读,只写等等,注意后面和stat区别),下面记录了自己在学习的时候一些命令及概念,供学习使用:
ls 命令的含义是list显示当前目录中的文件名字。注意不加参数它显示除隐藏文件外的所有文件及目录的名字。
1)ls –a 显示当前目录中的所有文件,包含隐藏文件.
2)ls –l 显示文件及其详细信息。
$ ls -l
total 56
-rwxrw-rw- 1 zcx zcx 1840 8月 6 20:19 alloc.h
-rwxrwxr-x 1 zcx zcx 8078 8月 18 21:48 a.out
-rwxrw-rw- 1 zcx zcx 4754 7月 31 16:37 apue.h
-rwxrw-rw- 1 zcx zcx 2021 5月 24 2005 error.c
-rw-r--r-- 1 zcx zcx 16394 8月 18 21:48 file.hole
drwxrwxr-x 2 zcx zcx 4096 8月 17 21:50 firstChapter
-rw-rw-r-- 1 zcx zcx 391 8月 18 21:48 holefile3.2.c
-rw-rw-r-- 1 zcx zcx 139 8月 17 21:56 lseek3.1.c
drwxrwxr-x 2 zcx zcx 4096 8月 18 11:15 secondChapter
drwxrwxr-x 2 zcx zcx 4096 8月 18 21:41 thirdChapter
-rw-rw-r-- 1 zcx zcx 271 8月 1 09:44 ws_fork.c显示的文件详细信息分别代表什么呢?
total 56 代表当前目录下文件大小的总和为56K(每个目录的大小都按4K算)
drwxr-xr-x 第一个字符有3种情况:“-”表示普通文件,“d”代表目录,“l”代表连接文件,“b”代表设备文件。
后面的9个字符每3个为一组,分别代表文件所有者、文件所有者所在用户组、其它用户对文件拥有的权限。每组中3个字符分别代表读、写、执行的权限,若没有其中的任何一个权限则用“-”表示。执行的权限有两个字符可选“x”代表可执行,“s”代表套接口文件。
紧接着的数字2代表 “aa”这个目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)。我们进入“aa”目录用命令 ls –al (为了看到隐藏文件我们加上-a这个参数).
total 112
drwxrwxr-x 5 zcx zcx 4096 8月 18 21:48 .
drwxrwxr-x 4 zcx zcx 4096 8月 3 10:18 ..
-rwxrw-rw- 1 zcx zcx 1840 8月 6 20:19 alloc.h
-rwxrwxr-x 1 zcx zcx 8078 8月 18 21:48 a.out
-rwxrw-rw- 1 zcx zcx 4754 7月 31 16:37 apue.h
-rwxrw-rw- 1 zcx zcx 2021 5月 24 2005 error.c
-rw-r--r-- 1 zcx zcx 16394 8月 18 21:48 file.hole
drwxrwxr-x 2 zcx zcx 4096 8月 17 21:50 firstChapter
-rw-rw-r-- 1 zcx zcx 391 8月 18 21:48 holefile3.2.c
-rw-r--r-- 1 zcx zcx 12288 8月 18 21:45 .holefile3.2.c.swn
-rw------- 1 zcx zcx 12288 8月 18 11:31 .holefile3.2.c.swo
-rw------- 1 zcx zcx 12288 8月 18 11:31 .holefile3.2.c.swp
-rw------- 1 zcx zcx 12288 8月 18 21:45 .ho.swp
-rw-rw-r-- 1 zcx zcx 139 8月 17 21:56 lseek3.1.c
drwxrwxr-x 2 zcx zcx 4096 8月 18 11:15 secondChapter
drwxrwxr-x 2 zcx zcx 4096 8月 18 21:41 thirdChapter
-rw-rw-r-- 1 zcx zcx 271 8月 1 09:44 ws_fork.c
后面的zcx zcx 分布为用户名 和组用户名,接着后面的数据为文件或目录大小,再接着就是最后修改时间等。
linux重定向
看了./a.out 2 2>>temp.foo 这个命令,网上查了讲的事重定向问题,这个命令的意思把标准错误信息重定向到temp.foo(0文件描述符代表标准输入,1代表标准输出,2代表标准错误信息).
这里推荐一个网址,作者讲的比较详细,我就不啰唆了:http://www.cnblogs.com/wawlian/archive/2012/12/16/2820351.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?