韓順平Linux視頻教程—筆記(全)
Linux****操作系統(tǒng)學(xué)習(xí)
linux****的特點(diǎn)
優(yōu)點(diǎn):
1餐屎、免費(fèi)的/開源的系統(tǒng)
2捅儒、支持多線程/多用戶的系統(tǒng)
3摧扇、安全性好
4、對內(nèi)存和文件管理優(yōu)越
linux體積最少只需要內(nèi)存4M弄抬,由于小所以可以做嵌入式開發(fā)
缺點(diǎn):
操作相對困難
Linus于1991年至1994年將unix的微型版minis加以開發(fā)出linux
現(xiàn)在redhat紅帽子、BSD宪郊、SUN等公司進(jìn)行再發(fā)行
在windows環(huán)境下可以使用(VM等)虛擬機(jī)來運(yùn)行l(wèi)inux
在linux****運(yùn)行startx****命令****可以****進(jìn)入圖形操作界面
root****是linux****下的系統(tǒng)管理員
普通用戶登陸后可以用**su- **切換為系統(tǒng)管理員
關(guān)機(jī)命令
shutdown -h now 立刻進(jìn)行關(guān)機(jī)
shutdown -r now 現(xiàn)在重新啟動計算機(jī)
reboot 現(xiàn)在重新啟動計算機(jī)
logout 注銷
vi****編輯器是linux下最有名的編輯器掂恕,也是學(xué)習(xí)linux必須掌握的工具,
在unix下也可使用vi進(jìn)行程序的開發(fā)
linux可以做java/c開發(fā)
在linux的vi編輯器內(nèi)寫一下簡單的java程序“hello,world”
1弛槐、Vi Hello.java
2懊亡、輸入i[進(jìn)入到插入模式]
public class hello{
public static void main(String []args){
System.out.println("hello,world");
}
}
3、輸入esc鍵[進(jìn)入命令模式]
4乎串、輸入wq保存退出/q!退出但不保存
6店枣、編譯javac hello.java
javac Hello.java
7、運(yùn)行 java Hello [java運(yùn)行的是class文件]
ls命令顯示當(dāng)前文件
ls -l命令顯示詳細(xì)文件列表
如何在linux下開發(fā)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下運(yùn)行c程序只要輸入/就可以運(yùn)行
linux****下的文件目錄
linux的文件系統(tǒng)是采用級層式的樹狀目錄結(jié)構(gòu),在此結(jié)構(gòu)中的最上層
是根目錄“/”鸯两,然后在此目錄下再創(chuàng)建其他的目錄
深刻理解linux文件目錄是非常重要的闷旧。
linux下的根目錄中重要的目錄如下是系統(tǒng)自動分配的
root目錄、home目錄钧唐、bin目錄忙灼、sbin目錄、mnt目錄钝侠、etc目錄该园、var目錄、boot目錄帅韧、usr目錄里初、tmp目錄(均為同級目錄)
root目錄:用于存放root用戶相關(guān)文件的目錄
home目錄:用于存放普通用戶的相關(guān)文件的目錄
bin目錄:用于存放常用命令的目錄
sbin目錄:用于存放要具有一定權(quán)限才可以使用的命令的目錄
mnt目錄:用于默認(rèn)掛載軟驅(qū)、光驅(qū)的目錄
etc目錄:用于存放配置相關(guān)的文件的目錄
var目錄:用于存放經(jīng)常變化的文件的目錄
boot目錄:用于存放系統(tǒng)引導(dǎo)文件的目錄(重要)
usr目錄:用于存放安裝的默認(rèn)目錄(安裝文件會默認(rèn)安裝在usr目錄里)
tmp目錄:用于存入臨時文件的目錄
cd /返回到主目錄下
ls與dir功能相同顯示目錄名
顯示當(dāng)前在哪個路徑下面
pwd命令是顯示當(dāng)前在哪個路徑下
linux****的用戶管理(普通用戶無法使用)
useradd命令:useradd 用戶名(添加用戶)
passwd命令:passwd 用戶名 (修改用戶密碼)
userdel命令:userdel 用戶名 (刪除用戶)
userdel -r 用戶名(刪除用戶以及用戶主目錄)
linux****的常用命令
指定運(yùn)行級別
命令:init[012356]
運(yùn)行級別
0:關(guān)機(jī)
1:單用戶
2:多用戶狀態(tài)沒有網(wǎng)絡(luò)服務(wù)
3:多用戶狀態(tài)有網(wǎng)絡(luò)服務(wù)
4:系統(tǒng)未使用保留給用戶
5:圖形界面
6:系統(tǒng)重啟
常用運(yùn)行級別是3和5忽舟,要修改默認(rèn)的運(yùn)行級別可改文件/etc/inittab的
id:5:initdefault:這一行中的數(shù)字
在啟動引導(dǎo)界面的時候按e進(jìn)入編輯双妨,在進(jìn)入grub引界面時,請輸入e在選中第二個選項(xiàng)按e叮阅,在最后輸入 1[單用戶級別] 然后按b進(jìn)入單用戶模式斥难。
*******:可通過此方法進(jìn)行l(wèi)inux用戶密碼的修改**
linux****常用命令(2)
命令pwd [顯示當(dāng)前工作目錄]
命令cd [改變目錄]
命令ls [列出文件和目錄]
ls -a 顯示隱藏文件
ls -l 顯示長列表格式
命令mkdir [建立目錄]
命令rmdir [刪除空目錄]
linux****常用命令(3)
tab鍵可以補(bǔ)全相應(yīng)內(nèi)容
命令touch [建立空文件]
命令cp [復(fù)制命令]
cp -r dir1 dir2遞歸復(fù)制命令(復(fù)制子目錄信息)
命令mv [移動文件和改文件名]
命令rm [刪除文件和目錄]
rm -rf * [刪除所有內(nèi)容(包括目錄和文件)r遞歸f強(qiáng)制]
命令ln [建立符號連接]
ln -s 源目標(biāo)
ln -s /etc/inittab inittab [inittab指向?qū)嶋H文件/etc/inittab]
linux****常用命令(4)
命令more [顯示文件內(nèi)容,帶分頁]
命令less [顯示文件內(nèi)容帶分頁]
命令grep [在文本中查詢內(nèi)容] grep -n "查找內(nèi)容" [文件名]
命令| [管道命令] 在linux和unix系統(tǒng)中|就是管道命令帘饶,把上一個命令的
結(jié)果交給|的后面的命令進(jìn)行處理
命令man [相當(dāng)于dos下的help]
例:Grep –n “查找內(nèi)容” [文件名] | more
linux****常用命令(5)
命令find [搜索文件及目錄]
在linux中,因?yàn)槲募到y(tǒng)是以級別式的結(jié)構(gòu)來組成的群扶,所以要在整個系統(tǒng)中找到特定的文件和目錄并不是件容易的事及刻。而"find"命令可以解決上述問題。
1竞阐、在特定的目錄下搜索并顯示指定名稱的文件和目錄
find / -name man:意思是說從根目錄開始搜索名稱為man的文件或目錄
2缴饭、搜索一段時間內(nèi)被存取/變更的文件或目錄。
find /home -amin -10:十分鐘內(nèi)存取的文件或目錄
find /home -atime -10:十小時內(nèi)存取的文件或目錄
find /home -cmin -10:十分鐘內(nèi)更改過的文件或目錄
find /home -ctime +10:十小時前更改過的文件或目錄
3骆莹、搜索指定大小的文件颗搂。
find /home -size +10k:意思是說查找/home目錄下大小為10k的文件
linux****常用命令(6) 以文件頭字段來判定文件類型,并非以文件后綴名來判定幕垦。
重定向命令:管道定向命令">"為覆蓋丢氢,">>"追加寫在原文件內(nèi)容后面
ls -l > a.txt 列表的內(nèi)容寫入文件a.txt中(覆蓋寫)
ls -al >> aa.txt列表的內(nèi)容追加到文件aa.txt的末尾
從文件中輸入信息database_program<database_data
文件所有者、所在組和其它組
在linux中的每個用戶必需屬于一個組先改,不能獨(dú)立于組外疚察。在linux中每個文件有所有者、所在組仇奶、其它組的概念貌嫡。
(1)所有者
一般為文件的創(chuàng)建者,誰創(chuàng)建了該文件,就是天然的成為該文件的所有者岛抄。
用[ls -ahl]命令可以看到文件的所有者
你也可以用[chown 用戶名 文件名]來修改文件的所有者别惦。
(2)所在組
當(dāng)某個用戶創(chuàng)建了一個文件后,這個文件的所在組就是該用戶所在的組夫椭。
用[ls -ahl]命令可以看到文件的所有組掸掸。
你可以通過[chgrp 組名 文件名]來修改文件所在的組
(3)其它組
除開文件的所有者和所在組的用戶外,系統(tǒng)的其它用戶都是文件的其它組益楼。
(4)改變用戶所在的組
在添加用戶時猾漫,可以指定將該用戶添加到哪個組中,同樣的用root的管理權(quán)限可以改變某個用戶所在的組:
usermod -g 組名 用戶名
你可以用
usermod -d 目錄名 用戶名 改變該用戶登陸的初始目錄
如何在linux中添加組
需要用root用戶來添加感凤,普通用戶無法進(jìn)行用戶和組的添加
添加組命令:groupadd 組名
查看linux中所有組的信息
命令:vi /etc/group
查看命令:cat /etc/group
組名:x:組ID號:
創(chuàng)建用戶悯周,并同時指定將該用戶分配到指定組。
命令:useradd -g 組名 用戶名
查看linux中所有用戶信息
可編輯查看命令:vi /etc/passwd
查看命令:cat /etc/passwd
用戶名:x:用戶ID:用戶所在組ID:注釋:/用戶主目錄/:該用戶所用的shell解釋器
設(shè)定密碼
命令:passwd 用戶名
- rw- r-- r--
-為文件類型陪竿,-為普通文件禽翼,d為文件夾,l為鏈接
rw-文件的所有者對該文件的權(quán)限。權(quán)限分三種1族跛、r可讀也會用4表示闰挡;2、W可寫也會用2表示礁哄;3长酗、X可執(zhí)行也會用1表示。
r--文件所在組對該文件的權(quán)限
r--其它組的用戶對該文件的權(quán)限
如何修改文件的訪問權(quán)限的問題桐绒?
注:修改文件訪問權(quán)限只有root用戶和文件所有者夺脾。
查看當(dāng)前操作人員命令who am i
命令chmod為修改文件訪問權(quán)限的命令。
chmod 777 用戶名
解釋:
--- --- --- 000
r-- r-- r-- 444
rw- rw- rw- 666
rwx rwx rwx 777
rwx rw- r-- 764
Linux****下程序安裝
javaee****開發(fā)環(huán)境搭建茉继,JDK的安裝
概述:要在linux下開發(fā)java程序咧叭,則需要安裝JDK。實(shí)際上目前有很多java后臺程序就是運(yùn)行在linux環(huán)境下運(yùn)行的烁竭。也是將來的發(fā)展趨勢菲茬。
JDK****的安裝步驟:
1、把鏡像ISO文件掛載到linux操作系統(tǒng)上派撕。(linux系統(tǒng)是用掛載和卸載來管理分區(qū)文件的婉弹。)
在虛擬機(jī)上做好配置,在根目錄下進(jìn)行操作:
掛載光驅(qū)命令:mount /mnt/cdrom/
掛載光驅(qū)
卸載光驅(qū)命令:umount /mnt/cdrom/
2、把安裝文件copy到/home目錄下(文件名過長要用tab鍵來自動補(bǔ)全文件名)
命令:cp 文件名 /home
3腥刹、切換目錄到/home
命令:cd /home
4马胧、安裝(./)是解壓縮命令
命令 ./ 安裝文件名.bin
輸入yes后開始安裝,輸入no不安裝衔峰。
5佩脊、看看一個文件 /etc/profile (環(huán)境配置文件)
linux下用#來作注釋蛙粘。
6、配置profile環(huán)境配置文件
javaee****開發(fā)環(huán)境搭建 eclipse的安裝
概述:要在linux下開發(fā)java程序威彰。則需要安裝JDK出牧,如果要在集成開發(fā)工具(IDE)下開,可以安裝eclipse軟件歇盼。
eclipse****安裝
1舔痕、掛載eclipse.iso文件
2、將eclipse復(fù)制到/home目錄下
3豹缀、安裝
tar.gz文件的安裝命令:tar -zxvf 文件名.tar.gz
4伯复、啟動eclipse[進(jìn)入圖開界面]
打開終端控制臺
進(jìn)入eclipse文件后
./eclipse
myeclipse****安裝同上需在圖形界面下安裝
JDK/eclipse/myeclipse三個按順序安裝后才可以使用J2EE的開發(fā)
javaee****開發(fā)環(huán)境搭建 tomcat的安裝
概述:我們知道javaee的服務(wù)器有tomcat、jboss邢笙、weblogic啸如、websphere、resin...這些都可以安裝到linux下氮惯,我們給大家安裝tomcat
tomcat用于開發(fā)小叮雳、中型項(xiàng)目(免費(fèi))jboss也是免費(fèi)的。
weblogic妇汗、websphere用于開發(fā)大型項(xiàng)目(收費(fèi))
安裝同上
注釋重點(diǎn):
bin文件安裝使用./ 文件名.bin
tar.gz文件安裝使用tar -zxvf 文件名.tar.gz
unzip解壓縮zip文件:unzip 文件名.zip
zip壓縮文件:zip 壓縮包文件名.zip 要壓縮的文件名
在圖形界面下運(yùn)行文件后要加&進(jìn)行后臺運(yùn)行
控制臺下運(yùn)行文件命令./文件名 &
./eclipse &
javaee開發(fā)環(huán)境搭建 Mysql數(shù)據(jù)庫的安裝
概述:毫無疑問帘不,沒有數(shù)據(jù)庫,javaee項(xiàng)目將會暗淡無光杨箭,所以我們必須掌握如何在linux下安裝和使用數(shù)據(jù)庫寞焙。在linux下除了microsoft的sql server不能安裝外,其它主流的數(shù)據(jù)庫都可以安裝互婿。比如Mysql棺弊、oracle、db2...關(guān)于如何在linux下安裝Mysql數(shù)據(jù)庫我們在后面講解擒悬,各位同學(xué)可以問問google大神,看看能不能自己搞定!
linux下娛樂軟件 realplay
概述:linux下一樣有很多娛樂軟件稻艰,比如播放影的軟件之王realplay懂牧。我們給大家演示一下。請注意這次我用的是.bin的安裝文件尊勿。
安裝realplay
1僧凤、把安裝文件copy到home目錄去
2、安裝./realplay
linux****分區(qū)(1)
概述:首先我們要對硬盤分區(qū)的基本概念進(jìn)行一些初步的了解元扔,硬盤的分區(qū)主要分為基本分區(qū)(Primary Partion)和擴(kuò)展分區(qū)(Extension Partion)兩種躯保,基本分區(qū)和擴(kuò)展分區(qū)的數(shù)目之和不能大于四個。且基本分區(qū)可以馬上被使用但不能再分區(qū)澎语。擴(kuò)展分區(qū)必須再進(jìn)行分區(qū)后才能使用途事,也就是說它必須還要進(jìn)行二次分區(qū)验懊。那么由擴(kuò)展分區(qū)再分下去的是什么呢?它就是邏輯分區(qū)(Logical Partion)尸变,而且邏輯分區(qū)沒有數(shù)量上限制义图。
linux****分區(qū)(2)
對windows的用戶來說,有幾個分區(qū)就有幾個驅(qū)動器召烂,并且每個分區(qū)都會獲得一個字母標(biāo)識符碱工,然后就可以選用這個字母來指定在這個分區(qū)上的文件和目錄,它們的文件結(jié)構(gòu)都是獨(dú)立的奏夫,非常好理解怕篷。但對這些用戶初上手Red Hat Linux嗎,可就有點(diǎn)惱人了酗昼。因?yàn)閷ed Hat Linux用戶來說無論有幾個分區(qū)廊谓,分給哪一目錄使用,它歸根結(jié)底就只有一個根目錄仔雷,一個獨(dú)立且唯一的文件結(jié)構(gòu)蹂析。Red Hat Linux中每個分區(qū)都是用來組成整個文件系統(tǒng)的一部分,因?yàn)樗捎昧艘环N叫“載入”的處理方法碟婆,它的整個文件系統(tǒng)中包含了一整套的文件和目錄电抚,且將一個分區(qū)和一個目錄聯(lián)系起來。這時要載入的一個分區(qū)將使它的存儲空間在一個目錄下獲得竖共。下面我們先來看看Red Hat Linux的驅(qū)動器是如何標(biāo)識的蝙叛。
/dev/sda1
sda1:sd硬盤類型,a第一塊硬盤公给,1代表分區(qū)
linux****分區(qū)(3)
對于IDE硬盤借帘,驅(qū)動器標(biāo)識符為"hdx",其中"hd"表明分區(qū)所在設(shè)備的類型淌铐,這里是指IDE硬盤了肺然。"x"為盤號(a為基本盤,b為基本從屬盤腿准,c為輔助主盤际起,d為輔助從屬盤),""代表分區(qū)吐葱,前四個分區(qū)用數(shù)字1到4表示街望,它們是主分區(qū)或擴(kuò)展分區(qū),從5開始就是邏輯分區(qū)弟跑。例灾前,hda3表示為第一個IDE硬盤上的第三個分區(qū)或擴(kuò)展分區(qū),hdb2表示為第二個IDE硬盤上的第二個主分區(qū)或擴(kuò)展分區(qū)孟辑。對于SCSI硬盤則標(biāo)識為"sdx"哎甲,SCSI硬盤是用"sd"來表示分區(qū)所在設(shè)備的類型的蔫敲,其余則和IDE硬盤的表示方法一樣。
linux****分區(qū)(4) 幾個重要的命令
掛載命令
mount [-參數(shù)][設(shè)備名稱][掛載點(diǎn)]
特別說明:在掛載光驅(qū)時烧给,可直接使用mount /mnt/cdrom/
卸載命令
umount [設(shè)備名稱]
查看磁盤使用情況
df [參數(shù)]
比如 df -l
查看某個目錄是在哪個分區(qū)
df -h
查看分區(qū)(磁盤)使用情況
df [目錄全路徑]
查看linux系統(tǒng)分區(qū)具體情況
fdisk -l
linux****安裝
linux安裝有兩種方式
1燕偶、雙操作系統(tǒng)
2、完全獨(dú)立安裝
linux安裝時础嫡,分區(qū)是關(guān)鍵
1指么、/boot引導(dǎo)分區(qū) 100M
2、/swap交換分區(qū)一般是你的物理內(nèi)存的2倍榴鼎,但不要大于256M
3伯诬、/根分區(qū)盡可能大
*:samba****服務(wù)是必需掌握的,用來于windows文件共享
linux****下shell介紹 shell的概念
概述:每個人在成功登錄linux后巫财,系統(tǒng)會出現(xiàn)不同的提示符號盗似。例如$、~平项、#等赫舒,然后你就可以開始輸入需要的命令,若是命令正確闽瓢,系統(tǒng)就會依據(jù)命令的要求來執(zhí)行枝笨,直到注銷系統(tǒng)為止盯荤,在登錄到注銷期間严沥,輸入的每個命令都會經(jīng)常解譯及執(zhí)行垃帅。而這個負(fù)責(zé)的機(jī)制就是shell
linux****下shell介紹 shell編程
概述:其實(shí)作為命令語言互動式地解釋和執(zhí)行用戶輸入的命令只是shell功能的一個方面,shell還可以用來進(jìn)行程序設(shè)計椭符。它提供了定義變量和參數(shù)的手段以及豐富的程序控制結(jié)構(gòu)荔燎。使用shell編程類似于DOS中的處理文件,稱為shell script,雙叫shell程序或shell命令文件销钝。(推薦書《linux命令有咨、編輯器和shell編程》)shell與windows下的批處理文件類似
linux****下shell介紹 shell的分類
概述:shell有很多,但常用的就幾種:
Shell名稱 開發(fā)者 命令名稱
Bourne S.R.Bourne /bin/sh
C Bill Joy /bin/csh
Kom David /bin/ksh
1蒸健、查看目前使用的是哪種shell
命令:env (該命令可以顯示當(dāng)前操作系統(tǒng)的環(huán)境變量)
2摔吏、shell的修改
命令:chsh -s /bin/[shell文件名] (不同的shell對命令的解釋不一樣)
linux****下shell介紹 shell的命令補(bǔ)全功能
概述:是指用戶輸入命令時,并不需要輸入完整的命令纵装,而系統(tǒng)自動會找出最符合的名稱。這種功能可以節(jié)省經(jīng)常輸入命令的時間据某。直接輸入"mk"再按兩下"tab"鍵橡娄,出現(xiàn)兩頭兩個字母為"mk"的命令。cat p再按兩下"tab"鍵會出現(xiàn)開頭字母為"p"的所有文件或目錄癣籽。
linux****下shell介紹 查閱歷史記錄命令****history
概述:在linux下挽唉,我們有時可能希望知道或是使用最近執(zhí)行的命令滤祖,history可能會幫上大忙。
1瓶籽、history 5 :此項(xiàng)說明會顯示最近使用的5個命令
2匠童、!5 :此項(xiàng)說明執(zhí)行歷史編號為5的命令
3、!ls :此項(xiàng)說明執(zhí)行最后一次以"ls"開頭的命令
tcp/ip****基礎(chǔ) tcp/ip的由來
概述:linux/unix的世界就是網(wǎng)絡(luò)的世界塑顺。而網(wǎng)絡(luò)的基礎(chǔ)就是tcp/ip汤求,所以一個優(yōu)秀的linux/unix程序員必須了解并掌握tcp/ip。
tcp/ip是什么
tcp/ip是unix/linux世界的網(wǎng)絡(luò)基礎(chǔ)严拒,在某種意義上扬绪,unix網(wǎng)絡(luò)就是tcp/ip,而且tcp/ip就是網(wǎng)絡(luò)互聯(lián)的標(biāo)準(zhǔn)。它不是一個獨(dú)立的協(xié)議裤唠,而是一組協(xié)議挤牛。(tcp,ip,udp,arp,rarp等協(xié)議)
tcp/ip****基礎(chǔ) osi與tcp/ip參考模型
|
osi模型(理論)
|
tcp/ip模型(現(xiàn)實(shí))
|
|
應(yīng)用層(application)
|
應(yīng)用層:(application)smtp,ftp,telnet
|
|
表示層(presention)
|
傳輸層:(transport)解釋數(shù)據(jù)
|
|
會話層(session)
|
網(wǎng)絡(luò)層:(ip)定位ip地址和連接路徑
|
|
傳輸層(transport)
|
鏈路層:(link)與硬件驅(qū)動對話
|
|
網(wǎng)絡(luò)層(ip)
| |
|
數(shù)據(jù)鏈路層(link)
| |
|
物理層(physical)
| |
tcp/ip****基礎(chǔ) ip地址與包的路由傳遞(1)
概述:每個internet上的主機(jī)和路由器都有一個ip地址。它包括網(wǎng)絡(luò)號和主機(jī)號种蘸,所有ip地址都是32位的墓赴,ip地址按照國際標(biāo)準(zhǔn)的劃分為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 目標(biāo)IP或域名
dos下測試網(wǎng)絡(luò)是否暢通:ping 目標(biāo)IP
windows查看ip情況是ipconfig
在linux/unix下查看ip情況的命令是ifconfig
linux****網(wǎng)絡(luò)環(huán)境配置(1)
第一種方法:
(1)用root身份登陸航瞭,運(yùn)行setup命令進(jìn)入到text mode setup utiliy對網(wǎng)絡(luò)進(jìn)行配置诫硕,這里可以進(jìn)行ip,子網(wǎng)掩碼沧奴,默認(rèn)網(wǎng)關(guān)痘括,dns的設(shè)置。
(2)這時網(wǎng)卡的配置沒有生效滔吠,運(yùn)行/etc/rc.d/init.d/network restart命令
我們剛才作的設(shè)置才生效
第二種方法:
(1)ifconfig eth0 X.X.X.X 對網(wǎng)卡進(jìn)行設(shè)置纲菌。(臨時生效)
(2)ifconfig eth0 network X.X.X.X 對子網(wǎng)掩碼設(shè)置。
對廣播地址和DNS使用默認(rèn)疮绷。
注意:這樣配置網(wǎng)絡(luò)將會立即生效翰舌。(臨時生效)
第三種方法:
(1)修改/etc/sysconfig/network-scripts/ifcfg-eth0這個文件里屬性可以修改。包括ip冬骚,子網(wǎng)掩碼椅贱。廣播地址,默認(rèn)網(wǎng)關(guān)只冻。
(2)這時網(wǎng)卡的配置沒有生效庇麦。運(yùn)行/etc/rc.d/init.d/network restart命令
我們剛才作的設(shè)置才生效。
這種方法是最底層的修改方法喜德。
****linux****下所有的設(shè)備都是一個文件山橄。(這個方法文便以后在linux下編程)**
/etc/sysconfig/network-scripts/ifcfg-eth0文件內(nèi)容
DEVICE=eth0 (驅(qū)動名稱)
ONBOOT=yes (系統(tǒng)啟動時默認(rèn)設(shè)備啟動)
BOOTTPROO=static (指定IP還是自動分配IP。指定IP:static舍悯;自動分配IP:dhcp)
IPADDR=192.168.44.22 (本機(jī)IP地址)
NETMASK=255.255.255.0 (子網(wǎng)掩碼)
GATEWAY=192.168.44.254 (網(wǎng)關(guān))
在虛擬機(jī)下linux與windows如何ping通航棱?
可以使用直接物理橋連睡雇;也可以使用自定義特定虛擬網(wǎng)絡(luò)。(必需在同一IP段內(nèi)才可以)
RPM****管理
概述:一種用于互聯(lián)網(wǎng)下載包的打包及安裝工具饮醇,它包含在某些linux分發(fā)版中它抱。它生成具有.RPM擴(kuò)展名的文件。RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫朴艰,這一文件格式名稱雖然打上了RedHat的標(biāo)志观蓄,但是其原始設(shè)置理念是開放式的,現(xiàn)在包括OpenLinux/S.U.S.E以及Turbo Linux等Linux的分發(fā)版本都有采用呵晚,可以算是公認(rèn)的行業(yè)標(biāo)準(zhǔn)了蜘腌。
RPM****包的名稱格式:(適于與以后軟件編程打包命名使用)
apache-1.3.23-11.i386.rpm
apache軟件名稱
1.3.23-11軟件版本號;1.3.23為主版本號,11為副版本號
i386軟件運(yùn)行的硬件平臺
rpm文件擴(kuò)展名,代表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包全路徑名稱 :安裝包到當(dāng)前系統(tǒng) 參數(shù)i=install
rpm -ivh RPM包全路徑名稱 :安裝包到當(dāng)前系統(tǒng)有提示信息
參數(shù)說明:i=install 安裝饵隙;v=verbose 提示撮珠;h=hash 進(jìn)度條
刪除RPM包
rpm -e RPM包的名稱
rpm -e jdk
如果其它軟件包依賴于您要卸載的軟件包,卸載時則會產(chǎn)生錯誤信息金矛。
如:$ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
若讓RPM忽略這個錯誤繼續(xù)卸載(這可不是一個好主意芯急,因?yàn)橐蕾囉谠撥浖某绦蚩赡軣o法運(yùn)行),請使用--nodeps命令行選項(xiàng)驶俊。
升級RPM包
rpm -U RPM包全路徑名
rpm -U cvs-1.11.2-10.i386.rpm
samba****詳解
什么是samba
這些年來娶耍,windows與linux操作系統(tǒng)各自擁有自己的用戶群和市場。然而在一般公司或?qū)W校里饼酿,可能同時有windows和linux主機(jī)榕酒,windows主機(jī)彼此之間可以得用"網(wǎng)上鄰居"來訪問共享資源,NFS也能使linux主機(jī)之間實(shí)現(xiàn)資源訪問故俐。而samba服務(wù)軟件能夠使windows與linux之間實(shí)現(xiàn)資源共享想鹰。
SMB通信協(xié)議采用的是C/S結(jié)構(gòu),所以SAMBA軟件可分為客戶端及服務(wù)端兩部分药版,通過執(zhí)行SAMBA客戶端程序辑舷,linux主機(jī)便可使用網(wǎng)絡(luò)上的windows主機(jī)所共享的資源。而在linux主機(jī)上安裝SAMBA服務(wù)器槽片,則可以使windows主機(jī)訪問SAMBA服務(wù)器共享的資源何缓。
samba****軟件的安裝
步驟如下:
1、檢查是否安裝了:samba
rpm -qa | grep samba :此命令會檢查出已經(jīng)安裝了samba軟件包还栓。
若是已經(jīng)安裝了碌廓,下面會出現(xiàn)samba軟件包的具體名稱。
2剩盒、 mount /mnt/cdrom
cd /mnt/cdrom 找到samba-common-2.2.7a-7.9.0.i386.rpm
客戶和服務(wù)器均需要的文件
rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm
rpm -ivh samba-2.2.7a-7.9.0.i386.rpm (服務(wù)器端軟件)
rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm (客戶端軟件)
cd ~
umount /mnt/cdrom
3谷婆、設(shè)置samba密碼文件
//先在linux中建立一個普通用戶
//將/etc/passwd中的用戶都加到smbpasswd中
** cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd**
//設(shè)置用戶的samba密碼
smbpasswd 用戶名
4、啟動samba服務(wù)
service smb start 啟動
service smb stop 停止
service smb restart 重啟
samba****配置
共享資源的基本設(shè)置 /etc/samba/smb.conf
1、comment : 針對共享資源所做的說明文字波材。默認(rèn)值為空字符串。
comment = dir for todayhero :共享這個目錄為todayhero這個用戶
2身隐、path : 若共享的資源是目錄廷区,是指定該目錄的位置。
path = /tmp : 共享tmp這個目錄
3贾铝、guset ok :是否允許用戶不使用帳號和密碼訪問此資源
guset ok = yes : 允許用戶不使用帳號和密碼訪問此資源
guset ok = no : 不允許用戶不使用帳號和密碼訪問此資源
4隙轻、hosts allow : 設(shè)置連接主機(jī)的地址
hosts allow = 192.168.0. server.abc.com :意思是說允許來自192.168.0.或server.abc.com訪問
5、hosets deny : 設(shè)置禁止連接的主機(jī)地址
hoset deny =192.168.2. : 意思是說不允許來自192.168.2主機(jī)訪問此samba服務(wù)器的資源垢揩。
6玖绿、read only : 用于設(shè)置共享的資源是否為只讀。
read only = yes : 允許只讀
read only = no : 可以讀寫
7叁巨、writable : 設(shè)置是否允許寫入
writable = yes : 允許寫入
writable = no : 不允許寫入
8斑匪、browseable : 設(shè)置用戶是否可看到此共享資源
browseable = yes : 允許用戶看到此資源
browseable = no : 不允許用戶看到此資源
9、available : 設(shè)置是否啟用資源共享
available = yes : 啟用資源共享
available = no : 不啟用資源共享
任務(wù)調(diào)度命令
概述:
任務(wù)調(diào)度:是指系統(tǒng)在某個時間執(zhí)行的特定的命令或程序锋勺。
任務(wù)調(diào)度分類:
1蚀瘸、系統(tǒng)工作:有些重要的工作必須周而復(fù)始的執(zhí)行。如病毒掃描等庶橱。
2贮勃、個別用戶工作:個別用戶可能希望執(zhí)行某些程序。
設(shè)置任務(wù)調(diào)度文件:/etc/crontab
設(shè)置個人任務(wù)調(diào)度苏章。執(zhí)行crontab -e命令寂嘉。接著輸入任務(wù)到調(diào)度文件
例:5 * * * * ls -l /etc/ > /tmp/to.txt
意思說每小時的第五分鐘執(zhí)行l(wèi)s -l /etc/ > /tmp/to.txt命令
任務(wù)調(diào)度的使用crontab
1、設(shè)置任務(wù) crontab -e
2枫绅、每隔一定時間去執(zhí)行
date > /home/mydatal (將當(dāng)前時間覆蓋寫入mydata1文件中泉孩。>為覆蓋寫)
date顯示當(dāng)前時間
1)希望每天凌晨2:00去執(zhí)行 date >> /home/mydate2 (>>為追加寫)
0 2 * * * date >> /home/mydate2
2)希望每分鐘去執(zhí)行
- date >> /home/mydate2
調(diào)度文件規(guī)則:
字段名稱 說明 范圍
分鐘 每小時中的第幾分鐘執(zhí)行 0-59
小時 每日的第幾個小時執(zhí)行 0-23
日期 每月的第幾天執(zhí)行 1-31
月歷 每年的第幾個月執(zhí)行 1-12
星期 每周的第幾天執(zhí)行 0-6
命令名稱 欲執(zhí)行的命令名稱及其參數(shù)
*1 *2 *3 *4 *5
*1代表分鐘 *2代表小時 *3代表日期 *4代表月歷 *5代表星期
如:0 22 26 5 * 表示星期* 5月 26日 22小時 0分鐘
完整意思為每年5月26日22小時0分執(zhí)行對應(yīng)任務(wù)。*表示設(shè)置為無設(shè)定
- *代表每分鐘執(zhí)行一次
3撑瞧、怎樣去調(diào)度多個任務(wù)棵譬?
1)在crontab -e 中直接寫多個任務(wù) (優(yōu)點(diǎn):簡單;缺點(diǎn):太多太亂修改不方便)
2)可以把所有的任務(wù)预伺,寫入到一個可執(zhí)行文件(shell編程)
.sh文件為shell文件订咸,chmod 744 mytask.sh
vi mytask.sh
date >> /home/mydate2
cp /home/mydate2 /root/
:wq
crontab -e
* * * * * /root/mytask.sh
4、如何終止任務(wù)
終止任務(wù)調(diào)度:
crontab -r :終止任務(wù)調(diào)度 (多任務(wù)多用戶使用時禁用此命令)
crontab -l :列出當(dāng)前有那些任務(wù)調(diào)度
進(jìn)程的概念和管理
基本概念
1酬诀、在linux中脏嚷,每個執(zhí)行的程序都稱為一個進(jìn)程。每一個進(jìn)程都分配一個ID號瞒御。
2父叙、每一個進(jìn)程,都會對應(yīng)一個父進(jìn)程,而這個父進(jìn)程可以復(fù)制多個子進(jìn)程趾唱。例如WWW服務(wù)器涌乳。
3、每個進(jìn)程都可能以兩種方式存在的甜癞。前臺與后臺夕晓,所謂前臺進(jìn)程就是用戶目前的屏幕上可以進(jìn)行操作的。后臺進(jìn)程則是實(shí)際在操作悠咱,但由于屏幕上無法看到的進(jìn)程蒸辆,通常使用后臺方式執(zhí)行。
4析既、一般系統(tǒng)的服務(wù)都是以后臺進(jìn)程的方式存在躬贡,而且都會常駐在系統(tǒng)中。直到關(guān)機(jī)才會結(jié)束眼坏。
進(jìn)程就是正在執(zhí)行的程序
線程(1)輕量級的進(jìn)程
(2)進(jìn)程有獨(dú)立的地址空間拂玻,線程沒有
(3)線程不能獨(dú)立存在,它是由進(jìn)程創(chuàng)建的空骚。(在linux下是fork纺讲,在java下是Thread)
(4)相對來講,線程耗費(fèi)的CPU和內(nèi)存小于進(jìn)程囤屹。
靜態(tài)顯示系統(tǒng)執(zhí)行的進(jìn)程
ps命令是用來查看目前系統(tǒng)中熬甚,有哪些正在執(zhí)行,以及它們執(zhí)行的狀況肋坚∠缋ǎ可以不加任何參數(shù)
顯示詳細(xì)的進(jìn)程信息
1、 ps -a :意思是說顯示當(dāng)前終端的所有進(jìn)程信息智厌。
2诲泌、以用戶的格式顯示進(jìn)程信息。
ps -u :以用戶的格式顯示進(jìn)程信息铣鹏。
3敷扫、顯示后臺進(jìn)程運(yùn)行參數(shù):
ps -x :顯示后臺進(jìn)程運(yùn)行的參數(shù)。
4诚卸、可以使用ps -aux 顯示全面的進(jìn)程信息葵第。
PS:顯示的信息選項(xiàng)
字段 說明
PID 進(jìn)程識別號
TTY 終端機(jī)號
TIME 此進(jìn)程所消CPU的時間
CMD 正在執(zhí)行的命令或進(jìn)程名
終止進(jìn)程kill/killall
若是某個進(jìn)程執(zhí)行一半需要停止時,或是已消耗了很大的系統(tǒng)資源時合溺,此時可以考慮停止該進(jìn)程卒密。使用kill命令來完成此項(xiàng)任務(wù)。
終止某個進(jìn)程:kill 進(jìn)程號
kill 16251 :表示終止進(jìn)程號為16251的進(jìn)程棠赛。
kill -9 16251 :因?yàn)橛行┻M(jìn)程會捕捉某些信號哮奇。如果直接不能結(jié)束進(jìn)程可以用“-9”傳送信息膛腐。
killall可以清除進(jìn)程及進(jìn)程相關(guān)的子進(jìn)程
動態(tài)監(jiān)控進(jìn)程top 退出top按q鍵或ctrl+c鍵即可退出
top與ps命令很相似。它們都用來顯示正在執(zhí)行的進(jìn)程鼎俘。top與ps最大的不同之處哲身,在于top在執(zhí)行一段時間可以更新正在運(yùn)行的進(jìn)程。
1贸伐、監(jiān)視特定用戶
top :輸入此命令律罢,按回車鍵,查看執(zhí)行的進(jìn)程棍丐。
u :然后輸入"u"回車,再輸入用戶名沧踏,即可歌逢。
2、終止指定的進(jìn)程
top :輸入此命令翘狱,按回車鍵秘案,查看執(zhí)行的進(jìn)程。
k :然后輸入"k"回車潦匈,再輸入要結(jié)束的進(jìn)程ID號阱高。
3、指定系統(tǒng)狀態(tài)更新的時間
top -d 10 :指定系統(tǒng)更新進(jìn)程的時間為10秒茬缩。
14:06:22 up系統(tǒng)時間
4 min, 系統(tǒng)啟動多久
1 user, 當(dāng)前登陸到linux有多少用戶
load avcragc: 0.02, 0.12, 0.07負(fù)載平衡赤惊,當(dāng)前系統(tǒng)的負(fù)載情況(可全加除3大
于0.6表示系統(tǒng)負(fù)載緊張)
37 processes:當(dāng)前進(jìn)程數(shù)
36 sleeping, 休眠狀態(tài)進(jìn)程數(shù)
1 running, 正在運(yùn)行進(jìn)程數(shù)
0 zombie,僵尸進(jìn)程數(shù) 進(jìn)程無用后仍占用內(nèi)存的進(jìn)程數(shù)
0 stopped處于停止?fàn)顟B(tài)的進(jìn)程數(shù)
CPU states: 0.0% user 0.1% system 0.0% nice 0.0% iowait 99.8% idle
CPU的狀態(tài) idle為CPU閑置狀態(tài)(越大越好)
Men: 255264k av, 39420k used, 215836k free, 0k shrd, 5520k buff
30632k actv, 140k in_d, 292k in_c
內(nèi)存使用情況
255264k av,內(nèi)存總數(shù)量
39420k used,正在使用內(nèi)存數(shù)量
215836k free,空閑內(nèi)存數(shù)量
Swap: 257032k av, 0k used, 257032k free 19376k cached
swap分區(qū)(虛擬內(nèi)存)使用情況
swap: 257032k av,swap分區(qū)(虛擬內(nèi)存)數(shù)量
0k used, 正在使用虛擬內(nèi)存數(shù)量
257032k free空閑虛擬內(nèi)存數(shù)量
19376k cached緩存內(nèi)存
可用此命令進(jìn)行釋放echo 3 > /proc/sys/vm/drop_caches 一般不刻意去釋放凰锡。
設(shè)置系統(tǒng)日期
1未舟、date命令:顯示系統(tǒng)的時間〉辔可以在直接輸入"date"命令裕膀。來查看系統(tǒng)的時間。
2勇哗、利用date命令來更改系統(tǒng)的時間昼扛。
date MMDDHHMMCCYY.SS:意思是指月月日日時時分分年年年年.秒秒。
3欲诺、查看月歷:
cal 3 2002 :查看2002年3月的月歷抄谐。
4、查看年歷:
cal 2008 :查看2008的年歷
監(jiān)控網(wǎng)絡(luò)狀態(tài)信息
顯示網(wǎng)絡(luò)統(tǒng)計信息的命令netstat
此命令用來顯示整個系統(tǒng)目前的網(wǎng)絡(luò)情況瞧栗。例如目前的連接斯稳、數(shù)據(jù)包傳遞數(shù)據(jù)、或是路由表內(nèi)容迹恐。此命令直接輸入即可使用挣惰。
如:netstat -anp (參數(shù)an按端口排序,參數(shù)p是顯示進(jìn)程號)
檢測主機(jī)連接命令ping:
是一種網(wǎng)絡(luò)檢查檢測工具。它主要是用檢測遠(yuǎn)程主機(jī)是否正常憎茂,或是兩部主機(jī)間的介質(zhì)是否為斷珍语、網(wǎng)線是否脫落或網(wǎng)卡故障。
如:ping 對方IP地址
顯示數(shù)據(jù)包經(jīng)過歷程命令:traceroute
traceroute 目標(biāo)IP或地址
此命令可以直接輸入使用竖幔,用來檢測數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸?shù)倪^程板乙。從本機(jī)到遠(yuǎn)程的主機(jī)完整路徑。幫助管理員解決問題拳氢。
route
所謂路由是指將數(shù)據(jù)由來源網(wǎng)絡(luò)送往目的地網(wǎng)絡(luò)的操作募逞。在大型網(wǎng)絡(luò)中,路由是非常復(fù)雜的馋评,因?yàn)閿?shù)據(jù)包在抵達(dá)目的地時放接,可能經(jīng)過的節(jié)點(diǎn)有很多,路由表是存儲在路由器或一些其它鏈接設(shè)置上的窗體留特。其中記錄著了到指定目的地的網(wǎng)絡(luò)路徑纠脾,以及這些路徑的相關(guān)數(shù)值。
此命令可以直接輸入使用蜕青,來查看本機(jī)路由的情況苟蹈。
MySql****數(shù)據(jù)庫在linux下的使用
概述:Mysql數(shù)據(jù)庫在linux下可以充分發(fā)揮威力,Mysql數(shù)據(jù)庫越來越受到軟件公司的青睞右核,為什么呢慧脱?
(1)免費(fèi)(2)跨平臺(3)輕(4)支持多并發(fā)
在北京很多軟件公司屬于創(chuàng)業(yè)型的中、小公司贺喝。從節(jié)約成本的角度考慮磷瘤。Mysql特別適合中、小項(xiàng)目搜变。
如何在linux下使用Mysql數(shù)據(jù)庫采缚。
1)把mysql數(shù)據(jù)庫的安裝文件準(zhǔn)備好,mount / copy
2)把安裝文件解壓縮
3)繼續(xù)安裝
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下文件改名命令
-
groupadd mysql (創(chuàng)建mysql用戶組)
useradd -g mysql mysql (創(chuàng)建mysql用戶并將mysql用戶放到mysql用戶組)
進(jìn)入mysql文件夾后才可以執(zhí)行下面語句
scripts/mysq1_install_db --user=mysql (初始化數(shù)據(jù)庫)
chown -R root . (修改文件的所有者, .代表當(dāng)前文件 ..代表上一級文件或文件夾;參數(shù)R是遞歸也就是文件或文件夾下所有的都繼承)
chown -R mysql data (修改date文件夾的所有者)
chgrp -R mysql . (改變用戶組)
啟動mysql
bin/mysqld.safe --user=mysql & (&表示以后臺的方式啟動)
檢查一下殖侵,OK贸呢,正常啟動
如何進(jìn)入mysql
cd /bin
./mysql -u root -p
如果希望在任何目錄下都可以進(jìn)入mysql則需要在/root/.bash_profile中添加路
徑。(所有用戶都可以使用可以在/etc/.bash_profile文件)
****修改env PATH路徑需在.bash_profile
cd /root
.bash_profile
注銷后登陸
Mysql****數(shù)據(jù)庫在linux下的使用
3)測試mysql數(shù)據(jù)庫是否可以在linux下正確使用拢军。
建立數(shù)據(jù)庫和表
加入部分?jǐn)?shù)據(jù)
編寫一個showUsers.java文件楞陷,在控制臺顯示用戶
**********特別注意mysql的驅(qū)動要存放的位置!要放在jdk下,主目錄下/jre/lib/ext**
mysql****數(shù)據(jù)庫的使用 quit命令是退出mysql操作;drop table 表名;(刪除表)
1)進(jìn)入mysql
2)建立數(shù)據(jù)庫和表
mysql> create database spdb1; (建立數(shù)據(jù)庫)
mysql> show database; (查看數(shù)據(jù)庫)
3)建表
首先
mysql> use spdb1; (在spdb1數(shù)據(jù)庫中建表)
mysql> create table users(userId varchar(8),userName varchar(8)); (建立users表)
mysql> show tables; (查看表)
4)加入數(shù)據(jù)
mysql> insert into users valucs('0001','alex');p (將數(shù)據(jù)寫入users表中)
mysql> select * from users; (查看users表中數(shù)據(jù))
mysql> desc users; (查看數(shù)據(jù)庫users表結(jié)構(gòu))
5)使用java編寫一個ShowUser.java文件茉唉,顯示數(shù)據(jù)庫中的數(shù)據(jù)
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
找到j(luò)dk
jdk****在/home/j2sdk1.4.2_07/jre/lib/ext
java ShowUsers
4)****如何使用命令行來備份和恢復(fù)mysql數(shù)據(jù)庫
備份: mysqldump -u root -p密碼 數(shù)據(jù)庫名 > data.bak (在mysql下的bin目
錄下執(zhí)行)
建空數(shù)據(jù)庫mysql> create database spdb1;
恢復(fù): mysql -u root -p密碼 數(shù)據(jù)庫名 < data.bak (在mysql下的bin目錄下
執(zhí)行,必須先建立一個空的數(shù)據(jù)庫才可以恢復(fù))
cd /mysql/bin
備份:./mysqldump -u root -p密碼 數(shù)據(jù)庫名 > /路徑/data.bak
恢復(fù): mysql -u root -p密碼 數(shù)據(jù)庫名 < data.bak
神奇的ssh
概述:ssh(securt shell)是一款集遠(yuǎn)程操作linux和進(jìn)行文件上傳和下載的軟件固蛾,那是相當(dāng)?shù)暮糜醚浇嶂矗谲浖編缀跛械膌inux程序員都會使用ssh。安全艾凯,方便是它最大的特點(diǎn)献幔。
1、安裝
linux的ssh服務(wù)端是在安裝linux時自動安裝一個sshd并默認(rèn)是啟動的趾诗。ssh
服務(wù)端的端口是22
windows下安裝ssh客戶端
2蜡感、使用ssh客戶端登陸到linux(前提是linux下的sshd服務(wù)啟動)
補(bǔ)充講解linux重要內(nèi)容
linux目錄結(jié)構(gòu)
/bin 普通用戶的可執(zhí)行命令,系統(tǒng)的任何用戶都可以執(zhí)行該目錄中的命令
/boot 存放linux操作系統(tǒng)啟動時所需使用的文件
/dev 系統(tǒng)中的所有設(shè)備文件
/etc 系統(tǒng)中的配置文件
/home 普通用戶的宿主目錄恃泪,每個用戶在該目錄下都有一個與用戶名同名的目錄
/mnt 中的子目錄用于系統(tǒng)中可移動設(shè)備的掛載點(diǎn)
/root 超級用戶root的宿主目錄
/sbin 系統(tǒng)的管理命令郑兴,普通用戶不能執(zhí)行他們
/tmp 系統(tǒng)的臨時目錄
/usr 系統(tǒng)應(yīng)用程序和相關(guān)文件
/var 系統(tǒng)中經(jīng)常變化的文件如日志文件和用戶郵件
當(dāng)前目錄 pwd命令可以顯示當(dāng)前目錄
相對路徑 以當(dāng)前目錄開始詢找目標(biāo)文件或文件夾 . .. ~
絕對路徑 以根目錄開始詢找目錄文件或文件夾 /目錄
工作目錄 就是執(zhí)行文件所在的目錄
運(yùn)行級別
命令:init [0123456]
運(yùn)行級別 0:關(guān)機(jī)
1:單用戶
2:多用戶狀態(tài)沒有網(wǎng)絡(luò)服務(wù)
3:多用戶狀態(tài)有網(wǎng)絡(luò)服務(wù)
4:系統(tǒng)未使用保留給用戶
5:圖形界面
6:系統(tǒng)重啟
常用運(yùn)行級別是3和5,要修改默認(rèn)的運(yùn)行級別可改文件
/etc/inittab的id:5:initdefault:這一行中的數(shù)字
常用命令
pwd :顯示當(dāng)前工作目錄
cd :改變目錄 (cd直接回到用戶目錄)
ls :列出文件和目錄
ls -a :顯示隱藏文件
ls -l :顯示長列表格式
mkdir :建立目錄
rmdir :刪除空目錄
touch :建立空文件
cp :復(fù)件命令 cp -r dir1 dir2 遞歸復(fù)制命令(復(fù)制子目錄信息) 參數(shù)f
覆蓋
mv :移動文件和改文件名
rm :刪除文件和目錄
rm -rf * :刪除所有內(nèi)容(包括目錄和文件) 參數(shù)r遞歸 參數(shù)f強(qiáng)制
ln :建立符號連接(類似windows的快捷方式)
ln -s 源 目錄
ln -s /etc/inittab inittab (inittab指向?qū)嶋H文件/etc/initab)
more :顯示文件內(nèi)容贝乎,帶分頁
less :顯示文件內(nèi)容帶分頁
grep :在文本中查詢內(nèi)容 (grep -n "內(nèi)容" 文件名/目錄*)
| :管道命令 | : find / -name *.html |grep bookmark
在find的結(jié)果中查找字符串"bookmark",顯示包含這個字符串的文件
find :搜索文件及目錄
在linux中杈笔,因?yàn)槲募到y(tǒng)是以級別式的結(jié)構(gòu)來組成的,所以要在整
個系統(tǒng)中找到特定的文件和目錄并不是件容易的事糕非,而"find"命令
可以解決上述問題。
find的使用
在特定的目錄下搜索并顯示指定名稱的文件和目錄
搜索一段時間內(nèi)被存取/變更的文件或目錄
find /home -amin -10 十分鐘內(nèi)存取的文件或目錄
find /home -atime -10 十小時內(nèi)存取的文件或目錄
find /home -cmin -10 十分鐘內(nèi)更改過的文件或目錄
find /home -ctime +10 十小時前更改過的文件或目錄
按文件大小進(jìn)行搜索文件
find /home -size +10k 意思是說查找/home目錄下大小為10k的文件
重定向命令 > 覆蓋 >>追加 <導(dǎo)入
ls -l > a.txt 列表的內(nèi)容寫入文件a.txt中(覆蓋寫)
ls -al >> aa.txt 列表的內(nèi)容追加到文件aa.txt
從文件中輸入信息database.program < database.data
shell****使用
命令歷史和互動:用上下箭頭鍵可以重復(fù)以前所輸入的命令
命令完成功能:用tab鍵能自動完成相關(guān)命令球榆,再次按tab可得到清單
shell腳本文件:是一個文本文件/命令集合/有執(zhí)行的權(quán)限chmod 744 文件名
執(zhí)行方式(./文件名)/(.sh后綴名的文件是shell文件)
用戶登錄后自動執(zhí)行的shell腳本文件:
.bashrc位于主目錄下
它之前執(zhí)行系統(tǒng)的腳本/etc/bashrc主要是基本配置數(shù)據(jù) (/etc/bashrc相當(dāng)于windows下的自動批處理文件autoexec.bat)
.bash_profile位于主目錄下
它之前執(zhí)行系統(tǒng)的腳本/etc/profile主要是配置環(huán)境變更
當(dāng)希望臨時加入一個路徑時押搪,可使用export
用export PATH=HOME/bin:/root/test/tl
輸出環(huán)境變量PATH引用原來的值HOME表示工作主目錄:是路徑分隔符
已定義好的環(huán)境變量:
SHELL :默認(rèn)shell
PATH :路徑
USER :當(dāng)前登錄用戶的用戶名
顯示變量內(nèi)容:echo $PATH
echo $USER
echo $SHELL
通配符: * 代表多個字母或數(shù)字
? 代表一個字母或數(shù)字
ls a* ls a? ls ?at? ls f080[1-6].tif
轉(zhuǎn)義字符: \
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顯示系統(tǒng)當(dāng)前定義的所有alias
alias 別名='命令或命令組'
alias cp='cp -i'
alias ll='ls -l --color=tty'
linux****啟動過程分析
runlevel命令 可以查看當(dāng)前的運(yùn)行級別
linux系統(tǒng)啟動過程如下:
a)BIOS自檢
b)啟動GRUB/LILO
c)運(yùn)行LINUX內(nèi)核并檢測硬件
d)運(yùn)行系統(tǒng)的第一個進(jìn)程init
e)init讀取系統(tǒng)引導(dǎo)配置文件/etc/inittab中的信息進(jìn)行初始化
f)/etc/rc.d/rc.sysinit系統(tǒng)初始化腳本
g)/etc/rc.d/rcX.d/[KS]* - 根據(jù)運(yùn)行級別X配置服務(wù)
終止以"K"開頭的服務(wù)
啟動以"S"開頭的服務(wù)
h)/etc/rc.d/rc.local 執(zhí)行本地特殊配置
i)其他特殊服務(wù)
壓縮和解壓問題
以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 [文件夾路徑]
將當(dāng)前目錄下的子目錄一起壓縮
4浪箭、忽略子目錄的內(nèi)容
zip -j file.zip
5、將已壓縮的或沒有必要壓縮的文件去掉
zip -n .mpg: .jpg: .gif
第一種文件中間要用“:”分開辨绊。
6奶栖、壓縮某一日之后的文件
zip -t 102002 file.zip
意思是指將當(dāng)前目錄下的2002年10月20日之后文件壓縮
7、不壓縮鏈接文件的原文件
zip -y file.zip
8门坷、壓縮率問題宣鄙。-1—-9:-9的壓縮率最高
zip -9 file.zip
9、將不需要壓縮的文件排除在外
zip file.zip * -x file2.txt
在壓縮時默蚌,將當(dāng)前目錄內(nèi)的file2.txt文件排除在外
以unzip命令進(jìn)行.zip文件的解壓縮
1冻晤、直接解壓縮文件
unzip file.zip
2、排除不需要解壓縮的文件
unzip file.zip -x file2
意思是說除了file2文件外绸吸,其他的文件解壓縮
3鼻弧、查看壓縮包的內(nèi)容
unzip -Z file.zip
查看file.zip壓縮包的內(nèi)容设江。也可用"-l"、"-v"來查看壓縮包的內(nèi)容
以gzip和gunzip處理.gz文件
1温数、直接解壓縮文件
unzip file.zip
2绣硝、排除不需要解壓縮的文件
unzip file.zip -x file2
意思是說除了file2文件外,其他的文件都解壓縮
3撑刺、查看壓縮包的內(nèi)容
unzip -Z file.zip
查看file.zip壓縮包的內(nèi)容鹉胖。也可以使用"-l"、"-v"來查看壓縮包的內(nèi)容
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命令作用是解壓文件甫菠,使用權(quán)限是所有用戶。
2.格式
gunzip [-acfhlLnNqrtvV][-s ][文件...]
或者gunzip [-acfhlLnNqrtvV][-s ][目錄]
3.主要參數(shù)
-a或--ascii:使用ASCII文字模式冕屯。
-c或--stdout或--to-stdout:把解壓后的文件輸出到標(biāo)準(zhǔn)輸出設(shè)備寂诱。
-f或-force:強(qiáng)行解開壓縮文件,不理會文件名稱或硬連接是否存在安聘,以及該文
件是否為符號連接痰洒。
-h或--help:在線幫助。
-l或--list:列出壓縮文件的相關(guān)信息浴韭。
-L或--license:顯示版本與版權(quán)信息丘喻。
-n或--no-name:解壓縮時,若壓縮文件內(nèi)含有原來的文件名稱及時間戳記念颈,則將其忽略不予處理泉粉。
-N或--name:解壓縮時,若壓縮文件內(nèi)含有原來的文件名稱及時間戳記榴芳,則將其回存到解開的文件上嗡靡。
-q或--quiet:不顯示警告信息。
-r或--recursive:遞歸處理窟感,將指定目錄下的所有文件及子目錄一并處理讨彼。
-S或--suffix:更改壓縮字尾字符串。
-t或--test:測試壓縮文件是否正確無誤柿祈。
-v或--verbose:顯示指令執(zhí)行過程点骑。
-V或--version:顯示版本信息。
4.說明
gunzip是個使用廣泛的解壓縮程序谍夭,它用于解開被gzip壓縮過的文件黑滴,這些壓縮文件預(yù)設(shè)最后的擴(kuò)展名為“.gz”。事實(shí)上紧索,gunzip就是gzip的硬連接袁辈,因此不論是壓縮或解壓縮,都可通過gzip指令單獨(dú)完成珠漂。
linux****下java網(wǎng)絡(luò)編程 -my qq
linux下網(wǎng)絡(luò)編程是linux最讓程序員著迷的地方晚缩,我們看看如何在linux進(jìn)行網(wǎng)絡(luò)編程尾膊。最終大家可以在這個基礎(chǔ)上擴(kuò)展為my qq的程序,并且會使用到mysql數(shù)據(jù)庫荞彼。
你將學(xué)習(xí)到:
1冈敛、如何使用java進(jìn)行socket編程
2、如何在java中對mysql數(shù)據(jù)庫操作
3鸣皂、windows和linux網(wǎng)絡(luò)通訊
4抓谴、了解什么是網(wǎng)絡(luò)服務(wù)這個晦澀的概念
**linux****下java開發(fā)my qq server **
vi MyServerText.java
import java.io.*; //引用java.io包
import java.net.*; //引用.net包
//服務(wù)器端
public class MyServerText {
public static void main(String []args){
try{
//創(chuàng)建ServertSocket
ServertSocket ss=new ServerSocket(8888);
System.out.println("i am listening");
//監(jiān)聽,直到某個客戶端來連接,一但連接成功寞缝,就會得到
//Socket[好象是一個數(shù)據(jù)管道]
Socket s=ss.accept();
//可以讀取從客戶端發(fā)送的信息
InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br=new BufferedReader(isr);
String kk=br.readLine();
System.out.println("client send :::"+kk);
//從服務(wù)器端癌压,回一個消息
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);
//通過文件流發(fā)送消息
OutputStreamWriter osw=new OutputStreamWriter(s.getOutputStream());
BufferedWriter bw=new BufferedWriter(osw);
PrintWriter pw=new PrintWriter(bw,true);
//發(fā)送
pw.println("hello,world!!");
//讀取從服務(wù)器回送的信息
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();
}
}
}