TFTP的使用
先用setup命令,查看tftp是否已经安装完,再用根用户去执行
netstat -a | grep tftp
如果返回有
udp 0 0 *:tftp *:*
之类符号的就表示已经启动了,然后查看tftp主工作目录是否建立
/tftpboot
然后再执行 vi /etc/xinetd.d/tftp
把Disable 写成no
server args的位置写-s /tftpboot
最后/etc/init.d/xinetd start
NFS的使用
同样可以用setup查看是否已经安装并启动nfs
vi /etc/exports
打入以下内容
/home
(共享文件夹//这个不用打) 192.168.255.*(rw,sync,no_root_squash)
启动nfs命令
/etc/init.d/nfs start
另外一台机想用这台机的共享目录的话,用以下命令
mount -t nfs 192.168.255.241:/home /mnt/nfs
Samba的使用
先要设置好LINUX的IP,把IP设成跟XP的IP是同一个IP段,再把VM右下角的连接方式改成bridge方式
用setup改IP
192.168.255.240
把网关等都设好后
/etc/init.d/network restart
然后再ping 192.168.255.241(IP为XP的IP)
如果ping成功就连接上了。就可以设置SMB了
vi /etc/samba/smb.conf
[root]
comment = Root Directories
browseable = yes
writable = yes
path = /
(共享路径)
valid users = linliqiang
(访问用户名)
添加一段代码到smb.conf里面,
保存退出后,
smbpasswd -a linliqiang
(访问用户名)
它会要求你输入密码。输入完后,执行
/etc/init.d/smb restart
重启后,你就可以用XP-开始-运行-ping 192.168.255.240
(RTEL5的IP)
输入账号密码,成功。
SHELL的使用
首先不用说
#!/bin/sh
(这是一个链接文件,在/bin这个文件夹里。)
echo “Hello world!”
(注意,这里echo后面要有一空格 。)
------------------------
#!/bin/bash
hello="var1"
echo $hello
function func1 {
local hello="var2"
echo $hello
}
func1
echo $hello
------------------------
这个是一个例子文件。运行结果为
var1
var2
var1
当编写完一个shell文本后,需要把这个shell文本的权限改成777
然后就可以用./运行
-e 文件已经存在
-f 文件是普通文件
-s 文件大小不为零
-d 文件是一个目录
-r 文件对当前用户可以读取
-w 文件对当前用户可以写入
-x 文件对当前用户可以执行
-----------------
#!/bin/sh
folder=/home
[ -r "$folder" ] && echo "Can read $folder"
[ -f "$folder" ] || echo "this is not file"
------------------
GCC的使用
.c .a .C.cc .cxx .h .i .ii .o .s .S各种后缀文件
设已有的hello.c文件,需要编译
gcc hello.c -o hello
执行完后会生成一个可执行文件hello
-c只编译。输出一个.o文件
-g产生调试信息
-O进行优化编译链接
-O2比-O更好的优化编译
-I 增加头文件目录
-L 增加库文件目录
-static 静态链接库文件
-D 宏定义
GDB使用
要在编译的时候加上-g
b[行号、函数名]
加断点
i b
查看断点情况
q
退出
n
next下一步,不进子函数
s
step下一步,进入子函数
r
run 运行
finish
在函数中执行,运行到函数结束为止
l[a]
显示代码
p 变量
print,显示变量值
系统调用
读写文件的时候,文件读写指针都会跟随移动,当读了3个字节之后
指针就相对移动3位,读完再写的时候就会从读完的位置开始写。
用
lseek(int fd,offset_t offset,int whence)函数则可以人为的移动文件读写指针。
有三个相对基准点
SEEK_SET :
相对文件开头
SEEK_CUR
相对文件读写指针的当前位置
SEEK_END
相对文件末尾
lseek(fd,0,SEEK_END)返回值为文件长度
access(const char*pathname,int mode)
判断一个文件是否可以进行某种操作(读写执行)
if(access("/etc/passwd",R_OK)==0) //R_OK可读 W_OK可写 X_OK可执行 F_OK文件存在
判断/etc/passwd文件是否可读,如果测试成功,即可读的话,返回0值,不符返回-1
GCC安装办法
一、查询是否安装gcc : which gcc
[root@lvshou media]# which gcc
/usr/bin/which: no gcc in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
#如果系统已安装会出现:/usr/bin/gcc
二、挂载光盘 mount /dev/cdrom /media
三、按顺序分别安装以下RPM包
rpm -ivh cpp ....
rpm -ivh kernel-headers...
rpm -ivh glibc-headers...
rpm -ivh glibc-devel...
rpm-ivh libgomp...
rpm -ivh gcc...
四、测试是否安装成功
[root@lvshou media]# which gcc
/usr/bin/gcc
[root@lvshou media]# which gcc
/usr/bin/which: no gcc in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
#如果系统已安装会出现:/usr/bin/gcc
二、挂载光盘 mount /dev/cdrom /media
三、按顺序分别安装以下RPM包
rpm -ivh cpp ....
rpm -ivh kernel-headers...
rpm -ivh glibc-headers...
rpm -ivh glibc-devel...
rpm-ivh libgomp...
rpm -ivh gcc...
四、测试是否安装成功
[root@lvshou media]# which gcc
/usr/bin/gcc