su只是切換了root身份,但Shell環境仍然是普通用戶的Shell;而su -連用戶和Shell環境一塊兒切換成root身份了。只有切換了Shell環境纔不會出現PATH環境變量錯誤,報command not found的錯誤。node
su切換成root用戶之後,pwd一下,發現工做目錄仍然是普通用戶的工做目錄;而用su -命令切換之後,工做目錄變成root的工做目錄了linux
uname 查看內核名稱shell
uname -s 同上(s:kernel-name)後端
uname -r 查看內核發行版本(r:kernel-release)緩存
uname -v 查看內核創建時間與cpu架構(v:kernel-version)服務器
uname -n 查看主機名(n:nodename)架構
uname -m 查看硬件名稱 i686=32 X86_64=64(m:machine)app
uname -i 查看硬件平臺名稱(硬件i686是屬於硬件平臺i386系列的)(i:hardware-platform)dom
uname -o 查看操做系統(o:operating-system)tcp
uname -p 查看處理器類型(p:processer)
uname -a 查看全部信息
-c: 建立新的tar文件(c:create)
-x: 解開tar文件(x:extract)
-t: 列出tar文件中包含的文件的信息(t:list)
-r: 附加新的文件到tar文件中(r:append)
-u: 用已打包的文件的較新版本更新tar文件(u:update)
這五個是獨立的命令,壓縮解壓都要用到其中一個,能夠和別的命令連用但只能用其中一個。下面的參數是根據須要在壓縮或解壓檔案時可選的。
-d: 查看文件與歸檔文件的不一樣(d:diff/compare)
-z: 調用gzip執行壓縮或解壓縮(.gz)
-j: 調用bzip2執行壓縮或解壓縮(.bz2)
-Z: 調用compress執行壓縮或解壓縮(.Z)
-v: 列出每一步處理涉及的文件的信息,只用一個「v」時,僅列出文件名,使用兩個「v」時,列出權限、全部者、大小、時間、文件名等信息。(v:verbose)
-O: 將文件解開到標準輸出(O:to-stdout)
-k: 不覆蓋文件系統上已有的文件(k: keep-old-files)
下面的參數-f是必須的
-f: [主機名:]文件名 指定要處理的文件名。能夠用「-」表明標準輸出或標準輸入(f:file)
tar -cf all.tar *.jpg
這條命令是將全部.jpg的文件打成一個名爲all.tar的包。-c是表示產生新的包,-f指定包的文件名。
tar -rf all.tar *.gif
這條命令是將全部.gif的文件增長到all.tar的包裏面去。-r是表示增長文件的意思。
tar -uf all.tar logo.gif
這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -tf all.tar
這條命令是列出all.tar包中全部文件,-t是列出文件的意思
tar -xf all.tar
這條命令是解出all.tar包中全部文件,-t是解開的意思
壓縮
tar –cvf jpg.tar *.jpg //將目錄裏全部jpg文件打包成jpg.tar
tar –czf jpg.tar.gz *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用gzip壓縮,生成一個gzip壓縮過的包,命名爲jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名爲jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //將目錄裏全部jpg文件打包成jpg.tar後,而且將其用compress壓縮,生成一個umcompress壓縮過的包,命名爲jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的壓縮,須要先下載rar for linux
zip jpg.zip *.jpg //zip格式的壓縮,須要先下載zip for linux
解壓
tar -xvf file.tar //解壓 tar包
tar -xzvf file.tar.gz //解壓tar.gz
tar -xjvf file.tar.bz2 //解壓 tar.bz2
tar –xZvf file.tar.Z //解壓tar.Z
unrar e file.rar //解壓rar
unzip file.zip //解壓zip
一、*.tar 用 tar –xvf 解壓
二、*.gz 用 gzip -d或者gunzip 解壓
三、*.tar.gz和*.tgz 用 tar –xzf 解壓
四、*.bz2 用 bzip2 -d或者用bunzip2 解壓
五、*.tar.bz2 用tar –xjf 解壓
六、*.Z 用 uncompress 解壓
七、*.tar.Z 用tar –xZf 解壓
八、*.rar 用 unrar e解壓
九、*.zip 用 unzip 解壓
yum的命令形式通常是以下:yum [options] [command] [package ...]
其中的[options]是可選的。[command]爲所要進行的操做,[package ...]是操做的對象。
option選項:
-h 幫助(h:help)
-q 靜默執行,不顯示安裝的過程(q:quiet)
-t 忽略錯誤(t:tolerant)
-R [分鐘] 設置等待時間(r:randomwait)
-y 當安裝過程提示選擇所有爲"yes"(y:assumeyes)
--skip -broken 忽略依賴問題
--nogpgcheck 忽略GPG驗證
yum install 所有安裝
yum install package1 安裝指定的安裝包package1
yum groupinsall group1 安裝程序組group1
yum update 所有更新
yum update package1 更新指定程序包package1
yum check-update 檢查可更新的程序
yum upgrade package1 升級指定程序包package1
yum groupupdate group1 升級程序組group1
yum info package1 顯示安裝包信息package1
yum list 顯示全部已經安裝和能夠安裝的程序包
yum list package1 顯示指定程序包安裝狀況package1
yum groupinfo group1 顯示程序組group1信息yum search string 根據關鍵字string查找安裝包
yum remove | erase package1 刪除程序包package1
yum groupremove group1 刪除程序組group1
yum deplist package1 查看程序package1依賴狀況
yum clean packages 清除緩存目錄下的軟件包
yum clean headers 清除緩存目錄下的 headers
yum clean oldheaders 清除緩存目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的headers
安裝軟件: yum install *.rpm
刪除軟件: yum remove *.rpm或者yum erase *.rpm
升級軟件: yum upgrade *或者yum update *
查詢信息: yum info *
搜索軟件: yum search *
顯示軟件包依賴關係:yum deplist *
sudo [-bhHpV][-s ][-u <用戶>][指令]
參數
-b 在後臺執行指令。(b:backgroud)
-h 顯示幫助。(h:help)
-H 將HOME環境變量設爲新身份的HOME環境變量。(H:HOME)
-k 結束密碼的有效期限,也就是下次再執行sudo時便須要輸入密碼。(k:kill)
-l 列出目前用戶可執行與沒法執行的指令。(l:list)
-p 改變詢問密碼的提示符號。(p:prompt)
-s 執行指定的shell。(s:shell)
-u 以指定的用戶做爲新的身份。若不加上此參數,則預設以root做爲新的身份。(u:user)
-v 延長密碼有效期限5分鐘。(v:validate)
-V 顯示版本信息。(V:version)
-S 從標準輸入流替代終端來獲取密碼(S:stdin)
lsof -i:8090
netstat -ap|grep 8090
用途:不掛斷地運行命令。
語法:nohup Command [ Arg … ] [ & ]
不管是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 文件中。
若是當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out 文件中。
若是沒有文件能建立或打開以用於追加,那麼 Command 參數指定的命令不可調用。
退出狀態:該命令返回下列出口值:
126 能夠查找但不能調用 Command 參數指定的命令。
127 nohup 命令發生錯誤或不能查找由 Command 參數指定的命令。
不然,nohup 命令的退出狀態是 Command 參數指定命令的退出狀態。
#管理員 $普通用戶
~+ 當前的工做目錄,這個符號表明當前的工做目錄,她和內建指令 pwd的做用是相同的。
~- 上次的工做目錄,這個符號表明上次的工做目錄。
被單引號用括住的內容,將被視爲單一字串。在引號內的表明變數的$符號,沒有做用,也就是說,他被視爲通常符號處理,防止任何變量替換。
被雙引號用括住的內容,將被視爲單一字串。它防止通配符擴展,但容許變量擴展。這點與單引數的處理方式不一樣
在前面的單雙引號,括住的是字串,但若是該字串是一列命令列,會怎樣?答案是不會執行。要處理這種狀況,咱們得用倒單引號來作
在交互模式下的escape 字元,有幾個做用;放在指令前,有取消 aliases的做用;放在特殊符號前,則該特殊符號的做用消失;放在指令的最末端,表示指令鏈接下一行。
是 UNIX 系統,基礎且重要的觀念。連結上個指令的標準輸出,作爲下個指令的標準輸入。
單一個& 符號,且放在完整指令列的最後端,即表示將該指令列放入後臺中工做。
在 GNU 指令中,若是單獨使用 - 符號,不加任何該加的文件名稱時,表明"標準輸入"的意思。這是 GNU指令的共通選項。譬以下例
tar xpvf -
這裏的 - 符號,既表明從標準輸入讀取資料。
不過,在 cd 指令中則比較特別
cd -
這表明變動工做目錄到"上一次"工做目錄。
${parameter%word}${parameter%%word}
一個 % 表示最短的 word 匹配,兩個表示最長的 word 匹配。
這個符號在規則表達式中,表明行的 "開頭" 位置,在[]中也與"!"(歎號)同樣表示「非」
使cmd命令從file讀入
從命令行讀取輸入,直到一個與text相同的行結束。除非使用引號把輸入括起來,此模式將對輸入內容進行shell變量替換。若是使用<<- ,則會忽略接下來輸入行首的tab,結束行也能夠是一堆tab再加上一個與text相同的內容
把word(而不是文件word)和後面的換行做爲輸入提供給cmd。
以讀寫模式把文件file重定向到輸入,文件file不會被破壞。僅當應用程序利用了這一特性時,它纔是有意義的。
功能同>,但即使在設置了noclobber時也會覆蓋file文件,注意用的是|而非一些書中說的!,目前僅在csh中仍沿用>!實現這一功能。
把文件"filename"截斷爲0長度.# 若是文件不存在, 那麼就建立一個0長度的文件(與'touch'的效果相同).
把輸出送到文件描述符n
1九、m>&n
把輸出重定向到文件符m的信息重定向到文件描述符n
20、cmd >&-
關閉標準輸出
2一、cmd <&n
輸入來自文件描述符n
2二、cmd m<&n
m來自文件描述各個n
2三、cmd <&-
關閉標準輸入
2四、cmd <&n-
移動輸入文件描述符n而非複製它。(須要解釋)
2五、cmd >&n-
移動輸出文件描述符 n而非複製它。(須要解釋)
注意:>&實際上覆制了文件描述符,這使得cmd > file 2>&1與cmd 2>&1 >file的效果不同。
-w 顯示加寬能夠顯示較多的資訊
-aux 顯示全部包含其餘使用者的行程
1)ps a 顯示現行終端機下的全部程序,包括其餘用戶的程序。
2)ps -A 顯示全部進程。
3)ps c 列出程序時,顯示每一個程序真正的指令名稱,而不包含路徑,參數或常駐服務的標示。
4)ps -e 此參數的效果和指定"A"參數相同。
5)ps e 列出程序時,顯示每一個程序所使用的環境變量。
6)ps f 用ASCII字符顯示樹狀結構,表達程序間的相互關係。
7)ps -H 顯示樹狀結構,表示程序間的相互關係。
8)ps -N 顯示全部的程序,除了執行ps指令終端機下的程序以外。
9)ps s 採用程序信號的格式顯示程序情況。
10)ps S 列出程序時,包括已中斷的子程序資料。
11)ps -t<終端機編號> 指定終端機編號,並列出屬於該終端機的程序的情況。
12)ps u 以用戶爲主的格式來顯示程序情況。
13)ps x 顯示全部程序,不以終端機來區分。
14)ps -aux 最經常使用的方法,而後再利用一個管道符號導向到grep去查找特定的進程,而後再對特定的進程進行操做。
15)查看運行的後臺進程
(1)jobs -l
(2)ps -ef
注:
用ps -def | grep查找進程很方便,最後一行老是會grep本身,用grep -v參數能夠將grep命令排除掉
16)查看到進程id以後,使用netstat命令查看其佔用的端口
netstat -nap|grep 7779
17)顯示某個用戶的進程
ps -f -u nova,neutron
18)經過進程名或者進程id顯示進程
ps -C neutron-server
# -C 只能搜索名爲neutron-server的進程(徹底匹配),不能使用部分搜索或者通配符,例如 ps -C neutron 就不會顯示neutron-server進程。所以部分匹配用 ps -ef | grep neutron
19)利用 cpu 或者內存使用量對進程排序
ps aux --sort=-pcpu,+pmem
# 首先以 cpu 使用量排序呢, 若是 cpu 使用量相同,則之內存使用量排序。
20)用ps命令實時顯示進程信息
watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'
開啓防火牆 service iptables start
關閉防火牆 service iptables stop
查看狀態 service iptables status
開啓防火牆 chkconfig iptables on
關閉防火牆 chkconfig iptables off
查看狀態 chkconfig iptables --list
開啓防火牆 chkconfig ip6tables on
關閉防火牆 chkconfig ip6tables off
查看狀態 chkconfig ip6tables --list
find 目錄 -name httpd.conf #在目錄下文件httpd.conf
查找在系統中最後10分鐘訪問的文件(access time)
# 查找在系統中最後48小時訪問的文件
# 查找在系統中爲空的文件或者文件夾
# 查找在系統中屬於 group爲cat的文件
# 查找在系統中最後5分鐘裏修改過的文件(modify time)
#查找在系統中最後24小時裏修改過的文件
#查找在系統中屬於fred這個用戶的文件
#查找出大於10000字節的文件(c:字節,w:雙字,k:KB,M:MB,G:GB)
#查找出小於1000KB的文件
參數有: !,-and(-a),-or(-o)。
#在/tmp目錄下查找大於10000字節並在最後2分鐘內修改的文件
#在/目錄下查找用戶是fred或者george的文件文件
#在/tmp目錄中查找全部不屬於panda用戶的文件
1是普通命令
2是系統調用,如open,write之類的(經過這個,至少能夠很方便的查到調用這個函數,須要加什麼頭文件)
3是庫函數,如printf,fread
4是特殊文件,也就是/dev下的各類設備文件
5是指文件的格式,好比passwd,就會說明這個文件中各個字段的含義
6是給遊戲留的,又各遊戲本身定義
7是附件還有一些變量,好比向environ這種全局變量在這裏就有說明
8是系統管理用的命令,這些命令只能由root使用
linux遠程拷貝在A服務器上操做
scp -r root@43.224.34.73:/home/lk /root
scp -r /root/lk root@43.224.34.73:/home/lk/cpfile
它的功能是爲某一個文件或目錄在另一個位置創建一個同步的連接,相似Windows下的超級連接。
用法:
ln -s 源文件目標文件
刪除連接 rm -rf symbolic_name 注意不是
rm -rf symbolic_name/
iptables -I INPUT -p udp --dport 161 -j ACCEPT
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT