Linux操做系統學習html
linux的特色java
優勢:node
一、免費的/開源的系統mysql
二、支持多線程/多用戶的系統linux
三、安全性好c++
四、對內存和文件管理優越程序員
linux體積最少只須要內存4M,因爲小因此能夠作嵌入式開發web
缺點:sql
操做相對困難shell
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」
一、Vi Hello.java
二、輸入i[進入到插入模式]
public class hello{
public static void main(String []args){
System.out.println("hello,world");
}
}
三、輸入esc鍵[進入命令模式]
四、輸入wq保存退出/q!退出但不保存
六、編譯javac hello.java
javac Hello.java
七、運行 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"命令能夠解決上述問題。
一、在特定的目錄下搜索並顯示指定名稱的文件和目錄
find / -name man:意思是說從根目錄開始搜索名稱爲man的文件或目錄
二、搜索一段時間內被存取/變動的文件或目錄。
find /home -amin -10:十分鐘內存取的文件或目錄
find /home -atime -10:十小時內存取的文件或目錄
find /home -cmin -10:十分鐘內更改過的文件或目錄
find /home -ctime +10:十小時前更改過的文件或目錄
三、搜索指定大小的文件。
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-文件的全部者對該文件的權限。權限分三種一、r可讀也會用4表示;二、W可寫也會用2表示;三、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的安裝步驟:
一、把鏡像ISO文件掛載到linux操做系統上。(linux系統是用掛載和卸載來管理分區文件的。)
在虛擬機上作好配置,在根目錄下進行操做:
掛載光驅命令:mount /mnt/cdrom/
掛載光驅
卸載光驅命令:umount /mnt/cdrom/
二、把安裝文件copy到/home目錄下(文件名過長要用tab鍵來自動補全文件名)
命令:cp 文件名 /home
三、切換目錄到/home
命令:cd /home
四、安裝(./)是解壓縮命令
命令 ./ 安裝文件名.bin
輸入yes後開始安裝,輸入no不安裝。
五、看看一個文件 /etc/profile (環境配置文件)
linux下用#來做註釋。
六、配置profile環境配置文件
-------------------------------------------------------------------
javaee開發環境搭建 eclipse的安裝
概述:要在linux下開發java程序。則須要安裝JDK,若是要在集成開發工具(IDE)下開,能夠安裝eclipse軟件。
eclipse安裝
一、掛載eclipse.iso文件
二、將eclipse複製到/home目錄下
三、安裝
tar.gz文件的安裝命令:tar -zxvf 文件名.tar.gz
四、啓動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
一、把安裝文件copy到home目錄去
二、安裝./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安裝有兩種方式
一、雙操做系統
二、徹底獨立安裝
linux安裝時,分區是關鍵
一、/boot引導分區 100M
二、/swap交換分區通常是你的物理內存的2倍,但不要大於256M
三、/根分區儘量大
-------------------------------------------------------------------
*: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
一、查看目前使用的是哪一種shell
命令:env (該命令能夠顯示當前操做系統的環境變量)
二、shell的修改
命令:chsh -s /bin/[shell文件名] (不一樣的shell對命令的解釋不同)
-------------------------------------------------------------------
linux下shell介紹 shell的命令補全功能
概述:是指用戶輸入命令時,並不須要輸入完整的命令,而系統自動會找出最符合的名稱。這種功能能夠節省常常輸入命令的時間。直接輸入"mk"再按兩下"tab"鍵,出現兩頭兩個字母爲"mk"的命令。cat p再按兩下"tab"鍵會出現開頭字母爲"p"的全部文件或目錄。
-------------------------------------------------------------------
linux下shell介紹 查閱歷史記錄命令history
概述:在linux下,咱們有時可能但願知道或是使用最近執行的命令,history可能會幫上大忙。
一、history 5 :此項說明會顯示最近使用的5個命令
二、!5 :此項說明執行歷史編號爲5的命令
三、!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軟件的安裝
步驟以下:
一、檢查是否安裝了:samba
rpm -qa | grep samba :此命令會檢查出已經安裝了samba軟件包。
如果已經安裝了,下面會出現samba軟件包的具體名稱。
二、 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
三、設置samba密碼文件
//先在linux中創建一個普通用戶
//將/etc/passwd中的用戶都加到smbpasswd中
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
//設置用戶的samba密碼
smbpasswd 用戶名
四、啓動samba服務
service smb start 啓動
service smb stop 中止
service smb restart 重啓
samba配置
共享資源的基本設置 /etc/samba/smb.conf
一、comment : 針對共享資源所作的說明文字。默認值爲空字符串。
comment = dir for todayhero :共享這個目錄爲todayhero這個用戶
二、path : 若共享的資源是目錄,是指定該目錄的位置。
path = /tmp : 共享tmp這個目錄
三、guset ok :是否容許用戶不使用賬號和密碼訪問此資源
guset ok = yes : 容許用戶不使用賬號和密碼訪問此資源
guset ok = no : 不容許用戶不使用賬號和密碼訪問此資源
四、hosts allow : 設置鏈接主機的地址
hosts allow = 192.168.0. server.abc.com :意思是說容許來自192.168.0.或server.abc.com訪問
五、hosets deny : 設置禁止鏈接的主機地址
hoset deny =192.168.2. : 意思是說不容許來自192.168.2主機訪問此samba服務器的資源。
六、read only : 用於設置共享的資源是否爲只讀。
read only = yes : 容許只讀
read only = no : 能夠讀寫
七、writable : 設置是否容許寫入
writable = yes : 容許寫入
writable = no : 不容許寫入
八、browseable : 設置用戶是否可看到此共享資源
browseable = yes : 容許用戶看到此資源
browseable = no : 不容許用戶看到此資源
九、available : 設置是否啓用資源共享
available = yes : 啓用資源共享
available = no : 不啓用資源共享
-------------------------------------------------------------------
任務調度命令
概述:
任務調度:是指系統在某個時間執行的特定的命令或程序。
任務調度分類:
一、系統工做:有些重要的工做必須周而復始的執行。如病毒掃描等。
二、個別用戶工做:個別用戶可能但願執行某些程序。
設置任務調度文件:/etc/crontab
設置我的任務調度。執行crontab -e命令。接着輸入任務到調度文件
例:5 * * * * ls -l /etc/ > /tmp/to.txt
意思說每小時的第五分鐘執行ls -l /etc/ > /tmp/to.txt命令
任務調度的使用crontab
一、設置任務 crontab -e
二、每隔必定時間去執行
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分執行對應任務。*表示設置爲無設定
* * * * *表明每分鐘執行一次
三、怎樣去調度多個任務?
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
四、如何終止任務
終止任務調度:
crontab -r :終止任務調度 (多任務多用戶使用時禁用此命令)
crontab -l :列出當前有那些任務調度
-------------------------------------------------------------------
進程的概念和管理
基本概念
一、在linux中,每一個執行的程序都稱爲一個進程。每個進程都分配一個ID號。
二、每個進程,都會對應一個父進程,而這個父進程能夠複製多個子進程。例如WWW服務器。
三、每一個進程均可能以兩種方式存在的。前臺與後臺,所謂前臺進程就是用戶目前的屏幕上能夠進行操做的。後臺進程則是實際在操做,但因爲屏幕上沒法看到的進程,一般使用後臺方式執行。
四、通常系統的服務都是之後臺進程的方式存在,並且都會常駐在系統中。直到關機纔會結束。
進程就是正在執行的程序
線程(1)輕量級的進程
(2)進程有獨立的地址空間,線程沒有
(3)線程不能獨立存在,它是由進程建立的。(在linux下是fork,在java下是Thread)
(4)相對來說,線程耗費的CPU和內存小於進程。
靜態顯示系統執行的進程
ps命令是用來查看目前系統中,有哪些正在執行,以及它們執行的情況。能夠不加任何參數
顯示詳細的進程信息
一、 ps -a :意思是說顯示當前終端的全部進程信息。
二、以用戶的格式顯示進程信息。
ps -u :以用戶的格式顯示進程信息。
三、顯示後臺進程運行參數:
ps -x :顯示後臺進程運行的參數。
四、可使用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在執行一段時間能夠更新正在運行的進程。
一、監視特定用戶
top :輸入此命令,按回車鍵,查看執行的進程。
u :而後輸入"u"回車,再輸入用戶名,便可。
二、終止指定的進程
top :輸入此命令,按回車鍵,查看執行的進程。
k :而後輸入"k"回車,再輸入要結束的進程ID號。
三、指定系統狀態更新的時間
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 通常不刻意去釋放。
----------------------------------------------------------------------
設置系統日期
一、date命令:顯示系統的時間。能夠在直接輸入"date"命令。來查看系統的時間。
二、利用date命令來更改系統的時間。
date MMDDHHMMCCYY.SS:意思是指月月日日時時分分年年年年.秒秒。
三、查看月曆:
cal 3 2002 :查看2002年3月的月曆。
四、查看年曆:
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。安全,方即是它最大的特色。
一、安裝
linux的ssh服務端是在安裝linux時自動安裝一個sshd並默認是啓動的。ssh
服務端的端口是22
windows下安裝ssh客戶端
二、使用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文件
一、zip命令的基本使用方法:
zip file.zip [要壓縮的文件]
zip後接壓縮後的文件名,在它的後面輸入要壓縮的文件便可。
二、壓縮後,自動刪除原文件
zip -m file.zip to.txt
意思是說把to.txt文件壓縮成file.zip文件,to.txt會自動刪除的。
三、將子目錄一塊兒壓縮
zip -r file.zip [文件夾路徑]
將當前目錄下的子目錄一塊兒壓縮
四、忽略子目錄的內容
zip -j file.zip
五、將已壓縮的或沒有必要壓縮的文件去掉
zip -n .mpg: .jpg: .gif
第一種文件中間要用「:」分開。
六、壓縮某一日以後的文件
zip -t 102002 file.zip
意思是指將當前目錄下的2002年10月20日以後文件壓縮
七、不壓縮連接文件的原文件
zip -y file.zip
八、壓縮率問題。-1—-9:-9的壓縮率最高
zip -9 file.zip
九、將不須要壓縮的文件排除在外
zip file.zip * -x file2.txt
在壓縮時,將當前目錄內的file2.txt文件排除在外
以unzip命令進行.zip文件的解壓縮
一、直接解壓縮文件
unzip file.zip
二、排除不須要解壓縮的文件
unzip file.zip -x file2
意思是說除了file2文件外,其餘的文件解壓縮
三、查看壓縮包的內容
unzip -Z file.zip
查看file.zip壓縮包的內容。也可用"-l"、"-v"來查看壓縮包的內容
以gzip和gunzip處理.gz文件
一、直接解壓縮文件
unzip file.zip
二、排除不須要解壓縮的文件
unzip file.zip -x file2
意思是說除了file2文件外,其餘的文件都解壓縮
三、查看壓縮包的內容
unzip -Z file.zip
查看file.zip壓縮包的內容。也可使用"-l"、"-v"來查看壓縮包的內容
四、解壓命令
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數據庫。
你將學習到:
一、如何使用java進行socket編程
二、如何在java中對mysql數據庫操做
三、windows和linux網絡通信
四、瞭解什麼是網絡服務這個晦澀的概念
----------------------------------------------------------------------
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();
}
}
}
----------------------------------------------------------------------