【操作系统】实验一 熟悉LINUX环境和命令
实验名称:?实验一?熟悉LINUX环境和命令
实验目的:??1.?了解UNIX/LINUX的命令及使用格式。
2.熟悉UNIX/LINUX的常用基本命令。?
?3.?练习并掌握LINUX提供的vi编辑器来编译C程序
4.?学会利用gcc、gdb编译、调试C程序
实验内容:
- 熟悉UNIX/LINUX的常用基本命令如ls、who、w、pwd、ps、pstree等
2. 用vi编写一个简单的C程序,用gcc编译并观察编译后的结果
3.?利用gdb调试该程序
4.?运行生成的可执行文件。
实验结果记录:
- Ls
who
- w
- pwd
- ps
- pstree
一、LINUX的登录与退出?
1、登录?
步骤如下:?
login: (输入?student)?
password: (输入密码:student)?
2、退出?
在?LINUX?系统提示符$下,输入?logout、exit?或?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]即代表?test0,test1,……,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"停止查看?
5、I/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、
实验小结:
思考题:
- 什么是Shell环境变量和Shell元字符?
Shell环境变量是在Shell会话中定义的全局变量,用于控制Shell和其他程序的行为。它们包含一些系统设置和用户定义的值,例如PATH用于指定可执行程序的搜索路径。
Shell元字符是在Shell中具有特殊含义的字符,例如通配符(*,?),管道符号(|),重定向符号(>,<)等。它们用于执行各种操作,如文件操作和进程管道。
- 在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盘。
3、Linux系统中文件权限分为哪三种,用户类型为哪三种?
Linux系统中的文件权限分为三种:
用户权限(User):这是文件或目录的所有者的权限。
组权限(Group):这是文件或目录所属组的成员的权限。
其他权限(Other):这是其他用户的权限,即不是文件所有者也不是文件所属组成员的用户的权限。
用户类型分为三种:
用户(User):文件或目录的所有者,拥有最高权限。
组(Group):文件或目录所属的组。
其他(Other):不属于文件所有者或文件所属组的其他用户。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!