ls -- 文件按時間排序node
ls -alt // 按修改時間排序 ls --sort=time -la // 等價於 ls -alt ls -alc // 按建立時間排序 ls -alu // 按訪問時間排序 # 按以上標準逆向排序 -r ls -alrt ls --sort=time -lra ls -alrc ls -alru
sort 對文檔中的內容進行排序linux
sort -k3 -t: -n /etc/passwd // -k3 對該文檔的第三個字段進行排序; // -t: 使用 : 做爲分隔符; // -n: 數值排序, 使用第三段的整個數字進行排序;
psshell
ps命令講解apache
''' Linux中的 ps 命令是 <Process Status> 的縮寫, ps命令用來列出系統中當前運行的哪些進程; ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程, 若是想要動態的顯示進程信息,可使用 top 命令; 要對進程進行監測和控制, 首先必需要了解當前進程的狀況, 也就是須要查看當前的進程, 而 ps 命令就是最基本同時也是很是強大的進程查看命令; 使用該命令能夠肯定有哪些進程正在運行和運行狀態 , 進程是否結束, 進程有沒有僵死 , 哪些進程佔用了過多的資源等等, 總之大部分信息都是能夠經過該命令獲得. ps 爲咱們提供了進程的一次性的查看, 它所提供的結果並非動態連續的; ''' ps命令經常使用用法(方便查看系統進程) 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 root 顯示root用戶信息 13)ps x 顯示全部程序,不以終端機來區分。 最經常使用的方法是ps -aux,而後再利用一個管道符號導向到grep去查找特定的進程,而後再對特定的進程進行操做。 ############################################################ 實例3:顯示全部進程信息,連同命令行 命令:ps -ef 實例4:ps 與grep 經常使用組合用法,查找特定進程 命令:ps -ef|grep ssh 實例5:將目前屬於您本身此次登入的 PID 與相關信息列示出來 命令:ps -l 說明: 各相關信息的意義: F 表明這個程序的旗標 (flag), 4 表明使用者爲 super user S 表明這個程序的狀態 (STAT),關於各 STAT 的意義將在內文介紹 UID 程序被該 UID 所擁有 PID 就是這個程序的 ID ! PPID 則是其上級父程序的ID C CPU 使用的資源百分比 PRI 這個是 Priority (優先執行序) 的縮寫,詳細後面介紹 NI 這個是 Nice 值,在下一小節咱們會持續介紹 ADDR 這個是 kernel function,指出該程序在內存的那個部分。若是是個 running的程序,通常就是 "-" SZ 使用掉的內存大小 WCHAN 目前這個程序是否正在運做當中,若爲 - 表示正在運做 TTY 登入者的終端機位置 TIME 使用掉的 CPU 時間。 CMD 所下達的指令爲什麼 在預設的狀況下, ps 僅會列出與目前所在的 bash shell 有關的 PID 而已,因此, 當我使用 ps -l 的時候,只有三個 PID。 實例6:列出目前全部的正在內存當中的程序 命令:ps aux 說明: USER:該 process 屬於那個使用者帳號的 PID :該 process 的號碼 %CPU:該 process 使用掉的 CPU 資源百分比 %MEM:該 process 所佔用的物理內存百分比 VSZ :該 process 使用掉的虛擬內存量 (Kbytes) RSS :該 process 佔用的固定的內存量 (Kbytes) TTY :該 process 是在那個終端機上面運做,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若爲 pts/0 等等的,則表示爲由網絡鏈接進主機的程序。 STAT:該程序目前的狀態,主要的狀態有 R :該程序目前正在運做,或者是可被運做 S :該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。 T :該程序目前正在偵測或者是中止了 Z :該程序應該已經終止,可是其父程序卻沒法正常的終止他,形成 zombie (疆屍) 程序的狀態 START:該 process 被觸發啓動的時間 TIME :該 process 實際使用 CPU 運做的時間 COMMAND:該程序的實際指令 實例7:列出相似程序樹的程序顯示 命令:ps -axjf 實例8:找出與 cron 與 syslog 這兩個服務有關的 PID 號碼 命令:ps aux | egrep '(cron|syslog)' 3. 輸出指定的字段 命令:ps -o pid,ppid,pgrp,session,tpgid,comm 注意:"ps aux"和"ps -aux"不相同。例如"-u"用來顯示該用戶的進程。可是"u"則是顯示詳細的信息。 BSD風格:在BSD風格的語法選項前不帶連字符。例如: ps aux UNIX/LINUX的風格:在linux風格的語法選項前面有一個破折號.例如: ps -ef 混合使用兩種Linux系統上的語法風格是好事兒。例如「ps ax -f」。 1、顯示全部進程: $ ps ax $ ps -ef "u"或者"-f"參數來顯示全部進程的詳細信息 $ ps aux $ ps -ef -f 注意:爲何用戶列不顯示個人用戶名,但顯示其餘用戶,如root、www等,對於全部的用戶名(包括你)若是長度大於8個字符,而後ps將只顯示UID,而不是用戶名。 2、根據用戶顯示進程: 由進程的所屬用戶使用「-u」選項後跟用戶名來顯示。多個用戶名能夠提供以逗號分隔。 $ ps -f -u www-data 3、經過名字和進程ID顯示進程: 經過名字或命令搜索進程,使用「-C」選項後面加搜索詞。 $ ps -C apache2 4、根據CPU或者內存進行排序: 「–sort」選項由逗號分隔的多個字段能夠用指定。此外,該字段能夠帶有前綴「-」或「」符號,表示降序或升序分別排序。經過進程列表進行排序有不少參數,你能夠檢查手冊頁的完整列表。 $ ps aux --sort=-pcpu,+pmem $ ps aux --sort=-pcpu | head -5 5、用樹的風格顯示進程的層次關係: 許多進程其實是一些父進程分的分支,知道這父子進程關係每每是有用的。在'–forest'選項將創建ASCII藝術風格層次的樹視圖。 下面的命令將搜索進程名字爲Apache2,造成一個樹結構來顯示詳細的信息。 $ ps -f --forest -C apache2 6、顯示一個父進程的子進程: 這裏有一個例子顯示全部apache進程的分支 $ ps -o pid,uname,comm -C apache2 7、顯示一個進程的線程: 「-L」選項將顯示進程的線程。它能夠用來顯示特定進程的全部線程或者全部進程。 下面的命令將顯示全部id爲3150的進程所擁有的線程。 $ ps -p 3150 -L 8、改變要顯示的列: ps命令能夠配置爲只顯示選中的列表。爲了顯示完整列表能夠查看手冊。 下面的命令只顯示PID,用戶名,CPU,內存和命令的列。 $ ps -e -o pid,uname,pcpu,pmem,comm 能夠重命名列標籤,至關的靈活。 $ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm 9、顯示進程運行的時間: 表示進程的運行時間。對於運行的時間,列默認狀況下是不顯示的,可使用「-O」選項查看。 $ ps -e -o pid,comm,etime 10、把ps命令變成一個實時查看器: 像往常同樣,watch命令能夠用來實時捕捉ps顯示進程。簡單的例子以下: $ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'
ps 參數vim
===================================ps 的參數說明============================= l 長格式輸出; u 按用戶名和啓動時間的順序來顯示進程; j 用任務格式來顯示進程; f 用樹形格式來顯示進程; a 顯示全部用戶的全部進程(包括其它用戶)。顯示全部進程 -a 顯示同一終端下的全部程序 x 顯示無控制終端的進程; r 顯示運行中的進程; ww 避免詳細參數被截斷; -A 列出全部的進程 -w 顯示加寬能夠顯示較多的資訊 -au 顯示較詳細的資訊 -aux 顯示全部包含其餘使用者的進程 -e 顯示全部進程,環境變量 -f 全格式 -h 不顯示標題 -l 長格式 -w 寬輸出 a 顯示終端上地全部進程,包括其餘用戶地進程 r 只顯示正在運行地進程 x 顯示沒有控制終端地進程 咱們經常使用的選項是組合是 aux 或 lax,還有參數 f 的應用。 pids 只列出進程標識符,之間運用逗號分隔.該進程列表必須在命令行參數地最後一個選項後面緊接着給出,中間不能插入空格.好比:ps -f1,4,5 顯示的是進程ID爲1,4,5的進程 下介紹長命令行選項,這些選項都運用「--」開頭: --sort X[+|-] key [,[+|-] key [,…]] 從SORT KEYS段中選一個多字母鍵.「+」字符是可選地,由於默認地方向就是按數字升序或者詞典順序,「-」字符是逆序排序(即降序). 好比: ps -jax -sort=uid,-ppid,+pid. --help 顯示幫助信息. --version 顯示該命令地版本信息. 在前面地選項說明中提到了排序鍵,接下來對排序鍵做進一步說明.須要注意地是排序中運用地值是ps運用地內部值,並不是僅用於某些輸出格式地僞值.排序鍵列表見下表. ============排序鍵列表========================== c cmd 可執行地簡單名稱 C cmdline 完整命令行 f flags 長模式標誌 g pgrp 進程地組ID G tpgid 控制tty進程組ID j cutime 累計用戶時間 J cstime 累計系統時間 k utime 用戶時間 K stime 系統時間 m min_flt 次要頁錯誤地數量 M maj_flt 重點頁錯誤地數量 n cmin_flt 累計次要頁錯誤 N cmaj_flt 累計重點頁錯誤 o session 對話ID p pid 進程ID P ppid 父進程ID r rss 駐留大小 R resident 駐留頁 s size 內存大小(千字節) S share 共享頁地數量 t tty tty次要設備號 T start_time 進程啓動地時間 U uid UID u user 用戶名 v vsize 總地虛擬內存數量(字節) y priority 內核調度優先級
ps aux 或者 lax 輸出格式bash
USER PID %CPU %MEM VSZ RSS TTY STA START TIME COMMAND USER // 進程全部者 PID // 進程ID %CPU // 佔用的 CPU 使用率 %MEM // 佔用的內存使用率 VSZ // 佔用的虛擬內存大小 RSS // 佔用的內存大小 TTY // 終端的次要裝置號碼(minor device number of tty) STAT // 進程狀態 START // 啓動進程的時間 TIME // 進程消耗 CPU 的時間 COMMAND // 命令的名稱和參數
標準輸入網絡
// 標註輸入,爲指定用戶建立密碼 $ echo 123 |passwd zxjr --stdin // 對相應的字符串進行加密 $ echo 123 |openssl passwd -1 -stdin $1$xPokL2Yn$OlmcFvyqt3/ifxdhHPeJg0
file 命令session
命令格式:ssh
file [-bchikLnNprsvz] [-f namefile] [-F separator] [-m magicfiles] file ... ide
命令功能:
用於查看日曆等時間信息,如只有一個參數,則表示年份(1-9999),若有兩個參數,則表示月和年份;
經過file命令, 辨識文件類型.
命令參數:
// 查看文件類型 file install.log install.log: UTF-8 Unicode text // 不輸出文件名稱,只顯示文件格式及編碼 file -b install.log UTF-8 Unicode text // 輸出mime類型的字符串 file -i install.log install.log: text/plain; charset=utf-8 // 查看文件中的文件名的文件類型 vim test /etc/networks testing file -f test /etc/networks: ASCII text testing: cannot open 'testing' (No such file or directory) // 使用指定分割符號代替輸出文件名後的默認 ":" 分割符 file -F '--' test test-- ASCII text // 嘗試去解讀壓縮文件的內容 file -z test.gz test.gz: ASCII text (gzip compressed data, was "test", from Unix, last modified: Fri Jul 7 13:17:16 2017) // 查看軟連接對應文件的文件類型 file test.txt test.txt: symbolic link to `test'
rm -- 根據 inode 號刪除文件
ls -i // 查找文件或目錄的inode號; // 使用上面查詢到的 inode 號進行刪除文件; find ./ -inum 25789760 -exec rm {} \;
cut
命令選項
// cut 命令主要用於截取一行中若干個, 選項: * -b // 根據字節來截取,忽視多字符,好比漢字,能夠配合[-n]選項來忽視不完整的多字符; * -c // 根據字符來截取,多字節字符當作一個字符; * -d // 根據字段來截取時,定義分割符,默認是TAB;配合[-f]輸出指定字段; * -f // 根據字段來截取時,輸出指定的字段; * -n // 截取後忽略不完整的字符,配合 [ -b ]使用; * -s // 根據字段來截取時,忽略不包含分割符的行,配合 [ -d ] 使用.
字節截取和字符截取
// 使用方法 * cut -b LIST * cut -c LIST // LIST爲要輸入的字節位置,能夠指定位置也能夠指定區間,例如1,3,5表示第一\第三\第五個字節;1,3-5表示第一和第三到第五個字節; // 區別在於多字節字符的處理上,好比漢字;經過下面例子解析: [root@bogon ~]# echo "烽火戲諸侯" |cut -b 1-3 烽 [root@bogon ~]# echo "烽火戲諸侯" |cut -b 1-4 烽 [root@bogon ~]# echo "烽火戲諸侯" |cut -b 1-5 烽 [root@bogon ~]# echo "烽火戲諸侯" |cut -b 1-6 烽火 ****************************************************************** [root@bogon ~]# echo "烽火戲諸侯" |cut -c 1 烽 [root@bogon ~]# echo "烽火戲諸侯" |cut -c 1,2 烽火 [root@bogon ~]# echo "烽火戲諸侯" |cut -c 1-3 烽火戲 ******************************************************************************** // -d參數配置[ -n ]選項忽略不完整的字符 [root@bogon ~]# echo "烽火戲諸侯" |cut -nb 1-7 烽火 [root@bogon ~]# echo "烽火戲諸侯" |cut -nb 1-4 烽
字段截取
// cut還能夠根據字段截取行字符,默認字段分割符爲TAB表示,可使用 [ -d ] 來指定分割符,分割符限定爲單字符.特別須要注意的是:多字節字符也是單字符,例如: // 配合[ -s ] 選項,能夠忽略不包含分割符的行,例如某個文件中,裏面沒有TAB,全是空格 [root@bogon ~]# vim test.txt UID PID PPID C STIME TTY TIME CMD root 1 0 0 Oct09 ? 00:00:13 init [5] root 2 1 0 Oct09 ? 00:00:06 [ksoftirqd/0] root 3 1 0 Oct09 ? 00:00:05 [events/0] root 4 3 0 Oct09 ? 00:00:00 [khelper] // 截取方法: [root@bogon ~]# cat test.txt |cut -d : -f 2 UID PID PPID C STIME TTY TIME CMD 00 00 00 00 [root@bogon ~]# cut -sd : -f 2 test.txt 00 00 00 00 [root@bogon ~]# echo "烽火戲諸侯"|cut -d 戲 -f 2 諸侯
xargs
不少命令不支持管道來傳遞參數 -- xargs
參數:
示例:
// -0 參數 echo '\n' |xargs echo n echo '\n' |xargs -0 echo \n // -a 參數 xargs -a test echo good good study day day up gogogo good gold goood goolld // -e 參數 cat test |xargs -E 'gogogo' echo good good study day day up // -p 參數 cat test |xargs -p echo echo good good study day day up gogogo good gold goood goolld ?...y good good study day day up gogogo good gold goood goolld // -n 參數 cat test |xargs -n1 echo good good study day day up gogogo good gold goood goolld // -t 參數 cat test |xargs -t echo echo good good study day day up gogogo good gold goood goolld good good study day day up gogogo good gold goood goolld // -i 參數 ls |xargs -t -i mv {} {}.back mv test test.back // -r 參數 echo "" |xargs -t -r mv
// 使用 xargs 進行操做;
find ./ -type f -name tian
./tian
find ./ -type f -name tian |xargs rm -f ; // 使用 xargs 進行刪除;
find ./ -type f -name tian -exec rm -f {} \; // 使用 -exec 進行刪除, 必須使用{} , 及 \; 結尾...