linux视频教程第0讲.开山篇

来源:互联网 发布:ubuntu chrome xijie 编辑:程序博客网 时间:2024/04/27 18:17

  linux视频教程第0.开山篇

为什么学习linux

linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用linux

linux内核:redhat 、红旗linuxubuntususefedora,它们的内核都是一样的(Notelinux其实是一个统称,就比如面条是一个统称,可以有哨子面、阳春面、打卤面等)

linux for工作  

- linux系统管理员

- linux系统的维护、配置等

- linux程序员

- 需c/c++javaphpjsp

- linux软件工程师(PC

- linux嵌入式开发(单片机、芯片)

如何学习linux

第一阶段:linux平台上的开发,包括vigccgdbmakejdktomcatmysql..linux基本操作

第二阶段:加厚c语言功底《c专家编程》或是java语言

第三阶段:学习unix环境高级编程《unix环境高级编程》

第四阶段:linux应用系统开发/linux嵌入式开发

内容讲解

基础部分

- linux基础知识

- linux常用命令80

- linux分区/vi/权限

实用部分

- Samba安装与配置

- linux网络环境配置

- crontab使用

- jdk/apache/mysql/ssh/rpm安装与配置

- linuxjava网络编程

- shell初步介绍

 

推荐书籍

- 《鸟哥的Linux的私房菜 基础学习篇》 鸟哥、许伟、林彩娥等编著

- 《Linux编程从入门到精通》 宫虎波编著

- 《Linux内核完全剖析》 赵炯编著

linux视频教程第1.基础介绍

linux的初步介绍

linux的特点

- 免费的/开源

- 支持多线程/多用户

- 安全性好

- 对内存和文件管理优越

 

linux的缺点

- 操作相对困难

吉祥物:小企鹅(想起小时侯被企鹅咬了一口),芬生学生创建,微软反LINUX广告(四个变形动物)

linux的历史

- 1960时期左右,MIT,即麻省理工学院有一台电脑,使用分时操作系统,只能同时允许30个人通过终端登录

- 1965年,MITGEBell实验室,决定将30è300个人分时系统,multis计划,即火星计划

- 1969年,火星计划失败。但BellKen Thompson开发了一个file server system文件系统,在Bell实验室很受欢迎

- 在Dennis Ritchie的加入下,1973年,unix诞生,开源,源码内核共享

- IBMAIX

- SunSolaris

- HP: HP unix

- 伯克利分校:BSD 

- minix系统出现

- Linus Torvalds,芬兰读书,拥有PC 3861991年计划把minix移植到pc上,1994发布linux 1.0版  linux is not unix,完全没有桌面

- redhat红帽子

- s.u.s.e

- 红旗linux(中国)

linux的第一次接触

关机命令

shutdown h now 立即进行关机(管理员root才可以)

shutdown r now 现在重新启动计算机

reboot 现在重新启动计算机

 

进入桌面

startx

 

用户登录

登录时尽量少用root账户登录,因为它是系统管理员,最大的权限,难免操作失误。可以利用普通用户登录,登录后再用“su -”命令来切换成系统管理员身份

 

用户注销

在提示符下输入logout即可,快捷键ctrl+D

linux视频教程第2. vi编辑器的使用

什么是vi编辑器

vi编辑器是linux下最有名的编辑器,也是我们学习linux必须掌握的工具,在linux下也可使用vi进行程序的开发,如java程序,c程序。

psVI编辑器由Bill Joy 1976年在bsd unix 开发的(世界第一骇客,成为了自由软件协会)

如何使用vi进行开发?

linux下使用vi开发一个简单的java程序Hello.java,并且在linux下运行成功

- 开发步骤

- java程序

vi Hello.java

- 输入i,进入到插入模式

- 输入Esc键,进入命令模式

- 输入冒号:[wq 表示保存退出,q!表示退出不保存]

- 编译javac Hello.java

- 运行java Hello

- c程序

gcc o Hello Hello.cpp[参数o表示可自定义生成的out文件名,否则默认为a. out,重复写会覆盖以前的值]

./Hello

linux视频教程第3.用户管理.目录结构

概述

简单介绍

linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/,然后在此目录下再创建其他的目录

深刻理解linux文件目录是非常重要的

- /

- root,存放root用户的相关文件

- home,存放普通用户的相关文件

- bin,存放常用命令的目录,如visu

- sbin,要具有一定权限才可以使用命令

- mnt,默认挂载光驱和软驱的目录

- etc,存放配置的相关文件

- var,存放经常变化的文件,如网络连接的sock文件

- boot,存放引导系统启动的相关文件

- usr,安装一个软件的默认目录,相当于windows下的program files

 

常用命令介绍

pwd,显示当前在哪个路径下

linux的用户管理

1. useradd 用户名,添加用户

a) 【案例】useradd xiaoming

2. passwd 用户名,为新用户设密码

a) 【案例】passwd xiaoming,修改小明的密码

3. userdel 用户名,删除用户

a) 【案例】userdel xiaoming,删除用户但保存用户主目录

b) 【案例】userdel ‐r xiaoming,删除用户以及用户主目录

4. logout,当前用户退出

5. who am i,当前用户是谁

提示:#”表示root用户,“$”表示普通用户。

linux视频教程第4.常用命令

linux的常用命令

init [0123456],指定系统运行级别,类似windows的正常运行模式或安全模式

- 0:关机

- 1:单用户

- 2:多用户状态没有网络服务

3:多用户状态有网络服务

- 4:系统未使用保留给用户

5:图形界面

- 6:系统重启

常用运行级别是35,要修改默认的运行级别可改文件 /etc/inittabid:5:initdefault:这一行中的数字

切换用户:输入su切换用户或者logout

FAQ:不小心设置了6,导致系统启动-重启-启动循环,怎么办?

1. 在进入grub引导界面时,在数秒的时候,请输入 e

2. 然后选中第二行,输入e

3. 在出现的界面里,输入11表示单用户级别】,1的前面需要加一个空格,单用户模式既可以修改模式,又可以修改密码,Enter

4. 返回后,按b

注意:用运行级别可以绕过ROOT密码,不需要密码就可以用,用passwdOK

1. /etc/sysconfig/i18n里修改LANG="en_US. Utf-8"防止中文乱码

2. pwd,显示当前工作目录

3. cd,改变目录

4. ls,列出文件和目录

a) ls a,显示目录下的所有文件,包括隐藏文件

b) ls l,显示长列表格式

c) ls -al

5. mkdir,建立目录

6. rmdir,删除空目录,如果里面有内容rm –r 

7. tab,补全命令,有相同前缀可双击tab

8. touch,建立空文件

9. cp,复制命令

a) 【案例】cp ‐r dir1 dir2,递归复制命令(复制子目录信息)

10. mv,移动文件和改文件名

11. rm,删除文件和目录

a) rm rf *,删除所有内容,包含目录和文件,r表示递归,f表示强制

12. ln,建立符号连接,类似于建立某个文件的快捷方式

a) ln s 源目标

b) 【案例】ln ‐s /etc/inittab inittabinittab指向实际文件/etc/inittab inittab

13. more,显示文件内容带分页,长空格下翻,无上翻

14. less,显示文件内容带分页, page up上翻,

15. grep,在文本中查询内容

a) 【案例】假设存在某个文件aaa.java中含有shunping关键字,此时可以使用grep名命令来查找,grep -n “shunping” aaa.javan表示在第n行出现

16. |,管道命令,在linuxunix系统

a) 怎么理解?把上一个命令的结果交给|后面的命令处理

b) 【案例】ls ‐l /etc/ | more

17. man [command],帮助,类似于dos中的help

18. find,搜索文件及目录。在linux中,因为文件系统是以级别式的结构来组成的,所以要在整个系统中找到特定的文件和目录并不是件容易的事。而“find”命令可以解决上述问题

a) 在特定的目录下搜索并显示指定名称的文件和目录

i. 【案例】find / -name man:意思是说从根目录开始搜索名称为man的文件或目录

b) 搜索一段时间内被存取/变更的文件或目录

i. 【案例】find /home -amin -10:十分钟内存取的文件或目录

ii. 【案例】find /home -atime -10:十小时内存取的文件或目录

iii. 【案例】find /home -cmin -10:十分钟内更改过的文件或目录

iv. 【案例】find /home -ctime +10:十小时更改过的文件或目录

c) 搜索指定大小的文件

i. 【案例】find /home -size +10k:意思是说查找/home目录下大小为10k的文件

19. 重定向命令

a) ls -l > a.txt,列表的内容写入文件a.txt中(覆盖写)

b) ls -al >> aa.txt,列表的内容追加到文件aa.txt的末尾

c) 从文件中输入信息:database_program < database_data

20. env,查看环境变量

21. 压缩和解压

1) zip aa.zip 文件名

2) zip aa.zip 文件名文件名2

3) zip –r aa.zip 文件夹路径

a) zipunzip处理.zip文件

i. zip命令的基本使用方法

a) zip file.zip *zip后接压缩后的文件名,在它的后面输入要压缩的文件即可

ii. 压缩后,自动删除原文件

a) 【案例】zip m file.zip to.txt:把to.txt文件压缩成file.zip文件,to.txt会自动删除的

iii. 将子目录一起压缩

a) 【案例】zip ‐r file.zip *:将当前目录下的子目录一起压缩

iv. 忽略子目录的内容

a) 【案例】zip ‐j file.zip *

v. 将已压缩的或没有必要压缩的文件去掉

a) 【案例】zip ‐n .mpg: .jpg: .gif:第一种文件中间要用“:”分开

vi. 压缩某一日之后的文件

a) 【案例】zip ‐t 102002 file.zip:将当前目录下在20021020日之后文件压缩

vii. 不压缩链接文件的原文件

a) 【案例】zip ‐y file.zip *

viii. 压缩率问题,-1~-9,其中-9的压缩率最高

a) 【案例】zip -9 file.zip *

ix. 将不需要压缩的文件排除在外

a) 【案例】zip file.zip * -x file2.txt:在压缩时,将当前目录内的file2.txt文件排除在外

b) unzip命令进行.zip文件的解压缩

i. 直接解压缩文件

a) 【案例】unzip file.zip

ii. 排除不需要解压缩的文件

a) 【案例】unzip file.zip ‐x file2:除了file2文件外,其他的文件都解压缩

iii. 查看压缩包的内容

a) 【案例】unzip ‐Z file.zip:查看file.zip压缩包的内容,也可以使用“-l”,“-v”来查看压缩包的内容

c) gzipgunzip处理.gz文件

a) gunzip file.gzgzip –d file.gz

 

linux视频教程第5-6.文件权限.用户组

用户组

linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念

- 所有者owner

- 所在组group

- 其它组others

- 改变用户所在的组

 

所有者

一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者

ls ahl命令可以看到文件的所有者

也可以使用chown 用户名 文件名来修改文件的所有者

 

文件所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

ls ahl命令可以看到文件的所在组

也可以使用chgrp 组名 文件名来修改文件所在的组

 

其它组

除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

【案例】

建立两个组:policeman(警察),bandit(土匪);

建立三个用户:alongpanpan(属于policeman),ashuai(属于bandit

along这个用户登录到系统,创建一个文件,ls –l

添加组,只能在root用户下操作

groupadd policeman

查看所有组:

vi /etc/group cat /etc/group

查看所有用户信息:

cat /etc/passwd

说明:cat只能看不能改,vi可以看也可以改

创建用户,并添加到指定组

useradd –g 组名 用户名

useradd –g policeman along

UID:用户IDGID:组ID

修改文件访问权限:(panpan无法进入along主目录)

1. 查看along主目录的属性:drwx------

2. 修改along主目录的属性(root和文件所有者才有此权限):chmod 777 along

查看当前用户:

who am i

任务:可以让panpan修改Mytest.java

chmod 664 Mytest.java

把一个用户移值到另一个组:

usermod -g 组名 用户名

usermod -g policeman ashuai

修改文件所有者:

chown 用户名 文件名

修改文件所有组:

chgrp 组名 文件名

文件权限

ls -l中显示的内容如下:

-rwxrw-r-1 root root 1213 Feb 2 09:39 abc

- 10个字符确定不同用户能对文件干什么

- 第一个字符代表文件(-)、目录(d),链接(l

- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x

- 第一组rwx:文件所有者的权限是读、写和执行

- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4w=2x=1  因此rwx=4+2+1=7

注意:文件最大权限666,目录最大权限777

- 1 表示连接的文件数

- root 表示用户

- root表示用户所在的组

- 1213 表示文件大小(字节)

- Feb 2 09:39 表示最后修改日期

- abc 表示文件名

 

改变权限的命令

chmod 改变文件或目录的权限

chmod 755 abc:赋予abc权限rwxr-xr-x

chmod u=rwxg=rxo=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限

chmod u-xg+w abc:给abc去除用户执行的权限,增加组写的权限

chmod a+r abc:给所有用户添加读的权限

 

改变所有者(chown)和用户组(chgrp)命令

chown xiaoming abc:改变abc的所有者为xiaoming

chgrp root abc:改变abc所属的组为root

chown root ./abc:改变abc这个目录的所有者是root

chown R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root

 

改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组

usermod 组名 用户名

你可以用

usermod 目录名 用户名,改变该用户登录的初始目录

 

【综合案例】

【题1.1】建立两个用户组group1group2,以及三个用户dennisdanielabigale,并且将前2个用户分配在group1用户组下,后一个分配在group2用户组下

 

【题1.2】以dennis用户登录,创建一个Hello.java文件

【题1.3】以daniel用户登录,观察是否可以访问/home/dennis目录以及读或写其创建的Hello.java文件

【题1.4】以dennis用户登录,修改目录/home/dennisHello.java文件的读写权限(更正:修改目录权限的时候,应该使用770,而不是760,否则权限不足

 

【题1.5】重复【题1.3

【题1.6】改变abigale的用户组由group2变为group1

 

然后,可以使用cat /etc/passwd查看并确定

 

【参考】

groupadd 组名,在linux中添加组

vi /etc/group,查看linux中所有组信息,可以看可以编辑

cat /etc/group,查看linux中所有组信息,只可以看不可以编辑

useradd 组名 用户名,创建用户的同时指定将该用户分配到哪个组下

vi /etc/passwd,查看linux中所有用户信息,可以看可以编辑

cat /etc/passwd,查看linux中所有用户信息,只可以看不可以编辑

linux视频教程第7.J2EE环境配置

J2EE环境搭建

jdk安装步骤

- 把mypackage.iso挂载到linux操作系统上

- 在vm做好配置

- mount /mnt/cdrom,挂载光驱

- unmount /mnt/cdrom,卸载光驱

- 把安装文件拷贝到/home

- cp 文件 /home

- 安装

- ./ j2sdk-1_4_2_19-linux-i586.bin

- 查看一个文件vi  /etc/profile [环境配置文件]

- #注释

- 配置先前安装的jdk

 

jdk1.5.0_06配置完毕需要注销一下

eclipse安装步骤

- 挂载共享文件

- 把安装文件拷贝到/home

- cp 文件 /home

- 安装

- tar ‐zxvf eclipse-SDK-3.2.1-linux-gtk.tar.gz

进入图形界面,运行eclipse需要桌面支持

- startx

- 启动eclipse

- ./eclipse

MyEclipse安装步骤

- 挂载共享文件

- 把安装文件拷贝到/home

- cp 文件 /home

- 安装

- ./ MyEclipseEnterpriseWorkbenchInstaller_5_1_0GA_E3_2_1.bin

注意点

进入图形界面安装支持,否则报错

- 选择已安装的eclipse的主目录

- 重新启动eclipse

- ./eclipse &

- 这时会发现,菜单栏上多了一个MyEclipse选项

 

tomcat安装步骤

我们知道java ee的服务器有tomcatjbossweblogicwebsphereresin…这些都可以安装到linux下,我们给人家安装tomcat,安装步骤如下:

- 挂载共享文件

- 把安装文件拷贝到/home

- cp 文件 /home

- 安装

- tar ‐zxvf jakarta-tomcat-5.0.30.tar.gz

- 测试

- 编写一个简单的jsp页面

- 配置tomcatjdk

linux视频教程第8. linux分区详解

概述

硬盘的分区主要分为基本分区(Primary Portion)和扩展分区(Extension Portion)两种。只是针对一个硬盘来讲,基本分区和扩展分区的数目之和不能大于4,且基本分区可以马上被使用但不能再分区。扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么有扩展分区再分下去的是什么呢?它就是逻辑分区(Logical Portion),而且逻辑分区没有数量上限制

windows用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录。它们的文件结构都是独立的,非常好理解。但对这些用户初上手Redhat Linux,可就有点恼人了。因为对Redhat Linux用户来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录、一个独立且唯一的文件结构。Redhat Linux中每个分区都是用来组成整个文件系统的一部分。因为它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来。这时要载入的那个分区将使它的存储空间在这个目录下获得

硬盘

对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字14表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例如:hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区

对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样

几个重要命令

挂载命令

mount [-parameters] [设备名称] [挂载点]

特别说明:在挂载光驱时,可直接使用 mount /mnt/cdrom

【案例】mount /dev/sda1 /test/

 

卸载命令

umount [挂载点]

【案例】umount /test/

 

查看磁盘使用情况

df [-parameters]

- df -h

- df ‐l

- df [目录全路径],查看某个目录是在哪个分区

 

查看linux系统分区具体情况

fdisk l

linux视频教程第9.linux安装演示

1. 安装光盘是保持connect

2. linux安装的时候,分区是关键

说明:虚拟机安装的时候分配空间分的是5G

a) /boot 分区 100M

b) swap 交换分区 一般是你物理内存的2倍 但不要大于256M

c) / 根分区 尽可能大(剩余的全部分给他)

linux视频教程第10.shell介绍

概述

每个人在成功登陆linux后,系统会出现不同的提示符号,例如$~#等,然后你就可以开始输入需要的命令,若是命令正确,系统就会依据命令的要求来执行,直到注销系统为止;在登录到注销期间,输入的每个命令都会经过解释及执行。而这个负责的机制就是shell

shell编程

其实作为命令语言互动式地解释和执行用户输入的命令只是shell功能的一个方面。shell还可以用来进行程序设计。它提供了定义变量和参数的手段以及丰富的程序控制结构。使用shell编程类似于DOS中批处理文件,称为shell script,又叫shell程序或shell命令文件

shell的分类

Shell名称

开发者

命令名称

Bourne

S.R.Bourne

/bin/sh

C

Bill Joy

/bin/csh

Korn

David

/bin/ksh

1. shell有很多种类,常用的有如下几种:

a) /bin/ash

b) /bin/bash----bash 中国常用

c) /bin/tcsh-----csh

d) /bin/ksh

2. 查看电脑有多少个shell:

a) ls -l /bin/*sh

3. 查看目前使用的是哪种SHELL

a) env [此命令可以显示当前操作系统的环境变量]

4. 修改其它的SHELL

a) chsh -s 输入新的SHELL/bin/csh

5. 注销下再重新登录,使用 env 

6. 不同的SHELL 可能有不同的命令

7. SHELL命令补全功能(TAB) 

a) 输入MK,再按两下TAB,出现两头两个字母为MK的命令。cat p再按两个TAB ,会出现开头字母为的文件或字母

 

shell的使用

命令历史和互动:用上下箭头键可以重复以前所输入的命令

命令完成功能:用tab键能自动完成相关命令,再次按tab可得到清单

 

shell脚本文件:

- 是一个文本文件

- 命令的集合

- 有执行的权限

- 执行方式(./文件名)

用户登录后自动执行的shell脚本文件

.bashrc位于主目录下,它之前执行系统的脚本/etc/bashrc主要是基本配置数据

- 配置.bashrc文件可以指定某些程序在用户登录的时候就自动启动

.bash_profile位于主目录下,它之前执行系统的脚本/etc/profile主要是配置环境变量

 

export可以临时加入一个系统路径,如export PATH=$PATH:$HOME/bin:/root/test/t1,输出环境PATH,引用原来的值$PATH$HOME表示工作主目录,:是路径分隔符

- 已经定义好的环境变量

- SHELL:默认shell

- PATH:路径

- USER:当前登录用户的用户名

- 显示变量内容

- echo $SHELL

- echo $USER

- echo $PATH

 

shell通配符

- *代表多个字母或数字

- ?代表一个字母或数字

【案例】ls a*   ls a?    ls f080[1-6].tif

- 转义字符\

【案例】ls /mnt/win1/My\Documents

 

引号

【案例】export NAME=Michael

echo Welcome $NAME, the date is date 

- 单引号:不处理任何变量和命令

【案例】echo ‘Welcome $NAME, the date is date ’

- 双引号:处理变量但不处理命令

【案例】echo “Welcome $NAME, the date is date “

- 反引号:把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理

【案例】echo “Welcome $NAME, the date is `date` “

 

别名

- 命令:alias显示系统当前定义的所有alias

【案例】alias cp=’cp -i’

【案例】alias li=’ls –l –color=tty’

 

shell的修改

chsh 输入新的shell

查阅历史记录

history,查看使用过的命令的历史记录

- history 5,此项说明会显示最近使用的5个命令

- !5,此项说明执行历史编号为5的命令

- !ls,此项说明执行最后一次以“ls”开头的命令

linux视频教程第11.tcp.ip基础

概述

TCP/IPunix/linux世界的网络基础,在某种意义上,unix网络就是TCP/IP,而且TCP/IP就是网络互联的标准。它不是一个独立的协议,而是一组协议(TCPIPUDPARP等协议)

每个Internet上的主机和路由器都有一个IP地址,它包括网络号和主机号,现在所用的IP地址都是32位的。IP地址按照国际标准划分为ABCDE五种类型

人与人之间交流是用语言,计算机之间交流靠的是通讯协议

OSI模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层(理论)

TCP/IP模型(现实):链路层(与硬件驱动对话),网络层(定位IP地址和确定连路路径),传输层,应用层

好书推荐: TCP/IP详解:协议,实现,TCP事务协议 美国网络作家(网络学习)

QQ相互通讯的案例:

从上到下:(相当一个功能模块)

qq1 qq2 发送你好!

应用层 app+您好!

传输层 tcp+app+你好!

IP(网络层)ip+tcp+app+你好!

链路层 帧头+ip+tcp+app+你好!+帧尾

网卡

经过路由器

 

TCP段,再经过IP层,会加一个ip头,是指发送到哪个地址。这样就是成了一个数据包。

经过链路层后,要会包加一个帧头和帧尾,发送给网卡。

经过路由器,最终到QQ2所在的网卡。然后逆向执行上述的一个过程,最后得到一个“你好”信息。

 

计算机---->>网关------->>因特网

IP地址包括网络号和主机号,所有IP地址都是32位,4个字节,abcde五类

A类的IP地址 0 7位网络号 主机号 1.0.0.0127.255.255.255

类的IP地址 10 14网络号 主机号 128.0.0.0191.255.255.255

类的IP地址 110 21位网络号 主机号 192.0.0.0223.255.255.255

类的IP地址 1110 多点播送地址 224.0.0.0239.255.255.255

类的IP地址 11110 留作将来使用 240.0.0.0247.255.255.255

IPV6

内部IP:外面电脑无法访问到 192.168.0.2

外部IP:公网IP,电脑都可以访问到

如何查看外网ip ping -t

追踪路由命令;tracert 

 

1、追踪路由 

tracert 目标IP或域名

2ping命令 测试两个IP是否畅通

3、在windows下查看IP的命令 ipconfig

4、在linux/unix查看ip的命令 ifconfig

 

局域网广播 全1

对一个子网广播 网络号+后面全1

netsend “不要玩CS” 192.168.255.255

127.任意值,除去全零全1,都可以是回路,本机

 

子网:好管理,大划小

只要前面的网络号一样,就表示在一个子网里面

子网之间通过路由器来连接

linux视频教程第12.网络环境配置

第一种方法

root身份登录,运行setup命令进入到text mode setup utility对网络进行配置-network configuration,这里可以进行IP、子网掩码、默认网关、DNS的配置

- 用空格键 自动分配

- 手动IP TAB就可以输入

- 这时网卡的配置没有生效,运行/etc/rc.d/init.d/network restart命令我们刚才做的设置才生效

ifconfig

第二种方法

- eth0 第一块网卡,eth1 第二块网卡.....lo回路

ifconfig eth0 x.x.x.x 对网卡进行设置

ifconfig eth0 network x.x.x.x 对子网掩码设置

- 对广播地址和DNS使用默认的

Note:这样配置网络将会立即生效,但是是临时生效

第三种方法

- 修改/etc/sysconfig/network-scripts/ifcfg-eth0这个文件里各个属性可以修改,包括IP、子网掩码、广播地址、默认网关等。

- 里面的内容主要如下:

- onboot=yes (NO=禁用)

- bootproto=static(静态)/dhcp(动态)

- 这时网卡的配置没有生效,运行/etc/rc.d/init.d/network restart命令我们刚才做的设置才生效

Note

- 这种方法是最底层的修改方法

linux中,所有设备都是文件

linux视频教程第13.rpm.samba配置

RPM

概述

一种用于互联网下载包的打包及安装工具,它包含在某些linux分发版中。它生成具有.RPM扩展名的文件。RPMRedhat Package ManagerRedhat软件包管理工具)的缩写。这一文件格式虽然打上了Redhat的标志,但是其原始设计理念是开放式的,现在包括OpenLinuxS.u.S.E.以及Turbo LinuxLinux的分发版本都有采用。可以算是工人的行业标准了

 

RPM包的名称格式

apache-1.3.23-11.i386.rpm

- “apache”:软件名称

- “1.3.23-11”:软件的版本号,主版本和此版本

- “i386”:是软件所运行的硬件平台

- “rpm”:文件扩展名,代表RPM

 

RPM常用命令

rpm qa:查询所安装的所有rpm软件包

- rpm ‐qa | more

- rpm ‐qa | grep X

rpm 软件包名:查询软件包是否安装

- rpm ‐q xinetd

- rpm ‐q foo

rpm qi 软件包名:查询软件包信息

- rpm ‐qi file

rpm ql 软件包名:查询软件包中的文件

- rpm ‐ql file

- rpm ‐ql jdk

rpm qf 文件全路径名:查询文件所属的软件包

- rpm ‐qf /etc/passwd

- rpm ‐qf /root/install.log

rpm qp 包文件名:查询包的信息对这个软件包的介绍

- rpm ‐qp jdk-1_5_0-linux-i586.rpm

- rpm ‐qpi jdk-1_5_0-linux-i586.rpm

- rpm ‐qpl jdk-1_5_0-linux-i586.rpm

 

安装RPM

rpm ivh RPM包全路径名称:安装包到当前系统

- i=install,安装

- v=verbose,提示,即有提示信息

- h=hash,进度条

 

删除RPM

rpm e RPM包的名称

【案例】rpm ‐e jdk

如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息,如:

【案例】rpm ‐e foo

removing these packages would break dependenciesfoo is needed by bar-1.0-1

若让RPM忽略这个错误继续卸载,请使用‐‐nodeps命令行选项

【案例】rpm ‐e ‐‐nodeps foo

 

升级RPM

rpm U RPM包全路径名

【案例】rpm ‐U cvs-1.11.2-10.i386.rpm

samba配置

什么是samba

这些年来,windowslinux操作系统各自拥有自己的用户群和市场。然而在一般公司或学校里,可能同时有windowslinux主机,windows主机彼此之间可以利用“网上邻居”来访问共享资源。NFS也能使linux主机之间实现资源访问。而samba服务软件能够使windowslinux之间实现资源共享

SMB通信协议采用的是C/S结构,所以SAMBA软件可分阶段客户端及服务端两部分。通过执行samba客户端程序,linux主机使可使用网络上的windows主机所共享的资源。而在linux主机上安装samba服务器,则可以使windows主机访问samba服务器共享的资源

 

setup可以进入services,长空格可选择

samba安装

samba的安装步骤

1. 看看是否已经安装了samba

a) rpm ‐q samba

2. 如果有的话,就先卸载

a) rpm ‐e ‐‐nodeps samba(强制删除)

3. 把安装文件挂载到linux

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

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

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

4. 拷贝sambarpm包到/home,准备安装

a) cp  sam*  /home

5. 开始安装(顺序)

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

6. 创建一个用户youyou

a) useradd youyou

b) passwd youyou

7. 给youyou设置samba密码

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

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

--设置密码

b) smbpasswd youyou 

8. 启动samba服务器,测试

a) service smb start,启动

windows运行窗口输入linuxIP\\192.168.222.88

输入youyousamba用户名,密码

b) service smb stop,停止

c) service smb restart,重启

 

samba配置

共享资源的基本配置  /etc/samba/smb.conf

1. comment:针对共享资源所做的说明文字。默认值为空字符串

a) 【案例】comment=dir for todayhero:共享这个目录是为了todayhero这个用户

2. path:若共享的资源是目录,是指定该目录的位置

a) 【案例】path=/tmp:共享tmp这个目录

3. guest ok:是否允许用户不使用账号和密码访问此资源

a) 【案例】guest ok=yes:允许用户不使用账号和密码访问此资源

b) 【案例】guest ok=no:不允许用户不使用账号和密码访问此资源

4. hosts allow:设置连接主机的地址

a) 【案例】hosts allow=192.168.2.1 server.abc.com:允许来自192.168.2.1 server.abc.com

5. hosts deny:设置禁止连接的主机地址

a) 【案例】hosts deny=192.168.2.1:不允许192.168.2.1的主机访问samba服务器的资源

6. read only:用于设置共享的资源是否为可读

a) 【案例】read only=yes:允许只读

b) 【案例】read only=no:不仅仅只读,也就是说可以写入

linux视频教程第14.crontab详解

概述

任务调度:是指系统在某个时间执行的特定的命令或程序

任务调度分类:

- 系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等

- 个别用户工作:个别用户可能希望执行某些程序

 

查看windows网络信息netstat –an

任务调度命令

设置任务调度文件:/etc/crontab

设置个人任务调度,执行crontab ‐e命令,接着输入任务到调度文件

【案例】5 * * * * ls ‐l /etc/ > /tmp/to.txt,意思说每小时的第五分钟执行ls命令

 

调度文件的规则

字段名称

说明

范围

分钟

每小时中的第几分钟执行

0-59

小时

每天的第几个小时执行

0-23

日期

每月的第几天执行

1-31

月历

每年的第几个月执行

1-12

星期

每周的第几天执行

0-6

 

使用任务调度

- 设置任务

- crontab ‐e

- 每隔一定时间去执行date > /home/mydate2

- 希望每天凌晨200去执行 date >> /home/mydate2,可以在crontab ‐e中加入:0 2 * * * date >> /home/mydate2

- 希望每分钟去执行:在crontab ‐e中加入:* * * * * date >> /home/mydate2

- 怎样去调度多个任务

- 在crontab ‐e中直接写多个命令(不推荐)

* * * * * date >> /home/mydate2

* * * * * cp  /home/mydate2  /root

说明:.sh表示shell文件,chmod 修改权限,必须要有X的权限

- 可以把所有的任务,写入到一个可执行文件(shell编程)

1. vi mytask.sh(里面写* * * * * date >> /home/mydate2

* * * * * cp /home/mydate2 /root)

2. chmod 744 mytask.sh

3. * * * * /root/mytask.sh

 

- 终止任务调度

crontab r:终止任务调度(删除所有)

crontab l:列出当前有哪些任务调度

linux视频教程第15.进程的介绍和管理

概述

1. 在linux 中,每个执行的程序都称为一个进程,每一个进程都分配一个ID

2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程,例如www服务器

3. 每个进程都可能以两种方式存在的,前台与后台。所谓前台进程就是用户目前的屏幕上可以进行操作的,后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行

4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束

- 进程与线程

进程:就是正在执行的程序

线程:

- 轻量级的进程

- 进程有独立的地址空间,线程没有

- 线程不能独立存在,它是由进程创建(linux下用forkjava里用Thread或实现Runnable

- 相对讲,线程耗费的CPU和内存要小于进程

 

进程的管理

ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的情况,可以不加任何参数,显示详细的进程信息

a) ps ‐a:显示当前终端的所有进程信息

b) ps ‐u:以用户的格式显示进程信息

c) ps ‐x:显示后台进程运行的参数

d) pa –aux【看的全面,信息也全面】

ps显示的信息选项:

字段

说明

PID

进程识别号

TTY

终端机号

TIME

此进程所消CPU时间

CMD

正在执行的命令或进程名

1号进程是所有进程的父进程

终止进程kill/killall

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务

终止某个进程:kill 进程号

【案例】kill 16251:终止进程号为16251的进程

【案例】kill -9 16251:因为有些进程会捕捉某些信号,如果直接不能结束进程可以用“-9”传送信息

killall:杀死此进程和所有其子进程

 

动态监控进程

top命令与ps命令很相似。它们都用来显示正在执行的进程。topps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程

- 监视特定用户

top:输入此命令,按回车键,查看执行的进程

u:然后输入“u”回车,再输入用户名,即可

- 终止指定的用户

top:输入此命令,按回车键,查看执行的进程

k:然后输入“k”回车,再输入要结束的进程ID

- 指定系统状态更新的时间

top d 10:指定系统更新进程的时间为10

 

top显示选项解释

 

- 03:32:58当前系统时间

- 1:52,表示系统启动了多久

- 1 user,当前登录到linux上的用户数

- load average0.00 0.00 0.00,当前系统负载情况,一般来说,参数越小,系统运行的越轻松,当平均数>0.6时,系统就很紧张了

- 38 processes,进程数

- 0 zombie,僵尸进程数,相当于这个进程没有用了,还占用资源,比如父进程来不及收回子进程

- CPU states99.3% idle,闲置的CPU

- Mem,内存

- Swap,类似于虚拟内存

 

设置系统时间

date命令:显示系统的时间,可以在直接输入“date”命令来查看系统的时间

- 利用date命令来更改系统的时间

date MMDDHHMMCCYY.SS:月月日日时时分分年年.秒秒

- 查看月历

cal 3 2002:查看20023月的月历

- 查看年历

cal 2008:查看2008的年历

linux视频教程第16.监控网络状态

几个监控命令

显示网络统计信息的命令netstat

此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容,此命令直接输入即可使用

netstat anp

- an,按一定顺序排列输出

- p,表示显示哪个进程在调用

 

检测主机连接命令ping

是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断、网线是否脱落或网卡故障

ping 对方ip地址

 

显示数据包经过历程命令traceroute(追踪路由)

此命令可以直接输入使用,用来检测数据包在网络上传输的过程,从本机到远程的主机完整路径,帮助管理员解决问题

 

显示路由表route

路由最大的功能就是转发

所谓路由是指将数据由来源网络送往目的网络的操作。在大型网络中,路由是非常复杂的,因为数据包在抵目的地时,可能经过的节点有很多,路由表是存储在路由器或一些其他链接设置上的窗体。其中记录着了到指定目的的网络路径,以及这些路径的相关数值

此命令可以直接输入使用,来查看本机路由的情况

每个路由器都有一个路由表,显示最近的路由表

握手机制

类似于古代的信使,驿站

linux视频教程第17.mysql安装.配置.使用

概述

mysql数据库在linux下可以充分发挥威力,mysql数据库越来越受到软件公司的青睐,为什么呢?

免费、跨平台、轻、支持多并发

在北京很多软件公司属于创业型的中、小公司,从节约成本的角度考虑,mysql特别适合中、小项目

mysql安装

- 概述:mysql数据库在linux下可以充分发挥威力,mysql数据库越来越受到软件公司的青睐,为什么呢?

(1)免费 (2)跨平台 (3)轻 (4)支持多并发

- 在北京很多软件公司属于创业型的中、小公司。从节约成本的角度考虑。mysql特别适合中、小项目。

- mysql的安装

ps:安装之前查看是否已经安装mysqlrpm –qa mysql

如果有就删除之rpm –e mysql,

强制删除rpm –e –nodeps mysql

1. 准备安装文件,copy/home

2. 把安装文件解压

tar -zxvf 文件名.tar.gz

此时文件比较多时可以用rm删除文件

rm samba-* 删除多个文件此时有提示是否全部删除

rm f samba-* 此时就不会有提示了

3. 重命名 mv 原名 新名

4. 开始安装

5. 创建mysql

a) useradd mysql

6. 创建mysql用户,并放入到mysql组中

a) useradd -g mysql mysql

7. 进入到mysql文件夹

a) 初始化数据库

scripts/mysql_install_db user=mysql

b) 修改文件的所有者

chown ‐R root .

c) 修改date文件夹的所有者

chown ‐R mysql date

d) 改变用户组

chgrp ‐R mysql .

说明:“.”点号代表当前目录及文件

- 启动mysql

bin/mysqld_safe user=mysql &

- &表示以后台的方式启动

- 检查一下进程,netstat ‐anp,查看监听端口是3306的是不是打开了

如何进入mysql

- cd bin

./mysql u root p 回车

Notes:如果希望在任何一个目录下都可以进入mysql,则需在用户变量/root/.bash_profile中添加路径

a) env | more 

查看path中是否指定mysql 路径

b) 进入/root下,查看到.bash_profile 存放用户变量

c) vi进入.bash_profile path后面加上 /home/mywql/bin/ 

d) logout一下,再登录输入- ./mysql u root p就可以进入mysql

- 测试mysql数据库是否可以在linux下正确使用

- 建立数据库和表

- 加入部分数据

- 编写一个ShowUser.java文件,在控制台显示用户

Note:特别注意mysql的驱动要存放的位置,放在jdk的主目录下的/jre/lib/ext/

测试mysql数据库表是否可以在linux下正确使用。

建立数据库和表

加入部分数据

编写showUsers.java文件,在控制台显示用户

Notemysql的驱动要存放的位置!

放在jdk下,这里主目录/jre/lib/ext

备份与恢复

备份:./mysqldump u root p密码 数据库名 > /home/data.bak

恢复:mysql u root p密码 数据库名 < /home/data.bak

Note‐p和密码之间没有空格,在恢复数据库的时候,你需要建立一个空数据库!

 

linux视频教程第18.ssh安装.配置.使用

概述

sshsecure shell)是一款集远程操作linux和进行文件上传和下载的软件,在软件公司几乎所有的linux程序员都会使用ssh。安全、方便是它最大的特点

linux上默认安装ssh服务,且默认是启动的sshd,监听的端口是22。在windows系统上安装SSH客户端,集成了secureCRTFTP的作用

确保windows linux网络畅通,就是windowsping linux

linux视频教程第19.补充linux重要内容

基本概念

当前目录 pwd

相对路径 从当前目录去访问文件(夹) cd ..

绝对路径 从根目录去访问文件(夹) cd/home/mysql

工作目录 一个工具或软件的默认根目录

linux目录结构

/bin 普通用户的可执行命令,系统的任何用户都可以执行该目录中的命令

/boot  存放linux操作系统启动时所需要的文件

/dev  系统中的所有设备文件

/etc  系统中的配置文件

/home  普通用户的宿主目录,每个用户在该目录下都有一个与用户名同名的目录

/mnt  中的子目录用于系统中可移动设备的挂载点

/root  超级用户root的宿主目录

/sbin  系统的管理命令,普通用户不能执行他们

/tmp  系统的临时目录

/usr  系统应用程序和相关文件

/var  系统中经常变化的文件如日志文件和用户邮件

运行级别

init [0123456],指定系统运行级别,类似windows的正常运行模式或安全模式

- 0:关机

- 1:单用户

- 2:多用户状态没有网络服务

3:多用户状态有网络服务

- 4:系统未使用保留给用户

5:图形界面

- 6:系统重启

常用运行级别是35,要修改默认的运行级别可改文件 /etc/inittabid:5:initdefault:这一行中的数字

常用命令

1. pwd 显示当前工作目录

2. cd 改变目录 (cd后面不输入则默认跳转到用户主目录,如/home/xiaoming

3. ls 列出文件和目录

4. ls –a 显示隐藏文件

5. ls –l 显示长列表格式

6. mkdir 建立目录

7. rmdir 删除空目录(rm –rf 文件夹名 可以删除含文件的文件夹)

8. touch 建立空文件

9. cp 复制命令

a) cp –r dir1 dir2 递归复制命令(复制子目录信息)

10. mv 移动文件和改文件名

11. rm 删除文件和目录

a) rm –rf * 删除所有内容(包括目录和文件)

b) 递归 f强制

12. ln 建立符号连接(windows的快捷方式)

a) ln –s 源 目标

b) ln –s  /etc/inittab  inittabinittab指向实际文件/etc/ inittab

13. more 显示文件内容,带分页

14. less 显示文件内容带分页

15. grep 在文本中查询内容

16. 管道命令

| : find / -name *.html | grep bookmark

find的结果中查找字符串”bookmark”,显示包含这个字符串的文件

17. 搜索文件及目录——find

linux中,因为文件系统是以级别式的结构组成的,所以要在整个系统中找到特定的文件和目录并不是件容易的事。而“find”命令可以解决上述问题。

find的使用

在特定的目录下搜索并显示指定名称的文件和目录

搜索一段时间内被存取/变更的文件或目录

find /home –amin -10 十分钟内存取的文件和目录

find /home –atime-10 十小时内存取的文件和目录

find /home –cmin -10 十分钟内更改过的文件和目录

find /home –ctime -10 十小时前更改过的文件和目录

按文件大小搜索

find /home –size +10k 意思是说查找/home目录下大小为10k的文件

重定向命令

ls –l > a.txt:列表的内容写入到文件a.txt中(覆盖写)

ls –l >> aa.txt:列表的内容追加到文件aa.txt

在文件中输入信息database_program < database_data

shell使用

1. 命令的历史和互动:用上下箭头键可以重复以前所输入的命令。

2. 命令的完成功能:用tab键能自动完成相关命令,再次按tab可以得到清单。

3. shell脚本文件:

a) 是一个文本文件

b) 命令的集合

c) 有执行的权限

d) 执行方式(./文件名)

4. 用户登录后自动执行的shell脚本文件:

a) .bashrc位于主目录下

i. 它之前执行系统的脚本/etc/bashrc主要是基本配置数据

b) .bash_profile位于主目录下

i. 它之前执行系统的脚本/etc/profile主要是配置环境变量

c) 配置.bashrc文件可以指定某些程序在用户登录的时候就自动启动。

i. 如:/home/tomcat/bin/startup.sh start

5. 用export PATH=$PATH:$HOME/bin:/root/test/t1输出环境变量PATH引用原来的值$PATH$HOME表示工作主目录,“:“是路径分隔符。

6. 已定义好的环境变量:

a) SHELL:默认shell

b) PATH:路径

c) USER:当前登录用户的用户名

7. 显示变量内容:echo $PATH

a) echo $USER

b) echo $SHELL

8. 通配符: *代表多个字母或数字

1. ?代表一个字母或数字

2. ls a*  ls a?  ls  ?at? ls abc[1-6].tif

9. 转义字符:\

a) ls  /mnt/winl/my\Documents

10. 引号:

i. export NAME=Michagel

ii. echo Welcome $NAME,the data is date

a) 单引号-shell不处理任何变量和命令

i. echo ‘Welcome $NAME,the data is date’

b) 双引号-shell处理变量但不处理命令

i. echo “Welcome $NAME,the data is date”

c) 反引号-把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理

i. echo “Welcome $NAME,the data is ‘date’”

11. 别名:

a) 命令:alias显示系统当前定义的所有alias

i. 如:alias cp=’cp -i’

ii. alias li=’ls –l --color=tty’

iii. 如:ls –l /home | more

iv. 取别名:alias llh ls –l  /home | more

 

 

 

linux视频教程第20.linux启动过程分析

runlevel命令,可以查看当前的运行级别

linux启动过程

runlevel命令可以查看当前的运行级别。

linux系统的启动过程如下:

a) BIOS自检

b) 启动GRUB/LILO

c) 运行linux内核并检测硬件

d) 运行系统的第一个进程init

e) init读取系统引导配置文件/etc/inittab中的信息进行初始化

f) /etc/rc.d/rc.sysinit系统初始化脚本

g) /etc/rc.d/rcX.d/[KS] * -根据运行级别X配置服务

a) 终止以“K”开头的服务

b) 启动以“S”开头的服务

h) /etc/rc.d/rc.local执行本地特殊配置

i) 其他特殊服务

linux视频教程第21讲压缩和解压.ux下 java网络编程

压缩和解压问题

zipunzip初始.zip文件。

zip aa.zip 文件名

zip aa.zip 文件名文件名2

zip –r aa.zip 文件夹路径

1. zip命令的基本使用方法:

a) zip file.zip *zip后接压缩后的文件名,在它的后面输入要压缩的文件即可。

2. 压缩后,自动删除原文件:

a) zip –m file.zip to.txt:意思是说吧to.txt文件压缩成file.zip文件,to.txt会自动删除的。

3. 将子目录一起压缩:

a) zip –r file.zip *:将当前目录下的子目录一起压缩。

4. 忽略子目录的内容:

a) zip –j file.zip *

5. 将压缩的或没有必要压缩的文件去掉:

a) zip –n .mpg:  .jpg:  .gif:第一种文件中间要用“:”分开。

6. 压缩某一日之后的文件:

a) zip –t 102002 file.zip:意思是将当前目录下在20021020日之后文件压缩。

7. 不压缩链接文件的原文件:

a) zip –y file.zip *

8. 压缩率问题,-1-9-9的压缩率最高(默认):

a) zip -9 file.zip *

9. 将不需要压缩的文件排除在外:

zip file.zip * -x file2.txt:在压缩时,将当前目录内的file2.txt文件排除在外。

unzip命令进行.zip文件的解压缩。

1. 直接解压缩文件:

a) unzip file.zip

2. 排除不需要解压缩的文件:

a) unzip file.zip –x file2:意思是说除了file2文件外,其他的文件都解压缩。

3. 查看压缩包的内容:

a) unzip –Z file.zip:查看file.zip压缩包的内容。也可以使用“-l”、“-v”来查看压缩包的内容

4. 解压命令:

a) gunzip file.gzgzip –d file.gz

linux下网络编程是linux最让程序员着迷的地方,我们看看如何在linux进行网络编程。最终大家可以在这个基础上扩展为my QQ的程序,并且会使用到mysql数据库

你将学习到:

1. 如何使用java进行socket编程

2. 如何在java中对mysql数据库操作

3. windowslinux网络通讯

4. 了解什么是网络服务这个晦涩的概念

 

linux系统作为服务端,代码如下:

 

 

windows作为客户端,代码如下:

 

后记

VM上的Redhat Linux 9.0共享文件夹

步骤如下:

1. 启动虚拟机LINUX操作系统,打开Vmware→工具栏→VMInstall Vmware Tools,出现对话框,选择Install,这时在mnt目录下的cdrom目录就可以看到我们要装的软件:

a) VMwareTools-5.5.0-13124.i368.rpm 

b) VMwareTools-5.5.0-13124.tar.gz

2. 打开超级终端,输入命令:cd /mnt/cdrom 进入到光驱的目录下

3. cp VMwareTools-5.5.0-13124.tar.gz /tmp 把这个文件拷贝到tmp

4. cd /tmp 进入tmp目录,输入ls查看刚才的文件是否在这个目录下

5. tar zxvf VMwareTools-5.5.0-13124.tar.gz 解压这个文件

6. cd vmware-tools-distrib   进入tmp目录下的vmware-tools-distrib目录

7. ./vmware-install.pl 执行这个文件,所有提示都按“Enter”键。安装结束后重启

8. 打开Vmware→工具栏→VMSettings→出现对话框,选择工具栏Options→选左边Shared Folders→选右边的Add→下一步→在出现的对话框的里点Browse(Host folder),来选择所要共享的目录→下一步→选择Enable this share,单击“完成”。在/mnt/hgfs下就有你共享的文件夹

linux下自动启动mysql

1. 在mysql二进制包里面,有一个叫mysql.server的启动脚本程序。把它复制到/etc/rc.d/init.d目录里面:

a) cd  /etc/rc.d/init.d

b) cp  /usr/local/mysql/support-files/mysql.server mysql

2. 接着把它的属性改为“x“(executable,可执行)

a) chmod  +x mysql

3. 最后,运行chkconfigmysql添加到你系统的启动服务组里面去。

a) /sbin/chkconfig –del mysql

b) /sbin/chkconfig –add mysql

第一次上机

练习文件的权限管理

建立两个组(神仙,妖怪)

建立四个用户(唐僧,悟空,八戒,沙僧)

设置密码

把悟空,八戒放入妖怪 唐僧,沙僧在神仙

 

用悟空建立一个文件(monkey.java 该文件要输出 “i am a monkey”)

给八戒一个可以rw的权限

八戒修改monkey.java加入一句话“I am a pig

 

唐僧,沙僧对该文件没有权限

把沙僧放入妖怪组

让沙僧修改该文件monkey.java,加入一句话(“我是沙僧,我是妖怪!”);

第二次上机

1. 安装jdk,并在/etc/profile文件中配置环境变量

2. 使用vi开发一个MyPrint.java程序,该程序的功能如下:

可以接受一个大于0的整数,并在控制台输出对应的菱形,注意要求在任意路径都可以执行该程序 

3. 安装eclipse软件,开发一个图形界面程序,如图:

 

4. 安装并配置(myeclipsetomcat),开发一个hello.jsp,可以通过linux自带浏览器访问到hello.jsp,【目的是练习在linux下如何安装并配置java ee开发环境】

5. 在linux下安装realplay,并播放一首自己喜欢的歌曲

6. 安装linux版本的qq,实现linux聊天。

7. 回家自己安装linux操作系统。

第三次上机

1. 建立自己的tomcat服务器,并能够正常在linuxmozila访问。并可以通过windows访问

2. 修改server.xml文件,将其监听端口80改为12280,并重新启动服务。

3. 把tomcat服务器设为开机就自动启动【老师没有讲,请问google大神】

4. 建立自己的samba服务器,并实现windowlinux的访问,可以进行文件的传输。【并设置某个用户只能读的权限】

5. 什么是ftp,它可以做什么,linux下最常用的ftp是哪种,尝试自己搞定ftp的安装和配置。

6. 完成优势科技招聘linux程序员的测试题,并给自己评分。

第四次上机

1. 写一个shell脚本,每天凌晨2:00将当前日期写到/tmp/testdata.txt文件里。

2. 

a) 把mysql安装好

b) 并搭建java eelinux的开发环境

c) 编写一个showUser.jsp

d) 可以在linux下的浏览器显示用户信息

e) 配置网络在windows下可以访问showUser.jsp【最好可以分页显示】

3. 在windows下安装sshsecure shell),登录linux,实现远程的控制。

4. 完成亦有网络公司linux程序员的测试题,并给自己评分。

第五次上机

1. 写一个shell脚本,每天凌晨2:00mysql数据某个数据库备份到/home

/home/mysql/bin/mysqldump –u root –p spdb1 > /home/spd1.bak

chmod 744 my2.sh

crontab –e命令 0 2 * * */root/my2.sh

 

2. 以linux做服务器端,编写自己的qq小程序,如图示:

 

0 0
原创粉丝点击