進階學習之Linux作業系統
一、Linux作業系統概述
1、常見作業系統
① 服務端作業系統:linux、unix、windows server
② 單機作業系統:windows(dos 、ucdos、win95、win98、win2000、xp、vista、win7、win8)、MAC 、linux(ubuntu)
③ 移動作業系統:Android、IOS 、Windows phone
2、linux作業系統介紹
① 為什麼要學習linux作業系統
◇ 大部分服務端都採用linux ,JEE部署到伺服器中
◇ 一些企業和學校採用linux研發和教學
◇ 很多嵌入式開發用linux
◇ 雲端計算、大資料是叢集網用linux的centos
② 特點
◇ 開放、開源、多使用者的網路作業系統
◇ 基於unix(unix >minix >linux),可以定製核心
◇ 加入了GNU組織(自由軟體組織 ,copyLeft),通過GPL(通用公共許可)許可對外發布
③ linux組成
◇ linux核心
◇ shell(外殼):使用者與核心互動的介面
◇ 檔案系統:ext3、ext4等(windows有fat32、ntfs)
◇ 第三方應用軟體
④ linux作業系統版本
◇ 核心版本(由linus團隊管理)
◇ 發行版本:一些軟體公司以核心為基礎,再新增一些軟體和文件形成發行版本(red hat 包含rhel、centos;debian包含debian、ubuntu;android)
二、安裝Linux系統
1、 虛擬機器的軟體
① vmware
② vitual box:oracle 公司提供
2、虛擬機器安裝
① 直接安裝
◇ 建立虛擬機器
◇ 安裝ubuntu映象
② 開啟虛擬機器映象:虛擬機器+作業系統(ubuntu)
◇ 開啟*.vmx
檔案
◇ 使用者名稱:itcast;密碼:123
三、Linux系統環境
1、Linux預設有6個命令互動通道和一個圖形介面互動通道,預設進入到的是圖形介面通道
① 切換到命令互動模式:ctrl+alt+f1……f6
② 切換到圖形互動介面:ctrl+alt+f7
2、圖形介面互動模式
terminal:圖形介面的命令終端,它是圖形介面互動通道的延伸,要依賴於圖形介面
3、命令互動模式
命令提示符:[email protected]:~$
itcast:使用者名稱
ubuntu:主機名
~:路徑,假如當前的路徑正好是該使用者存放資料的根目錄則顯示~
$:使用者的型別,$代表普通使用者,# 代表超級使用者
4、Linux檔案系統
① 目錄結構
bin:存放的可執行的二進位制檔案,包括cd、ls、su、passwd命令 boot:存放系統的引導檔案的目錄 dev:存放裝置檔案的目錄,linux把設定當做檔案來處理 etc:存放系統的配置檔案的目錄 home:存放所有使用者檔案的根目錄,root使用者除外 lib:共享庫 usr:好比program files,存放應用的安裝的路徑 opt:自定義存放應用程式位置 mnt:臨時檔案系統的掛靠點
② 檔案許可權分析
w :可寫
r: 只讀
x:可執行
- :無許可權
檔案許可權表示方法:
◇ 字元表示法
drwxr-xr-x
第一個字元:檔案的型別(d
表示普通檔案,-
表示資料夾,c
表示串列埠檔案,l
表示連線檔案)
2-4 字元:該檔案的屬主使用者的許可權
5-7 字元:與屬主使用者同一組的其他使用者的許可權
8-10 字元:不同組的其他使用者的許可權
◇ 數字表示法
-rw-r–r--:檔案的預設許可權,644
drwxr-xr-x:目錄的預設許可權,755
四、Linux的常用命令
1、登出、關機、重啟
① 登出(在命令互動模式中):logout(登出)、exit (退出)
② 關機:shutdown - h 時間
-h:表示關機
時間 :now指的是馬上,12.30是指定具體時間,3指的是幾分鐘以後
如果當前賬號是itcast ,則先要超級管理員賦予許可權:sudo shutdown -h now
sudo即superuser do,表示由超級使用者來執行該命令,要配置sudo命令就是授權哪些使用者能執行哪些命令
執行cat /etc/sudoers
,可以在在/etc/sudoers 裡面檢視賬號的配置
③ 重啟:shutdown -r 時間
-r:restart,重啟
2、Linux基本命令 :檔案操作命令
① ls
:檢視目錄內容
ls - l
:檢視詳細資訊
ls - a
:檢視所有檔案(+隱藏)
ls - la
:檢視所有檔案的詳細資訊
【man (即manual,幫助命令,好比windows help ):man ls
】
② mkdir:建立目錄
③ cd:切換目錄
cd ..
:進入上一級目錄,記得要加空格
cd ./java
:進入當前目錄的子目錄
cd ../xxx
:進入上一級目錄的子目錄
【tab :自動補全】
④ touch:建立一個空白的普通檔案
touch a.txt
⑤ echo:把內容重定向到指定的檔案中,有則開啟,無則建立
echo "content">b.txt
⑥ cat、more:檢視檔案內容
◇ cat:檢視檔案內容 cat c.txt
◇ more:分頁檢視檔案內容,按空格鍵換頁 more c.txt
⑦ cp、mv、rm
◇ cp:複製 cp d.txt ./java/jee
◇ mv:剪下、重新命名
剪下 :mv d.txt ../android/
重新命名 :假如剪下的檔案存放在同一個目錄中,則是重新命名 mv d.txt c.txt
◇ rm:刪除檔案或者資料夾
-f:假如要刪除的檔案不存在,也不提示(rm -f e.txt)
-i:刪除前提示,預設不刪除,要刪除就要輸入y(rm -i e.txt)
-d:刪除空白目錄 (rm -d jee)
-r:遞迴刪除(rm -r jee)
⑧ wc:表示word count,統計字元數
命令:wc f.txt
顯示結果:154 233 3418
154是行數,233是單詞數,3418是字元數
⑨ ln:建立連線檔案
預設建立的是硬連線,就像複製,但是兩個檔案會同步
命令:ln ./java/android/a.txt ggg
帶-s
建立的是軟連線(建立的是連結):ln -s ./java/android/a.txt ggg.link
⑩ pwd:檢視當前目錄的絕對路徑,命令:pwd
⑪ |:管道命令(前面輸出作為後面的輸入)
命令: ls -la | wc
⑫ 重定向
>:覆蓋模式
命令: echo "info">aaa
>>:追加模式
命令: echo "infoinfoinfo">>aaa
⑬ passwd:設定密碼,ubuntu預設root賬號是沒有開啟 ,只要設定root密碼即可開啟
sudo passwd root
⑭ su:切換使用者,root使用者切換到其他賬號不需要密碼
su root
3、Linux 系統命令
① stat:檢視檔案的詳細資訊,命令:stat a.txt
② who與whoami
who
: 檢視線上的使用者
whoami
:檢視當前自己的使用者
③ hostname : 顯示主機名,命令:hostname
④ uname
:顯示系統資訊
uname -a
:顯示完整的系統資訊
⑤ top
:顯示當前耗時的程序的資訊 ,每3秒重新整理一次【cltr+c中斷】
⑥ ps :顯示當前程序的快照 ,命令:ps - axu
⑦ du :顯示檔案的大小(塊)資訊 ,命令:du a.txt
⑧ df :磁碟使用情況,命令:df
⑨ ifconfig:檢視或者配置網絡卡資訊 ,好比windows 的ipconfig
設定虛擬機器ip地址:
◇ 設定vmware的連線方式(共享宿主機的ip地址,在網路上的芳鄰找不到;橋接方式,需要單獨設定ip,可以在網路上的芳鄰查詢)
◇ 圖形介面設定ip地址 :edit connection > ipv4 > manual(手工設定) > add(ip地址,子網掩碼)
◇ 命令方式設定靜態ip:sudo ifconfig eth0 192.168.15.122 netmask 255.255.255.0
⑩ ping:測試與目標主機連線情況,命令:ping [IP地址]
⑪ clear:清除螢幕,命令:clear
,好比windows 的cls
⑫ man:幫助命令,命令:man [命令]
⑬ kill:殺死程序,命令:kill [pid]
⑭ netstat
:網路連線詳細資訊
⑮ useradd
◇ 檢視使用者資訊:sudo cat /etc/passwd
itcast:x:1000:1000:UbuntuA,,,:/home/itcast:/bin/bash
- itcast:使用者名稱
- x:密碼,已經加密,密碼存放在 /etc/shadow
- 1000:賬號id,userId
- 1000:組id,group id
- UbuntuA,,, :賬號描述
- /home/itcast:該賬號存放檔案的預設位置,只要進到這個目錄就會轉換成~
- /bin/bash:該使用者的shell指令碼的解析方式(sh 、bash、rbash)
◇ 建立使用者 :sudo useradd lijun -d /home/lijun -s /bin/bash
-d:指定該使用者的home 路徑
- s:該使用者的shell解析方式
步驟:建立 /home/lijun 目錄 > 執行 useradd 命令 > 用 passwd 設定密碼 > su 切換使用者
五、打包、壓縮檔案
1、windows支援的壓縮格式:zip、rar
Linux支援的壓縮格式:gz、bzip、zip
2、tar:打包、拆包命令:tar - cxzjvf [打包後的檔案] [欲打包的目錄]
- c :建立的一個歸檔檔案 ,即打包資料夾
- x :拆包
- z :以gzip 格式壓縮,預設壓縮倍數6倍,範圍在0-9
- j :以bzip2格式壓縮
- v :顯示打包或者拆包的檔案資訊
- f :後面緊接一個歸檔檔案
打包檔案:tar -cvf news.tar ./java
拆包檔案:tar -xvf news.tar
3、gzip 、bzip2 壓縮與解壓
壓縮檔案:gzip news.tar
解壓檔案:gzip -d news.tar.gz
4、打包及壓縮
打包及壓縮:tar -czvf news.tar.gz ./java
拆包及壓解縮:tar -xzvf news.tar.gz
六、軟體管理
1、安裝和解除安裝
windows:安裝: *.exe
格式,解除安裝:該軟體唯一的標識,即包名
android:安裝:*.apk
格式,解除安裝:包名
red hat:安裝:*.rpm
格式
ubuntu:安裝:對debian的升級*.deb
格式
2、安裝軟體
① dpkg :debian package
◇ 離線安裝: sudo dpkg - i [檔名]
-i :install
命令:sudo dpkg -i ./tree_1.6.0-1_i386.deb
◇ 解除安裝 : sudo dpkg - r [包名]
-r :remove
命令:sudo dpkg -r tree
② apt-get:advance package tools ,對dpkg命令的升級,可以線上安裝
◇ 安裝 : sudo apt-get -install [包名]
◇ 解除安裝 : sudo apt-get -remove [包名]
3、vim 軟體:好比記事本,但是比記事本要強大
① 安裝vim:sudo dpkg - i ./vim/*
② 使用vim:vim a.txt
操作模式:
◇ 一般模式 ,預設進入的一般模式,該模式不能編輯文件 ,只能檢視
◇ 編輯模式、插入模式 【 在一般模式中按 i(insert)進入插入模式 】
該模式可以編輯文件,按esc 退出插入模式,進入到一般模式
◇ 命令模式 :在一般模式中按:進入命令模式
- q: 安全退出,當沒有操作該文件,則直接按q退出vim
- q!:當修改了內容,但是不想儲存,則q!強制退出
- wq :儲存退出
- set number:顯示行號
- set nonumber:取消行號顯示
七、遠端訪問Linux和Java開發環境搭建
1、通過ssh(secure shell)實現安全遠端訪問Linux系統
① 加密:
◇ 對稱加密 (加密金鑰與解密金鑰相同):des、aes
◇ 非對稱加密(加密金鑰與解密金鑰不同):RSA (裡面包含公鑰+私鑰)
② 數字摘要:md5、sha1
③ 檢視是否安裝了ssh服務端與客戶端
sudo apt-cache policy openssh-client openssh-server
④ 安裝ssh 服務端與客戶端軟體:sudo dpkg -i ./ssh/*
⑤ 通過windows ssh客戶端來訪問Linux服務端
windows ssh客戶端分為兩種
putty :遠端登入
winscp433setup.exe :檔案傳輸
2、安裝jdk
① 進入root使用者:su root
② 把jdk軟體拷貝到/opt:cp ./practice-software/jdk-6u39-linux-i586.bin /opt
③ 綠色軟體(可執行檔案)解壓:./jdk-6u39-linux-i586.bin
④ 設定環境變數
vim /etc/profile
然後進入插入模式:
export JAVA_HOME="/opt/jdk1.6.0_39"
export PATH="$JAVA_HOME/bin:$PATH"
⑤ 重新整理配置,讓配置生效:source /etc/profile
⑥ 編寫Demo.java並測試
touch Demo.java
vim Demo.java
……
javac Demo.java
java Demo
3、安裝tomcat
① 安裝在 /opt:cp ./practice-software/apache-tomcat-6.0.29.tar.gz /opt
② 拷貝、解壓:tar -xzvf apache-tomcat-6.0.29.tar.gz
③ 進入到目錄下:cd ./apache-tomcat-6.0.29/bin
④ 執行
開啟:./startup.sh
停止:./shutdown.sh
4、安裝Eclipse
① 安裝在/opt:cp eclipse-jee-helios-liunx-gtk.tar.gz /opt
② 拷貝、解壓:tar -xzvf eclipse-jee-helios-liunx-gtk.tar.gz