linux 常用命令2
ls
常用參數
-l :列出長數據串,包含文件的屬性與權限數據等
-a :列出全部的文件,連同隱藏文件(開頭為.的文件)一起列出來(常用)
-d :僅列出目錄本身,而不是列出目錄的文件數據
-h :將文件容量以較易讀的方式(GB,kB等)列出來
-R :連同子目錄的內容一起列出(遞歸列出),等于該目錄下的所有文件都會顯示出來
注:這些參數也可以組合使用,下面舉兩個例子:
ls -l #以長數據串的形式列出當前目錄下的數據文件和目錄
ls -lR #以長數據串的形式列出當前目錄下的所有文件
grep
該命令常用于分析一行的信息,若當中有我們所需要的信息,就將該行顯示出來,該命令通常與管道命令一起使用,用于對一些命令的輸出進行篩選加工等等
grep [-acinv] [–color=auto] ‘查找字符串’ filename
它的常用參數如下:
-a :將binary文件以text文件的方式查找數據
-c :計算找到‘查找字符串’的次數
-i :忽略大小寫的區別,即把大小寫視為相同
-v :反向選擇,即顯示出沒有‘查找字符串’內容的那一行
例如:
取出文件/etc/man.config中包含MANPATH的行,并把找到的關鍵字加上顏色
grep –color=auto ‘MANPATH’ /etc/man.config
把ls -l的輸出中包含字母file(不區分大小寫)的內容輸出
ls -l | grep -i file
wc
wc(word count)功能為統計指定的文件中字節數、字數、行數,并將統計結果輸出
命令格式:
wc [option] file..
命令參數:
-c 統計字節數
-l 統計行數
-m 統計字符數
-w 統計詞數,一個字被定義為由空白、跳格或換行字符分隔的字符串
實例:
(1)查找文件的 行數 單詞數 字節數 文件名
wc text.txt
結果:7 8 70 test.txt
(2)統計輸出結果的行數
cat test.txt | wc -l
find
find是一個基于查找的功能非常強大的命令:
find [PATH] [option] [action]
與時間有關的參數:
-mtime n : n為數字,意思為在n天之前的“一天內”被更改過的文件;
-mtime +n : 列出在n天之前(不含n天本身)被更改過的文件名;
-mtime -n : 列出在n天之內(含n天本身)被更改過的文件名;
-newer file : 列出比file還要新的文件名
例如:
find /root -mtime 0 # 在當前目錄下查找今天之內有改動的文件
與用戶或用戶組名有關的參數:
-user name : 列出文件所有者為name的文件
-group name : 列出文件所屬用戶組為name的文件
-uid n : 列出文件所有者為用戶ID為n的文件
-gid n : 列出文件所屬用戶組為用戶組ID為n的文件
例如:
find /home/test -user tom # 在目錄/home/test中找出所有者為tom的文件
與文件權限及名稱有關的參數:
-name filename :找出文件名為filename的文件
-size [+-]SIZE :找出比SIZE還要大(+)或小(-)的文件
-tpye TYPE :查找文件的類型為TYPE的文件,TYPE的值主要有:一般文件(f)、設備文件(b、c)、
目錄(d)、連接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode :查找文件權限剛好等于mode的文件,mode用數字表示,如0755;
-perm -mode :查找文件權限必須要全部包括mode權限的文件,mode用數字表示
-perm +mode :查找文件權限包含任一mode的權限的文件,mode用數字表示
例如:
find / -name passwd # 查找文件名為passwd的文件 find
find . -perm 0755 # 查找當前目錄中文件權限的0755的文件
find . -size +12k # 查找當前目錄中大于12KB的文件,注意c表示byte
cp
該命令用于復制文件,copy之意,它還可以把多個文件一次性地復制到一個目錄下,常用參數:
-a :將文件的特性一起復制
-p :連同文件的屬性一起復制,而非使用默認方式,與-a相似,常用于備份
-i :若目標文件已經存在時,在覆蓋時會先詢問操作的進行
-r :遞歸持續復制,用于目錄的復制行為
-u :目標文件與源文件有差異時才會復制
例如
cp -a file1 file2 #連同文件的所有特性把文件file1復制成文件file2
cp file1 file2 file3 dir #把文件file1、file2、file3復制到目錄dir中
scp
常用于不同機器之間傳文件和目錄
scp [可選參數] file_source file_target
從 本地 復制到 遠程
命令格式:
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_ip:remote_folder
第1,2個指定了用戶名,命令執行后需要再輸入密碼,第1個僅指定了遠程的目錄,文件名字不變,第2個指定了文件名;
第3,4個沒有指定用戶名,命令執行后需要輸入用戶名和密碼,第3個僅指定了遠程的目錄,文件名字不變,第4個指定了文件名;
例子:
scp /home/space/music/1.mp3 root@www.test.com:/home/root/others/music
scp /home/space/music/1.mp3 www.test.com:/home/root/others/music
復制目錄:
scp -r local_folder remote_username@remote_ip:remote_folder
scp -r local_folder remote_ip:remote_folder
scp -r /home/space/music/ root@www.test.com:/home/root/others/
scp -r /home/space/music/ www.test.com:/home/root/others/
從 遠程 復制到 本地,只要將 從 本地 復制到 遠程 的命令 的 后2個參數 調換順序 即可;
例如:
scp root@www.test.com:/home/root/others/music /home/space/music/1.mp3
scp -r www.test.com:/home/root/others/ /home/space/music/
參數 :
-v 用來顯示進度 . 可以用來查看連接 , 認證 , 或是配置錯誤 .
-C 使能壓縮選項 .
-P 選擇端口 . 注意 -p 已經被 rcp 使用 .
-4 強行使用 IPV4 地址 .
-6 強行使用 IPV6 地址 .
注意兩點:
1.如果遠程服務器防火墻有特殊限制,scp便要走特殊端口:
scp -p 9997 remote@www.test.com:/usr/local/sin.sh /home/tom
2.使用scp要注意所使用的用戶是否具有可讀取遠程服務器相應文件的權限。
mv
該命令用于移動文件、目錄或更名,move之意,它的常用參數如下:
-f :force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i :若目標文件已經存在,就會詢問是否覆蓋
-u :若目標文件已經存在,且比目標文件新,才會更新
注:該命令可以把一個文件或多個文件一次移動一個文件夾中,但是最后一個目標文件一定要是“目錄”。
例如:
mv file1 file2 file3 dir # 把文件file1、file2、file3移動到目錄dir中
mv file1 file2 # 把文件file1重命名為file2
rm
該命令用于刪除文件或目錄,remove之間,常用參數如下:
-f :就是force的意思,忽略不存在的文件,不會出現警告消息
-i :互動模式,在刪除前會詢問用戶是否操作
-r :遞歸刪除,最常用于目錄刪除,它是一個非常危險的參數
例如:
rm -i file # 刪除文件file,在刪除之前會詢問是否進行該操作
rm -fr dir # 強制刪除目錄dir中的所有文件
ps
該命令用于將某個時間點的進程運行情況選取下來并輸出,process之意,它的常用參數如下:
-A :所有的進程均顯示出來
-a :不與terminal有關的所有進程
-u :有效用戶的相關進程
-x :一般與a參數一起使用,可列出較完整的信息
-l :較長,較詳細地將PID的信息列出
其實我們只要記住ps一般使用的命令參數搭配即可,它們并不多,如下:
ps aux # 查看系統所有的進程數據
ps ax # 查看不與terminal有關的所有進程
ps -lA # 查看系統所有的進程數據
ps axjf # 查看連同一部分進程樹狀態
kill
該命令用于向某個工作(%jobnumber)或者是某個PID(數字)傳送一個信號,它通常與ps和jobs命令一起使用,它的基本語法如下:
kill -signal PID
signal的常用參數如下:
注:最前面的數字為信號的代號,使用時可以用代號代替相應的信號。
1:SIGHUP,啟動被終止的進程
2:SIGINT,相當于輸入ctrl+c,中斷一個程序的進行
9:SIGKILL,強制中斷一個進程的進行
15:SIGTERM,以正常的結束進程方式來終止進程
17:SIGSTOP,相當于輸入ctrl+z,暫停一個進程的進行
例如:
以正常的結束進程方式來終于第一個后臺工作,可用jobs命令查看后臺中的第一個工作進程
kill -SIGTERM %1
重新改動進程ID為PID的進程,PID可用ps命令通過管道命令加上grep命令進行篩選獲得
kill -SIGHUP PID
killall
該命令用于向一個命令啟動的進程發送一個信號,它的一般語法如下:
killall [-iIe] [command name]
它的參數如下:
-i :交互式的意思,若需要刪除時,會詢問用戶
-e :表示后面接的command name要一致,但command name不能超過15個字符
-I :命令名稱忽略大小寫
例如:
killall -SIGHUP syslogd # 重新啟動syslogd
tar
該命令用于對文件進行打包,默認情況并不會壓縮,如果指定了相應的參數,它還會調用相應的壓縮程序(如gzip和bzip等)進行壓縮和解壓。它的常用參數如下:
-c :新建打包文件
-t :查看打包文件的內容含有哪些文件名
-x :解打包或解壓縮的功能,可以搭配-C(大寫)指定解壓的目錄,注意-c,-t,-x不能同時出現在同一條命令中
-j :通過bzip2的支持進行壓縮/解壓縮
-z :通過gzip的支持進行壓縮/解壓縮
-v :在壓縮/解壓縮過程中,將正在處理的文件名顯示出來
-f filename :filename為要處理的文件
-C dir :指定壓縮/解壓縮的目錄dir
常用命令前兩條
壓縮:tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 壓縮
解壓:tar -zxvf /tmp/etc.tar.gz 欲解壓縮的目錄
查詢:tar -ztvf /tmp/etc.tar.gz
打包:tar -cvf /tmp/etc.tar /etc <==僅打包,不壓縮!
cat
該命令用于查看文本文件的內容,后接要查看的文件名,通常可用管道與more和less一起使用,從而可以一頁頁地查看數據。例如:
cat text | less # 查看text文件中的內容
注:這條命令也可以使用less text來代替
chgrp
該命令用于改變文件所屬用戶組,它的使用非常簡單,它的基本用法如下:
chgrp [-R] dirname/filename
-R :進行遞歸的持續對所有文件和子目錄更改
例如:
chgrp users -R ./dir # 遞歸地把dir目錄下中的所有文件和子目錄下所有文件的用戶組修改為users
chown
該命令用于改變文件的所有者
chown [選項]… [所有者][:[組]] 文件…
必要參數:
-c 顯示更改的部分的信息
-f 忽略錯誤信息
-h 修復符號鏈接
-R 處理指定目錄以及其子目錄下的所有文件
-v 顯示詳細的處理信息
chown mail:mail log2016.log
groups
查看當前登錄用戶的組內成員
groups
groups root 查看root組的用戶
whoami 查看當前用戶名
/etc/group文件包含所有組
/etc/shadow和/etc/passwd系統存在的所有用戶名
chmod
該命令用于改變文件的權限,一般的用法如下:
chmod [-R] xyz 文件或目錄
-R:進行遞歸的持續更改,即連同子目錄下的所有文件都會更改
同時,chmod還可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(刪除)、=(設置)跟rwx搭配來對文件的權限進行更改
例如:
chmod 0755 file # 把file的文件權限改變為-rxwr-xr-x
chmod g+w file # 向file的文件權限中加入用戶組可寫權限
df
顯示磁盤空間使用情況。獲取硬盤被占用了多少空間,目前還剩下多少空間等信息
-a 全部文件系統列表
-h 以方便閱讀的方式顯示信息
-i 顯示inode信息
-k 區塊為1024字節
-l 只顯示本地磁盤
-T 列出文件系統類型
df -haT
du
-a 顯示目錄中所有文件大小
-k 以KB為單位顯示文件大小
-m 以MB為單位顯示文件大小
-g 以GB為單位顯示文件大小
-h 以易讀方式顯示文件大小
-s 僅顯示總計
-c或--total 除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和
du -ah filedir/
ln
功能是為文件在另外一個位置建立一個同步的鏈接,當在不同目錄需要該問題時,就不需要為每一個目錄創建同樣的文件,通過ln創建的鏈接(link)減少磁盤占用量。
鏈接分類:軟件鏈接及硬鏈接
軟鏈接:
1.軟鏈接,以路徑的形式存在。類似于Windows操作系統中的快捷方式
2.軟鏈接可以 跨文件系統 ,硬鏈接不可以
3.軟鏈接可以對一個不存在的文件名進行鏈接
4.軟鏈接可以對目錄進行鏈接
硬鏈接:
1.硬鏈接,以文件副本的形式存在。但不占用實際空間。
2.不允許給目錄創建硬鏈接
3.硬鏈接只有在同一個文件系統中才能創建
需要注意:
第一:ln命令會保持每一處鏈接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生相同的變化;
第二:ln的鏈接又分軟鏈接和硬鏈接兩種,軟鏈接就是ln –s 源文件 目標文件,它只會在你選定的位置上生成一個文件的鏡像,不會占用磁盤空間,硬鏈接 ln 源文件 目標文件,沒有參數-s, 它會在你選定的位置上生成一個和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保持同步變化。
第三:ln指令用在鏈接文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則會把前面指定的所有文件或目錄復制到該目錄中。若同時指定多個文件或目錄,且最后的目的地并非是一個已存在的目錄,則會出現錯誤信息。
常用參數:
-b 刪除,覆蓋以前建立的鏈接
-s 軟鏈接(符號鏈接)
-v 顯示詳細處理過程
實例:
(1)給文件創建軟鏈接,并顯示操作信息
ln -sv source.log link.log
(2)給文件創建硬鏈接,并顯示操作信息
ln -v source.log link1.log
(3)給目錄創建軟鏈接
ln -sv /opt/soft/test/test3 /opt/soft/test/test5
lsof
查找哪些程序使用了那些文件
lsof -i :port_number |grep “(LISTEN)”
-i是用來查找和網絡相關的文件,”:”號是必須的,它是標志你查找的是一個端口 port_number就是你要查找的端口號,譬如你要查找是否 有程序占用了oracle的監聽端口1521,就可以使用lsof -i :1521 |grep “(LISTEN)”。如果有程序已經占用了,那么下面打印的第二個字段就是該程序的進程id,第一個字段是進程的名字。
如果只有losf -i :port_number可能會查到很多應用程序,但這些程序實際并沒有占用你指定的端口,這些端口只是連接到本機器或者別的機器的該端口。所以要grep “(LISTEN)“,因為一個端口只可能被一個程序占用的,所以這種方法是可靠的
netstat
查看端口是否已經打開:
netstat -ann|grep 80
查看 某個端口是被什么程序占用了
使用netstat -anp|grep 80
netstat -lnp|awk ‘BEGIN{prt=”:1521$”}{if ($4 ~ prt) print $0}’
Netstat后面的意思
·Proto顯示連接使用的協議。
·RefCnt表示連接到本套接口上的進程號。
·Types顯示套接口的類型。
·State顯示套接口當前的狀態。
·Path表示連接到套接口的其它進程使用的路徑名
Netstat -tln 命令是用來查看linux的端口使用情況,
netstat -a 查看所有的服務端口
netstat -an | grep 端口號 來檢驗下是不是已經打開了某某端口
service xxx start 或者 /etc/init.d/xxx start是開啟xxx某端口
iptables -A INPUT –dport xxx -j DROP
iptables -A OUTPUT –dport xxx -j DROP是關閉xxx端口
------山的那一邊

浙公網安備 33010602011771號