韓順平linux開(kāi)篇
切換用戶:su 或者 logout 用戶名 :logout 后面還要加 root
一:linux系統(tǒng)管理員 注重管理
二:linux程序員: 注重開(kāi)發(fā) 需要C/C++,java,php,jsp...
1:linux軟件工程師——PC
2:linux嵌入式開(kāi)發(fā)——單片機(jī),芯片
學(xué)習(xí)linux的流程:
一:linux平臺(tái)上的開(kāi)發(fā),包括vi,gcc,gdb,make,jdk,tomcat ,mysql......和linux基礎(chǔ)操作
二:加厚c語(yǔ)言功底 《C專(zhuān)家編程》或java語(yǔ)言
三:學(xué)習(xí)unix換金高級(jí)編程《unix環(huán)境高級(jí)編程》
四:linux應(yīng)用開(kāi)發(fā)或者linux嵌入式開(kāi)發(fā)
內(nèi)容介紹:
一:基礎(chǔ)部分:
1:linux基礎(chǔ)知識(shí)
2:linux常用命令80個(gè)
3:linux分區(qū)/vi/權(quán)限……
二:實(shí)用部分
1:Samba安裝與配置
2:linux網(wǎng)絡(luò)環(huán)境配置
3:crontab使用
4:jdk/apache/mysql/ssh/rpm安裝與配置
5:linux下java網(wǎng)絡(luò)配置 (很好)
6:shell初步介紹
書(shū)籍推薦:
1:鳥(niǎo)哥私房菜
2:linux從入門(mén)到精通
3:linux內(nèi)核完全解析
第一章:基礎(chǔ)介紹
1:linux的初步介紹——linux是什么,以及是用來(lái)干嘛的
2:linux的第一次接觸——常用命令80個(gè)
3:linux用戶管理
4:linux常用命令
5:linux下所有者、所在組和其他組的介紹
6:linux下文件和目錄權(quán)限機(jī)制
Linux無(wú)法超越的優(yōu)點(diǎn):
1:免費(fèi)/開(kāi)源
2:支持多線程/多用戶 (多線程——線程可以并發(fā))
3:安全性好
4:對(duì)內(nèi)存和文件管理有優(yōu)越的方法——
linux最小只要4M內(nèi)存——所以可以做嵌入式開(kāi)發(fā)
缺點(diǎn):操作相對(duì)困難
1960年 MIT麻省理工學(xué)院 30個(gè)人同時(shí)使用
1965年 MIT, GE,bell貝爾實(shí)驗(yàn)室 決定分時(shí)操作系統(tǒng)由30人上升為300人分時(shí)操作,叫做multis計(jì)劃—火星計(jì)劃
1969年 火星計(jì)劃終于失敗了,Ken Tompson(C語(yǔ)言創(chuàng)始)開(kāi)發(fā)了一個(gè)file server system文件系統(tǒng),并且在bell得到推廣。
1973年 Ken和Dennis Richres在文件管理系統(tǒng)之上開(kāi)發(fā)了一個(gè)系統(tǒng)UNIX——開(kāi)源
源碼內(nèi)核共享出現(xiàn)了幾個(gè)公司:IBM推出了AIX系統(tǒng)
SUN開(kāi)發(fā)solaris系統(tǒng)
HP的hp unix
伯克利分校
1991—1994 Linus Torvalds在PC386——minix移植到pc linux第一版
Redhat
s.u.s.c 歐洲流行
紅旗linux
一:命令
1:登錄: root 回車(chē) 輸入密碼 登錄時(shí)盡量少用root賬戶登錄,避免操作失誤
用普通用戶登錄,登陸后用 su- 命令來(lái)切換成系統(tǒng)管理員身份
2:進(jìn)入圖形界面: startx 回車(chē) 一般程序員不裝圖形界面
點(diǎn)擊 log out 退出圖形界面
3:關(guān)機(jī): shutdown –h now 立即進(jìn)行關(guān)機(jī)
shutdown –r now 現(xiàn)在重新啟動(dòng)計(jì)算機(jī)
reboot 現(xiàn)在重新啟動(dòng)計(jì)算機(jī)
4:su- 命令來(lái)切換成系統(tǒng)管理員身份
5:logou 注銷(xiāo)
二:vi編輯器的使用—以防別人來(lái)考你
書(shū)籍:《vi的使用.pdf》 不用看了
引例:
約瑟夫問(wèn)題——丟手帕問(wèn)題: 鏈表或者數(shù)組
5個(gè)人圍成一圈1—5號(hào),規(guī)定數(shù)到4時(shí)候出列。自己畫(huà)圖數(shù)
從1號(hào)開(kāi)始數(shù),數(shù)到4是4號(hào)出列,4號(hào)出列——1234
從5號(hào)開(kāi)始數(shù)1,數(shù)到4的時(shí)候是3號(hào),3號(hào)出列5123
又從5號(hào)開(kāi)始數(shù),數(shù)到5號(hào)出列,5125
從1開(kāi)始數(shù),1212,2出列
把vi編輯器當(dāng)做記事本就行了
任務(wù)1:linux開(kāi)發(fā)java
vi開(kāi)發(fā):使用vi在linux下,開(kāi)發(fā)一個(gè)簡(jiǎn)單的java程序Hello.java,并且在linux下運(yùn)行成功
開(kāi)發(fā)步驟:
1:Vi Hellow.java 回車(chē)
2: 輸入i, 進(jìn)入到插入模式,可以寫(xiě)東西了
public class Hello{
public static void main(String[larys]){
System.out.println(“hello,world”);
}
3:輸入esc,進(jìn)入命令模式
4:輸入冒號(hào):光標(biāo)定位到下面了
兩個(gè)選擇: 1:保存退出 wq
2:直接退出,不保存 q!
找不到文件,文件去哪了呢
敲擊命令:ls 回車(chē):會(huì)看到當(dāng)前目錄的所有文件
ls –l 回車(chē):會(huì)看到文件的詳細(xì)資料
5:編譯:javac Hello.java
命令:javac Hello.java 回車(chē) javac 文件名 成功沒(méi)有消息,編譯失敗有消息
再次輸入ls –l :會(huì)發(fā)現(xiàn)多了一個(gè)文件 Hello.class
6:運(yùn)行程序:java Hello //不是寫(xiě)java Hello.class
雖然運(yùn)行的是class文件,但是不寫(xiě)java Hello.class
回車(chē)直接打印Hello,world
任務(wù)2:如何在linux下開(kāi)發(fā)c程序 cpp程序或者c++程序
命令: vi Hello.cpp 回車(chē)
#include<stdio.h>
int main()
{
printf(“hello!”)
return 0;
}
esc
輸入冒號(hào):
保存 wq
ls –l
gcc Hello.c 生成兩個(gè)文件:Hello.class Hello.cpp
gcc Hello.cpp //gcc是c的編譯
再ls 多出來(lái)一個(gè)a.out程序,默認(rèn)的
運(yùn)行c程序: ./a.out 打印出來(lái)Hello!
問(wèn)題:如果再來(lái)一個(gè)c程序, a.out會(huì)被屏蔽
解決方案:
gcc –o xiaobu Hello.cpp //按照xiaobu來(lái)命名 o代表output的意思
注意:程序?qū)戝e(cuò)了,保存之后,編譯之后又錯(cuò)誤提示
解決辦法:在打開(kāi)那個(gè)文件,再次編輯 vi …
三:linux下的文件目錄管理
Linux的文件系統(tǒng)是采用級(jí)層式的樹(shù)狀目錄結(jié)構(gòu),在此結(jié)構(gòu)中的最上層是根目錄“/”,然后在此目錄下再創(chuàng)建其他的目錄。
/:linux文件系統(tǒng)的上層根目錄
1:/root目錄:存放root用戶的相關(guān)文件,管理員的主目錄
2:/home目錄:存放普通用戶的相關(guān)文件 一般用戶的主目錄或FTP站點(diǎn)目錄 //新建 xiaobu
3:/bin目錄:存放常用命令的目錄 存放用戶可執(zhí)行的程序
4:/sbin目錄:要具有一定權(quán)限才可使用的命令 存放系統(tǒng)啟動(dòng)時(shí)說(shuō)需執(zhí)行的程序
5:/mnt目錄:默認(rèn)掛載光驅(qū)和軟驅(qū)的目錄 裝置的文件系統(tǒng)加載點(diǎn),例如罐區(qū),軟盤(pán)
6:/etc目錄:存放配置相關(guān)文件 有關(guān)系統(tǒng)配置和管理的文件
7:/var目錄:存放經(jīng)常變化的數(shù)據(jù) 具變動(dòng)性質(zhì)的相關(guān)程序目錄log
8:/boot目錄:存放引導(dǎo)文件相關(guān)的文件 操作系統(tǒng)啟動(dòng)時(shí)所需的文件 //不能刪除
9:/usr目錄:安裝一個(gè)軟件的默認(rèn)安裝文件夾 存放用戶的使用系統(tǒng)命令和應(yīng)用程序等信息 類(lèi)似windows里面的program文件夾
10:/dev目錄:接口設(shè)備文件目錄 ,如had表示硬盤(pán)
11:/proc目錄:目前系統(tǒng)核心與程序執(zhí)行的信息
12:/tmp目錄:用來(lái)存放暫存盤(pán)的目錄
命令
cd / //cd命令是切換目錄,再加一個(gè) / ,
再用命令 ls看一下目錄下的文件:bin dev home lib misc opt root tmp var……
或者用命令 dir顯示當(dāng)前目錄下的文件:bin dev home lib misc opt root tmp var……
cd bin/
再用 ls看一下
或者ls –la
如果想顯示當(dāng)前在哪個(gè)路徑/目錄下面:命令pwd 回車(chē)
Pwd: print working directory 命令顯示整個(gè)路徑名
cd /home/ //切換到home目錄下面
pwd // 顯示在哪個(gè)路徑下面
/home //顯示的那個(gè)路徑下面
四:linux的用戶管理
1:Useradd 用戶名——添加用戶
2:passwd 用戶名——修改密碼
3:userdel 用戶名——?jiǎng)h除用戶 他寫(xiě)的東西程序要保留
4:userdel –r 用戶名——?jiǎng)h除用戶以及用戶主目錄
1:添加一個(gè)用戶:只有root用戶或者具有root權(quán)限的人才可以
useradd xiaoming 回車(chē)就添加成功了 //沒(méi)有提示就表示成功了
2:設(shè)置密碼
passwd xiaoming 回車(chē)
New password:
設(shè)置成功提示:all authentication tokens updated successfully
所以home目錄下面會(huì)有xiaoming目錄:
home 下面ls或者dir
會(huì)出現(xiàn)xiaoming
pwd //顯示在哪個(gè)目錄下面
logout //登錄
xiaoming 回車(chē)
passward: 輸入密碼
提示符由#變成了$
再輸入pwd
/home/xiaoming
五:linux的常用命令1:指定運(yùn)行級(jí)別
用root用戶
輸入: init 3 或者init 5
命令:init[0123456
運(yùn)行級(jí)別:
0:關(guān)機(jī)
1:?jiǎn)斡脩?/span>
2:多用戶狀態(tài)沒(méi)有網(wǎng)絡(luò)服務(wù)
3:多用戶狀態(tài)有網(wǎng)絡(luò)服務(wù) //默認(rèn)狀態(tài)
4:系統(tǒng)未使用保留給用戶
5:圖形界面
6:系統(tǒng)重啟
常用運(yùn)行級(jí)別是3和5,要修改默認(rèn)的運(yùn)行級(jí)別可修改文件/etc/inittab的
id:5:initdefault:這一行中的數(shù)字
用root用戶:
輸入: vi /etc/inittab 回車(chē)
修改: id:3:initdefault
保存?
問(wèn)題:如果改成6之后,重新啟動(dòng),怎么樣改回來(lái)
解決修改錯(cuò)誤配置的方法 或者如何找回丟失的密碼
解決:開(kāi)機(jī)數(shù)秒的時(shí)候按下“e”,在進(jìn)入grub引導(dǎo)界面時(shí)候,按下e
選中第二行kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
再輸入一個(gè)e,就選中這個(gè)第二行
進(jìn)去之后輸入: 空格 1 [單用戶級(jí)別] kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ 1
再回車(chē),按b,直接進(jìn)入當(dāng)用戶模式,就可以改配置文件了
不輸入3和5,沒(méi)有意義 因?yàn)橹挥挟?dāng)用戶級(jí)別,系統(tǒng)不會(huì)看id:3:initdefault這行
單用戶1也可以修改密碼
改密碼:進(jìn)入進(jìn)行了,單用戶不用輸入密碼的
改密碼時(shí)候 不用輸入原密碼
六:linux的常用命令2—用google
pwd 顯示當(dāng)前工作目錄
cd 改變目錄
ls 列出文件和目錄
ls –a 顯示隱藏文件
ls –l 顯示長(zhǎng)列表格式
ls -al
mkdir 建立目錄
rmdir 刪除空目錄
例:mkdir aaa 回車(chē) //文件夾
再用ls –l來(lái)看一下就行了
rmdir aaa //刪除目錄
如果目錄里面有東西,則得用另外的
touch 建立空文件夾
cp 復(fù)制
cp –r dir1 dir2 遞歸復(fù)制(復(fù)制子目錄信息)
mv 移動(dòng)文件和改文件文件名
rm 刪除文件和目錄
rm -rf 刪除所有內(nèi)容(包括目錄和文件) r遞歸 f強(qiáng)制
ln 建立符號(hào)連接
ln -s 源目標(biāo)
ln -s /etc/inittab inittab //inittab指向?qū)嶋H文件/etc/inittab
例:
把a(bǔ).out 拷貝到home下的xiaobu目錄下:
cp a.out /home/xiaobu/
注:/home/x 之后按tab鍵,會(huì)出來(lái)剩下的 xiaobu 按兩下,會(huì)出來(lái)提示
more 顯示文件內(nèi)容,帶分頁(yè) 下一頁(yè)是空格鍵 上一頁(yè)是 pageup+ctrl鍵
less 顯示文件內(nèi)容帶分頁(yè)
grep 在文本中查詢某一個(gè)關(guān)鍵詞
| 管道 命令
在linux和unix系統(tǒng)中 |就是管道命令 ——怎么理解?
把上一個(gè)命令的結(jié)果交給|的后面的命令處理
例:
ls –l /etc/ 回車(chē) //東西太多,沒(méi)看完,上面看不到
ls -l /etc/ |more
先建立一個(gè)文件,任意輸入字母,要從里面找到某一個(gè)關(guān)鍵詞
grep “include” Hello.cpp
顯示行數(shù):
grep -n “xiaobu” Hello.cpp
man 手冊(cè)的意思maual 相當(dāng)于dos下的help
man grep
find 搜索文件及目錄
1:在特定的目錄下搜索并顯示制定名稱(chēng)的文件和目錄
find / -name aaa.java //在根目錄下查找 aaa.java文件
find /root/ -name aaa.java //在root目錄下查找aaa.java文件
2:搜索一段時(shí)間內(nèi)被存取/變更的文件或者目錄
find /home –amin -10 十分鐘內(nèi)存取的文件或目錄
find /home –atime -10 十小時(shí)內(nèi)存取的文件或者目錄
find /home –cmin -10 十分鐘內(nèi)更改的文件或者目錄
find /home –ctime +10 十小時(shí)前更改過(guò)的文件或者目錄
3:搜索指定大小的文件
find /home –size +10k 查找/home目錄下大小為10k的文件或者目錄
重定向命令: 例如統(tǒng)計(jì)信息等數(shù)字
ls –l > a.txt 列表的內(nèi)容(一個(gè)結(jié)果)寫(xiě)入文件a.txt中 (> 覆蓋寫(xiě))
ls -al >> aa.txt 列表的內(nèi)容最佳到文件aa.txt的末尾 (>> 追加寫(xiě))
從文件中輸入信息database_program<database_data
例:
grep –n “xiaobu” aaa.java
grep –n “xiaobu” aaa.java > xiaobu.txt 把上面那個(gè)結(jié)果存儲(chǔ)到xiaobu.txt中去了
ls 之后發(fā)現(xiàn)有xiaobu.txt
看下里面是什么東西
vi xiaobu.txt
里面就是這個(gè)信息
第七章:文件目錄權(quán)限+文件所有者、所在組、其他組
在linux中的每個(gè)用戶必須屬于一個(gè)組。
概念:
1:所有者:一般為文件的創(chuàng)建者,誰(shuí)創(chuàng)建了該文件,就成為該文件的所有者
用ls –ahl命令可以看到文件的所有者
用chown 用戶名 文件名 來(lái)修改文件的所有者
2:所在組
當(dāng)某個(gè)用戶穿件了一個(gè)文件后,這個(gè)文件的所在組就是該用戶所在的組
用ls –ahl 命令可以看到文件的所有組
用chgrp 組名 文件名 來(lái)修改文件所在的組
3:其他組
除開(kāi)文件的所有者和所在組的用戶外,系統(tǒng)的其他用戶都是文件的其他組
4:改變用戶所在的組
在添加用戶時(shí),可以指定將該用戶添加到哪個(gè)組中,同樣的用root的管理權(quán)限可以改變某個(gè)用戶所在的組
usermod -g 組名 用戶名
usermod -g 目錄名 用戶名 改變?cè)撚脩舻顷懙某跏寄夸?/span>
例:用戶的添加 用root用戶
兩個(gè)組:A B
三個(gè)用戶: a,b,c
A組包括a,b
B組包括c
1:如何在linux中添加組:root用戶
groupadd A //添加了組A 要查看linux中所有組的信息:vi /etc/group
cat /etc/group 只查看,不修改
groupadd B //添加了組B
2:查看組
輸入:cat /etc/group | more 查看組
3:創(chuàng)建用戶,并同時(shí)指定將該用戶分配到哪個(gè)組
user -g 組名 用戶名 g是group的意思
useradd -g A a
useradd -g A b
useradd -g B c
4:查看linux中所有用戶信息
vi /etc/passwd
cat /etc/passwd
5:給他們分配密碼
passwd a 回車(chē)
passwd b 回車(chē)
passwd c 回車(chē)
——————————————————————————————————————
第二歩:
用a登錄到linux創(chuàng)建文件
1:登錄a用戶名
logout
login: a
2:創(chuàng)建一個(gè)文件mytest1.java
vi mytest1.java
wq保存
ls –l查看信息
-rw---r—r-- 表示各類(lèi)用戶對(duì)該文件的操作權(quán)限
第一個(gè)字符:代表: 文件 — ; 目錄 d ; 鏈接 l ;
其余字符每三個(gè)一組rwx 4+2+1=7 讀:r 寫(xiě):w 執(zhí)行:l
rw- :文件的所有者對(duì)該文件的權(quán)限
權(quán)限: r: 可讀 用4表示
w:可寫(xiě) 用2表示
x: 可執(zhí)行 用1表示
r-- :文件所在組對(duì)該文件的權(quán)限
r--: 其他組的用戶對(duì)該文件的權(quán)限
3:
問(wèn)題:
用b用戶登錄之后,不能打開(kāi)a目錄下的mytest1.java文件
cd a
提示:permission denied 不行
所以要a用戶允許b進(jìn)入到a的總目錄:
如何修改文件的訪問(wèn)權(quán)限的問(wèn)題:
cd ..
到home目錄下
ls –l
結(jié)果:
dwrx------ :所以b用戶不能進(jìn)入
修改:
chmod 777 a
提示:operation not permitted
因?yàn)橛玫氖莃用戶,只有兩個(gè)用戶可以改變:root和a用戶
又登錄a用戶logout
login:a
ls
cd ..
ls -l
看下自己是誰(shuí):
who am i
修改:
chmod 777 a
777: 4+2+1 對(duì)所有者的權(quán)限修改:對(duì)所有者所在組的權(quán)限修改:對(duì)其他組的用戶的權(quán)限修改
再用b用戶進(jìn)去:
login:b
ls
cd ..
ls
cd a/
dir
結(jié)果:mytest1.java
ls -l
結(jié)果:-rw-r—r-- 1 a A mytest1.java
//b只讀mytest1.java
現(xiàn)在可以讀了:
vi mytest1.java
把c用戶移動(dòng)到另外一個(gè)組A里面:
要在root的管理權(quán)限修改:
usermod -g 組名 用戶名
另外,可以用usermod -d 目錄名 用戶名 改變改用戶登陸的初始目錄
login: root
usermod -g A c
用cat來(lái)查看結(jié)果:
cat /etc/passd
第二天:
目錄:
1:如何在linux下搭建java ee開(kāi)發(fā)環(huán)境:四個(gè):jdk eclipse mysql數(shù)據(jù)庫(kù) 。。。
2:linux下可以使用realpay嗎
3:linux下可以使用qq嗎
4:linux分區(qū)講解——掛載的概念
5:redhat9.0的安裝演示
一:jdk的安裝
安裝步驟:
1:把一個(gè)mypacket.iso掛載到linux操作系統(tǒng)上
虛擬機(jī)vm里面設(shè)置,CD-ROM 使用ISO鏡像 瀏覽
命令:mount /mnt/cdrom
再進(jìn)去就可以了:
cd /mnt/cdrom/
————————————————————————————————
命令
mount /mnt/cdrom/ 回車(chē)
cd /mnt/cdrom/
ls
結(jié)果:多了很多文件,就是iso里面的
pwd
結(jié)果:/mnt/cdrom
如果不需要這個(gè)掛載
cd / 進(jìn)入根目錄
umount /mnt/cdrom/
驗(yàn)證:再去看測(cè)個(gè)文件夾即可
cd /mnt/cdrom
ls
結(jié)果:沒(méi)有
方法二:用其他方式把windows的文件拿到linux中用
Vm虛擬機(jī) 設(shè)置 選項(xiàng) 共享文件夾——添加
2:把安裝文件拷貝到home目錄下面去
命令:cp 文件名 /home
cp j2(tab鍵直接出來(lái)) /home
驗(yàn)證:切換到home目錄下面查看,有那個(gè)文件
cd /home/
ls
3:cd /home 切換到home目錄下面
4:安裝
命令: ./j2sdk文件.bin 解壓縮
查看某個(gè)目錄實(shí)在哪個(gè)分區(qū)
df 目錄全路徑
查看linux系統(tǒng)分區(qū)的具體情況
fdisk -1
例:
想知道home目錄與哪個(gè)分區(qū)掛載的
df /home 回車(chē)
Linux的安裝:雙操作系統(tǒng)或者虛擬機(jī)安裝
安裝文件iso文件
新建虛擬機(jī)
選擇red hat
選擇位置(即從windows里面分一塊出來(lái))
分配空間大小
點(diǎn)擊 菜單欄上的 虛擬機(jī) 按鈕
點(diǎn)擊設(shè)置,CDROM ,使用ISO文件來(lái)啟動(dòng),瀏覽redhat文件,進(jìn)入安裝界面
換一張盤(pán)也是這里
1:CD Found
Tab鍵切換到skip //ok代表對(duì)ISO文件進(jìn)行檢測(cè),skip不檢測(cè)
2:選擇簡(jiǎn)體中文
3:鍵盤(pán)配置:選 U.S. English
鼠標(biāo)配置 檢測(cè)到啥就是啥
4:個(gè)人桌面:家庭普通使用
工作站:軟件開(kāi)發(fā)或者系統(tǒng)管理
服務(wù)器:做網(wǎng)站
定制:
選定制
5:磁盤(pán)分區(qū)——用Disk Druid手動(dòng)分區(qū) 不用自動(dòng)分區(qū)
新建:
點(diǎn)擊:掛載點(diǎn)
/boot 100m
swap 交換分區(qū) 一般是物理內(nèi)存的兩倍,不要大于256m 用256m
/ 根分區(qū) 盡可能大
網(wǎng)絡(luò)配置:以后解決
6:選擇軟件包
桌面一個(gè): X串口系統(tǒng) + GNCME 桌面環(huán)境(一定要)
應(yīng)用程序:編輯器,圖形化互聯(lián)網(wǎng),基于文本的互聯(lián)網(wǎng),辦公,生產(chǎn)率,視頻和音頻,圖形
服務(wù)器:之后自己裝 郵件服務(wù)器 FTP服務(wù)器 SQL服務(wù)器
開(kāi)發(fā): 開(kāi)發(fā)工具,內(nèi)核開(kāi)發(fā),桌面開(kāi)發(fā)………
第三天:
目錄:
1:linux下的shell
2:tcp/ip基礎(chǔ)
3:linux網(wǎng)絡(luò)環(huán)境配置
4:rpm包管理
5:samba安裝和配置
Windows和windows的兩個(gè)之間用與網(wǎng)絡(luò)鄰居
Windows和linux之間用samba服務(wù)器
一:linux下shell概念

Linux編程推薦書(shū)籍:《linux命令、編輯器和shell編程》
常用的shell分類(lèi):
Shell名稱(chēng) 命令名稱(chēng)
Bourne /bin/sh
C /bin/csh
Kom /bin/ksh
1:查找shell命令: ls -l /bin/*sh
2:參看目前使用的是哪種shell
env //該命令可以顯示當(dāng)前操作系統(tǒng)的環(huán)境變量
env | more 加個(gè)管道
結(jié)果:SHELL=/bin/bash
3:修改shell
直接輸入:
chsh -s 輸入新的shell 如/bin/csh
chsh -s /bin/csh
4:命令補(bǔ)全功能
例如:mkdir
mk 再按來(lái)你兩下tab鍵,會(huì)出現(xiàn)兩個(gè)字母為mk的命令
cat p 再按兩下tab鍵, 會(huì)出現(xiàn)開(kāi)頭字母為p的所有文件或者目錄
5:查閱歷史記錄命令
history 想知道最近執(zhí)行的命令
history | more 分頁(yè)顯示
history 5 顯示最近使用的5個(gè)命令
!5 執(zhí)行歷史編號(hào)為5的命令
!ls 執(zhí)行最后一次以ls開(kāi)頭的命令
二:網(wǎng)絡(luò)協(xié)議tcp/ip基礎(chǔ)
Osi模型(理論):7層
應(yīng)用層application
表示層presention
會(huì)話層session
傳輸層transport
網(wǎng)絡(luò)層ip
數(shù)據(jù)鏈路層link
物理層physical
TCP/IP模型(現(xiàn)實(shí)):4層----在電腦里面的
應(yīng)用層application:smtp,ftp,telnet
傳輸層transport:解釋數(shù)據(jù)
網(wǎng)絡(luò)層ip:定位ip地址和確定連接路徑
鏈路層link:與硬件驅(qū)動(dòng)對(duì)話
案例:qq間相互通訊
qq1發(fā)送hello,包到一個(gè)包里面
經(jīng)過(guò)應(yīng)用層加一個(gè)app頭,表示是哪個(gè)程序發(fā)過(guò)來(lái)的,軟件有關(guān)
經(jīng)過(guò)傳輸層:加一個(gè)tcp頭。 此時(shí),tcp app hello包 構(gòu)成一個(gè)tcp段
再經(jīng)過(guò)ip層:再加一個(gè)ip頭, 是發(fā)送到哪一個(gè)ip地址去 ,此時(shí)稱(chēng)為數(shù)據(jù)包
再經(jīng)過(guò)鏈路層:在數(shù)據(jù)包的兩頭加上幀頭和幀尾。 此時(shí)是一個(gè)可以在網(wǎng)絡(luò)上傳輸?shù)臇|西了
把上面的直接發(fā)送給網(wǎng)卡,網(wǎng)卡傳送到路由器,很多的路由器(距離決定)
到了對(duì)方機(jī)器的網(wǎng)卡,
去掉一些東西
Ip地址與包的路由傳遞
計(jì)算機(jī)—網(wǎng)關(guān) 網(wǎng)關(guān)再與因特網(wǎng)相連
有網(wǎng)卡都會(huì)與一個(gè)ip地址(可以自己指定),相當(dāng)于門(mén)牌號(hào)
每個(gè)internet上的主機(jī)和路由器都有一個(gè)ip地址,它包括網(wǎng)絡(luò)號(hào)和主機(jī)號(hào),所有的地址都是32位(4個(gè)字節(jié))的,IP地址按照國(guó)際標(biāo)準(zhǔn)的劃分為a,b,c,d,e五種類(lèi)型
a: 0 7位網(wǎng)絡(luò)號(hào) 主機(jī)號(hào) (8位的一個(gè)網(wǎng)絡(luò)號(hào),24位的主機(jī)號(hào))
1.0.0.0至127.255.255.255
b: 10 14位網(wǎng)絡(luò)號(hào) 主機(jī)號(hào) (16位的一個(gè)網(wǎng)絡(luò)號(hào),16位的主機(jī)號(hào))
128.0.0.0至191.255.255.255
c: 110 21位網(wǎng)絡(luò)號(hào) 主機(jī)號(hào) (24位表示的網(wǎng)絡(luò)號(hào),8位表示的主機(jī)號(hào))
192.0.0.0至223.255.255.255
d: 1110 多點(diǎn)播送地址 224.0.0.0至239.255.255.255
e: 11110 留作將來(lái)使用 240.0.0.0至247.255.255.255
1.追蹤路由:tracert 目標(biāo)ip/域名
2.測(cè)試看個(gè)ip是否暢通: ping 目標(biāo)ip
3.在windows查看ip情況的命令是 ipconfig
4.在linux/unix下查看ip情況的命令是ifconfig
幾個(gè)特殊的ip地址:
局域網(wǎng)廣播: 11111111111111111111111111111111
對(duì)一個(gè)子網(wǎng)廣播: 網(wǎng)絡(luò)號(hào) 1111111111111111111111111
回路: 127 任意值(除去全0和全1) 例127.0.0.0.1 測(cè)一下自己的網(wǎng)
//255是廣播地址 全1
IP地址與包的路由傳遞
Linux的網(wǎng)絡(luò)配置
第一種方法:
1:用root身份登錄,運(yùn)行setup命令進(jìn)入到text mode setup utiliy對(duì)網(wǎng)絡(luò)進(jìn)行配置,
這里可以進(jìn)行ip,子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān),dns的設(shè)置
2:這時(shí)網(wǎng)卡的配置沒(méi)有生效,運(yùn)行/etc/rc.d/init.d/network restart 命令我們剛才做的設(shè)置才生效
setup之后,
choos a tool:
Authentication configuration
Firewall configuration 配置防火墻
Keyboard configuration 配置鍵盤(pán)
Network configuration 配置網(wǎng)絡(luò)
System services 配置系統(tǒng)服務(wù)
第二種方法:
1:ifconfig eth0 x.x.x.x對(duì)網(wǎng)卡進(jìn)行設(shè)置 //eth0網(wǎng)卡
2:ifconfig eth0 network x.x.x.x對(duì)子網(wǎng)掩碼設(shè)置
對(duì)廣播地址和dns使用默認(rèn)的
注意:這樣配置網(wǎng)絡(luò)將會(huì)立即生效,但是臨時(shí)生效,重新啟動(dòng)就沒(méi)了
第三種:最底層的修改方法——在linux中,所有的設(shè)備都是文件,好處,編程方便
1:直接修改這個(gè)文件: /etc/sysconfig/network-scripts/ifcfg-eth0
用命令 vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改這個(gè)文件里面各個(gè)屬性包括ip,子網(wǎng)掩碼,廣播地址,默認(rèn)網(wǎng)關(guān)
2:這時(shí)網(wǎng)卡的配置沒(méi)有生效,
運(yùn)行命令/etc/rc.d/init.d/network restart 剛才的設(shè)置才生效
Linux的網(wǎng)卡和windows的網(wǎng)卡互通:必須在同一個(gè)子網(wǎng)
RPM管理:
一種用于互聯(lián)網(wǎng)下載包的打包及安裝工具
他生成具有 .RPM擴(kuò)展名的文件。
RPM是redhat package manager的 縮寫(xiě),redhat軟件包管理工具
這一文件格式名稱(chēng)雖然打上了redhat的標(biāo)志,但是是開(kāi)放的,所以其他版本的linux也有
Rpm是什么
RPM包的名稱(chēng)格式: apache-1.3.23-11.i386.rpm
apache 是軟件名稱(chēng)
1.3.23-11 軟件的版本號(hào),主版本和次版本
I386是軟件所運(yùn)行的硬件平臺(tái)
rpm文件擴(kuò)展名,代表RPM包
rpm命令:
rpm –qa :查詢所安裝的所有rpm軟件包
rpm -qa | more
rpm -qa |grep X
rpm -q 軟件包名 :查詢軟件包是都安裝
rpm -q xinetd
rpm -q foo
rpm -q xinetd file bash
rmp –qi 軟件包名 :查詢軟件包信息
rpm –qi file
rpm -ql 軟件包名 :查詢軟件包中的文件
rpm –ql file
rpm –ql jdk
rpm -qf 文件全路徑名 :查詢文件所屬的軟件包
rpm -qf /etc/passwd
rpm -qf /root/install.log
rpm -qp 包文件名 :查詢包的信息對(duì)這個(gè)軟件包的介紹
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包全路徑名稱(chēng) :安裝包到當(dāng)前系統(tǒng) i為install
rpm -ivh RPM包全路徑名稱(chēng) :安裝包到當(dāng)前系統(tǒng)有提示信息
v為verbose提示 h為hash進(jìn)度條
刪除RPM包:
rpm -e RPM包的名稱(chēng) :例如rpm -e jdk
升級(jí)RPM包;
rpm -U RPMbao 全路徑名
rpm -U cvs-1.11.2-10.i386.rpm
samba
windows主機(jī)之間用網(wǎng)上鄰居來(lái)訪問(wèn)共享資源
linux主機(jī)之間用NFS來(lái)實(shí)現(xiàn)資源共享
samba服務(wù)軟件能夠使windows和linux之間實(shí)現(xiàn)資源共享
linux和windows共享文件: 只要在linux這邊安裝samba服務(wù)即可
安裝samba:
1:檢查是否安裝了samba: rpm -qa | grep samba 安裝了要卸載
此命令會(huì)檢查出已經(jīng)安裝了samba軟件包,若是已經(jīng)安裝了,下面會(huì)出現(xiàn)samba軟件包的具體名稱(chēng).如果安裝了要卸載
2:如果有,卸載: rpm -e samba 不行
rpm –e --nodeps samba
3:把自己的安裝文件,掛載到linux下面
4:把samba開(kāi)頭問(wèn)文件,拷貝到 /home ,準(zhǔn)備安裝
cp /mnt/cdrom/samba* /home
5:開(kāi)始安裝
切換到home目錄下面去 cd /home
先裝common文件 rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm
再裝client文件 rpm –ivh samba-client-2.2.7a-7.9.0.i386.rpm
最后安裝 rpm -ivh samba-2.2.7a-7.9.0.i386.rpm
再查詢:rpm -qa samba
6:創(chuàng)建一個(gè)用戶xiaobu: useradd xiaobu
設(shè)置密碼: paawd xiaobu
7:給xiaobu設(shè)置samba密碼:
將/etc/passwd/passed中的用戶都加到smbpasswd中: 都設(shè)為samba用戶
cat /etc/passed | ,ksmbpasswd.sh > /etc/samba/smbpasswd
設(shè)置用戶xiaobu的samba密碼: smbpasswd xiaobu
8:?jiǎn)?dòng)samba服務(wù)器,測(cè)試
service smb start
service smb stop
service smb restart
在windows中運(yùn)行: //192.
Samba的配置:
第四天:
目錄:
1:設(shè)置任務(wù)調(diào)度命令crontab
2:監(jiān)控網(wǎng)絡(luò)狀態(tài)信息
3:mysql數(shù)據(jù)庫(kù)在linux下的使用
4:ssh (secure shell)的使用
5:ftp的安裝與配置
一:任務(wù)調(diào)度命令
任務(wù)調(diào)度命令:是指系統(tǒng)在某個(gè)時(shí)間執(zhí)行的特定的命令或者程序
任務(wù)調(diào)度分類(lèi):
1:系統(tǒng)工作:有些重要的工作必須周而復(fù)始的執(zhí)行,如病毒掃描
2:個(gè)別用戶工作:個(gè)別用戶可能希望執(zhí)行某些程序
任務(wù)調(diào)度的使用:
1:設(shè)置任務(wù):crontab –e 回車(chē)進(jìn)入分配任務(wù)的界面
2:每隔一定時(shí)間去執(zhí)行: date > /home/mydata1
顯示當(dāng)前系統(tǒng)時(shí)間到home目錄下的mydate1文件中
打開(kāi)這個(gè)問(wèn)價(jià)看一下:cat mydate1
3:希望每天凌晨?jī)牲c(diǎn)去執(zhí)行 date >> /home/mydate2
crontab -e 進(jìn)入
0 2 * * * date >> /home/mydate2
希望每分鐘去執(zhí)行:
* * * * * date >> /home/mydate2
用ls去查看這個(gè)文件 mydate2
再看這個(gè)文件里面是不是命令的問(wèn)題
調(diào)度文件的規(guī)則:先寫(xiě)時(shí)間,在寫(xiě)任務(wù)
分鐘 :每小時(shí)中的第幾分鐘執(zhí)行 0—59
小時(shí) :每日的第幾個(gè)小時(shí)執(zhí)行 0—23
日期 :每月的第幾天執(zhí)行 1—31
月歷 :每年的第幾月執(zhí)行 1—12
星期 :每周的第幾天執(zhí)行 0—6
命令名稱(chēng):欲執(zhí)行的命令名稱(chēng)及其參數(shù)
設(shè)置任務(wù)調(diào)度文件 : /etc/crontab
設(shè)置個(gè)人任務(wù)調(diào)度: 執(zhí)行: crontab -e 命令
接著輸入任務(wù)到調(diào)度文件
例如: 5 * * * * ls –l /etc/ > /tmp/to.txt 命令
4:怎么樣調(diào)度多個(gè)任務(wù)
方法一:在crontab -e中直接寫(xiě) 缺點(diǎn):太多太亂
* * * * * date >> /home/mydate2 沒(méi)給我一分鐘把時(shí)間寫(xiě)入mydate2中
* * * * * cp /home/mydate2 /root 同時(shí)每隔一分鐘將這個(gè)文件拷貝到root目錄下面去
方法二:把所有的任務(wù)寫(xiě)入到一個(gè)可執(zhí)行文件(shell編程)
vi mytask.sh 進(jìn)入shell編程
date >> /home/mydata3
cp /home/mydata3 /root
保存
ls -l
有mydate3.sh 但是權(quán)限是 -rw-r—r-- 不可執(zhí)行的 加一個(gè)x即可
chmod 744 mytask.sh 可執(zhí)行文件了
crontab –e
* * * * * /root/mytask.sh
如何終止任務(wù)調(diào)度:
crontab -r :終止任務(wù)調(diào)度 remove
crontab -l :列出當(dāng)前有哪些任務(wù)調(diào)度 list
二:進(jìn)程管理
進(jìn)程:就是正在執(zhí)行的程序
線程: (1)輕量級(jí)的進(jìn)程
(2)進(jìn)程有獨(dú)立的地址的地址空間。 線程沒(méi)有
(3)線程不能獨(dú)立存在,他是由進(jìn)程創(chuàng)建。 (fork) Thread
(4)相對(duì)講,線程耗費(fèi)的cpu和內(nèi)存小于進(jìn)程
在linux中,每個(gè)執(zhí)行的程序都稱(chēng)為一個(gè)進(jìn)程,每一個(gè)進(jìn)程都分配一個(gè)ID號(hào)
每一個(gè)進(jìn)程,都會(huì)對(duì)應(yīng)一個(gè)父進(jìn)程,而這個(gè)父進(jìn)程可以復(fù)制多個(gè)紫禁城,例如www服務(wù)器
每個(gè)進(jìn)程都可能以兩種方式存在的。前臺(tái)與后臺(tái)
前臺(tái)進(jìn)程就是用戶目前的屏幕上可以進(jìn)行操作的
后臺(tái)進(jìn)程則是實(shí)際操作,但是由于屏幕上無(wú)法看到的進(jìn)程,通常使用后臺(tái)方式執(zhí)行
一般系統(tǒng)的服務(wù)都是以后臺(tái)進(jìn)程的方式存在,而且都會(huì)常駐系統(tǒng)中,知道關(guān)機(jī)才結(jié)束
顯示執(zhí)行的進(jìn)程:ps命令
ps –a :顯示當(dāng)前終端的所有進(jìn)程信息
pa -u :以用戶的格式顯示進(jìn)程信息
pa -x : 顯示后臺(tái)進(jìn)程運(yùn)行的參數(shù)
pa -aux | more
如何終止進(jìn)程:kill/killall
當(dāng)某個(gè)進(jìn)程執(zhí)行到一半需要停止時(shí),或是已經(jīng)消耗了很大的系統(tǒng)資源時(shí)候時(shí),此時(shí)可以考慮停止該進(jìn)程。
Kill 進(jìn)程號(hào) kill 16251 終止進(jìn)程號(hào)為16251的進(jìn)程
Kill -9 進(jìn)程號(hào) 強(qiáng)度很高的終止
Kill all
動(dòng)態(tài)監(jiān)控進(jìn)程top
top與ps命令的不同:top可以再執(zhí)行一段時(shí)間可以更新正在運(yùn)行的進(jìn)程
1:監(jiān)視特定用戶:
top :輸入此命令,回車(chē),查看執(zhí)行的進(jìn)程
u :然后輸入u,回車(chē),再輸入用戶名即可
2:終止指定的進(jìn)程
top :輸入此命令 ,回車(chē),查看執(zhí)行的進(jìn)程
k :然后輸入 k ,回車(chē),
在輸入要結(jié)束的進(jìn)程號(hào)
3:指定系統(tǒng)狀態(tài)更新的時(shí)間
top -d 10:指定系統(tǒng)更新進(jìn)程的時(shí)間為10s
top之后:
時(shí)間,系統(tǒng)啟動(dòng)了多久,用戶數(shù),當(dāng)前系統(tǒng)負(fù)載情況(三個(gè)數(shù)加起來(lái)除以3大于0.6要注意)
進(jìn)程數(shù): 僵尸進(jìn)程數(shù)zomble,
cpu state:cpu狀態(tài): idle空閑 越大越好
mem: 內(nèi)存總數(shù) 在使用 空閑
swap: 虛擬內(nèi)存
三:設(shè)置系統(tǒng)時(shí)間date MMDDHHMMCCYY.SS
date 命令 :顯示系統(tǒng)時(shí)間
date MMDDHHMMCCYY.SS更改系統(tǒng)的時(shí)間:月月日日時(shí)時(shí)分分年年年年。秒秒
cal 3 2002 查看月歷
cal 2008 查看2008年年歷
四:監(jiān)控網(wǎng)絡(luò)狀態(tài)信息netstat
netstat 顯示網(wǎng)絡(luò)統(tǒng)計(jì)信息的命令 用來(lái)顯示整個(gè)系統(tǒng)目前的網(wǎng)絡(luò)情況
例如:目前的連接數(shù),數(shù)據(jù)包傳遞數(shù)據(jù),路由表內(nèi)容
netstat -anp | more p代表進(jìn)程 an按照一定順序來(lái)排序,按照端口來(lái)排序
ping 命令 檢測(cè)主機(jī)連接
是一種網(wǎng)絡(luò)檢測(cè)工具,主要是用檢測(cè)遠(yuǎn)程主機(jī)是否正常,或者是量不足及間的戒指是否為斷、網(wǎng)線是否脫落或者網(wǎng)卡故障
例如:ping 對(duì)方ip地址
traceroute 顯示數(shù)據(jù)包經(jīng)過(guò)歷程命令 直接輸入 網(wǎng)管用的很多
用來(lái)檢測(cè)數(shù)據(jù)包再網(wǎng)絡(luò)上傳輸?shù)倪^(guò)程,從本機(jī)到遠(yuǎn)程的足跡完整路徑,幫助管理員解決
Traceroute www.baidu.com
route 查看本機(jī)路由的情況 直接輸入
路由是指將數(shù)據(jù)由來(lái)源網(wǎng)絡(luò)送往目的地網(wǎng)絡(luò)的操作
五:mysql數(shù)據(jù)庫(kù)在linux下的使用
Mysql的優(yōu)點(diǎn):免費(fèi),跨平臺(tái),輕,至此多并發(fā)
Mysql數(shù)據(jù)庫(kù)安裝:
1:把安裝文件拷貝到/home下
掛載mypakage
命令:mount /mnt/cdrom/
兩個(gè)文件
拷貝兩個(gè): cp mysql -* /home
切換到home目錄下面
cd /home/