【操作系统】实验一 熟悉LINUX环境和命令

2023-12-18 09:36:43

实验名称:?实验一?熟悉LINUX环境和命令

实验目的:??1.?了解UNIX/LINUX的命令及使用格式。

2.熟悉UNIX/LINUX的常用基本命令。?

?3.?练习并掌握LINUX提供的vi编辑器来编译C程序

4.?学会利用gcc、gdb编译、调试C程序

实验内容:

  1. 熟悉UNIX/LINUX的常用基本命令如ls、who、w、pwd、ps、pstree等

2. 用vi编写一个简单的C程序,用gcc编译并观察编译后的结果

3.?利用gdb调试该程序

4.?运行生成的可执行文件。

实验结果记录:

  1. Ls

who

  1. w

  1. pwd

  1. ps

  1. pstree

一、LINUX的登录与退出?

1、登录?

步骤如下:?

login (输入?student)?

password (输入密码:student)?

2、退出?

在?LINUX?系统提示符$下,输入?logoutexit?或?shutdown?。?

例:$?logout?

二、LINUX?命令格式?

命令?[选项]?[处理对象]?

例:ls?-la?mydir?

注意:

1)命令一般是小写字串。注意大小写有别?

2)选项通常以减号(-)再加上一个或数个字符表示,用来选择一个命令的不同操作?

3)同一行可有数个命令,命令间应以分号隔开?

4)命令后加上&可使该命令后台(background)执行?

三、常用命令?

1、目录操作?

和?DOS?相似,LINUX?采用树型目录管理结构,由根目录(/)开始一层层?

将子目录建下去,各子目录以?/?隔开。用户?login?后,工作目录的位置称为

home?directory,由系统管理员设定。‘~’符号代表自己的?home?directory,?

例如?~/myfile?是指自己?home?目录下?myfile?这个文件。?

LINUX?的通配符有三种:’*’?和?’?’?用法与?DOS?相同,?

‘-‘?代表区间内的?

任一字符,如?test[0-5]即代表?test0test1,……,test5?的集合。?

1)显示目录文件?ls?

执行格式:?ls?[-atFlgR]?[name]?(name?可为文件或目录名称)?

例:?ls?显示出当前目录下的文件

ls?-a?显示出包含隐藏文件的所有文件?

ls?-t?按照文件最后修改时间显示文件

ls?-F?显示出当前目录下的文件及其类型?

ls?-l?显示目录下所有文件的许可权、拥有者、文件大小、?

修改时间及名称?

ls?-lg?同上?

ls?-R?显示出该目录及其子目录下的文件?

注:ls与其它命令搭配使用可以生出很多技巧(最简单的如"ls?-l?|?more"),更多用法请输?

入ls?--help查看,其它命令的更多用法请输入?命令名?--help?查看.?

2)建新目录?mkdir?

执行格式:?mkdir?directory-name?

例: ?(新建一名为?dir1?的目录)?

3)删除目录?rmdir?

执行格式:?rmdir?directory-name??rm?directory-name?

例:rmdir?dir1?删除目录?dir1,但它必须是空目录,否则无法删除?

rm?-r?dir1?删除目录?dir1?及其下所有文件及子目录?

rm?-rf?dir1?不管是否空目录,统统删除,而且不给出提示,使用?

时要小心

4)?改变工作目录位置?cd?

执行格式:?cd?[name]?

例:?cd?改变目录位置至用户?login?时的?working?directory?

cd?dir1?改变目录位置,至dir1目录?

cd?~user?改变目录位置,至用户的working?directory?

cd?..?改变目录位置,至当前目录的上层目录?

cd?../user?改变目录位置,至上一级目录下的user目录?

cd?/dir-name1/dir-name2?改变目录位置,至绝对路径(Full?

path)?

cd?-?回到进入当前目录前的上一个目录?

5)显示当前所在目录?pwd?

执行格式:?pwd

6)查看目录大小?du?

执行格式:?du?[-s]?directory?

例:?du?dir1?显示目录?dir1?及其子目录容量(以?kb?为单位)?

du?-s?dir1?显示目录?dir1?的总容量?

(7)显示环境变量?

echo?$HOME?显示家目录

echo?$PATH?显示可执行文件搜索路径?

env?显示所有环境变量(可能很多,最好用"env?|?more","env?grep?PATH"等)

(8)修改环境变量,在bash下用export,如:?

export?PATH=$PATH:/usr/local/bin?

想知道?export?的具体用法,可以用?shell?的?help?命令:help?export?

2、文件操作?

1)查看文件(可以是二进制的)内容?cat?

执行格式:cat?filename?或?more?filename?或?cat?filename|more?

例:?cat?file1?以连续显示方式,查看文件?file1?的内容?

more?file1?

?cat?file1|more?以分页方式查看文件的内容?

2)删除文件?rm?

执行格式:?rm?filename?

例:?rm?file??

rm?f*?

3)复制文件?cp?

执行格式:?cp?[-r]?source?destination?

例:?cp?file1?file2?将?file1?复制成?file2?

cp?file1?dir1?将?file1?复制到目录?dir1?

cp?/tmp/file1?将?file1?复制到当前目录?

cp?/tmp/file1?file2?将?file1?复制到当前目录名为?file2?

cp?–r?dir1?dir2?(recursive?copy)复制整个目录。

4)移动或更改文件、目录名称?mv?

执行格式:?mv?source?destination?

例:?mv?file1?file2?将文件?file1,更名为?file2?

mv?file1?dir1?将文件?file1,移到目录?dir1?下?

mv?dir1?dir2?

3、系统询问与权限口令?

1)查看系统中的使用者?

执行格式:?who?

2)查看?username?

执行格式:?who?am?I?查看自己的?username?

3)改变自己的?username?的帐号与口令?su?

执行格式:?su?username?

例:?su?username?输入帐号?

password?输入密码?

4)文件属性的设置?chmod?

改变文件或目录的读、写、执行的允许权?

执行格式:?chmod?[-R]?mode?name?

其中[-R]为递归处理,将指定目录下所有文件及子目录一并处理?

mode为3-8位数字,是文件/目录读、写、执行允许权的缩写(r:read,数?

字代号为"4"?w:write,数字代号为"2"?x:execute,数字代号为"1")?

mode?rwx?rwx?rwx?

user?group?other?

缩写:?(u)?(g)?(o)?

例:chmod?755?dir1?将目录dir1设定成任何人皆有读取及执行的权利,但?

只有拥有者可作写修改。其中7=4+2+1,5=4+1?

chmod?700?file1?将?file1?设为拥有者可以读、写和执行?

chmod?o+x?file2?将?file2,增加拥有者可执行的权利?

chmod?g+x?file3?将?file3,增加组使用者可执行的权利?

chmod?o-r?file4?将?file4,除去其它使用者可读取的权利?

5)改变文件或目录所有权?chown?

执行格式:?chown?[-R]?username?name?

例:?chown?user?file1?将文件?file1?改为?user?所有?

chown?.fox?file1?将文件file1改为fox组所有?

chown?user.fox?file1?将文件file1改为fox组的user所有?

chown?-R?user?dir1?将目录?dir1?及其下所有文件和子目?

录,改为?user?所有?

6)检查用户所在组名称?groups?

执行格式:?groups?

touch?name

4、进程操作?

1)查看系统目前的进程?ps?

执行格式:?ps?[-aux]?

例:?ps?或?ps?-x?查看系统中属于自己的?process?

ps?-au?查看系统中所有使用者的?process?

ps?-aux?查看系统中包含系统内部及所有使用者的?process?

ps?-aux|grep?apache?找出系统中运行的所有名称中带有?

"apache"串的process?

2)查看正在?background?中执行的?process?

执行格式:?jobs?

3)结束或终止进程?kill?

执行格式:?kill?[-9]?PID?PID?为利用?ps?命令所查出的?

process?ID)?

例:?kill?456 《操作系统》实验指导书

?kill?-9?456?终止?process?ID?为?456?的?process?

(4)显示系统中程序的执行状态?

例:?top?-q?不断地更新、显示系统程序的执行状态?

第一行显示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。?

第二行为进程情况,依次为进程总数、休眠进程数、运行进程数、僵死进程数、终止进程数。?

第三行为CPU状态,依次为用户占用、系统占用、优先进程占用、闲置进程占用。?

第四行为内存状态,依次为平均可用内存、已用内存、空闲内存、共享内存、缓存使用内存。?

第五行为交换状态,依次为平均可用交换容量、已用容量、闲置容量、高速缓存容量。?

PID?每个进程的ID。?

PPID?每个进程的父进程ID。?

UID?每个进程所有者的UID?。?

USER?每个进程所有者的用户名。?

PRI?每个进程的优先级别。?

NI?该进程的优先级值。?

SIZE?该进程的代码大小加上数据大小再加上堆栈空间大小的总数。单位是KB。?

TSIZE?该进程的代码大小。对于内核进程这是一个很奇怪的值。?

DSIZE?数据和堆栈的大小。?

TRS?文本驻留大小。?

D?被标记为不干净的页项目。?

LIB?使用的库页的大小。对于ELF进程没有作用。?

RSS?该进程占用的物理内存的总数量,单位是KB。?

SHARE?该进程使用共享内存的数量。?

STAT?该进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代?

表僵死状态;T代表停止或跟踪状态。?

TIME?该进程自启动以来所占用的总CPU时间。如果进入的是累计模式,那么该时间还包括这个?

进程子进程所占用的时间。且标题会变成CTIME。?

%CPU?该进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。?

%MEM?该进程占用的物理内存占总内存的百分比。?

COMMAND?该进程的命令名称,如果一行显示不下,则会进行截取。内存中的进程会有一个完整?

的命令行?

按"ctrl+c"停止查看?

5I/O?命令?

1)管道(pipe-line)的使用?

执行格式:?command1|command2?

功能:将?command1?的执行结果送到?command2?作为输入?

例:?ls?-R1|more?以分页方式列出当前目录文件及子目录名称?

cat?file1|more?以分页方式,列出?file1?的内容?

2)标准输入控制?

执行格式:?command-line<file?将?file?作为?command-line?的输入?

例:?mail?-s?“mail?test”?user@iis.sinica.edu.tw<file1?

功能:将文件?file1?当作信件的内容,subject?名称为?mail?test?送给收?

信人?

3)标准输出控制?

执行格式一:?command>filename?

功能:将?command?的执行结果送至指定的?filename?中?

例:?ls?-l?>list?将执行”ls?-l”?的结果写入文件?list?中?

执行格式?command>!filename?

功能:同上,若?filename?文件已存在,则强迫重写?

执行格式三:?command>&filename?

功能:将?command?执行所产生的任何信息写入?filename?

执行格式四:command>>filename?

功能:将?command?的执行结果,附加(append)到?filename?

6、其它常用命令?

1)命令在线帮助?man?

执行格式:?man?command?

例:?man?ls?查询?ls?这个指令的用法?

2)设定命令记录表长度?history?

执行格式一:?set?history=n?

例:

功能:设定命令记录表长度为?40(可记载执行过的前面?40?个命令)?

执行格式二:?history?查看命令记录表的内容?

(3)显示说明?info?

执行格式:?info?command-name?

例:?info?gcc?

功能:?查看gcc的说明,按上下箭头选定菜单,回车进入,"u"键返回上?

级菜单.?

info不加参数则进入最上一级菜单.?

四、用cat?命令查看?/proc?动态文件系统目录下的文件,辨识其中的系统信息.?

例如:?cat?interrupts?列出当前中断占用情况?

cat?ioports?列出设备的硬件IO占用情况?

cat?pci?列出pci设备的情况?

2、

3、

4、

实验小结:

思考题:

  1. 什么是Shell环境变量和Shell元字符?

Shell环境变量是在Shell会话中定义的全局变量,用于控制Shell和其他程序的行为。它们包含一些系统设置和用户定义的值,例如PATH用于指定可执行程序的搜索路径。

Shell元字符是在Shell中具有特殊含义的字符,例如通配符(*,?),管道符号(|),重定向符号(>,<)等。它们用于执行各种操作,如文件操作和进程管道。

  1. 在Linux中如何挂载一个U盘?

要在Linux中挂载一个U盘,可以按照以下步骤进行:?

a.?插入U盘到计算机上。?

b.?打开终端,使用dmesg?|?tail命令来查看U盘设备的识别信息,通常以类似于?/dev/sdX?的形式显示,其中X是字母,表示不同的设备。?

c.?创建一个用于挂载的目标文件夹,例如:sudo?mkdir?/media/usbdrive?

d.?使用sudo?mount?/dev/sdX?/media/usbdrive来挂载U盘到指定目标文件夹。?

e.?现在,U盘的内容将出现在/media/usbdrive目录下。?

f.?当完成后,可以使用sudo?umount?/media/usbdrive来卸载U盘。

3Linux系统中文件权限分为哪三种,用户类型为哪三种?

Linux系统中的文件权限分为三种:

用户权限(User):这是文件或目录的所有者的权限。

组权限(Group):这是文件或目录所属组的成员的权限。

其他权限(Other):这是其他用户的权限,即不是文件所有者也不是文件所属组成员的用户的权限。

用户类型分为三种:

用户(User):文件或目录的所有者,拥有最高权限。

组(Group):文件或目录所属的组。

其他(Other):不属于文件所有者或文件所属组的其他用户。

文章来源:https://blog.csdn.net/qq_42531954/article/details/135043127
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。