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();

       }

 

 

   }

 

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章