实验一 Linux的基本操作
姓名: 江振明
学号:2010142016
时间:2013-04-13 地点:工西4楼
目的: 1熟悉Linux 基本命令与文件目录系统
2 全屏幕编辑器的使用
3 Shell 脚本编程实验
4. Makefile
设备:PC机,虚拟机Linux系统, 一个U盘 实验内容:
一.完成下列操作,并将执行过程和运行结果附上。
1) 建立目录
/home/学号
实验结果:已在/home 目录下新建了目录/2010142016-2010142007。
2) 将/arm2410cl/exp/basic/01_hello的目录及目录下的内容,拷贝到 /home/学号 下面
3) 查看拷贝到/home/学号下的文件的属性
4) 更改文件名,将文件hello.c 的名字改为 helloworld.c .
5) 在/mnt下建立目录usb
6) 将u盘挂载到/mnt/usb, 察看u盘内容 。(具体步骤如下,需要进行适当地修改) #fdisk –l
;察看u盘的设备名
#mount /dev/XXXX
/mnt/usb
(说明xxx,为u盘的设备名,根据fdisk-l显示的内容填写)
# ls /mnt/usb
7) 将u盘的某个文件复制到/home/学号
8) 给虚拟机pc-linux系统设置网络地址192.168.1.2,察看网络地址
先查看pc-linux系统的网络地址:为192.168.199.129
然后更改设置pc-linux系统设置网络地址192.168.1.2,再次查看:已设置成功。
9) 给pc-win机设置网络地址192.168.1.10,察看网络地址
设置pc-win机的网络地址为:192.168.1.10。
10) 查看网络是否通畅,再虚拟机上与 pc-win通信。
网络通畅。
11) 在pc-win与虚拟机pc-linux通信。
pc-win与虚拟机pc-linux通信成功。
12) 进入/home/学号/01_hello目录下
13) 查看 hello.c 文件的内容。
在第4)步时已经把hello.c改为helloworld.c,故这里是查看helloworld.c的内容。
14) 将/home/学号/下的文件打包并压缩
15) 将/arm2410cl/gui/tools/arm-linux-gcc-3.4.1.tar.bz2解压到目录/opt 下面。
二.练习(vi) vim的命令, 分别指出每个命令处于何种模式下。
(1) 进入”/home/学号”目录 # cd /home/学号
(2) 将文件 “/etc/inittab” 复制到目录 “/home/学号”目录下
# cp /etc/inittab ./ 先用„cd‟命令移到/home/2010142016-2010142007 目录下,执行cp /etc/inittab ./ 成功把文件“/etc/inittab” 复制到目录 “/home/2010142016-2010142007“下。
(3) 使用 vi 打开 /home/学号 目录下的文件
inittab
# vi ./inittab
(4) 设定行号,指定设定initdefault 的所在行号
:set nu
(底行模式)
(5) 将光标移到该行
17
(命令行模式)
(6) 复制该行内容
Yy (7) 将光标移动到最后一行行首
G
(8) 粘帖复制行的内容
P
(9) 撤销第8步的动作
U
(10) 将光标移动到最后一行的行尾
$
(11)粘帖复制行的内容
P
(12)光标移动到 “ si::sysinit:/etc/rc.d/rc.sysinit”
21G
(13) 删除该行
Dd
(14)存盘但不退出
:w (底行模式):
(15)将光标移动到行首
1G
(16)插入模式下输入 “Hello ,this is Vi world!”
I 并输入
Hello , this is vi world!
(17) 返回命令行模式
Esc
(18)向下查找字符串 “0:wait”
/0:wait
(19)再向上查找字符串 “halt”
?halt
(20)强制退出Vi ,不存盘。
:q!
该实验的最后的结果只对 “/home/学号/inittab” 增加了一行复制的内容: “ id:5:initdefault”
三
shell 程序的创建与执行
1)创建一个内容如下的文件,文件名为datex ,将其存放在/root目录下
# program datex # show the date in this way echo “Mr.$USER, Today is :”
echo „date‟
echo Whish you a lucky day!
设置执行权限
# chmod u+x /root/datex # ls –l /root
执行程序 # /root/datex
使用bash命令执行程序
# bash /root/datex
(在不设置可执行权限时,可以这样执行)
2).建立一个欢迎界面的shell程序 ,文件名为welcom, (函数的使用) #! /bin/bash #filename : welcome first( ) { echo “============================================”
echo “Hello ! Everyone ! Welcom to the Linux World!”
echo “============================================” } second( ) { echo “*****************************************************” }
first second second first
执行
# chmod u+x welcome # ./welcome
四 Makefile 文件的编写
1) 建立文件。五个文件分别是main.c、display1.h、display1.c、display2.h、display2.c,具体的代码如下: # vim main.c #include \"stdio.h\" int main(int argc,char **argv) { display1 (\"hello\"); display2(\"hello\"); }
#vim display1.h void display1 (char *print_str);
# vim display2.h void display2 (char *print_str);
# vim display1.c #include \"display1.h\" void display1(char *print_str) { printf(\"This is display1 print %sn\",print_str); }
#vim display2.c #include \"display2.h\" void display2 (char *print_str) { printf(\"This is display2 print %sn\",print_str); }
(1)如果上述文件在同一个目录,请编写Makefile文件。
#vim Makefile CC=gcc //CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc (交叉编译) all:main.o display1.o display2.o $(CC) main.o display1.o display2.o -o mains main.o:main.c $(CC) -c main.c -o main.o display1.o:display1.c display1.h $(CC) -c display1.c -o display1.o display2.o:display2.c display2.h $(CC) -c display2.c -o display2.o clean: rm *.o mains
(2)用$@, $
(3) 执行make
五. Linux的编程基础 (附加练习:熟悉Linux进程编程控制,看书并阅读代码)
从mystu上下载教科书中的 程序源代码, 在Linux环境下编译,并运行它们。要求阅读代码,理解执行的结果。
1) 请将u盘挂载到 /mnt/usb 下
2) 将u盘上sharedada的内容复制到 /home/学号下面
3) 分别编译下列文件并执行
forkfun.c ,
waitpid.c ,
pipe_rw.c, fifo_read.c,
fifo_write.c,
killfun.c,
alarm_pause.c,
mysignal.c,
sigaction.c ,
th_example1.c,
mutex.c , cond.c ,
sema.c,