赞
踩
本人一直想找时间系统整理一下之前做过的一些实验,便于后续用到的时候可以尽快的使用,po出来也便于大家交流学习,有问题欢迎交流指正,与诸君共勉!
操作系统实验一,包含Linux操作系统常用命令的使用演示。
目录
Linux是一个与DOS或Windows完全不同的操作环境,具有它自己独特的风格。
使用Linux系统时,用户多数时间是通过Shell与系统进行对话的。Shell是一个接收用户输入命令并将其转换成指令的程序,它是用户与Linux系统之间的界面之一。通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。
Linux的文件名与DOS有许多相似之处也有其自身的特点。
Linux文件名没有标准格式。通常文件名中可以包含任何字符 (“/”字符除外,“~”字符不能作为文件名的第一个字符) ,文件名的长度限制在256个字符以内。Linux的文件名也提供了功能强大且精确的通配符。
文件的权限是Linux系统安全的核心部分,包括:
1) Read (可读) 权限:表示可以读取文件内的数据。
2) Write (可写) 权限:表示可以改变或删除该文件。
3) Execute (可执行) 权限:表示可以把该文件当成程序执行。
除文件权限之外,Linux系统上还有目录和很多其他类型的文件,其中包括特殊文件 (设备) 、Socket和符号连接等等 (平时我们经常使用的Windows设备如软驱、光驱等在Linux中也是一种特殊的文件) 。
拥有root口令的用户称为超级用户,超级用户有权访问整个系统,包括建立普通用户帐号、修改密码、安装与卸载软件等一切权限。超级用户的提示符为“#”,普通用户提示符为“$”。
几个用户在一个系统下共用一个帐号,其个人文件的安全就得不到保障。建立普通用户帐号后,系统能保证用户是唯一能够存取其个人文件的人。另一方面,即使没有与人共享一个系统,建立普通用户帐号也是必要的。因为如果总是以超级用户登录进行操作 (超级用户的权限是整个系统) ,一旦出现误操作 (如:破坏或移动、删除一个重要的系统文件) 处理起来也很棘手。
Linux的文件系统是文件和目录层次的集合。了解Linux文件系统的结构有助于更好地理解和使用Linux。在Linux文件系统根目录下,有如下子目录:bin、dev、etc、home、install、lib、mnt、proc、root、tmp、user、var (不同版本,目录会略有不同) 。
1) /bin目录 该目录中存放许多基本的系统程序。
2) /dev目录 该目录中存放的文件是设备驱动程序,用来访问系统设备和资源,如磁盘设备、调制解调器、内存等。
/dev目录下常用的设备文件: /fd0、/fd1:/fd0代表第一个软盘,/fd1代表第二个软盘。 /console: /console指系统控制台,也就是直接连接系统的监视器。 /hda: /hda1代表第一个硬盘。 /tty: /tty开头的设备名代表用户系统上的虚拟控制台。 /tty1代表第一个虚拟控制台, /tty2代表第二个虚拟控制台。 |
1. 通过Internet资源,从感性上认识操作系统的功能和应用,了解市场上常见的操作系统,为进一步的学习操作系统打下基础。
2. 熟悉Linux实验环境,掌握一些有关基础知识和实验技能。
3. 熟悉使用Linux字符界面的常用命令。
4. 学习并掌握Linux编辑器vi和编译工具gcc的使用方法。
5. 掌握在Linux操作系统环境上编辑、编译、调试、运行一个C语言程序的全过程。
实验机房软件Ubuntu或在VMware虚拟机上安装Centos操作系统。
(1) pwd命令
pwd (即print working directory,打印工作路径) 命令的功能是显示当前的工作路径(显示当前路径的绝对路径)。如现在是在“/home/CAI”目录下,则可以用此命令来证实。例如:
$ pwd “$”表示在Linux系统的提示符下
/home/CAI pwd命令证明的确是在“/home/CAI”下
(2) cd命令
cd命令用来切换目录,如:
cd ccec /*相对路径,当前路径下的ccec目录*/
cd /home/ccec /*绝对路径*/
cd ~ /*进入当前用户的home*/
cd - /*返回上一次访问的目录*/
cd .. /*进入当前目录的父目录*/
假设在刚才的目录切换到另一目录,例:
$ cd /usr/bin 将当前的目录转到“/usr/bin”下
$ pwd
/usr/bin
$ cd 此命令返回工作目录(上一次访问的工作目录)
$ pwd
$ /home/CAI
$ cd .. ,进入当前目录的父目录
(1) ls命令
ls命令的功能是显示指定目录的内容,包括
-a 显示指定目录下所有子目录与文件,包括隐藏文件。
-A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和 “..”。
-c 按文件的修改时间排序。
-l 以长格式来显示文件的详细信息。这个选项最常用。
-p 在目录后面加一个“/”。
-r 按字母逆序或最早优先的顺序显示输出结果。
-t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修 改时间。
-u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间 标记修改为最后一次访问的时间。
-x 按行显示出各排序项的信息
-i 显示inode号
例如:
$ cd
$ ls –a 此命令显示当前工作目录下的所有文件 (参数
“a”表示所有文件,“-”号是用来控制参数)
显示时,文件名前带“.”号表示隐含文件。
输入“ls -l”命令,参数“-l”表示额外文件的信息,给出文件或者文件夹的详细信息。
(2) cat命令
cat命令的功能是显示文件内容,也可用于文件的连接。
-n :由 1 开始对所有输出的行数编号
-b :和-n 相似,只不过对于空白行不编号
-s :当遇到有连续两行以上的空白行,就代换为一行的空白行。例如:
cat -n test1.txt 把test1.txt的内容加上行号显示出来(包括空行)
cat -b test1.txt test2.txt 把test1.txt和test2.txt的内容显示出来,test2.txt的内容显示在test1.txt后面(除空行外加上行号)
cat null > test.txt 把test.txt清空
cat test1.txt >test2.txt 把test1.txt中的内容写到test2.txt中,覆盖原内容
cat test1.txt >>test2.txt 把test1.txt中的内容写到test2.txt中,增加在原内容后
此命令常用来快速浏览文件,使用方法如:
$ cat file1.txt
(3) chown命令
chown命令的功能是改变文件的属主和组 (“属主”可以是用户名或用户ID;“组”可以是组名或组的ID;文件名是以空格分开的要改变权限的文件列表,支持通配符) 。例如:
$ chown host:cai file1 将文件file1的属主改为host组的cai
(4) cp命令
cp命令的功能是复制文件,用法是:
cp [options] 源文件 目标文件
cp命令还可以使用以下参数:
-f:强行覆盖已存在的目标文件。
-i:在强行覆盖已存在的目标文件时给出提示。
-R:整个目录复制。
如:
$cd /tmp/
$cp file1.txt /tmp/test
$cd /tmp/test
$ls
File1.txt
(5) date命令
date命令的功能是打印或设置系统日期和时间,其用法与DOS中的date命令相似,例如:
$ date
touch [选项]… 文件…
无参数:若文件不存在,则创建之,否则更改文件时间戳为当前时间
-c 若文件不存在,不创建任何新文件
-d 时间戳更改为指定的日期
-t 时间戳更改为指定的时间
示例:
1)若file1不存在,则创建之:touch file1
2)若file2不存在,仍不创建:touch -c file2
3)更改file1的时间戳为现在时间(file1若不存在,先创建之):touch file1
4)更改file1的时间戳为指定时间2015.11.09 22时34分(file1若不存在,先创建之) :touch -t 201511092234 file1
5)更改file1的时间戳为指定日期2016.11.09 (file1若不存在,先创建之) :touch -d 20161109 file1
例如:
$touch file1.txt
创建一个file1.txt文档。
(7) mkdir命令
创建一个目录,用法是:
mkdir [选项] dir-name,例如
$cd /tmp/
$mkdir test
$ls
Test
rmdir:删除空目录
- p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
(8) mv移动文件命令
用法是:
mv 路径/文件 目标目录
如:$mv file1.txt /tmp
$cd /tmp/
$ls
file1.txt
(9) mr删除文件/目录
用法是:
rm[选项] 文件
$cd /tmp/
$ls
Test file1.txt
$rm –r /tmp/test
$ls
file1.txt
$rm file1.txt
$ls
(1) kill命令
kill命令的功能是中止一个进程,用法是:
kill [-s信号] [p] [-a] 进程号
kill -l [信号] 列出所有进程号
(2) clear命令
clear命令的功能是清除屏幕,用法如同DOS中的cls命令:
$ clear
(3) reboot命令
reboot命令的功能是重新启动系统,用法是:
$ reboot
(4) passwd命令
passwd命令的功能是设置用户密码,用户可以使用passwd这个命令来更改自己的登录密码:一般用户只能更改自己的密码;超级用户不但能更改自身的密码,还能更改其他用户的密码。还可以用这个命令来更改用户的其他信息,如用户的全名,用户的登录Shell,用户的密码失效时间间隔等。
(5) su命令
su命令的功能是使普通用户以root帐号登录,用法是:键入su命令,Shell要求root密码。键入密码按回车键则进入root帐号。键入exit回到以前的普通用户。
(6) grep命令
grep:一个强大的文本搜索工具,它能使用正则表达式搜索文本
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
注:grep一般和其他命令一起配合使用。
(6) ps命令
ps:显示当前瞬间,进程的状态
-a 列出所有的进程
-w 显示加宽可以显示较多的信息
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的线程
表1-1 Linux常用命令
命令名 | 功能 | 使用举例 |
adduser | 创建新用户 | #adduser↙ |
cp | 复制文件 | $cp 源文件 目标文件↙ |
rm | 删除文件 | $rm 文件名 |
mkdir | 创建新目录 | $mkdir 目录名↙ |
rmdir | 删除目录 | $rmdir 目录名↙ |
pwd | 显示当前目录 | $pwd↙ |
ps | 显示进程状态 | $ps↙ |
ls | 显示当前目录下内容 | $ls -l↙ |
cat | 显示文件内容 | $cat 文件名↙ |
cd | 转换当前目录 | $cd 路径名↙ |
mv | 移动文件 | $mv 源文件 目标文件 |
more | 分页显示 | $ls –l|more↙ |
chmod | 改变文件权限 | $chmod 777 文件名↙ |
clear | 清屏 | $clear↙ |
(1) 进入vi编辑器:$vi文件名↙,如vi aaa.c(若aaa.c不存在,将新建该文件,否则打开该文件)
按i以插入模式进入编辑状态,就可编辑代码;按esc就从编辑状态回到命令状态;输入“:wq”回车,保存并退出。
(2) vi编辑器常用命令
表1-2 vi编辑器常用命令
输入的字符 | 功 能 | 说 明 |
Esc | 进入命令模式 | |
i | 在光标前输入文字 | |
A | 在光标后输入文字 | |
X | 删除光标后输入的文字 | |
Dd | 删除当前行 | 删除后内容自动进入剪贴板 |
/abc | 向前查找字符字符串 | 然后输入n,则继续向前查 |
?abc | 向后查找字符字符串 | |
Yw | 将光标所在单词拷入剪贴板 | |
Yy | 将光标所在行拷入剪贴板 | |
P | 将剪贴板内容贴在光标后 | |
:q | 不保存退出……..0 | :q!表示强制退出 |
:w | 保存 | :w!表示强制保存 |
:wq | 保存退出 | |
:x | 保存退出 | |
:3,7 co 9 | 将第3行至第7行拷到第9行 | |
:3,7 m 9 | 将第3行至第7行移到第9行 | |
u | 取消前次命令 | |
:g/abc/s//123/g | 将全部的abc替换成123 |
gcc编译常用格式为:$gcc源文件名↙
例如:$gcc aaa.c↙,将生成默认可执行文件a.out
或者$gcc -o 目标文件名 源文件名↙
例如:$gcc –o aaa aaa.c或$gcc aaa.c –o aaa.out
$./可执行文件名↙(例如:$./a.out↙)
1.掌握在VMware下安装Linux操作系统。
2.熟悉Linux字符界面,练习并掌握常用的Linux操作命令。
3.掌握一种Linux的编辑器,特别是字符界面的vi工具的使用。
4.使用vi编辑一个打印“Hello,I am a C program”字串的C语言程序,然后编译并运行它。熟悉gcc等编译器、调试器的使用。
例程:
#include<stdio.h>
int main( )
{
int i=getuid( );
printf("Hello world! This is my uid: %d\\n",i);
}
VMware虚拟机、CentOS操作系统
1. 在VMware下安装Linux操作系统CentOS,并进行系统环境的设置。
2. 进行常用命令的使用
3. 进行部分其他命令的使用
4. 完成vi编辑器的基本操作
5. 使用gcc编译器编译源文件
6. 运行.out文件
安装CentOS操作系统后,在root用户下安装用户图形界面,用yum grouplist查看GNOME名称,然后用yum groupinstall "GNOME Desktop" 命令进行安装。
安装成功提示“complete!”如图1。
图1 命令行界面安装图形用户界面成功
安装完通过命令 startx (如图2)进入图形界面。
查看系统版本,如图3。
修改终端主题为暗色调。
在terminal界面输入su命令,输入密码,切换至root用户,如图4。
图4 切换至root用户
“locale”命令查看系统当前语言包,如图5。存在简体中文语言包。
图5 系统当前语言包
使用LANG=“zh_CN.UTF-8”命令修改系统语言,如图6。
图6 修改系统语言为简体中文
将配置写入文件,实现永久修改,如图7。
图7 向文件写入语言配置
输入cat i18n指令查看文件内容进行确认,如图8。
图8 查看语言配置文件内容
使用该方法修改配置文件后,再次打开系统,系统语言仍为英文,且locale查询到的仍然为en_US。故使用另一方法进行设置,如图9。
图9修改系统语言为简体中文
由于英文不易出现乱码,后又更改系统语言为英文。
键入ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改时区为亚洲上海,如图8。
图8 修改时区为亚洲上海
键入reboot,重启系统。
图9 pwd命令
图10 cd相对路径
图11 cd – 命令返回上一次访问的目录
图12 cd绝对路径
图13 cd ..进入当前目录的父目录
图14 cd ~进入当前用户的home
图15 切换到另一目录
图16 返回上一次访问的工作目录
ls命令的功能是显示指定目录的内容。具体命令测试结果如下。
ls -a命令显示指定目录下所有子目录与文件,包括隐藏文件,如图17。
图17 ls -a命令
ls -A命令显示指定目录下所有子目录与文件,包括隐藏文件,但不列出“.”和“..”,如图18。
图18 ls -A命令
ls -c:
图19 ls -c按文件的修改时间排序
图20 ls -l以长格式显示文件的详细信息
图21 ls -p在目录后面加一个/
图22 ls -r按字母逆序或最早优先的顺序显示输出结果
ls -t:显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修改时间,如图23。
图23 ls -t显示按修改时间排序
Ls -u:显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间标记修改为最后一次访问的时间,如图24。
图24 ls -u按文件上次存取时间排序
图25 ls -x按行显示出各排序项的信息
图26 ls -i显示inode号
图27 ls -1
cat命令的功能是显示文件内容,也可用于文件的连接。
使用cat命令创建文件
输入cat > teatcat.txt,之后输入文本,按ctrl+c退出,如图28。使用ls命令可查看,testcat.txt文件已创建。
图28 使用cat命令创建文件
图29 ls命令查看创建的文件是否存在
使用cat命令查看文件
图30 cat命令查看文件
图 31 cat -n查看文件由1开始对所有输出的行数编号
图 32 cat -b查看文件由1开始对输出的行数(除空行外)编号
图33 cat -s两行以上空行代换为一行空行
cat -b testcat02.txt testcat03.txt 将文件testcat02.txt、testcat03.txt的内容显示出来,testcat03.txt的内容显示在testcat02.txt后面(除空行外加上行号)。
图34 文件连接显示
图35 清空testcat04.txt文件
图36 把testcat04.txt的内容写到testcat03.txt中 覆盖原内容
图37 把testcat03.txt的内容写到testcat04.txt中 在原内容后
chown命令的功能是改变文件的属主和组 (“属主”可以是用户名或用户ID;“组”可以是组名或组的ID;文件名是以空格分开的要改变权限的文件列表,支持通配符) 。
图38 使用普通用户权限 chown命令失败
图39 使用root用户权限 chown命令成功
图40 将testcat03.txt复制到Mycodes文件夹下
图41 强行覆盖Mycodes文件夹下testcat03.txt文件
图42 在强行覆盖文件时给出提示
date命令的功能是打印或设置系统日期和时间,其用法与DOS中的date命令相似。
图43 date命令显示时间
图44 touch更改文件时间戳为现在时间 若文件不存在则创建之
图45 touch -c若文件不存在 不创建新文件
图46 touch更改testouch0.txt时间戳为现在时间
图47 更改testouch0.txt时间戳为指定时间2022.09.09 13时14分
图48 更改testouch0.txt时间戳为指定日期2022.10.10
mkdir创建一个目录。rmdir删除空目录。
图49 创建一个目录Mytxt
图50 删除空目录Mytxt
图51移动文件test04.txt到Mycodes文件夹下
图52 使用rm -r删除test0文件夹
图53 ps -au命令查看进程
图54 执行kill命令 结束pid为24683的./testrol进程
图55 clear命令清空屏幕
reboot命令重启系统。
图56 键入reboot命令
图57 passwd命令
图58 su命令切换超级用户 exit命令返回普通用户
图59 使用grep命令查看安装java软件的版本
图60 使用grep命令查询每个网卡和ip地址
图61 使用grep -c命令统计字符串出现的次数
图62 使用grep -w精准全匹配搜索
图63 使用grep -r所有子目录下的搜索
图64 使用grep -i忽略大小写搜索
图65 使用grep -v过滤文件中的‘bb’
图66 使用grep -n查找含有‘bb’的行 并输出行号
图67使用grep -nv查找不含有‘bb’的行 并输出行号
图68 使用grep –color高亮显示搜索结果
图69 使用ps命令显示当前瞬间进程的状态
图70 使用ps -a命令列出所有进程
图71 ps -w命令显示加宽 可以显示较多的信息
图72 ps -au可以显示较详细的咨讯
图73 ps -aux显示所有包含其他使用者的线程、
图74 键入进入vi编辑器的指令
图75 进入vi编辑器
图76 按i以插入模式进入编辑状态 可编辑代码
图77 按ese返回命令状态 输入“:wq”回车 保存并退出
图78 “:1,2 co 10”前两行拷到第十行
图79 “:1,2 co 10”前两行拷到第十行结果
图80 将所有的bb换为abc
图81 将所有的bb换为abc结果
图82 新建c语言文件
图83 安装gcc、c++编译器及内核文件
图84 gcc、c++编译器及内核文件安装成功
图85 使用gcc命令编译源文件
图86 运行程序a.out
本次实验过程中,通过对CentOS的基本操作以及常用指令的使用,我对操作系统的功能和应用有了更深的认识,并熟练掌握了一些指令的使用方法,可以熟练使用Linux的编辑器vi和编译工具gcc,熟练掌握了编译运行一个c语言文件的过程,学会了使用符号界面下载系统软件,为进一步的学习操作系统打下基础。
实验中每次遇到含义不够清楚的指令,我都通过网络查询相关信息,将每一条指令、每一个操作都弄懂弄通,熟练掌握。
对Linux实验环境从初期的生疏到后期的熟悉,对Linux指令从初期的陌生到逐渐的内化,是一个令人有成就感的过程。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。