linux实验报告.docx
《linux实验报告.docx》由会员分享,可在线阅读,更多相关《linux实验报告.docx(21页珍藏版)》请在冰点文库上搜索。
linux实验报告
实验一
实验名称:
Linux基本命令的使用
实验时间:
2学时
实验目的:
熟练使用Linux字符界面、窗口系统的常用命令。
实验内容
(一)Linux操作基础
1.重新启动linux或关机(poweroff,shutdown,reboot,init0,init6)
2.显示系统信息(uname),显示系统日期与时间,查看2014年日历(date,cal)
①uname:
查看系统与内核相关信息
uname-asrmpi
参数:
-a:
所有系统相关的信息;
-s:
系统内核名称;
-r:
内核的版本;
-m:
本系统的硬件名称,如i686或x86_64;
-p:
CPU的类型,与-m类似,只是显示的是CPU的类型;
-i:
硬件的平台(ix86).
②date:
显示日期的命令
③cal:
显示日历
单独cal:
列出当前月份的日历
cal2014:
列出2014年的日历
cal52014:
列出2014年五月的目录
3.使用帮助命令(man,help)
①man:
是manual(操作说明)的简写,是在线帮助系统
man后跟某个命令就会详细说明此命令,例如:
manman就会详细说明man这个命令的用法;
②help:
也是帮助命令,一般会在命令后,例如:
cd--help就会列出cd命令的使用说明。
4.查看当前登陆用户列表(who),显示当前用户(whoami)
①who:
显示目前已登录在系统上面的用户信息;
②whoami:
查询当前系统账户
5.建立一个新用户mytest,设定密码(useradd,passwd)
①useraddmytest(建立新用户mytest);
②passwdmytest(给mytest用户设置密码)
6.用mytest登录,用户注销或退出(logout,exit)
①logout,exit(注销或退出用户)
②输入mytest及刚才设置的密码,就登录了mytest账户
7.转换用户身份(su)
suroot:
切换到root用户;
sumytest:
切回mytest用户
(二)文件操作命令
8.显示当前工作目录,显示当前目录下的内容,列出所有文件和目录(包括隐含文件)(pwd,dir,ls)
①pwd显示当前目录:
/home/mytest
②dir显示当前目录下的所有目录:
anaconda-ks.cfgDocumentsMusicPublicDesktopDownloadsPicturesTemplatesVideos
③ls显示所有文件及目录:
anaconda-ks.cfgDocumentsMusicPublicDesktopDownloadsPicturesTemplatesVideos
9.建立一个新目录test,并建立其子目录t1,t2和t3,进入t1子目录(mkdir,cd)
①mkdirtest(新建一个test目录);
②cdtest(进入test目录);
③mkdirt1t2t3(建立三个子目录t1t2t3);
④cdt1(进入t1子目录);
10.在t1目录下,建立一个空文件aa(touch)
touchaa(建立空文件aa)
11.用vi编辑器建立一个源文件bb,输入3到5行文字,然后保存并退出
①vibb;(创建bb文件并编辑);
②i(插入);
③输入内容:
aaaaa
Bbbbb
Ccccc
Ddddd
④etc(退出);
⑤:
wq(保存并退出)
12.将aa和bb复制到t2目录下,将t2目录的bb文件移动到t3子目录下并改名
①cpaabb/home/mytest/test/t2(将aabb复制到t2目录下)
②cd/home/mytest/test/t2(先进入t2这个目录)
mvbb/home/mytest/test/t3(把bb移动到t3目录下)
13.显示aa文件和bb文件的内容(cat)
①cat/home/mytest/test/t1/aa(显示aa的内容)
②cat/home/mytest/test/t1/bb(显示bb的内容)
14.分页显示一个大文件(more,less)
cat/etc/passwd|more
cat/etc/passwd|less
15.在文件bb中查找某个特定的字符串(grep)
grepcc/home/mytest/test/t1/bb(在bb中找cc字符串)
16.查找某个特定文件(find)
findbb(在所有目录中找bb文件)
17.练习history命令,并执行其中一条历史命令;快速重复执行上一条命令
①history(显示所用过的命令)
②!
44(执行历史记录中的第44条命令)
18.将ls显示文件的结果,分别覆盖写和追加写到一个新文件中(>和>>)
ls>test.txt(将显示结果覆盖写到test.txt)
ls>>test.txt(将显示结果追加写到test.txt)
19.练习压缩命令和解压缩命令(gzip和gunzip)
①gzipbb压缩bb文件
②gunzipbb解压bb文件
20.删除一个文件(rm命令)
rmbb.gz(删除刚才压缩的文件bb.gz)
21.删除一个目录,如test/t11/t3子目录
rmdir/home/mytest/test/t3(删除t3子目录)
22.删除一个用户mytest及其主目录中的内容(userdel)
userdel-rmytest
实验二
实验名称:
Vi编辑器的使用
实验时间:
2学时
实验目的:
熟练掌握Vi编辑器的基本使用方法。
实验内容
1.练习Vi编辑器的启动、保存和退出等操作。
①vitest.txt(创建test.txt文件并编辑)
②i(插入数据)
③输入文字:
iamzxy
④etc(退出编辑)
⑤:
wq(保存并退出编辑器)
2.用vi编辑器建立一个源文件hello.c,打印出helloworld。
使用gcc进行编译。
若编译不正确,则对上述文件进行修改。
最后执行该程序。
①vihello.c(创建hello.c文件并且进入vi编辑器);
②i(插入数据即开始编译);
③输入内容:
#include
main()
{
printf("helloworld\n");
}
④etc(退出编辑)
⑤:
wq(退出vi编辑器并保存)
⑥gcc-ohellohello.gcc(gcc编译hello.c并生成可执行文件hello)
⑦./hello(执行hello,打印出helloworld)
实验截图:
3.练习使用Vi编辑器在命令模式下的各种操作:
移至行首、行尾、跳到指定行、文件内容的增\删\改操作(i,dd,x,#dd,#x),恢复上一次操作(u),搜索指定的字符串、复制操作等等。
①移至行首:
数字"0"或者功能键"HOME"
②移至行尾:
"$"或者功能键"END"
③跳到指定行:
"nG"(移动到此文件的第n行)
④插入文件(增):
"i"
⑤删除:
dd(删除光标所在的一整行)x(向后删除一个字符)X(向前删除一个字符)
⑥#dd(注释掉dd这一行)
⑦恢复上一次操作:
"u"
⑧搜索制定字符串:
"/word"(向下寻找一个名为word的字符串)
"?
word"(向上寻找一个名为word的字符串)
4.用vi编写一个count.cpp文件,进行简单的四则运算,例如“2+3=?
”,可以接受键盘输入的两个数和一个运算符号,并在控制台输出结果。
①vicount.cpp(编辑count.cpp)
②i(插入数据即编辑内容)
③输入c++源码:
#include
usingnamespacestd;
voidadd(inta,intb)
intmain()
{
intx,y,sum;
count<<"Entertwonumbers:
"<<'\n';
cin>>x;
cin>>y;
sum=add(x,y)
}
intadd(inta,intb)
{
intc;
c=a+b;
returnc;
}
④etc(退出编辑模式)
⑤:
wq(退出编辑器并保存)
⑥g++-osumcount.cpp(g++编译count.cpp并生成可执行文件sum)
⑦./sum(执行可执行文件sum)
⑧输入5
输入6
输出:
Thesumis11.
用GCC编译count.cpp程序,并执行。
①g++-osumcount.cpp(g++编译count.cpp并生成可执行文件sum)
②./sum(执行可执行文件sum)
③输入5
输入6
输出:
Thesumis11.
实验截图:
实验三
实验名称:
文件权限的管理
实验时间:
2学时
实验目的:
熟练掌握用户和组的建立,文件权限的修改等方法。
实验内容
1.建立2个组(神仙组,妖怪组)
在root用户下操作:
①groupaddyaoguai
②groupaddshenxian
2.建立4个用户:
悟空、八戒、唐僧、沙僧,并设置用户密码
在root用户下操作:
①useraddwukong
②useraddbajie
③useraddshaseng
④useraddtangseng
⑤passwdwukong
⑥passwdbajie
⑦passwdshaseng
⑧passwdtangseng
实验截图:
3.把悟空、八戒放入妖怪组
在root用户下操作
①usermod-gyaoguaibajie
②usermod-gyaoguaiwukong
4.把唐僧、沙僧放入神仙组
在root用户下操作
①usermod-gshenxiantangseng
②usermod-gyaoguaishaseng
实验截图:
5.用悟空建立一个文件(monkey.cpp),该文件要输出Iammonkey
①登录到wukong账户下
②vimonkey.cpp
③i
④编辑内容:
#include
usingnamespacestd;
main()
{
count<<"iamamonkey"<}
实验截图:
6.给八戒一个可以rw的权限
用root或悟空用户改
①chmod770/home/wukong(给同组用户进入wukong主文件夹的权限)
②chmod760/home/wukong/monkey.cpp
实验截图:
7.八戒修改monkey.cpp文件,加入一句话iamapig
①登录八戒用户
②vi/home/wukong/monkey.cpp
③i(修改)
④g++-opigmoney.cpp
⑤./pig
实验截图:
8.唐僧、沙僧对该文件没有权限
9.把沙僧放入妖怪组
usermod-gyaoguaishaseng
实验截图:
10.让沙僧修改文件monkey.cpp的monkey,加入”我是沙僧,我是妖怪!
”
①登录shaseng
②vimonkey.cpp
③i(加入iamshaseng,iamyaoguai)
④etc(退出)
⑤:
wq(保存并退出编辑器)
⑥g++-oshasengmonkey.cpp
⑦./shaseng
实验截图:
实验四
实验名称:
Shell编程
实验时间:
2学时
实验目的:
熟练掌握Shell程序的创建过程,能够编写Shell程序。
实验内容
1.请批量创建一个班的用户,每个班为一个组:
class110608或class110609.
用户名为:
学号+昵称
能够自动删除所创建的用户。
每成功创建或删除一个用户,在屏幕上显示用户名
①vish01.sh
②i(编辑内容)
③输入内容如下:
#!
/bin/sh
#Program:
#thisprogramistoadd30usersatonce
#History:
2014/05/12zxyfirstrelease
PATH=/bin:
/sbin:
/usr/bin/:
/usr/sbin/:
/usr/local/bin:
/usr/local/sbin:
~/bin
exportPATH
i=1
groupaddclass110609
while[${i}-le30]
do
if[${i}-le9]
then
USERNAME=std0${i}
else
USERNAME=std${i}
fi
useradd${USERNAME}
echo"$USERNAME"
i=$(($i+1))
done
④执行程序:
shsh01.sh
⑤查看是否创建用户成功:
cat/etc/passwd
⑥实验截图:
2.输入一个数字n,并输出n的阶乘。
①vish02.sh
②i(编辑内容)
③输入内容如下:
#!
/bin/sh
#Program:
#thisprogramistocaculatetheparamofyourinput
#History:
#2014/05/15zxyfirstrelease
PATH=/bin:
/sbin:
/usr/bin:
/usr/sbin:
/usr/local/bin:
/usr/local/sbin:
~/bin
exportPATH
read-p"pleaseinputanumbertocaculateitsparam:
"nu
if[$nu-eq0]
thenecho-e"$0noParams.\a\n"
exit0
fi
x=`echo$nu|awk'/[^[:
digit:
]]/{print$0}'`
if["x$x"!
="x"]
thenecho-e"Input:
$*error!
\a"
exit1
fi
fact=1
tmp=1
while[$tmp-le$nu]
do
fact=$((fact*tmp))
tmp=$((++tmp))
done
echo"Theresultis:
$fact"
④执行程序:
shsh02.sh
⑤输入:
10结果显示:
Theresultis:
3628800
3.创建一个shell程序,计算并输出1+2+3+4+......+100的值。
①vish03.sh
②i(编辑)
③输入下面程序:
#!
/bin/bash
#Program:
#Uselooptocaculate"1+2+3+...+100"result.
#History:
#2014/05/13zxyfirstrelease
PATH=/bin:
/sbin:
/usr/bin:
/usr/sbin:
/usr/local/bin:
/usr/local/sbin:
/usr:
/~bin
exportPATH
s=0
i=0
while["$i"!
="100"]
do
i=$(($i+1))
s=$(($s+$i))
done
echo"theresultof'1+2+3+...+100'is==>$s"
④运行脚本:
shsh03.sh
⑤结果显示:
theresultof'1+2+3+...+100'is==>5050
实验截图:
实验五
1.建立自己的samba服务器,并实现windows到linux的访问,可以进行文件的传输。
设置某个用户只读的权限。
①挂载含samba服务器的iso镜像
②查看是否已安装samba
rpm-qsamba
若未安装,继续。
否则直接使用samba
③拷贝samba的rmp包到/home目录
cpsamba*/home
④开始安装(顺序)
a)rpm‐ivhsamba-common-2.2.7a-7.9.0.i386.rpm
b)rpm–ivhsamba-client-2.2.7a-7.9.0.i386.rpm
c)rpm–ivhsamba-2.2.7a-7.9.0.i386.rpm
⑤创建一个用户zxy
useraddzxy
passwd123456
⑥给youyou设置samba密码
--将/etc/passwd中的用户都加到smbpasswd中
cat/etc/passwd|mksmbpasswd.sh>/etc/samba/smbpasswd
--设置密码
smbpasswd123456
⑦vi/etc/samba/smb.conf
设置readonly=yes
2.写一个crontab调度程序,使得每天晚上23:
30备份一个特定的文件,并注明备份日期。
Mysql数据库的备份:
①vi/backup/backupday.sh
②#!
/bin/sh
#basedir=/backup/dairy
PATH=/bin:
/usr/bin:
/usr/sbin:
/usr/local/bin:
/usr/local/sbin:
~/bin
exportPATH
basefile=$basedir/mysql.$(date+%Y-%m-%d).tar.bz2
basefile=$basedir/cgi-bin.$(date+%Y-%m-%d).tar.bz2
[!
-d"$basedir"]&&mkdir$basedir
cd/var/lib
tar-jpc-f$basefile1mysql
cd/var/www
tar-jpc-f$basefile2cgi-bin
③chmod700/backup/backupday.sh
④vi/etc/crontab
写入:
3023***root/backup/backupday.sh