Django/Tornado
網絡編程,熟悉Socket、TCP/IP。
nginx
linux shell腳本
nginx
tornado
apache
python
pgsql mysql sqlite sqlserver mogodb
redis memcache 分布式數據集成部署
openstack
django
html5 css 3 -------------- ko
javasvript typescript jquery --------------ko
bootstrap kando
orm
蜘蛛 網絡套接字 HTTP協議
restful服務接口
git代碼管理
高並發訪問 多線程處理 IO資源管理
分頁查詢 內存資源對象釋放gc 析構函數本質
https 證書
加密算法 數據結構算法
IP服務器集群 Cluster
域名對應多個IP ,做虛擬主機,鏡像網站 Mirror sites--------> nsloop www.sina.com there are many ips bind this domain
在Python源文件中最好不要出現中文字符串
python 中的中文字符串必須要出現的話 那么開頭必須聲明文件的編碼運行時編碼
# coding:utf-8
#encodeing:uft-8 (或者:使用=符號均可)
比較麻煩的 是
#_*_encoding=utf-8_*_
都可以實現中文字符
----------nginx------------
service nginx start 啟動
killall nginx 關閉
配置iptables(每次重啟Server后 都特么的丟失,練習環境干脆關閉防火牆)
iptables -I INPUT 5 -p tcp --dport 80 -j ACCEPT
---------可以嘗試在配置文件 保存 修改文件/etc/sysconfig/iptables,然后將iptables服務重啟。service iptables restart
啟動nginx
service nginx start
-------------------------
--------------管理工具-----------
webmin
http://192.168.83.131:10000/
xmanager
在Linux 中的命令執行的法則 更像是直接執行已經加載完畢的軟件程序
實用命令激活指向命令 -用來制定Option 選項 選項后添加操作目標 作為參數,多個選擇項的時候 一個個的-option args -op2 agrs................
Linux 重啟命令
reboot
關機命令
shutdown
知識點1
linux 下的內容都是以File的形式進行組織的
嚴格區分大小寫
可以使用除了 /字符的任意字符
最好不要使用空格符號 ,因為這樣在執行終端命令的時候 就麻煩了
命名規則,最好不要使用制表符 等符號,不要以.開頭 (凡是.開頭的文件 都是隱藏文件)
知識點2
命令 -選項 參數(命令操作的對象)
命令的選項可以使用空格分開 也可以使用-連起來寫
兩個特殊的文件 . ..這兩個文件代表的是 當前目錄和父目錄,作為節點的鏈接
命令分為兩大類
1僅僅root 用戶可以自行的 /sbin and /usr/sbin
2 所有用戶可以執行的 /bin and /usr/bin
知識點3
ls 命令
-l 長類型 文件顯示,,以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件名,文件類型、權限模式、硬連接數、所有者、組、文件大小和文件的最后修改時間等;
-a 全部文件 -a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
-A:顯示除影藏文件“.”和“..”以外的所有文件列表;
-d :僅顯示當前目錄名,而不顯示目錄下的內容列表。顯示符號鏈接文件本身,而不顯示其所指向的目錄列表;
drwxrwxrwx(首字母為文件類型-后9個字母代表了執行權限)
d---文件目錄 dir
- ---表示一個二進制文件
l ---軟鏈接文件 link
owner group others
| | |
rwx rwx rwx
-----------------------------權限對應的數值----------0 1 2 4 3 5 6 7-------------
---none--2^-1=0
r--read 2^2=4
w--write 2^1=2
x--execute 2^0=1
文件 目錄
R 可讀 可列出
W 可寫入 可以add delete 目錄中的文件
X 可以執行 可進入目錄(執行目錄,相當於運行此目錄文件)
Linux的文件存儲以block為單位:一般為512字節
知識點 4
cd 切換目錄
cd / 或者 .. 進入根目錄 或者上一層目錄
pwd ---------print working dir
顯示當前工作目錄
知識點 5
touch 創建文件
touch命令有兩個功能:一是用於把已存在文件的時間標簽更新為系統當前的時間(默認方式),它們的數據將原封不動地保留下來;二是用來創建新的空文件
知識點 6
mkdir 創建目錄
在目錄/usr/meng下建立子目錄test,並且只有文件主有讀、寫和執行權限,其他人無權訪問
mkdir -m 700 /usr/meng/test
知識點 7 chmod
更改文件的權限
例如 更改文件的權限為 u=rwx ,g=rw,o=---
chmod 730 file
chmod u+x,g+w f01 //為文件f01設置自己可以執行,組員可以寫入的權限
chmod u=rwx,g=rw,o=r f01
chmod 764 f01
chmod a+x f01 //對文件f01的u,g,o都設置可執行屬性
知識點 8 cp
用來拷貝復制
cp from to
cp -R 遞歸目錄下的子文件
知識點 9
Ctrl+C 用來執行取消命令的執行
知識點 10 mv
文件移動---實現剪切 +改名
知識點 11 rm (rmdir 只能刪除空目錄 實用性很少)
rm 刪除文件
rm -r 遞歸性的刪除目錄
知識點 12
cat 用來顯示文件內容,全部內容或者第幾行的內容
配合 more 用來進行分頁內容顯示
more fileName ;-------f 或者空格 翻頁 ,回車下一行 ,Q鍵退出
head -30 fileName ---顯示前幾行(默認10行)
tail命令用於輸入文件中的尾部內容。tail命令默認在屏幕上顯示指定文件的末尾10行。如
知識點 13
ln --link 生產軟鏈接
-s 生產軟鏈接
否則是硬鏈接
ln命令用來為文件創件連接,連接類型分為硬連接和符號連接兩種,默認的連接類型是硬連接。如果要創建符號連接必須使用"-s"選項。
源文件:指定連接的源文件。如果使用-s選項創建符號連接,則“源文件”可以是文件或者目錄。創建硬連接時,則“源文件”參數只能是文件;
軟連接:權限 lrwxrwxrwx ,->指向源文件,訪問最終取決於額源文件的訪問類型,僅僅是一個快捷方式
硬鏈接:二進制可執行文件,文件節點鏡像。。。。。
本質區別:都是指向,但是硬鏈接根源文件的性質一樣,指向內存中的文件內容對象的基地址,創建N個硬鏈接,就會在文件Object上 注冊引用數,即使刪除來源文件,也僅僅是去除來一個隊此文件對象的引用而已!!!
但是 ,軟鏈接可以跨設備,硬鏈接不可以!!!!!!!!!也就是分區。。。。
注意:Linux 的內核只能識別數字,所以,文件必須有對應的Id標識,包括指令,或者進程都需要有對應的id標識。
此機制涉及到Linux底層的文件管理方式,文件用倒樹狀方式,每個文件都必須有一個Id 編碼,這個id 是一個整數,每個文件以inode 節點的方式,排列在磁盤的柱形面上,
一旦id 消失,那么此文件再也無法找回。一個節點 可以被多個文件引用,而軟鏈接指向文件,相當於二級引用的一個代理指向。
知識點14
chown 更改歸屬用戶 ---系統有個默認的用戶 nobody
chgrp 更改歸屬組------系統有個默認的組 adm
知識點 15
umask--------系統默認的文件權限設置 (一般不要輕易改動這個權限)
umask ----返回的是權限的掩碼
umask -S ---返回 u g o 的默認權限
0022---首個字符代表的是特殊權限位
777
-022
-----
755 =u=rwx g=rx o=rx
返回來,要設置此默認權限,那么得出權限數字列后,得到掩碼 然后設置!!!!
知識點 16
命令文件的查詢
which 使用此命令來定位命令的位置或者實現搜索目錄下的文件:注意:linux 下的所有對象都是文件File 那么命令也是二進制的執行文件,一般,命令文件存放在/bin 管理員; /usr/bin 一般用戶
whereis 倆命令都可以找到命令的絕對路徑
不同的是 which 可以顯示出命令的別名
whereis 可以顯示命令幫助的文檔所在的位置
-------------------------------------
find 制定的目錄 范圍,還會遍歷窮盡子目錄
任何文件的搜索
find find ./ -name *rpm
通配符 * 任意多任何字符
? 單個任意字符
對於此搜索命令,一般放在系統閑時運行查詢,然后將結果放置保存,讓系統資源運行在需要的時候
-----------按照數據大小搜索------------
一般數據存儲按照數據塊 block =512byte存儲=0.5k
find ./ -size +你的大小
+ 超過
- 小於
= 不用寫 ,直接寫上數值
----------------------------------------
----------按照用戶所有者查詢------------
find ./ -user chenwenguang
-----------------------------------------
-----------按照inode 進行文件查詢-----------
查詢節點為此的文件,然后執行刪除,用來執行對文件名比較另類的文件進行操作
find ./ -inum 261383 -exec rm -f {} \;
---------------------------------------------
知識點17
locate/slocate命令文件查找和比較 locate命令和slocate命令都用來查找文件或目錄。
locate命令其實是find -name的另一種寫法,但是要比后者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫/var/lib/locatedb,
這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。
為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。
知識點 18
文件內容搜索 grep
grep contentrule from
知識點 19
man 命令幫助
help help命令用於顯示shell內部命令的幫助信息。help命令只能顯示shell內部的命令幫助信息。而對於外部命令的幫助信息只能使用man或者info命令查看。
whatis whatis命令是用於查詢一個命令執行什么功能,並將查詢結果打印到終端上
知識點 20
壓縮 解壓
gzip 格式為.gz,只能壓縮文件 File ,不能壓縮目錄,壓縮后,不保留源文件
--------------windows 的rar 壓縮 ,沒法解壓,那就必須安裝rar for linux版本
壓縮正向
gzip * files.....
解壓
gunzip 或者 gzip -d
tar 格式
tar 命令,格式 tar.gz 可以將目錄壓縮
-c ---創建文件
-v---顯示執行信息
-f----新的文件名
-z----打包 同時進行壓縮
tar -zcvf 【目標.tar.gz】 【包含的文件。目錄】
小提示:file命令用來探測給定文件的類型。file命令對文件的檢查分為文件系統、魔法幻數檢查和語言檢查3個過程。
-Z 解包
zip 壓縮
默認格式為 .zip格式
------------可實現跨平台文件共享-----
也可以壓縮目錄,壓縮成文件后,還保留源文件
unzip 命令文件壓縮與解壓 unzip命令用於解壓縮由zip命令壓縮的“.zip”壓縮包。
bizip2
壓縮解壓文件--壓縮比的性能很高,文件格式 *.bz2
-----------------------------------------------------------------------------------------------------------
知識點 21
網絡通信
write ---向單個已經登錄系統的用戶發送消息
wall ---針對所有用戶
ifconfig --進行當前機器的網卡IP地址查詢,臨時變更
ping--向特定的服務器地址發送默認64字節的消息,默認會一直ping 下去,按CTRL+C 結束
--------------------------------------Shell 應用技巧---------------------------------------------------------------------
Shell 初學者請注意,在平常應用中,建議不要用 root 帳號運行 Shell 。作為普通用戶,不管您有意還是無意,都無法破壞系統;但如果是 root,那就不同了,只要敲幾個字母,就可能導致災難性后果。
知識點 22
列舉出系統中包含的Shell應用,Shell是根內核交互的程序
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
------------------------------------Shell編程--------------------------------------------------------------
腳本結構
1 #! 指定執行腳本的Shell --------一般默認為bash
2 # 注釋
3 執行的命令
注意:執行腳本的時候 使用 sh -x 可以查看腳本的命令執行過程
創建一個shell腳本
1 開頭寫上作用
2 shell腳本的作者 時間
3 寫命令
4調試執行 測試結果
5 保存,並修改屬性為可執行
單引號 雙引號的區別是:
單引號和雙引號的區別。單引號告訴shell忽略所有特殊字符,而雙引號忽略大多數,但不包括$、\、`。
[root@localhost sh]# testvalue=100
[root@localhost sh]# echo 'The testvalue is $testvalue'
The testvalue is $testvalue
[root@localhost sh]# echo "The testvalue is $testvalue"
The testvalue is 100
[root@localhost ~]# v_currentDate=`date`
[root@localhost ~]# echo $v_currentDate
Sun Nov 1 12:54:48 CST 2015
執行一個命令 並返回結果 我們使用$( cmd -options agrs),代替使用 反寫引號` `
獲取一個變量 我們最好使用${變量名的方式 獲取變量}
使用命令 set ----------列出所有變量
位置變量和特殊變量
Shell解釋執行用戶時,將命令行的第一個部分作為命令,其他部分作為參數。由出現在命令行上的位置確定的參數稱為位置參數
例如:
ls -l file1 file2 file3
$0 ->這個程序的文件名 ls -l
$n ->這個程序的第n個參數值, n=1-9
特殊變量 $?---------執行上一個命令的執行結果,0成功 非0 失敗
read命令
從鍵盤讀入數據,賦給變量
read USERNAME
expr命令
對整數型變量進行算術運算 【中間有空格】
例如:
expr 3 + 5
expr $var1 – 5
expr $var1 / $var2
expr $var3 \* 10
復雜的expr命令
expr ‘expr 5 + 7’/$var4
------------------------------------Shell編程中的在Windows 下的腳本異常---開始-----------------------------------------------------------
---可以再Notepad++中的設置項中--將新建默認的文檔格式為Unix,然后在右下方你就可以看到文檔的格式不是DOS 是Unix了。。。
---蛋疼的3大平台的換行符
---DOS :CR LF
---UNIX:LF
---MAC:CR
---------綜上,那么最好在Linux中先創建好文件,然后載入到本地----------------------
---------也可以給NotePad++設定轉化的快捷鍵
/bin/sh^M: bad interpreter: No such file or directory 異常
在linux下運行shell腳本,報上面的錯誤。
google了一下發現時編碼問題,運行一下 dos2unix 文件即可
原因是windows下的文件格式在linux下不兼容
轉載寫的挺好的一個篇文章
在Linux中執行.sh腳本,異常/bin/sh^M: bad interpreter: No such file or directory。
分析:這是不同系統編碼格式引起的:在windows系統中編輯的.sh文件可能有不可見字符,所以在Linux系統下執行會報以上異常信息。
解決:1)在windows下轉換:
利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉換,再放到Linux中執行。轉換方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。
2)也可在Linux中轉換:
首先要確保文件有可執行權限
#sh>chmod a+x filename
然后修改文件格式
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盤退出)
最后再執行文件
#sh>./filename
------------------------------------Shell編程中的在Windows 下的腳本異常--結束------------------------------------------------------------
shift +回車 進行多行換行
[root@localhost ~]# web_nginx=`pgrep nginx`
[root@localhost ~]# if [ "$web_nginx" = "" ]
> then echo 'a'
> else echo 'b'
> fi
b
-----一般用的是bash-------------------
1 Tab 鍵進行命令補全
2 history ---執行的命令記錄
3 crtl+l---清屏
4 crtl+u---清除光標所在行的內容
5 # alias ----------將系統定義好的命令別名顯示,或者定義自己的命令別名
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]#
別名定義范例:
alias copy=cp
刪除別名定義
unalias copy
--------------輸入 輸出 重定向-------------
輸入 重定向
< 0 (標准輸入)
輸出從定向
> 追加模式>> 1 (標准輸出)
2 (標准錯誤輸出)
-------------管道模式--------------------
管道模式
對命令 之間進行 | 操作 ,讓前面的命令 作為后面的命令的輸入
比如查找的時候 ls -l /dev |more 即可實現分頁處理內容,| grep keyword 實現搜索
命令連接符
; 表示命令的分割,命令的執行結束
&& 命令表示命令進行邏輯與操作,只有前面的命令執行Success后 后面才能繼續
|| 邏輯或操作
`` 使用命令替換符號
將命令的輸出執行結果,作為執行命令的輸入參數
ls -l `which cd`
這個用法 執行順序 根 管道相反
知識點 22
用戶管理
用戶信息文件 /etc/password -------chenwenguangrr:x:500:500:chen:/home/chenwenguangrr:/bin/bash 格式 uname;密碼位x;UID;GID缺省的組;注釋性描述;宿主目錄;Shell解釋器
uid=0 的用戶root 就是超級用戶,,,uid 是自增的
500-60000 --普通用戶,最大用戶數 可以自增的更改的
1-499 -------偽用戶,偽用戶 (1 系統服務,2軟件服務),使用對應 的身份做相應權限的操作,不能登錄系統,沒有宿主目錄
用戶組 role-group
用戶組定義用戶的身份角色
1 每個用戶至少包含在一個默認的用戶組
2 一個用戶可以歸屬多個組
3 所在改組的用戶 享有改組的權限
宿主目錄:用戶登錄后,所在的目錄地址,默認為此用戶在/home/username.....:例如/home/wangwang
用戶密碼文件 /etc/shadow
主流密碼加密算法
RSA 對稱密鑰 ,私鑰+公鑰的方式
MD5 255位的輸出字符
DES 只能識別8位。前8位一旦正確就可以識別
用戶名:密碼:最后更改的時間
wangyang:$6$aSvP5py/$Jn.n3tbuujyc5wskuQ1dKQFpkGO0MDSF/tGzFszYnA/WorXLGQ/t1jccO2Ain2Yksc85eNFGhG/.0gQVmtATM0:16735:0:99999:7
密碼位一旦擦除,那么登錄就不需要密碼了!!!!!!!!!!!!!!!!!!
用戶的一般操作
useradd--添加
userdel--刪除
passwd--設置 更新密碼
用戶組的一般操作
groupadd
groupdel
groupmod --修改用戶組
linux里,並沒有像windows的net user,net localgroup這些方便的命令來管理用戶.
(1)在終端里.其實只需要查看 /etc/passwd文件就行了.
(2)看第三個參數:500以上的,就是后面建的用戶了.其它則為系統的用戶.
或者用cat /etc/passwd |cut -f 1 -d :
2、用戶管理命令
useradd 注:添加用戶
adduser 注:添加用戶
passwd 注:為用戶設置密碼
usermod 注:修改用戶命令,可以通過usermod 來修改登錄名、用戶的家目錄等等;
pwcov 注:同步用戶從/etc/passwd 到/etc/shadow
pwck 注:pwck是校驗用戶配置文件/etc/passwd 和/etc/shadow 文件內容是否合法或完整;
pwunconv 注:是pwcov 的立逆向操作,是從/etc/shadow和 /etc/passwd 創建/etc/passwd ,然后會刪除 /etc/shadow 文件;
finger 注:查看用戶信息工具
id 注:查看用戶的UID、GID及所歸屬的用戶組
chfn 注:更改用戶信息工具
su 注:用戶切換工具
sudo 注:sudo 是通過另一個用戶來執行命令(execute a
command as another user),su 是用來切換用戶,然后通過切換到的用戶來完成相應的任務,但sudo
能后面直接執行命令,比如sudo 不需要root 密碼就可以執行root 賦與的執行只有root才能執行相應的命令;但得通過visudo
來編輯/etc/sudoers來實現;
visudo 注:visodo 是編輯 /etc/sudoers 的命令;也可以不用這個命令,直接用vi 來編輯 /etc/sudoers 的效果是一樣的;
sudoedit 注:和sudo 功能差不多;
3、管理用戶組(group)的工具或命令;
groupadd 注:添加用戶組;
groupdel 注:刪除用戶組;
groupmod 注:修改用戶組信息
groups 注:顯示用戶所屬的用戶組
grpck
grpconv 注:通過/etc/group和/etc/gshadow 的文件內容來同步或創建/etc/gshadow ,如果/etc/gshadow 不存在則創建;
grpunconv 注:通過/etc/group 和/etc/gshadow 文件內容來同步或創建/etc/group ,然后刪除gshadow文件。
groups 查看當前登錄用戶的組內成員
groups gliethttp 查看gliethttp用戶所在的組,以及組內成員
whoami 查看當前登錄用戶名
/etc/group文件包含所有組
/etc/shadow和/etc/passwd系統存在的所有用戶名
1、/etc/group 解說;
/etc/group 文件是用戶組的配置文件,內容包括用戶和用戶組,並且能顯示出用戶是歸屬哪個用戶組或哪幾個用戶組,因為一個用戶可以歸屬一個或多個不同的用戶組;同一用 戶組的用戶之間具有相似的特征。比如我們把某一用戶加入到root用戶組,那么這個用戶就可以瀏覽root用戶家目錄的文件,如果root用戶把某個文件 的讀寫執行權限開放,root用戶組的所有用戶都可以修改此文件,如果是可執行的文件(比如腳本),root用戶組的用戶也是可以執行的;
用戶組的特性在系統管理中為系統管理員提供了極大的方便,但安全性也是值得關注的,如某個用戶下有對系統管理有最重要的內容,最好讓用戶擁有獨立的用戶組,或者是把用戶下的文件的權限設置為完全私有;另外root用戶組一般不要輕易把普通用戶加入進去,
2、/etc/group 內容具體分析
/etc/group 的內容包括用戶組(Group)、用戶組口令、GID及該用戶組所包含的用戶(User),每個用戶組一條記錄;格式如下:
group_name:passwd:GID:user_list
在/etc/group 中的每條記錄分四個字段:
第一字段:用戶組名稱;
第二字段:用戶組密碼;
第三字段:GID
第四字段:用戶列表,每個用戶之間用,號分割;本字段可以為空;如果字段為空表示用戶組為GID的用戶名;
命令快捷:
用戶:
id 查詢當前用戶的信息和組信息
vipw 鎖定並編輯用戶信息文件 /etc/password
su 臨時切換用戶
設置用戶密碼:echo '密碼' | password --stdin 用戶名
-----------------------系統升級更新-----------------
yum update----------將更新所有的軟件依賴包
-----------------------------------------進程管理----------------------------------------------------------
知識點 23
程序vs進程
運行一個程序,可能要開始幾個進程進行支持,1+
一個進程可以有多個線程
ps 命令查看系統運行的進程信息
kill 殺死進程
xkill 關閉圖形進程
killall關閉所有匹配的進行
pgrep 查詢服務進程的編碼
pkill 關閉進程id的進程
kill -9 進程號--------強行關閉
kill -1 進程號--------強行重啟
快捷鍵:CTRL+Z ---------進程掛起
CTRL+C -----進程結束
nohup 用來創建任務執行進程
例如”nohup 命令 &------------使用&字符來聲明一個后台進程
jobs ----------查看當前掛起的進程
進程的恢復
fg--恢復前台進程
bg---恢復后台進程
top ----展示當前正在運行的程序的動態的信息
計划任務
at --------在某一時刻執行
batch ------在系統負載不嚴重的時候 執行一次
crontab -----進行周期性的任務
比如nginx
為了操作方便,可以自己寫一個nginx命令腳本,放到/etc/init.d下,並賦予其執行權限即可,詳見附件,執行方法如下:
啟動:service nginx start
停止:service nginx stop
重啟:service nginx rerestart
查看狀態:service nginx status
nice----新建一個進程並設置優先級
renice ---進行進程的優先級的調整
-----------------------------------------文件系統----------------------------------------------------------
/usr/bin '/bin 下面 存放所有用戶可以執行的命令
/usr/sbin 、/sbin 下面存放僅僅root用戶可以執行的命令
/home linux用戶的宿主目錄
/proc 虛擬文件系統,存放當前系統鏡像 mirror,沒有物理文件,而是存放在系統運行的內存中
/dev 存放設備文件,所有的文件都以文件的形式 存放在這個目錄
/lib 存放系統運行所需要的共享庫 library
/lost+found 存放系統檢測出的錯誤的結果
/tmp 存放臨時文件,有個特殊的權限,給Other 一個t 權限,代表此只有自己所有這個文件的 才可以刪除,任何人都有讀寫權限
/etc 存放配置文件-------------查看其目錄大小:du -sh /home
/var 包含經常變動的文件,郵件 日志文件 計划任務等
/usr 存放了系統的幾乎所有的命令 庫 手冊頁等,非常龐大,相當於 Windows的 系統目錄 如:c:/windows
------但是/usr/local 下面 存放了 我們安裝的第三方軟件,相當於windows 系統的 c:/program files
/mnt 臨時文件系統的默認掛載點,如軟盤 CD/DVD ,U盤,移動硬盤
/boot 存放啟動項內容,自舉程序文件,如內核
命令集合
df 查看系統的分區情況
du ---查看文件或者目錄大小du -sh /home
file ---檢測文件類型
fsck ,e2fsck ---檢測文件的完整性,e2fsck命令用於檢查第二擴展文件系統的完整性,通過適當的選項可以嘗試修復出現的錯誤。(必須進入單用戶模式)
-------切忌:不要直接刪除文件,應該為當前用戶創建一個垃圾回收站的目錄,將不使用的文件,mv 到此目錄,而不是強制刪除
把當前目錄下面的file(不包括目錄),移動到/opt/shell
ls /root/pythonTest/*.py | xargs -I '{}' mv {} /backup/
find . -type f -exec mv {} /opt/shell \;
find . -type f | xargs -I '{}' mv {} /back
cdrom 或者其他軟盤在Linux系統使用的時候 需要創建臨時目錄進行創建掛載點
一般臨時目錄 掛載點 我們都放在/mnt 下面
掛載命令
mount /dev/cdrom /mnt/cdrom
[root@localhost /]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
-------------必須將光盤填進去或者在虛擬機下 必須連接光盤CD/DVD ROM
----------block device :塊設備
----------charset device :字節設備;如打印機 終端
卸載
eject ----彈出
------------------------------------文件備份--------------------------------------------------------------
周期性的就行完全備份和定時性的追加備份
做任務進行命令方式的執行,將數據備份到其他服務器,也可以使用raid的方式進行硬盤備份
並建立備份日志,記錄備份的原因 以及結果
---------備份時間 備份文件地址 備份使用的命令 備份人員----------------
使用基於簡單的文件 拷貝 cp+文件和目錄的打包 壓縮到文件,然后把壓縮文件 上傳的遠程服務器--scp 命令
scp命令用於在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。可能會稍微影響一下速度。
------------------------------------網絡設置的配置文件--------------------------------------------------------------
/etc/services-------網絡服務信息文件
/etc/hosts-----------主機名數據緩存文件
/etc/rc.d/init.d/network---------網絡啟動腳本
命令 nmap IP 用來掃描主機的端口
netstat ---------當前網絡狀態信息
vi /etc/ssh/sshd_config
取消22前面的#號注釋
增加一行Port 端口號
[root@localhost ~]# /etc/init.d/sshd restart
測試通過后 再去掉22,開啟了防火牆的話,把目標端口開放出去---如果您有設置防火牆,請修改增加防火牆規則,或者直接關閉防火牆也行
現在編輯防火牆配置:vi /etc/sysconfig/iptables
啟用50000端口。 執行/etc/init.d/iptables restart
之所以先設置成兩個端口,測試成功后再關閉一個端口,是為了方式在修改conf的過程中,
萬一出現掉線、斷網、誤操作等未知情況時候,還能通過另外一個端口連接上去調試以免發生連接不上必須派人去機房,導致問題更加復雜麻煩。
------------------------------------Vim的使用--------------------------------------------------------------
Linux的軟件包管理
RPM
YUM 兩種管理方式
YUM 成功解決了 軟件二進制包之間的關聯,使用基於軟件倉儲的方式,從指定的位置進行軟件的版本 安裝管理
yum install 安裝
yum remove 卸載
yum update 更新升級
yum check --update 檢查更新
yum list
安裝軟件(以foo-x.x.x.rpm為例):yum install foo-x.x.x.rpm
yum常用命令
yum常用命令
刪除軟件:yum remove foo-x.x.x.rpm或者yum erase foo-x.x.x.rpm
升級軟件:yum upgrade foo或者yum update foo
查詢信息:yum info foo
搜索軟件(以包含foo字段為例):yum search foo
顯示軟件包依賴關系:yum deplist foo
-e 靜默執行
-t 忽略錯誤
-R[分鍾] 設置等待時間
-y 自動應答yes
--skip-broken 忽略依賴問題
--nogpgcheck 忽略GPG驗證
check-update 檢查可更新的包
clearn 清除全部
clean packages 清除臨時包文件(/var/cache/yum 下文件)
clearn headers 清除rpm頭文件
clean oldheaders 清除舊的rpm頭文件
deplist 列出包的依賴
list 可安裝和可更新的RPM包
list installed 已安裝的包
list extras 已安裝且不在資源庫的包
info 可安裝和可更新的RPM包 信息
info installed 已安裝包的信息(-qa 參數相似)
install[RPM包] 安裝包
localinstall 安裝本地的 RPM包
update[RPM包] 更新包
upgrade 升級系統
search[關鍵詞] 搜索包
provides[關鍵詞] 搜索特定包文件名
reinstall[RPM包] 重新安裝包
repolist 顯示資源庫的配置
resolvedep 指定依賴
remove[RPM包] 卸載包
RPM 相關
卸載
rmp -e softwareName
安裝
rmp -ivh(顯示詳細) h( 用# 進度提示) --test 安裝測試(並不進行物理實際安裝僅僅進行測試安裝)
rpm -ivh --replacepkgs sudo-1.8.6p7-11.el7.x86_64.rpm
作為一個軟件包管理工具,RPM管理着系統已安裝的所有RPM程序組件的資料。我們也可以使用RPM來卸載相關的應用程序。
rpm -e xv
RPM的常用參數還包括:
-vh:顯示安裝進度;
-U:升級軟件包;
-ql :軟件在系統中安裝的文件列表 所在目錄
-qpl:列出RPM軟件包內的文件信息;
-qpi:列出RPM軟件包的描述信息;
-qf:查找指定文件屬於哪個RPM軟件包;
-Va:校驗所有的RPM軟件包,查找丟失的文件;
-qa: 查找相應關聯文件,如 rpm -qa mysql
-qi :查詢軟件信息
-qip:查詢軟件包 未安裝的包的信息
-qf :查詢軟件的安裝來源
1、卸載openjdk
查看目前系統的jdk: rpm -qa | grep jdk(我這里找到的是:java-1.6.0-openjdk-1.6.0.0-1.43.1.10.6.el6_2.i686),如果找不到可以用rpm -qa | grep gcj
移出系統自帶的jdk: yum -y remove java-1.6.0-openjdk-1.6.0.0-1.43.1.10.6.el6_2.i686,如圖所示:
yum -y remove java-1.7.0-openjdk-headless-1.7.0.51-2.4.5.5.el7.x86_64
yum -y remove java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64
(如果安裝包有依賴關系 使用--nodeps 來強制卸載)
jdk 的環境變量
解壓縮剛才下載的: jdk-7u75-linux-x64.tar.gz包,命令如下:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
tar xvf jdk-7u75-linux-x64.tar.gz
六:解壓完成后,進入到:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
[root@localhost~]# cd /etc
[root@localhost etc]# vi profile
在profile文件的末尾加入如下命令:
[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
export JAVA_HOME=/usr/local/java/jdk1.7.0_75
export JRE_HOME=/usr/local/java/jdk1.7.0_75/jre
export PATH=$PATH:/usr/local/java/jdk1.7.0_75/bin
export CLASSPATH=./:/usr/local/java/jdk1.7.0_75/lib:/usr/local/java/jdk1.7.0_75/jre/lib
輸入:wq保存並退出
讓/etc/profile文件修改后立即生效 ,可以使用如下命令:
# . /etc/profile
注意: . 和 /etc/profile 有空格.
############################
export JAVA_HOME=/usr/java/jdk1.7
export JAVA_BIN=/usr/java/jdk1.7/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
############################
Linux 引導
bios
內核
服務主進程
Linux 命令
******************使用Tab 鍵進行命令補全***********
Linux 可以使用命令別名
alias copy=cp -----------------------命令別名
alias delAllDir="drm -" 進行帶參數的別名
unalias copy 移除別名
命令執行權限 Root用戶的 sbin or user/sibin
普通用戶的 bin/ or user/bin
命令 選項 參數
cd 用來切換文件目錄
su - 用來切換登錄用戶
pwd 顯示當前目錄位置
logname 登錄者名稱
ls 列出當前目錄的文件
mkdir 創建目錄
rmdir 移除目錄
whoami 當前登錄者
write 向系統用戶發送消息(使用方法 write username 然后回車 就可以發送消息了;回復其他用戶的話 需要 指定用戶 再次write 指定用戶;)
logout 退出登錄
exit 退出終端
man yourcmd 命令提示
cmd --help 命令提示
ifconfig 網卡設置
date 系統日期
hwclock 系統固件時間
-s, --hctosys set the system time from the hardware clock
-w, --systohc set the hardware clock from the current system time
clear =ctrl+l 進行清屏
清除行命令內容=ctrl+u
Linux對所有的設備都是以文件的形式進行管理
整個文件從/作為根 呈現樹形管理結構
除了/ 字符 ,都可以作為文件的命名字符(不建議 @#$ 空格 - & Tab制表符等容易混淆的字符)
區分大小寫
用. 開頭 的代表是隱藏文件
作為參數的 時候 . 當前目錄 ..上一級目錄
useradd --添加用戶
passwd --設置用戶密碼
su 切換用戶
#開頭的信息均是注釋信息
vi 文本編輯器 (建議還是使用NotePad++編輯好后 放回去得了。。。。。)
進入編輯器后,我們先按"I”,即切換到“插入”狀態。就可以通過上下左右移動光標,或空格、退格及回車等進行編輯內容了,和WINDOWS是一樣的了
我們要按鍵盤左上角的"ESC",留意到了沒有?左下角的插入狀態不見我們輸入“冒號”,即":"(不需雙引號),在下方會出現冒號,等待輸入命令,如圖,我輸入的是WQ。功能如下。
W:write,寫入
Q:quit,退出
再回車,就保存退出了
其實,保存退出還有二個方法:
A:在最后輸入命令時,直接輸入"x",也是一樣的,即X=WQ。
B:最快捷的方法:按了ESC后,直接按shift+zz,或者切換到大寫模式按ZZ,就可以保存退出了,即是按2下大寫的Z。
當編輯完文件,准備退出Vi返回到shell時搜索,可以使用以下幾種方法之一。
在命令模式中,連按兩次大寫字母Z,若當前編輯的文件曾被修改過,則Vi保存該文件后退出,返回到shell;若當前編輯的文件沒被修改過,則Vi直接退出, 返回到shell。
在末行模式下,輸入命令 :w
Vi保存當前編輯文件,但並不退出,而是繼續等待用戶輸入命令。在使用w命令時,可以再給編輯文件起一個新的文件名。 [例6]
:w newfile
此時Vi將把當前文件的內容保存到指定的newfile中,而原有文件保持不變。若newfile是一個已存在的文件,則Vi在顯示窗口的狀態行給出提示信息:
File exists (use ! to override)
此時,若用戶真的希望用文件的當前內容替換newfile中原有內容,可使用命令
:w! newfile
否則可選擇另外的文件名來保存當前文件。
在末行模式下,輸入命令 :q
系統退出Vi返回到shell。若在用此命令退出Vi時,編輯文件沒有被保存,則Vi在顯示窗口的最末行顯示如下信息:
No write since last change (use ! to overrides)
提示用戶該文件被修改后沒有保存,然后Vi並不退出,繼續等待用戶命令。若用戶就是不想保存被修改后的文件而要強行退出Vi時,可使用命令 :q!
Vi放棄所作修改而直接退到shell下。
在末行模式下,輸入命令 :wq
Vi將先保存文件,然后退出Vi返回到shell。
在末行模式下,輸入命令 :x
該命令的功能同命令模式下的ZZ命令功能相同。
1 命令模式(默認) 2 插入模式 (i a o)(esc 回去命令) 3 編輯模式 (使用 : +命令如 set number)
vi 文件名(打開或者創建文件)
a 光標后
A行后
i 光標前
I 行前
o光標下
O 光標上
h ← j ↓ k ↑ l →( 雙曲線模式)
$ 行尾部
0 行首部
H 屏幕上端
M 中央
L 下方
設置行號 :set number ->set nu
取消行號 :set nonumber->set nonu
gg 到第一行
G 最后一行
number G 跳到第幾行 如8G
或者使用 :8
刪除命令
x 刪除光標所在的字符
nx刪除光標后的n個字符
dd 刪除光標所在行
ndd刪除光標后的n行
D刪除光標所在處到行末尾
dG刪除光標所在行到末尾
:n1, n2d 刪除指定區間的行
復制命令
yy 或者 Y 來復制當前行
nyy 或者nY 復制多少行
dd 剪切當前行
ndd 剪切當前向下多少行
p 或者P 粘貼 當前行下 或者光標所在行上
替換命令
r 替換光標所在字符 (到指定的字符光標,敲擊r鍵 ,然后輸入你想替換的字符)
R 從光標所在處開始替換 按ESC結束(敲擊R后,開始進行替換編輯)
u 撤銷上一次命令
/string 從前往后搜索指定的字符串 :set ic 忽略大小寫,然后 小寫n 從前往后 ,N 從后往前
文件搜索命令
whatis
命令幫助信息
man 1 命令 命令幫助
man 5 配置 配置的幫助信息
info 類似man 命令 只不過顯示不同
grep 從文件內容中匹配內容
grep 關鍵詞 文件名
locate 文件查詢
從定期更新的系統數據庫中進行文件索引查詢
配合updatedb 強制進行文件內容的更新,所以比較適合查詢一些系統中的文件,否則需要updatedb后才能查詢精確結果
效率更好
which --進行命令的搜索定位,文件目錄
whereis --文件的絕對目錄+幫助文件
find --可以找到任何的 文件
para1 范圍
para2 條件匹配格式 安裝名稱等 iname name
para3 value
通配符 * 任意多字符 包括0個字符串
?表示單個任意字符
iname --忽略大小寫的搜素
name-- 不忽略大小
size --安裝大小搜 ,+大於,- 小於(數據庫塊的轉化 1block=512byte=0.5kb)
user --安裝創建用戶查詢
ctime atime mtime 天 24小時
cmin amin mmin 分鍾 - 之內 +超過
(c=change 文件屬性被修改;
a=access 訪問;
m=modify 文件內容被修改)
type 文件類型
l 軟連接文件
d 目錄
f 二進制文件
inum --對應文件的inode
多個條件 進行條件拼接
-a and
find /dev -size +1000 -a -name init*
-o or
-exec 命令 {} \; ----------用來實現find結果集的逐命令操作
{}代表find 查詢的結果 \轉義符號 ;代表結束
-ok 用來在逐步執行的時候 進行確認操作
權限處理命令
chmod
? +-=操作
u
g
o
r=4 2x2 0100
w=2 2x1 0010
x=1 2x0 0001
-=0 0000
進行數值的權限 修改操作 ,系統進行邏輯與 &操作 進行權限的更新
umask 查看/更改 默認權限(不推薦更改)
0022
0--特殊權限位
022---用戶權限,權限掩碼
777
-022= 755
默認創建的文件 沒有可以執行的權限x
----------------更改操作 umask 掩碼值=777-your permission
文件操作命令
cat ---concatenate 內容查閱
more --分頁瀏覽文件內容 使用回車 進行行讀 空格鍵進行頁讀取
head --默認10行 -行數 文件名 查看前幾行的內容
tail --最后幾行
ln --link (-s ) from to 生成鏈接 (軟鏈接-> lrwxrwxrwx; 硬鏈接 文件的硬指向映射跟源文件的屬性一致 )
軟鏈接 生成link 文件 指向源文件 sourcefille 地址,可以跨分區到不同的位置
硬鏈接 hard link 存儲的就是文件的本身地址內容拷貝,同步更新,與源文件有相同的inode,每個文件都有節點值,不能拷貝到不同的分區
touch 創建文件(默認創建的二進制文件不具備執行 x 權限)
mkdir 創建目錄
rmdir 刪除空目錄
rm -remove 刪除文件或目錄
mv -move 剪切或者重命名 from to
cp -copy 復制文件 from to
sudo 命令 啟用超級管理員的權限 進行操作
使用 inconfig 或查看或者更高聯網設置
su 命令 進行登錄的臨時身份的切換
clear 清除控制台的命令
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
linux下文件夾的創建、復制、剪切、重命名、清空和刪除命令 .
在home目錄下有wwwroot目錄,wwwroot下有sinozzz目錄,即/home/wwwroot/sinozzz
一、目錄創建
在/home/wwwroot目錄下新建一個sinozzz123的文件夾
mkdir /home/wwwroot/sinozzz123
二、目錄復制
1.把/home/wwwroot/sinozzz里面的文件和文件夾等復制到home/wwwroot/sinozzz123目錄下
cp -rf /home/wwwroot/sinozzz/* /home/wwwroot/sinozzz123
2.把/home/wwwroot/sinozzz123/abc/下的文件夾和文件復制到home/wwwroot/sinozzz123目錄下
cp -rf /home/wwwroot/sinozzz123/abc/* /home/wwwroot/sinozzz123
3.把/home/wwwroot/sinozzz目錄復制到/home/wwwroot/sinozzz123目錄下,即把sinozzz復制變成sinozzz123的子目錄,變成/home/wwwroot/sinozzz123/sinozzz的路徑
cp -rf /home/wwwroot/sinozzz /home/wwwroot/sinozzz123
三、目錄剪切
1.使用mv命令剪切文件。
如需要將/home/wwwroot/sinozzz123/music/目錄下的1.mp3文件剪切到/home/wwwroot/sinozzz123/abc目錄下,執行下面的命令即可:
# mv /home/wwwroot/sinozzz123/music/1.mp3 /home/wwwroot/sinozzz123/abc
2.使用mv命令剪切文件夾。
把/home/wwwroot/sinozzz123/soft文件夾剪切到/home/wwwroot/sinozzz123/abc目錄下
# mv /home/wwwroot/sinozzz123/soft /home/wwwroot/sinozzz123/abc
3.使用mv命令剪切文件夾和文件
把/home/wwwroot/sinozzz123/photo/下的文件夾和文件剪切到/home/wwwroot/sinozzz123/abc目錄下
# mv /home/wwwroot/sinozzz123/photo/* /home/wwwroot/sinozzz123/abc
四、目錄重命名
在linux下,移動文件跟重命名都是同一個命令,mv(就是move的意思)
命令: mv 源文件名 目標文件名
1.把/home/wwwroot/sinozzz123/index.htm重命名為/home/wwwroot/sinozzz123/index.html
# mv /home/wwwroot/sinozzz123/index.htm /home/wwwroot/sinozzz123/index.html
2.把/home/wwwroot/sinozzz123目錄重命名為/home/wwwroot/sinozzz456
# mv /home/wwwroot/sinozzz123 /home/wwwroot/sinozzz456
五、目錄刪除
linux刪除目錄很簡單,很多人還是習慣用rmdir,不過一旦目錄非空,就陷入深深的苦惱之中,現在使用rm -rf命令即可。
直接rm就可以了,不過要加兩個參數-rf
即:rm -rf 目錄名字
-r 就是向下遞歸,不管有多少級目錄,一並刪除
-f 就是直接強行刪除,不作任何提示的意思
1.刪除文件使用實例:
rm -f /home/wwwroot/sinozzz456/index.html
將會強制刪除/home/wwwroot/sinozzz456/index.html這個文件
2.清空文件夾實例:
rm -rf /home/wwwroot/sinozzz456/abc/*
將會強制刪除/home/wwwroot/sinozzz456/abc目錄下所有文件、文件夾,保留/home/wwwroot/sinozzz456/abc目錄
3.刪除文件夾實例:
rm -rf /home/wwwroot/sinozzz456
將會強制刪除/home/wwwroot/sinozzz456目錄以及其下所有文件、文件夾
需要提醒的是:使用這個rm -rf的時候一定要格外小心,linux沒有回收站的
當然,rm還有更多的其他參數和用法,man rm就可以查看了
如果是在/home/wwwroot/目錄下進行操作,則可以省去每個命令的/home/wwwroot/部分
vi、touch是創建文件的命令,cp、mv也算是吧,因為cp是拷貝文件,mv是移動文件另外還有好多命令能夠創建文件,
之要該命令能夠重定向輸出到一個不存在的文件,就會創建文件。
例如搜索tail -f -n 200 /usr/local/tomcat/logs/catalina.out > /tmp/tomcatlog.log //將tomcat日志文件的最后200行內容寫入到/tmp/tomcatlog.log文件中,如果/tmp/tomcatlog.log文件不存在,則會創建該文件,如果存在,則覆蓋原文件的內容。下面的類同:echo nihao > /tmp/echo.txtcat testcat > /tmp/cat.txtless testless > /tmp/less.txt
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ls 命令
-a all
-l 長格式long
-d 當前目錄
drwxrwxr-x. 3 Tom Tom 17 4? 5 13:53 .cache
第一列
drwxr-xr-x
第一個字母 文件類型
d 代表是dir
- 代表的是二進制文件
l 代表軟鏈接文件 link
b 可供儲存的接口設備(可隨機存取裝置);
c 串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)
rwx r-x r-x
第一組-u 代表權限(u文件所有者user/ owner 所屬組 g -group 其他others)
r-read w-write x-excute(File)
r-讀取文件夾中的內容 w-寫入刪除文件夾中的內容 x-是否可以進去目錄(Dir)
文件File 會跟從其所在的目錄的權限,被目錄權限覆蓋
第二組-g 是用戶組權限
第三組-o 是Others 其他用戶的執行訪問權限
第二列
硬鏈接數
第三列
所有者
第四列
所屬組
第五列
文件大小(不是很准確)單位 :數據塊 block =512bytes=0.5K
第六列
文件創建/修改時間
最后列
文件名
------------------------------------------------------------------------------------------------------------------------------
在64位的Windows下 不能為32位的Linux共享網絡??????????
Linux 教程相關
http://www.santongit.com/forum-91-1.html
http://www.santongit.com/thread-6962-1-1.html
http://dl.dbank.com/c091c0i6hq
http://www.gogo.so/topics/2970627/
------------------------------------------------------------------------------------------------------------------------------
Centos 6.4 python 2.6 升級到 2.7
查看python的版本
01.#python -V
02.Python 2.6.6
1.下載Python-2.7.3
01.#wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
2.解壓
01.#tar -jxvf Python-2.7.3.tar.bz2
3.更改工作目錄
01.#cd Python-2.7.3
4.安裝
01.#./configure
02.#make all
03.#make install
04.#make clean
05.#make distclean
5.查看版本信息
01.#/usr/local/bin/python2.7 -V
6.建立軟連接,使系統默認的 python指向 python2.7
01.#mv /usr/bin/python /usr/bin/python2.6.6
02.#ln -s /usr/local/bin/python2.7 /usr/bin/python