操作系统02326实践笔记

发布时间:2021-07-13 08:15:10   来源:自考网
1.创建目录命令:mkdir
如果创建的目录有很多个,可以加-p,意思为递归创建目录
linux:mkdira1/a2-p
mac:mkdir-pa1/a2
2.切换命令:cd
cda1切换到当前目录下的a1目录
cd..切换到上级目录
cd-切换到之前的工作目录,相当于撤销操作
3.切换命令:vim
vim[选项][文件名]
例:vimmyinfo打开myinfo文件(如该文件不存在则创建并打开)
3.1常用的选项如下:
(1)-r:恢复一个文件;
(2)-R:以只读方式打开一个文件。
3.2存储和退出:
(1):w:将文件存入/写入磁盘;
(2):q:退出vi编辑器;
(3):wq:将文件存入磁盘并退出vi编辑器。
4.复制命令:cp(mac注意权限问题)
cp[选项][文件][复制后的文件]
例:cpmyinfoa2/myinfobak将myinfo复制到a2目录下并改名为myinfobak
4.1常用的选项如下:
(1)-i:防止不小心覆盖已经存在的文件或目录,在覆盖之前给出提示信息。
(2)-r:递归的复制目录。
(3)-p:保留一些特定的属性,如时间戳等。
(4)-f:强制覆盖原有的文件。
5.显示行号
:setnu显示行号
:setnonu取消行号
6.删除给定范围的行
例::3,5d比如从第3行到第5行
7.显示日历、日期、时间等
7.1date命令:显示日期和时间,在其后加-R,可以显示时区
例:date>date.txt显示当前日期和时间写入date.txt文件
7.2cal命令:显示日历
例:cal52021>month.txt将2021.05月的日历写入month.txt文件
8.显示文件行、单词和字符数:wc
例:wc-lc/ect/passwd>info.txt统计/etc/passwd文件的行数和字节数并保存到info.txt
常用的选项如下:
(1)-l:仅显示行数
(2)-w:仅显示单词数
(3)-c:仅显示字符数
9.文件权限
chmod[ugoa...][[+-=][rwxX]...][,...]filename
例:chmodu+xquanxian给文件拥有者增加执行权限
权限设置:
    u表示该文件的拥有者,g表示与该文件的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。
    '+'表示增加权限、'-'表示取消权限、'='表示唯一设定权限。
    r表示可读取,w表示可写入,x表示可执行,X表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
10.编译文件gcc
gcctest.c将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。
gcctest.c-otest将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名
gcc-Etest.c-otest.i将test.c预处理输出test.i文件
gcc-Stest.i将预处理输出文件test.i汇编成test.s文件
gcc-ctest.s将汇编输出文件test.s编译输出test.o文件
gcctest.o-otest将编译输出文件test.o链接成最终可执行文件test
gcc-O1test.c-otest使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长
二进程创建
编写一段名为jincheng.c的程序,使用系统调用forkO)创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动,每个进程在屏幕上显示—串字符,父进程显示"father";子进程分别显示"daughter"和"son"。源程序jincheng.c和可执行程序a.out均保存在用户主目录下。
#include<stdio.h>#include<stdlib.h>#include<unistd.h>intmain(){intpid;pid=fork();if(!pid){printf("son\n");}else{intpid2;pid2=fork();if(!pid2){printf("daughter\n");}else{printf("father\n");}}}
推荐文章