zoukankan      html  css  js  c++  java
  • 韩顺平Linux视频教程—笔记(全)

    Linux操作系统学习

    linux的特点

    优点:

    1、免费的/开源的系统

    2、支持多线程/多用户的系统

    3、安全性好

    4、对内存和文件管理优越

    linux体积最少只需要内存4M,由于小所以可以做嵌入式开发

    缺点:

    操作相对困难

    Linus于1991年至1994年将unix的微型版minis加以开发出linux

    现在redhat红帽子、BSD、SUN等公司进行再发行

    在windows环境下可以使用(VM等)虚拟机来运行linux

    在linux运行startx命令可以进入图形操作界面

    root是linux下的系统管理员

    普通用户登陆后可以用su- 切换为系统管理员

    关机命令

    shutdown -h now  立刻进行关机

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

    reboot           现在重新启动计算机

    logout           注销

    vi编辑器是linux下最有名的编辑器,也是学习linux必须掌握的工具,

    在unix下也可使用vi进行程序的开发

    linux可以做java/c开发

    在linux的vi编辑器内写一下简单的java程序“hello,world”

    1、Vi Hello.java

    2、输入i[进入到插入模式]

      public class hello{

          public static void main(String []args){

                 System.out.println("hello,world");

             }

    }

    3、输入esc键[进入命令模式]

    4、输入wq保存退出/q!退出但不保存

    6、编译javac hello.java

       javac Hello.java

    7、运行 java Hello  [java运行的是class文件]

    ls命令显示当前文件

    ls -l命令显示详细文件列表

    如何在linux下开发c程序或是c++(cpp)程序

    建立vi hello.cpp

    #include <stdio.h>

    int main(){

        printf("hello!");

            return 0;

    }

    gcc hello.cpp  用gcc编译器编译出来未命名会是a.out文件

    gcc -o [文件名] [源文件名] 用gcc编译器编译文件命名

    /a.out       在linux下运行c程序只要输入/就可以运行

    ------------------------------------------------------------

    linux下的文件目录

    linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层

    是根目录“/”,然后在此目录下再创建其他的目录

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

    linux下的根目录中重要的目录如下是系统自动分配的

    root目录、home目录、bin目录、sbin目录、mnt目录、etc目录、var目录、boot目录、usr目录、tmp目录(均为同级目录)

    root目录:用于存放root用户相关文件的目录

    home目录:用于存放普通用户的相关文件的目录

    bin目录:用于存放常用命令的目录

    sbin目录:用于存放要具有一定权限才可以使用的命令的目录

    mnt目录:用于默认挂载软驱、光驱的目录

    etc目录:用于存放配置相关的文件的目录

    var目录:用于存放经常变化的文件的目录

    boot目录:用于存放系统引导文件的目录(重要)

    usr目录:用于存放安装的默认目录(安装文件会默认安装在usr目录里)

    tmp目录:用于存入临时文件的目录

    cd /返回到主目录下

    ls与dir功能相同显示目录名

    显示当前在哪个路径下面

    pwd命令是显示当前在哪个路径下

    --------------------------------------------------------------

    linux的用户管理(普通用户无法使用)

    useradd命令:useradd 用户名(添加用户)

    passwd命令:passwd 用户名  (修改用户密码)

    userdel命令:userdel 用户名 (删除用户)

    userdel -r 用户名(删除用户以及用户主目录)

    --------------------------------------------------------------

    linux的常用命令

    指定运行级别

    命令:init[012356]

    运行级别

    0:关机

    1:单用户

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

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

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

    5:图形界面

    6:系统重启

    常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab的

    id:5:initdefault:这一行中的数字

    在启动引导界面的时候按e进入编辑,在进入grub引界面时,请输入e在选中第二个选项按e,在最后输入 1[单用户级别] 然后按b进入单用户模式。

    *:可通过此方法进行linux用户密码的修改

    --------------------------------------------------------------

    linux常用命令(2)

    命令pwd [显示当前工作目录]

    命令cd  [改变目录]

    命令ls  [列出文件和目录]

        ls -a 显示隐藏文件

        ls -l 显示长列表格式

    命令mkdir [建立目录]

    命令rmdir [删除空目录]

    --------------------------------------------------------------

    linux常用命令(3)

    tab键可以补全相应内容

    命令touch  [建立空文件]

    命令cp [复制命令]

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

    命令mv [移动文件和改文件名]

    命令rm [删除文件和目录]

        rm -rf * [删除所有内容(包括目录和文件)r递归f强制]

    命令ln [建立符号连接]

        ln -s 源目标

        ln -s /etc/inittab inittab [inittab指向实际文件/etc/inittab]

    -------------------------------------------------------------------

    linux常用命令(4)

    命令more [显示文件内容,带分页]

    命令less [显示文件内容带分页]

    命令grep [在文本中查询内容] grep -n "查找内容" [文件名]

    命令| [管道命令]   在linux和unix系统中|就是管道命令,把上一个命令的

                      结果交给|的后面的命令进行处理

    命令man [相当于dos下的help]

    例:Grep –n “查找内容” [文件名] | more

    -------------------------------------------------------------------

    linux常用命令(5)

    命令find [搜索文件及目录]

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

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

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

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

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

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

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

     find /home -ctime +10:十小时前更改过的文件或目录

    3、搜索指定大小的文件。

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

    -------------------------------------------------------------------

    linux常用命令(6) 以文件头字段来判定文件类型,并非以文件后缀名来判定。

    重定向命令:管道定向命令">"为覆盖,">>"追加写在原文件内容后面

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

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

      从文件中输入信息database_program<database_data

    -------------------------------------------------------------------

    文件所有者、所在组和其它组

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

    (1)所有者

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

    用[ls -ahl]命令可以看到文件的所有者

    你也可以用[chown 用户名 文件名]来修改文件的所有者。

    (2)所在组

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

    用[ls -ahl]命令可以看到文件的所有组。

    你可以通过[chgrp 组名 文件名]来修改文件所在的组

    (3)其它组

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

    (4)改变用户所在的组

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

        usermod -g 组名 用户名

    你可以用

        usermod -d 目录名 用户名 改变该用户登陆的初始目录

    如何在linux中添加组

    需要用root用户来添加,普通用户无法进行用户和组的添加

    添加组命令:groupadd 组名

    查看linux中所有组的信息

    命令:vi /etc/group

    查看命令:cat /etc/group

    组名:x:组ID号:

    创建用户,并同时指定将该用户分配到指定组。

    命令:useradd -g 组名 用户名

    查看linux中所有用户信息

    可编辑查看命令:vi /etc/passwd

    查看命令:cat /etc/passwd

    用户名:x:用户ID:用户所在组ID:注释:/用户主目录/:该用户所用的shell解释器

    设定密码

    命令:passwd 用户名

    - rw- r-- r--

    -为文件类型,-为普通文件,d为文件夹,l为链接

    rw-文件的所有者对该文件的权限。权限分三种1、r可读也会用4表示;2、W可写也会用2表示;3、X可执行也会用1表示。

    r--文件所在组对该文件的权限

    r--其它组的用户对该文件的权限

    如何修改文件的访问权限的问题?

    注:修改文件访问权限只有root用户和文件所有者。

    查看当前操作人员命令who am i

    命令chmod为修改文件访问权限的命令。

    chmod 777 用户名

    解释:

    - --- --- --- 000

    - r-- r-- r-- 444

    - rw- rw- rw- 666

    - rwx rwx rwx 777

    - rwx rw- r-- 764

     

    Linux下程序安装

    javaee开发环境搭建,JDK的安装

    概述:要在linux下开发java程序,则需要安装JDK。实际上目前有很多java后台程序就是运行在linux环境下运行的。也是将来的发展趋势。

    JDK的安装步骤:

    1、把镜像ISO文件挂载到linux操作系统上。(linux系统是用挂载和卸载来管理分区文件的。)

    在虚拟机上做好配置,在根目录下进行操作:

    挂载光驱命令:mount /mnt/cdrom/

    挂载光驱

    卸载光驱命令:umount /mnt/cdrom/

    2、把安装文件copy到/home目录下(文件名过长要用tab键来自动补全文件名)

    命令:cp 文件名 /home

    3、切换目录到/home

    命令:cd /home

    4、安装(./)是解压缩命令

    命令 ./ 安装文件名.bin

    输入yes后开始安装,输入no不安装。

    5、看看一个文件 /etc/profile (环境配置文件)

    linux下用#来作注释。

    6、配置profile环境配置文件

    -------------------------------------------------------------------

    javaee开发环境搭建 eclipse的安装

    概述:要在linux下开发java程序。则需要安装JDK,如果要在集成开发工具(IDE)下开,可以安装eclipse软件。

    eclipse安装

    1、挂载eclipse.iso文件

    2、将eclipse复制到/home目录下

    3、安装

    tar.gz文件的安装命令:tar -zxvf 文件名.tar.gz

    4、启动eclipse[进入图开界面]

       打开终端控制台

       进入eclipse文件后

       ./eclipse

    myeclipse安装同上需在图形界面下安装

    JDK/eclipse/myeclipse三个按顺序安装后才可以使用J2EE的开发

    -------------------------------------------------------------------

    javaee开发环境搭建 tomcat的安装

    概述:我们知道javaee的服务器有tomcat、jboss、weblogic、websphere、resin...这些都可以安装到linux下,我们给大家安装tomcat

    tomcat用于开发小、中型项目(免费)jboss也是免费的。

    weblogic、websphere用于开发大型项目(收费)

    安装同上

    注释重点:

    bin文件安装使用./ 文件名.bin

    tar.gz文件安装使用tar -zxvf 文件名.tar.gz

    unzip解压缩zip文件:unzip 文件名.zip

    zip压缩文件:zip 压缩包文件名.zip 要压缩的文件名

    在图形界面下运行文件后要加&进行后台运行

    控制台下运行文件命令./文件名 &

    ./eclipse &

    -------------------------------------------------------------------

    javaee开发环境搭建 Mysql数据库的安装

    概述:毫无疑问,没有数据库,javaee项目将会暗淡无光,所以我们必须掌握如何在linux下安装和使用数据库。在linux下除了microsoft的sql server不能安装外,其它主流的数据库都可以安装。比如Mysql、oracle、db2...关于如何在linux下安装Mysql数据库我们在后面讲解,各位同学可以问问google大神,看看能不能自己搞定!

    -------------------------------------------------------------------

    linux下娱乐软件 realplay

    概述:linux下一样有很多娱乐软件,比如播放影的软件之王realplay。我们给大家演示一下。请注意这次我用的是.bin的安装文件。

    安装realplay

    1、把安装文件copy到home目录去

    2、安装./realplay

    -------------------------------------------------------------------

    linux分区(1)

    概述:首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区(Primary Partion)和扩展分区(Extension Partion)两种,基本分区和扩展分区的数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩展分区再分下去的是什么呢?它就是逻辑分区(Logical Partion),而且逻辑分区没有数量上限制。

    -------------------------------------------------------------------

    linux分区(2)

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

    /dev/sda1

    sda1:sd硬盘类型,a第一块硬盘,1代表分区

    -------------------------------------------------------------------

    linux分区(3)

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

    -------------------------------------------------------------------

    linux分区(4) 几个重要的命令

    挂载命令

    mount [-参数][设备名称][挂载点]

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

    卸载命令

    umount [设备名称]

    查看磁盘使用情况

    df [参数]

    比如 df -l

    查看某个目录是在哪个分区

    df -h

    查看分区(磁盘)使用情况

    df [目录全路径]

    查看linux系统分区具体情况

    fdisk -l

    -------------------------------------------------------------------

    linux安装

    linux安装有两种方式

    1、双操作系统

    2、完全独立安装

    linux安装时,分区是关键

    1、/boot引导分区 100M

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

    3、/根分区尽可能大

    -------------------------------------------------------------------

    *:samba服务是必需掌握的,用来于windows文件共享

    linux下shell介绍 shell的概念

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

    linux下shell介绍 shell编程

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

    -------------------------------------------------------------------

    linux下shell介绍 shell的分类

    概述:shell有很多,但常用的就几种:

    Shell名称  开发者      命令名称

    Bourne     S.R.Bourne  /bin/sh

    C          Bill Joy    /bin/csh

    Kom        David       /bin/ksh

    1、查看目前使用的是哪种shell

    命令:env  (该命令可以显示当前操作系统的环境变量)

    2、shell的修改

    命令:chsh -s /bin/[shell文件名] (不同的shell对命令的解释不一样)

    -------------------------------------------------------------------

    linux下shell介绍 shell的命令补全功能

    概述:是指用户输入命令时,并不需要输入完整的命令,而系统自动会找出最符合的名称。这种功能可以节省经常输入命令的时间。直接输入"mk"再按两下"tab"键,出现两头两个字母为"mk"的命令。cat p再按两下"tab"键会出现开头字母为"p"的所有文件或目录。

    -------------------------------------------------------------------

    linux下shell介绍 查阅历史记录命令history

    概述:在linux下,我们有时可能希望知道或是使用最近执行的命令,history可能会帮上大忙。

    1、history 5 :此项说明会显示最近使用的5个命令

    2、!5 :此项说明执行历史编号为5的命令

    3、!ls :此项说明执行最后一次以"ls"开头的命令

    -------------------------------------------------------------------

    tcp/ip基础 tcp/ip的由来

    概述:linux/unix的世界就是网络的世界。而网络的基础就是tcp/ip,所以一个优秀的linux/unix程序员必须了解并掌握tcp/ip。

    tcp/ip是什么

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

    tcp/ip基础 osi与tcp/ip参考模型

    osi模型(理论)

    tcp/ip模型(现实)

    应用层(application)

    应用层:(application)smtp,ftp,telnet

    表示层(presention)

    传输层:(transport)解释数据

    会话层(session)

    网络层:(ip)定位ip地址和连接路径

    传输层(transport)

    链路层:(link)与硬件驱动对话

    网络层(ip)

    数据链路层(link)

    物理层(physical)

     

    tcp/ip基础 ip地址与包的路由传递(1)

    概述:每个internet上的主机和路由器都有一个ip地址。它包括网络号和主机号,所有ip地址都是32位的,ip地址按照国际标准的划分为a,b,c,d,e五种类型。

    a类:1.0.0.0至127.255.255.255

    b类:128.0.0.0至191.255.255.255

    c类:192.0.0.0至223.255.255.255

    d类:224.0.0.0至239.255.255.255

    e类:240.0.0.0至247.255.255.255

    a,b,c类目前用的最多

    dos下追踪IP路由命令:tracert 目标IP或域名

    dos下测试网络是否畅通:ping 目标IP

    windows查看ip情况是ipconfig

    在linux/unix下查看ip情况的命令是ifconfig

    -------------------------------------------------------------------

    linux网络环境配置(1)

    第一种方法:

    (1)用root身份登陆,运行setup命令进入到text mode setup utiliy对网络进行配置,这里可以进行ip,子网掩码,默认网关,dns的设置。

    (2)这时网卡的配置没有生效,运行/etc/rc.d/init.d/network restart命令

    我们刚才作的设置才生效

    第二种方法:

    (1)ifconfig eth0 X.X.X.X 对网卡进行设置。(临时生效)

    (2)ifconfig eth0 network X.X.X.X 对子网掩码设置。

    对广播地址和DNS使用默认。

    注意:这样配置网络将会立即生效。(临时生效)

    第三种方法:

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

    (2)这时网卡的配置没有生效。运行/etc/rc.d/init.d/network restart命令

    我们刚才作的设置才生效。

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

    **linux下所有的设备都是一个文件。(这个方法文便以后在linux下编程)

    /etc/sysconfig/network-scripts/ifcfg-eth0文件内容

    DEVICE=eth0 (驱动名称)

    ONBOOT=yes  (系统启动时默认设备启动)

    BOOTTPROO=static (指定IP还是自动分配IP。指定IP:static;自动分配IP:dhcp)

    IPADDR=192.168.44.22 (本机IP地址)

    NETMASK=255.255.255.0 (子网掩码)

    GATEWAY=192.168.44.254 (网关)

    在虚拟机下linux与windows如何ping通?

    可以使用直接物理桥连;也可以使用自定义特定虚拟网络。(必需在同一IP段内才可以)

    -------------------------------------------------------------------

    RPM管理

    概述:一种用于互联网下载包的打包及安装工具,它包含在某些linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设置理念是开放式的,现在包括OpenLinux/S.U.S.E以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

    RPM包的名称格式:(适于与以后软件编程打包命名使用)

    apache-1.3.23-11.i386.rpm

    apache软件名称

    1.3.23-11软件版本号;1.3.23为主版本号,11为副版本号

    i386软件运行的硬件平台

    rpm文件扩展名,代表RPM包

    RPM常用命令

    RPM查询

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

      rpm -qa | more

      rpm -qa | grep X

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

      rpm -ql file

      rpm -ql jdk

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

      rpm -q xinetd

      rpm -q foo

      rpm -q xinetd file bash

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

      rpm -qf /etc/passwd

      rpm -qf /root/install.log

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

      rpm -qi file

    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 -i RPM包全路径名称 :安装包到当前系统 参数i=install

      rpm -ivh RPM包全路径名称 :安装包到当前系统有提示信息

         参数说明:i=install 安装;v=verbose 提示;h=hash 进度条

    删除RPM包

      rpm -e RPM包的名称

        rpm -e jdk

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

    如:$ rpm -e foo

        removing these packages would break dependencies:foo is needed by bar-1.0-1

        若让RPM忽略这个错误继续卸载(这可不是一个好主意,因为依赖于该软件包的程序可能无法运行),请使用--nodeps命令行选项。

    升级RPM包

      rpm -U RPM包全路径名

      rpm -U cvs-1.11.2-10.i386.rpm

      

    -------------------------------------------------------------------

    samba详解

    什么是samba

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

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

    samba软件的安装

    步骤如下:

    1、检查是否安装了:samba

       rpm -qa | grep samba :此命令会检查出已经安装了samba软件包。

    若是已经安装了,下面会出现samba软件包的具体名称。

    2、 mount /mnt/cdrom

      cd /mnt/cdrom 找到samba-common-2.2.7a-7.9.0.i386.rpm

      客户和服务器均需要的文件

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

      rpm -ivh samba-2.2.7a-7.9.0.i386.rpm (服务器端软件)

      rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm (客户端软件)

      cd ~

      umount /mnt/cdrom

    3、设置samba密码文件

      //先在linux中建立一个普通用户

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

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

      //设置用户的samba密码

        smbpasswd 用户名

    4、启动samba服务

       service smb start   启动

       service smb stop    停止

       service smb restart 重启

    samba配置

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

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

       comment = dir for todayhero :共享这个目录为todayhero这个用户

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

       path = /tmp : 共享tmp这个目录

    3、guset ok :是否允许用户不使用帐号和密码访问此资源

       guset ok = yes : 允许用户不使用帐号和密码访问此资源

       guset ok = no  : 不允许用户不使用帐号和密码访问此资源

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

       hosts allow = 192.168.0. server.abc.com :意思是说允许来自192.168.0.或server.abc.com访问

    5、hosets deny : 设置禁止连接的主机地址

       hoset deny =192.168.2. : 意思是说不允许来自192.168.2主机访问此samba服务器的资源。

    6、read only : 用于设置共享的资源是否为只读。

       read only = yes : 允许只读

       read only = no : 可以读写

    7、writable : 设置是否允许写入

       writable = yes : 允许写入

       writable = no  : 不允许写入

    8、browseable : 设置用户是否可看到此共享资源

       browseable = yes : 允许用户看到此资源

       browseable = no :  不允许用户看到此资源

    9、available : 设置是否启用资源共享

       available = yes : 启用资源共享

       available = no : 不启用资源共享

    -------------------------------------------------------------------

    任务调度命令

    概述:

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

        任务调度分类:

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

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

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

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

    例:5 * * * * ls -l /etc/ > /tmp/to.txt

        意思说每小时的第五分钟执行ls -l /etc/ > /tmp/to.txt命令

    任务调度的使用crontab

    1、设置任务 crontab -e

    2、每隔一定时间去执行

      date > /home/mydatal (将当前时间覆盖写入mydata1文件中。>为覆盖写)

      date显示当前时间

     1)希望每天凌晨2:00去执行 date >> /home/mydate2 (>>为追加写)

      0 2 * * * date >> /home/mydate2

     2)希望每分钟去执行

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

    调度文件规则:

    字段名称      说明                       范围

    分钟          每小时中的第几分钟执行     0-59

    小时          每日的第几个小时执行       0-23

    日期          每月的第几天执行           1-31

    月历          每年的第几个月执行         1-12

    星期          每周的第几天执行           0-6

    命令名称      欲执行的命令名称及其参数

    *1 *2 *3 *4 *5

    *1代表分钟 *2代表小时 *3代表日期 *4代表月历 *5代表星期

    如:0 22 26 5 * 表示星期* 5月 26日 22小时 0分钟

    完整意思为每年5月26日22小时0分执行对应任务。*表示设置为无设定

    * * * * *代表每分钟执行一次

    3、怎样去调度多个任务?

       1)在crontab -e 中直接写多个任务  (优点:简单;缺点:太多太乱修改不方便)

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

    .sh文件为shell文件,chmod 744 mytask.sh

         vi mytask.sh

            date >> /home/mydate2

            cp /home/mydate2 /root/

         :wq

         crontab -e

         * * * * * /root/mytask.sh

    4、如何终止任务

    终止任务调度:

        crontab -r :终止任务调度  (多任务多用户使用时禁用此命令)

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

    -------------------------------------------------------------------

    进程的概念和管理

    基本概念

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

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

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

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

    进程就是正在执行的程序

    线程(1)轻量级的进程

        (2)进程有独立的地址空间,线程没有

        (3)线程不能独立存在,它是由进程创建的。(在linux下是fork,在java下是Thread)

        (4)相对来讲,线程耗费的CPU和内存小于进程。

    静态显示系统执行的进程

    ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数

    显示详细的进程信息

    1、 ps -a :意思是说显示当前终端的所有进程信息。

    2、以用户的格式显示进程信息。

        ps -u :以用户的格式显示进程信息。

    3、显示后台进程运行参数:

        ps -x :显示后台进程运行的参数。

    4、可以使用ps -aux 显示全面的进程信息。

    PS:显示的信息选项

    字段           说明

    PID         进程识别号

    TTY         终端机号

    TIME        此进程所消CPU的时间

    CMD         正在执行的命令或进程名

    终止进程kill/killall

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

    终止某个进程:kill 进程号

    kill 16251 :表示终止进程号为16251的进程。

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

    killall可以清除进程及进程相关的子进程

    动态监控进程top  退出top按q键或ctrl+c键即可退出

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

    1、监视特定用户

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

        u :然后输入"u"回车,再输入用户名,即可。

    2、终止指定的进程

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

        k :然后输入"k"回车,再输入要结束的进程ID号。

    3、指定系统状态更新的时间

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

    14:06:22 up系统时间

     4 min, 系统启动多久

    1 user, 当前登陆到linux有多少用户

    load avcragc: 0.02, 0.12, 0.07负载平衡,当前系统的负载情况(可全加除3大

    于0.6表示系统负载紧张)

    37 processes:当前进程数

    36 sleeping, 休眠状态进程数

    1 running, 正在运行进程数

    0 zombie,僵尸进程数 进程无用后仍占用内存的进程数

    0 stopped处于停止状态的进程数

    CPU states:  0.0% user  0.1% system  0.0% nice  0.0% iowait 99.8% idle

    CPU的状态  idle为CPU闲置状态(越大越好)

    Men:   255264k av,  39420k used,  215836k free,   0k shrd,  5520k buff

                        30632k actv,     140k in_d, 292k in_c

    内存使用情况

    255264k av,内存总数量

    39420k used,正在使用内存数量

    215836k free,空闲内存数量

    Swap:  257032k av,      0k used,  257032k free           19376k cached

    swap分区(虚拟内存)使用情况

    swap:  257032k av,swap分区(虚拟内存)数量

    0k used, 正在使用虚拟内存数量

    257032k free空闲虚拟内存数量

    19376k cached缓存内存

    可用此命令进行释放echo 3 > /proc/sys/vm/drop_caches 一般不刻意去释放。

    ----------------------------------------------------------------------

    设置系统日期

    1、date命令:显示系统的时间。可以在直接输入"date"命令。来查看系统的时间。

    2、利用date命令来更改系统的时间。

       date MMDDHHMMCCYY.SS:意思是指月月日日时时分分年年年年.秒秒。

    3、查看月历:

       cal 3 2002 :查看2002年3月的月历。

    4、查看年历:

       cal 2008 :查看2008的年历

    ----------------------------------------------------------------------

    监控网络状态信息

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

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

        如:netstat -anp (参数an按端口排序,参数p是显示进程号)

    检测主机连接命令ping:

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

        如:ping 对方IP地址

    显示数据包经过历程命令:traceroute

     traceroute 目标IP或地址

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

        route

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

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

    ----------------------------------------------------------------------

    MySql数据库在linux下的使用

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

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

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

    如何在linux下使用Mysql数据库。

    1)把mysql数据库的安装文件准备好,mount / copy

    2)把安装文件解压缩

    3)继续安装

       groupadd mysql

       useradd -g mysql mysql

       scripts/mysq1_install_db  --user=mysql

       chown -R root . (修改文件的所有者)

       chown -R mysql data (修改date文件夹的所有者)

       chgrp -R mysql . (改变用户组)

       启动mysql

       bin/mysqld.safe  --user=mysql &

       检查一下,OK,正常启动

    1)把MYSQL安装文件copy到/home下

    2)tar -zxvf 文件名.tar.gz

    mv命令为linux下文件改名命令

    3) groupadd mysql  (创建mysql用户组)

       useradd -g mysql mysql (创建mysql用户并将mysql用户放到mysql用户组)

       进入mysql文件夹后才可以执行下面语句

       scripts/mysq1_install_db  --user=mysql (初始化数据库)

       chown -R root . (修改文件的所有者, .代表当前文件 ..代表上一级文件或文件夹;参数R是递归也就是文件或文件夹下所有的都继承)

       chown -R mysql data (修改date文件夹的所有者)

       chgrp -R mysql . (改变用户组)

       启动mysql

       bin/mysqld.safe  --user=mysql &  (&表示以后台的方式启动)

       检查一下,OK,正常启动

    如何进入mysql

       cd /bin

       ./mysql -u root -p

    如果希望在任何目录下都可以进入mysql则需要在/root/.bash_profile中添加路

    径。(所有用户都可以使用可以在/etc/.bash_profile文件)

    ****修改env  PATH路径需在.bash_profile

       cd /root

       .bash_profile

       注销后登陆

    ----------------------------------------------------------------------

    Mysql数据库在linux下的使用

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

      建立数据库和表

      加入部分数据

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

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

    mysql数据库的使用 quit命令是退出mysql操作;drop table 表名;(删除表)

    1)进入mysql

    2)建立数据库和表

    mysql> create database spdb1; (建立数据库)

    mysql> show database; (查看数据库)

    3)建表

      首先

    mysql> use spdb1;  (在spdb1数据库中建表)

    mysql> create table users(userId varchar(8),userName varchar(8));  (建立users表)

    mysql> show tables; (查看表)

    4)加入数据

    mysql> insert into users valucs('0001','alex');p  (将数据写入users表中)

    mysql> select * from users;  (查看users表中数据)

    mysql> desc users;  (查看数据库users表结构)

    5)使用java编写一个ShowUser.java文件,显示数据库中的数据

    vi ShowUser.java

    java源码

       import java.sql.*;

       public class Showusers{

          //main function

          public static void main(String []args){

          //conect to mysql database

          try{

          Class.forName("com.mysql.jdbc.Driver");

          Connection ct=DriverManager.getConnection

    ("jdbc:mysql://127.0.0.1:3306/spdb1?user=root&password=");

          Statement sm=ct.createStatement();

          ResultSet rs=sm.executeQuery("select * from users")

          while(rs.next()){

             System.out.println("username="+rs.getString(2));

           }

           }catch(Exception e){

                  e.printStackTrace();

           }

          } 

       }

    }

     

    :wq

    javac ShowUsers.java

     

    找到jdk

    jdk在/home/j2sdk1.4.2_07/jre/lib/ext

     

    java ShowUsers

    ----------------------------------------------------------------------

    4)如何使用命令行来备份和恢复mysql数据库

    备份: mysqldump -u root -p密码 数据库名 > data.bak (在mysql下的bin目

    录下执行)

    建空数据库mysql> create database spdb1;

    恢复: mysql -u root -p密码 数据库名 < data.bak (在mysql下的bin目录下

    执行,必须先建立一个空的数据库才可以恢复)

     

    cd /mysql/bin

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

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

    ----------------------------------------------------------------------

    神奇的ssh

    概述:ssh(securt shell)是一款集远程操作linux和进行文件上传和下载的软件,那是相当的好用呀,在软件公司几乎所有的linux程序员都会使用ssh。安全,方便是它最大的特点。

    1、安装

       linux的ssh服务端是在安装linux时自动安装一个sshd并默认是启动的。ssh

    服务端的端口是22

       windows下安装ssh客户端

    2、使用ssh客户端登陆到linux(前提是linux下的sshd服务启动)

    ----------------------------------------------------------------------

    补充讲解linux重要内容

    linux目录结构

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

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

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

    /etc  系统中的配置文件

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

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

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

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

    /tmp  系统的临时目录

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

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

    当前目录 pwd命令可以显示当前目录

    相对路径 以当前目录开始询找目标文件或文件夹 . .. ~

    绝对路径 以根目录开始询找目录文件或文件夹 /目录

    工作目录 就是执行文件所在的目录

    运行级别

    命令:init [0123456]

    运行级别 0:关机

             1:单用户

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

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

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

             5:图形界面

             6:系统重启

    常用运行级别是3和5,要修改默认的运行级别可改文件

    /etc/inittab的id:5:initdefault:这一行中的数字

    常用命令

    pwd      :显示当前工作目录

    cd       :改变目录  (cd直接回到用户目录)

    ls       :列出文件和目录

    ls -a    :显示隐藏文件

    ls -l    :显示长列表格式

    mkdir    :建立目录

    rmdir    :删除空目录

    touch    :建立空文件

    cp       :复件命令 cp -r dir1 dir2 递归复制命令(复制子目录信息) 参数f

              覆盖

    mv       :移动文件和改文件名

    rm       :删除文件和目录

    rm -rf * :删除所有内容(包括目录和文件) 参数r递归 参数f强制

    ln       :建立符号连接(类似windows的快捷方式)

      ln -s 源  目录

      ln -s /etc/inittab inittab  (inittab指向实际文件/etc/initab)

    more     :显示文件内容,带分页

    less     :显示文件内容带分页

    grep     :在文本中查询内容 (grep -n "内容" 文件名/目录*)

    |        :管道命令 | : find / -name *.html |grep bookmark

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

    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 -al >> aa.txt 列表的内容追加到文件aa.txt

    从文件中输入信息database.program < database.data

    shell使用

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

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

    shell脚本文件:是一个文本文件/命令集合/有执行的权限chmod 744 文件名

                   执行方式(./文件名)/(.sh后缀名的文件是shell文件)

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

      .bashrc位于主目录下

       它之前执行系统的脚本/etc/bashrc主要是基本配置数据 (/etc/bashrc相当于windows下的自动批处理文件autoexec.bat)

      .bash_profile位于主目录下

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

    当希望临时加入一个路径时,可使用export

    用export PATH=$PATH:$HOME/bin:/root/test/tl

       输出环境变量PATH引用原来的值$PATH $HOME表示工作主目录:是路径分隔符

       已定义好的环境变量:

         SHELL :默认shell

         PATH  :路径

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

       显示变量内容:echo $PATH

                     echo $USER

                     echo $SHELL

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

             ? 代表一个字母或数字

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

    转义字符:

          ls /mnt/winl/My Documents

    引号:

        export NAME-Michael

        echo Welcome $NAME,the date is date单引号 - shell不处理

    任何变量和命令

        echo 'Welcome $NAME,the date is date'双引号 - 处理变量但不处理命令

        echo "Welcome $NAME,the date is date"反引号 - 把引号中的每个单词作

    为一个命令,如果是变量则先求值然后作为一个命令处理

        echo "Welcome $NAME,the date is `date`"

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

              alias 别名='命令或命令组'

              alias cp='cp -i'

              alias ll='ls -l --color=tty'

    ----------------------------------------------------------------------

    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配置服务

          终止以"K"开头的服务

          启动以"S"开头的服务

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

    i)其他特殊服务

    ----------------------------------------------------------------------

    压缩和解压问题

    以zip和unzip处理.zip文件

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

       zip file.zip [要压缩的文件]

    zip后接压缩后的文件名,在它的后面输入要压缩的文件即可。

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

       zip -m file.zip to.txt

    意思是说把to.txt文件压缩成file.zip文件,to.txt会自动删除的。

    3、将子目录一起压缩

       zip -r file.zip [文件夹路径]

    将当前目录下的子目录一起压缩

    4、忽略子目录的内容

       zip -j file.zip

    5、将已压缩的或没有必要压缩的文件去掉

       zip -n .mpg: .jpg: .gif

    第一种文件中间要用“:”分开。

    6、压缩某一日之后的文件

       zip -t 102002 file.zip

    意思是指将当前目录下的2002年10月20日之后文件压缩

    7、不压缩链接文件的原文件

       zip -y file.zip

    8、压缩率问题。-1—-9:-9的压缩率最高

       zip -9 file.zip

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

       zip file.zip * -x file2.txt

    在压缩时,将当前目录内的file2.txt文件排除在外

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

    1、直接解压缩文件

       unzip file.zip

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

       unzip file.zip -x file2

    意思是说除了file2文件外,其他的文件解压缩

    3、查看压缩包的内容

       unzip -Z file.zip

    查看file.zip压缩包的内容。也可用"-l"、"-v"来查看压缩包的内容

    以gzip和gunzip处理.gz文件

    1、直接解压缩文件

       unzip file.zip

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

       unzip file.zip -x file2

    意思是说除了file2文件外,其他的文件都解压缩

    3、查看压缩包的内容

       unzip -Z file.zip

    查看file.zip压缩包的内容。也可以使用"-l"、"-v"来查看压缩包的内容

    4、解压命令

       gunzip file.gz或gzip -d file.gz

    gzip与gunzip压缩与解压缩的用法

    Linux压缩保留源文件的方法:

    gzip –c filename > filename.gz

    Linux解压缩保留源文件的方法:

    gunzip –c filename.gz > filename

    gunzip的用法

      1.作用

    gunzip命令作用是解压文件,使用权限是所有用户。

    2.格式

    gunzip [-acfhlLnNqrtvV][-s ][文件...]

    或者gunzip [-acfhlLnNqrtvV][-s ][目录]

    3.主要参数

    -a或--ascii:使用ASCII文字模式。

    -c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备。

    -f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文

    件是否为符号连接。

    -h或--help:在线帮助。

    -l或--list:列出压缩文件的相关信息。

    -L或--license:显示版本与版权信息。

    -n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。

    -N或--name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。

    -q或--quiet:不显示警告信息。

    -r或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。

    -S或--suffix:更改压缩字尾字符串。

    -t或--test:测试压缩文件是否正确无误。

    -v或--verbose:显示指令执行过程。

    -V或--version:显示版本信息。

    4.说明

    gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为“.gz”。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

    ----------------------------------------------------------------------

    linux下java网络编程 -my qq

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

    你将学习到:

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

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

    3、windows和linux网络通讯

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

    ----------------------------------------------------------------------

    linux下java开发my qq server

    vi MyServerText.java

    import java.io.*; //引用java.io包

    import java.net.*; //引用.net包

    //服务器端

    public class MyServerText {

       public static void main(String []args){

          try{

              //创建ServertSocket

              ServertSocket ss=new ServerSocket(8888);

              System.out.println("i am listening");

              //监听,直到某个客户端来连接,一但连接成功,就会得到

              //Socket[好象是一个数据管道]

              Socket s=ss.accept();

              //可以读取从客户端发送的信息

              InputStreamReader isr=new InputStreamReader(s.getInputStream());

              BufferedReader br=new BufferedReader(isr);

              String kk=br.readLine();

              System.out.println("client send :::"+kk);

              //从服务器端,回一个消息

              OutputStreamWriter osw=new OutputStreamWriter(s.getOutputStream());

              PrintWriter pw=new PrintWriter(osw,true);

              pw.println("i get your mes:"+kk);

          } cath (Excption e) {

              e.printStackTrace();

              //TODO: handle exception

          }

     }

    }

    ----------------------------------------------------------------------

    MyClient

    import java.io.*; //引用java.io包

    import java.net.*; //引用.net包

    //客户端

    public class MyClient {

       public static void main(String []args){

           try {

                //连接ip:和port

                Socket s=new Socket("192.168.222.66",8888);

                //通过文件流发送消息

                OutputStreamWriter osw=new OutputStreamWriter(s.getOutputStream());

                BufferedWriter bw=new BufferedWriter(osw);

                PrintWriter pw=new PrintWriter(bw,true);

                //发送

                pw.println("hello,world!!");

                //读取从服务器回送的信息

                InputStreamReader isr=new InputStreamReader(s.getInputStream());

                BufferedReader br=new BufferedReader(isr);

                String response=br.readLine();

              

                System.out.println("server response is :::"+response);

           } cath (Excption e) {

              e.printStackTrace();

           }

       }

    }

    ----------------------------------------------------------------------

  • 相关阅读:
    关于JSON可能出现的错误,待更/todo
    mongoose的安装与使用(书签记录) 2017
    HTTP的学习记录3--HTTPS和HTTP
    HTTP的学习记录(二)头部
    HTTP(一)概述
    LeetCode 455. Assign Cookies
    LeetCode 453. Minimum Moves to Equal Array Elements
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode 447. Number of Boomerangs
    LeetCode 416. Partition Equal Subset Sum
  • 原文地址:https://www.cnblogs.com/yutaoyao/p/4226446.html
Copyright © 2011-2022 走看看