若有错误,欢迎批评指正,站内联系或邮箱zhuo2333@qq.comhtml
一、 建立CentOS虚拟机,也可安装CentOS双系统。linux
二、 熟悉Linux常见命令。程序员
三、 了解超强的vi编辑器。shell
四、 熟悉gcc编译器。编程
五、 本实验设计意在提供解决问题的基本工具以及方式,所以详细以及进阶内容请自行查询书、网络或者询问助教。centos
六、 经过本实验学会如何在linux上进行开发。网络
CentOS编辑器
一、 建立CentOS工具
① 使用虚拟机建立CentOS在实验指导书(《Linux编程基础》黑马程序员)中有详细步骤。优化
我用的是CentOS6.8 安装包百度云连接:
连接: https://pan.baidu.com/s/1cF1llXJU1pYGqQy_PrFIzw
提取码:pnix
下载第一个压缩包便可
② 双系统安装方式,建议熟练或者有兴趣的同窗尝试,提供几条博客连接:
https://blog.csdn.net/mengxiangjia_linxi/article/details/78965103
http://www.javashuo.com/article/p-gcnfgddf-cs.html
二、 Linux常见命令(请学会使用终端Terminal)
(1) 绝对路径和相对路径:
Linux操做系统中存在着两种路径:绝对路径和相对路径。咱们在访问文件或文件夹的时候,其实都是经过路径来操做的。两种路径在实际操做中能起到同等的做用。
绝对路径永远都是相对于根文件夹的。它们的标志就是第一个字符永远都是“/”。
相对路径永远都是相对于咱们所处的文件夹位置。它们的第一个字符没有“/”。
好比/home/usr/test/h.c,这就是绝对路径。若是当前处于usr文件夹下,那么相对路径就是test/h.c。
‘.’表示当前路径,./test/h.c和以上相对路径等价,’..’表示上一级目录,故也可写做 ../usr/test/h.c
(2) 文件操做命令
ls 查看目录和文件 如 “ls /home/usr/test”,就会列出该目录下文件。
pwd 查看当前路径。
mkdir 建立目录, mkdir /home/usr 在/home下建立usr目录
cd 切换目录,cd /home/usr/test 。cd 可使用 .和.. ,即cd . 和 cd ..
cp 复制文件,命令格式 cp [源路径] [目的路径]
mv 移动文件,命令格式 mv[源路径] [目的路径]
rm 删除文件或目录,命令格式 rm [目标路径],参数-r递归删除,即删除子文件夹,-f强制删除。“rm –rf /*“ 毁灭世界。
rmdir 删除目录 rmdir [路径]
cat 查看文件内容, cat /home/usr/test/h.c , 输出文件中内容
more 分页查看。好比当cat输出大量文本内容时,很难看清,则能够经过cat [文件] | more来分页查看。f/空格显示下一页,回车显示下一行,Q/q退出。此处涉及到管道,有兴趣的可自行搜索。
(3) 权限操做命令
su 切换到root,root帐户具备最高权限。返回当前用户则使用exit。
sudo 在指令前加上sudo,使得本条指令以最高权限运行。
chmod使用chmod命令更改文件权限。
chow 使用chown命令更改文件全部者。
chgrp 使用chgrp命令更改文件的所属组。
(4) 网络管理命令
Ifconfig 查看当前网络配置,如ip等。
Netstat 查看当前网络状态。
Ping 检查网络是否连通。Ping www.baidu.com
(5) 查询命令帮助手册 man命令
好比man ls, 就会打印ls的使用方法。更详细的man使用方式见百度或者:
https://www.cnblogs.com/Jason-Ch/articles/2772973.html
(6) yum命令
centos安装包管理一般是使用yum完成,yum list可显示当前安装的程序包。
一、使用时首先配置源,即程序包来源。http://mirrors.163.com/.help/centos.html
二、配置好源后,则能够经过 sudo yum install xxxx命令来安装包。卸载包则是经过sudo yum remove xxx。
三、更详细内容请参考man yum或者百度搜索。
三、 vi编辑器
在命令行中编辑文件能够经过执行 vi xxx进行,下面简要介绍经常使用(不全)命令。
进入vi后是命令模式,经过按键控制光标移动以及文本内容的复制粘贴删除。
一、光标上下左右移动对应kjhl,部分vi支持上下左右键。
二、Home移动到行首,End移动到行尾。
三、x删除光标所在字符, dd删除光标所在行。
四、yy复制当前行,nyy复制自当前行起,包含当前行在内的n行,如3yy。
五、p将内容粘贴到光标处。
六、u 撤掉上一次操做。
只有在插入模式下才能修改文本, i或者Insert从命令模式进入插入模式。
底行模式则是在输入模式下按Esc进入,经常使用输入 :q 退出vi,:w 保存修改内容, :wq退出并保存。:q! 强制退出等。
Vi更多使用参见书或者man或者网络。
四、 GCC编译器
(1) 检查gcc版本
使用gcc –v输出信息,若是不存在gcc,请使用yum安装gcc。
(2) gcc编译单文件
编译方式是 gcc [文件路径],默认文件名是a.out,执行方式是 ./a.out 。
经过-o指定文件名, gcc hello.c –o hello,编译生成hello执行文件。
(3) gcc编译多文件
当程序源码分散在多个文件中时,举例为 gcc a.c b.c –o test,将a.c和b.c联合编译生成test可执行文件。
(4) 其余
如使用-o1 –o2 –o3来进行程序优化,更多请百度或者参考书。
一、 写出知足下列题目要求的命令,并解释每条命令中你使用的选项、参数的含义。
注意:每一个小题只能使用一条命令完成,命令的格式参考:command [options] [arguments]。
(1) 假设在当前路径下不存在任何目录,如今当前路径下建立名为“a1”的目录,并在“a1”目录中建立名为“b1”的目录。
mkdir /a1 在当前路径下建立a1目录
mkdir /a1/b1 在a1目录中建立b1目录
(2) 在当前路径下删除一个非空子目录/tmp。
rm -rf /tmp
删除目录下全部文件包括子目录方法:rm -rf 目录名
因为/tmp是系统文件,尽可能不要删除,这里能够选择删除第一小题建立的a1目录(因为内含b1目录,所以a1也是非空子目录)
本题不能使用rmdir命令,rmdir只能用于删除空目录
现已在用户coding我的目录下建立了目录software,完成如下(3)、(4)两个小题。
(3) 搜索etc目录下全部以“pa”开头的文件,并拷贝到software中。
cp /etc/pa* /home/coding/software
cp 复制文件,命令格式 cp [源路径] [目的路径]
其中,源路径/etc/pa*表示etc中全部以pa开头的文件,/home/coding/software是目的路径
(4) 将目录software下全部内容创建成一个tar包,并命名为software.tar.gz。
tar -cvf software.tar.gz /home/coding/software
tar是打包器 -cvf是打包,software.tar.gz是压缩文件名,/home/coding/software是要被打包的目录路径
二、 对一个文件file.txt执行命令:#chmod 746 file.txt。请解释该命令的含义并写出执行该命令后该文件的权限信息。(用r、w、x和-表示)
chmod使用chmod命令更改文件权限
r(4)表示可写
w(2)表示可读
x(1)表示可执行
7=4+2+1
4=4+0+0
6=4+2+0
因此746就是rwx r-- rw-
三、 在根目录下建立一个Lab1文件夹,并建立hello.c和output.c,要求使用vi完成对2个文件的编辑。output.c中存在一个方法,原型是 void MyPrint(char* str),用于打印字符串,hello.c中使用代码调用MyPrint输出”helloXXX”。(XXX表明你本人名字的拼音全称)。而后使用gcc将2个文件编译成为一个可执行文件,而后在shell中执行该文件,最后输出。请提交在终端输入命令和输出结果的完整截图,可添加一些必要的文字说明。
使用 / 命令进入根目录
当程序源码分散在多个文件中时,举例为 gcc a.c b.c –o test,将a.c和b.c联合编译生成test可执行文件
截图中的警告是我的问题(在output.c中忘记写头文件)
使用chomd命令,使得test文件拥有x权限,也便可执行
./xxx表示运行可执行文件xxx
四、用vi编辑器,执行下述操做,并详细说明操做过程及方法。
删除第5,15和25行指令:——
命令:nd表示删除第n行
在删除一行事后,下面的行数会发生变化,因此应该从下面开始删除
esc进入命令模式
:25d
:15d
:5d
将文本中全部的”etc”替换为”config”:——
:%s/etc/config/g
使用%才能在全文搜索,使用s命令进行替换,最后加/g以替换每一行中的每个etc
复制第11~20行的内容,而且贴到文件最后一行以后:——
11,20y p
a,by是复制命令,表示从第a行到第b行的复制,而后将光标移至最后一行,使用p命令进行粘贴
而后将光标移动至文件最后:——
一直按↓
将每行开头第一个字符”#”删除:——
:%s/^#/
%表示全文,s是替换命令,把每一行的第一个#替换成空白,完成删除操做
删除包含有字符串”conf”的那几行: ——
:g/conf/d
使用g/表示全局查询,查询到conf以后,使用/d命令完成删除整行
在第一行新增一行,输入你的姓名,学号:——
光标移动至第一行,点击i进入插入模式,回车而后输入姓名学号 xxx 17373xxx
文件另存为new-inittab.conf: ——
:w new-inittab.conf
使用w命令完成另存为操做
思考题(建议思考,不要求必须完成)
系统中引入了文件和目录的概念方便了用户的使用。设想若是有一个不使用文件或目录的系统,咱们能够用什么其余方式来代替它们的功能?在生活中有没有这样的例子?请简要回答并说明缘由。(思考方向:建议了解文件的组织结构,文件的做用)
胡思乱想了一通,就不贴上来了23333
原本运行命令行该有截图的,可是我作完做业关了虚拟机,才想起来没有截图。。。下次注意