当前位置:文档之家› linux实验报告

linux实验报告

LINUX实验报告

专业:

班级:

学号:

姓名:

实验一

实验名称:Linux 基本命令的使用

实验时间:2学时

实验目的:熟练使用Linux字符界面、窗口系统的常用命令。

实验内容

(一)Linux操作基础

1.重新启动linux或关机(poweroff,shutdown,reboot,init 0,init 6)

2.显示系统信息(uname),显示系统日期与时间,查看2014年日历(date,cal)

①uname:查看系统与内核相关信息

uname -asrmpi

参数:

-a :所有系统相关的信息;

-s: 系统内核名称;

-r: 内核的版本;

-m:本系统的硬件名称,如i686或x86_64;

-p: CPU的类型,与-m类似,只是显示的是CPU的类型;

-i :硬件的平台(ix86).

②date:显示日期的命令

③cal:显示日历

单独cal:列出当前月份的日历

cal 2014:列出2014年的日历

cal 5 2014:列出2014年五月的目录

3.使用帮助命令(man,help)

①man:是manual(操作说明)的简写,是在线帮助系统

man后跟某个命令就会详细说明此命令,例如:man man就会详细说明man 这个命令的用法;

②help:也是帮助命令,一般会在命令后,例如:cd --help 就会列出cd命令的使用说明。

4.查看当前登陆用户列表(who),显示当前用户(whoami)

①who:显示目前已登录在系统上面的用户信息;

②whoami:查询当前系统账户

5.建立一个新用户mytest,设定密码(useradd,passwd)

①useradd mytest(建立新用户mytest);

②passwd mytest(给mytest用户设置密码)

6.用mytest登录,用户注销或退出(logout, exit)

①logout,exit(注销或退出用户)

②输入mytest及刚才设置的密码,就登录了mytest账户

7.转换用户身份(su)

su root :切换到root用户;

su mytest:切回mytest用户

(二)文件操作命令

8.显示当前工作目录,显示当前目录下的内容,列出所有文件和目录(包括隐含文件)(pwd,dir, ls)

①pwd显示当前目录:/home/mytest

②dir显示当前目录下的所有目录:anaconda-ks.cfg Documents Music Public

Desktop Downloads Pictures Templates Videos

③ls显示所有文件及目录:anaconda-ks.cfg Documents Music Public Desktop Downloads Pictures Templates Videos

9.建立一个新目录test,并建立其子目录t1,t2和t3,进入t1子目录(mkdir, cd)

①mkdir test(新建一个test目录);

②cd test(进入test目录);

③mkdir t1 t2 t3(建立三个子目录t1 t2 t3);

④cd t1(进入t1子目录);

10.在t1目录下,建立一个空文件aa(touch)

touch aa(建立空文件aa)

11.用vi编辑器建立一个源文件bb,输入3到5行文字,然后保存并退出

①vi bb;(创建bb文件并编辑);

②i(插入);

③输入内容:aaaaa

Bbbbb

Ccccc

Ddddd

④etc(退出);

⑤:wq(保存并退出)

12.将aa和bb复制到t2目录下,将t2目录的bb文件移动到t3子目录下并改名

①cp aa bb /home/mytest/test/t2(将aa bb复制到t2目录下)

②cd /home/mytest/test/t2(先进入t2这个目录)

mv bb /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)

grep cc /home/mytest/test/t1/bb(在bb中找cc字符串)

16.查找某个特定文件(find)

find bb(在所有目录中找bb文件)

17.练习history命令,并执行其中一条历史命令;快速重复执行上一条命令

①history(显示所用过的命令)

②!44(执行历史记录中的第44条命令)

18.将ls显示文件的结果,分别覆盖写和追加写到一个新文件中(> 和>>)ls> test.txt(将显示结果覆盖写到test.txt)

ls >>test.txt(将显示结果追加写到test.txt)

19.练习压缩命令和解压缩命令(gzip 和gunzip)

①gzip bb压缩bb文件

②gunzip bb 解压bb文件

20.删除一个文件(rm命令)

rm bb.gz(删除刚才压缩的文件bb.gz)

21.删除一个目录,如test/t11/t3子目录

rmdir /home/mytest/test/t3(删除t3子目录)

22.删除一个用户mytest及其主目录中的内容(userdel)

userdel -r mytest

实验二

实验名称:Vi编辑器的使用

实验时间:2学时

实验目的:熟练掌握Vi编辑器的基本使用方法。

实验内容

1.练习Vi编辑器的启动、保存和退出等操作。

①vi test.txt(创建test.txt文件并编辑)

②i(插入数据)

③输入文字:i am zxy

④etc(退出编辑)

⑤:wq(保存并退出编辑器)

2.用vi编辑器建立一个源文件hello.c,打印出hello world。使用gcc进行编译。若编译不正确,则对上述文件进行修改。最后执行该程序。

①vi hello.c(创建hello.c文件并且进入vi编辑器);

②i(插入数据即开始编译);

③输入内容:#include

main()

{

printf("hello world \n");

}

④etc(退出编辑)

⑤:wq(退出vi编辑器并保存)

⑥gcc -o hello hello.gcc(gcc编译hello.c并生成可执行文件hello)

⑦./hello(执行hello,打印出hello world)

实验截图:

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=?”,可以接受键盘输入的两个数和一个运算符号,并在控制台输出结果。

①vi count.cpp(编辑count.cpp)

②i(插入数据即编辑内容)

③输入c++源码:

#include

using namespace std;

void add(int a, int b)

int main()

{

int x,y,sum;

count<<"Enter two numbers:"<<'\n';

cin>>x;

cin>>y;

sum=add(x,y)

}

int add (int a,int b)

{

int c;

c=a+b;

return c;

}

④etc(退出编辑模式)

⑤:wq(退出编辑器并保存)

⑥g++ -o sum count.cpp(g++编译count.cpp并生成可执行文件sum)

⑦./sum(执行可执行文件sum)

⑧输入5

输入6

输出:The sum is 11.

用GCC编译count.cpp程序,并执行。

①g++ -o sum count.cpp(g++编译count.cpp并生成可执行文件sum)

②./sum(执行可执行文件sum)

③输入5

输入6

输出:The sum is 11. 实验截图:

实验三

实验名称:文件权限的管理

实验时间:2学时

实验目的:熟练掌握用户和组的建立,文件权限的修改等方法。实验内容

1.建立2个组(神仙组,妖怪组)

在root用户下操作:

①groupadd yaoguai

②groupadd shenxian

2.建立4个用户:悟空、八戒、唐僧、沙僧,并设置用户密码

在root用户下操作:

①useradd wukong

②useradd bajie

③useradd shaseng

④useradd tangseng

⑤passwd wukong

⑥passwd bajie

⑦passwd shaseng

⑧passwd tangseng

实验截图:

3.把悟空、八戒放入妖怪组在root用户下操作

①usermod -g yaoguai bajie

②usermod -g yaoguai wukong 4.把唐僧、沙僧放入神仙组在root用户下操作

①usermod -g shenxian tangseng

②usermod -g yaoguai shaseng

实验截图:

5.用悟空建立一个文件(monkey.cpp),该文件要输出I am monkey

①登录到wukong账户下

②vi monkey.cpp

③i

④编辑内容:

#include

using namespace std;

main()

{

count<<"i am a monkey"<

}

实验截图:

6.给八戒一个可以r w 的权限

用root或悟空用户改

①chmod 770 /home/wukong(给同组用户进入wukong主文件夹的权限)

②chmod 760 /home/wukong/monkey.cpp

实验截图:

7.八戒修改monkey.cpp文件,加入一句话i am a pig

①登录八戒用户

②vi /home/wukong/monkey.cpp

③i(修改)

④g++ -o pig money.cpp

⑤./pig

实验截图:

8.唐僧、沙僧对该文件没有权限

9.把沙僧放入妖怪组

usermod -g yaoguai shaseng

实验截图:

10.让沙僧修改文件monkey.cpp的monkey,加入”我是沙僧,我是妖怪!”

①登录shaseng

②vi monkey.cpp

③i(加入i am shaseng,i am yaoguai)

④etc(退出)

⑤:wq(保存并退出编辑器)

⑥g++ -o shaseng monkey.cpp

⑦./shaseng

实验截图:

实验四

实验名称:Shell编程

实验时间:2学时

实验目的:熟练掌握Shell程序的创建过程,能够编写Shell程序。

实验内容

1.请批量创建一个班的用户,每个班为一个组:class110608或class110609.

用户名为:学号+昵称

能够自动删除所创建的用户。每成功创建或删除一个用户,在屏幕上显示用户名

①vi sh01.sh

②i(编辑内容)

③输入内容如下:

#!/bin/sh

#Program:

# this program is to add 30 users at once

#History:

2014/05/12 zxy first release

PATH=/bin:/sbin:/usr/bin/:/usr/sbin/:/usr/local/bin:/usr/local/sbin:~/bin

export PATH

i=1

groupadd class110609

while [ ${i} -le 30 ]

do

if [ ${i} -le 9 ]

then

USERNAME=std0${i}

else

USERNAME=std${i}

fi

useradd ${USERNAME}

echo "$USERNAME"

i=$(($i+1))

done

④执行程序:sh sh01.sh

⑤查看是否创建用户成功:cat /etc/passwd

⑥实验截图:

2.输入一个数字n,并输出n的阶乘。

①vi sh02.sh

②i(编辑内容)

③输入内容如下:

#!/bin/sh

#Program:

# this program is to caculate the param of your input

#History:

# 2014/05/15 zxy first release

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH

read -p "please input a number to caculate its param: " nu

if [ $nu -eq 0 ]

then echo -e "$0 no Params.\a\n"

exit 0

fi

x=`echo $nu | awk '/[^[:digit:]]/ { print $0 } ' `

if [ "x$x" != "x" ]

then echo -e "Input: $* error!\a"

exit 1

fi

fact=1

tmp=1

while [ $tmp -le $nu ]

do

fact=$((fact*tmp))

tmp=$((++tmp))

done

echo "The result is : $fact"

④执行程序:sh sh02.sh

⑤输入:10 结果显示:The result is : 3628800

3.创建一个shell程序,计算并输出1+2+3+4+......+100的值。

①vi sh03.sh

②i(编辑)

③输入下面程序:

#!/bin/bash

#Program:

# Use loop to caculate "1+2+3+...+100" result.

#History:

# 2014/05/13 zxy first release

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr:/~bin export PATH

s=0

i=0

while [ "$i" != "100" ]

do

i=$(($i+1))

s=$(($s+$i))

done

echo "the result of '1+2+3+...+100'is ==> $s"

④运行脚本:sh sh03.sh

⑤结果显示:the result of '1+2+3+...+100'is ==> 5050

实验截图:

实验五

1.建立自己的samba服务器,并实现windows到linux的访问,可以进行文件的传输。设置某个用户只读的权限。

①挂载含samba服务器的iso镜像

②查看是否已安装samba

rpm -q samba

若未安装,继续。否则直接使用samba

③拷贝samba的rmp包到/home目录

cp samba* /home

④开始安装(顺序)

a)rpm ‐ivh samba-common-2.2.7a-7.9.0.i386.rpm

b) rpm –ivh samba-client-2.2.7a-7.9.0.i386.rpm

c) rpm –ivh samba-2.2.7a-7.9.0.i386.rpm

⑤创建一个用户zxy

useradd zxy

passwd 123456

⑥给youyou设置samba密码

--将/etc/passwd中的用户都加到smbpasswd中

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

--设置密码

smbpasswd 123456

⑦vi /etc/samba/smb.conf

设置read only=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

export PATH

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 $basefile1 mysql

cd /var/www

tar -jpc -f $basefile2 cgi-bin

③chmod 700 /backup/backupday.sh

④vi /etc/crontab

写入:

30 23 * * * root /backup/backupday.sh

相关主题
文本预览
相关文档 最新文档