2013年10月31日 星期四

[C/C++基礎]-純C字串比對(比較)函數介紹範例_strcmp_strstr

[C/C++基礎]-純C字串比對(比較)函數介紹範例_strcmp_strstr


蘋果-新聞魔法 [漫畫](2013年11月01日)

蘋果-新聞魔法 [漫畫](2013年11月01日)


[生活小撇步]-去除汗臭

[生活小撇步]-去除汗臭


00011.每天一句英文筆記『It's time to get ready.』

00011.每天一句英文筆記『It's time to get ready.』


[Java 教學範例拷貝]- 使用 Console 物件 - JDK 6(一)

[Java 教學範例拷貝]- 使用 Console 物件 - JDK 6(一)


2013年10月29日 星期二

[Linux C] 抓取目前系統時間並LOOP等待

[Linux C] 抓取目前系統時間並LOOP等待


蘋果-新聞魔法 [漫畫](2013年10月29日)

蘋果-新聞魔法 [漫畫](2013年10月30日)

00009.每天一句英文筆記『It's time to wake up!』

00009.每天一句英文筆記『It's time to wake up!』

[生活小撇步]-去除標籤

[生活小撇步]-去除標籤


[Java 教學範例拷貝]- 使用 BufferedReader 取得輸入

[Java 教學範例拷貝]- 使用 BufferedReader 取得輸入


2013年10月28日 星期一

何謂「貪瞋痴慢疑」?

何謂「貪瞋痴慢疑」?


利用wget實現網頁自動登錄與下載對應網頁

利用wget實現網頁自動登錄與下載對應網頁


[Java 教學範例拷貝]- 取 得使用者輸入(完)

[Java 教學範例拷貝]- 取 得使用者輸入(完)


[生活小撇步]-去除指頭上的煙垢

[生活小撇步]-去除指頭上的煙垢


00008.每天一句英文筆記『I don't wanna get up.』

00008.每天一句英文筆記『I don't wanna get up.』

2013年10月27日 星期日

Linux 抓取系統時間並將系統時間存入檔案中的指令

Linux 抓取系統時間並將系統時間存入檔案中的指令


Linux 校時指令

Linux 校時指令(ntpdate)


00007.每天一句英文筆記『It's time to get up!』

00007.每天一句英文筆記『It's time to get up!』


蘋果-新聞魔法 [漫畫](2013年10月29日)

蘋果-新聞魔法 [漫畫](2013年10月29日)


[生活小撇步]-去除廚房地板油垢

[生活小撇步]-去除廚房地板油垢


[Java 教學範例拷貝]- 取 得使用者輸入(一)

[Java 教學範例拷貝]- 取 得使用者輸入(一)


2013年10月26日 星期六

[Java 教學範例拷貝]- 給C使用者的第一個Java 程式(完)

[Java 教學範例拷貝]- 給C使用者的第一個Java 程式(完)


[生活小撇步]-去除不鏽鋼鍋黑垢

[生活小撇步]-去除不鏽鋼鍋黑垢


蘋果-新聞魔法 [漫畫](2013年10月27日)

蘋果-新聞魔法 [漫畫](2013年10月27日)


00006.每天一句英文筆記『Did the alarm clock ring?』

00006.每天一句英文筆記『Did the alarm clock ring?』


[C#基礎]-C# 參數傳遞相關知識

[C#基礎]-C# 參數傳遞相關知識


2013年10月25日 星期五

[C/C++基礎]-C語言:全域變數,局部區域變數,區域靜態變數,x++,++x整合觀念範例

[C/C++基礎]-C語言:全域變數,局部區域變數,區域靜態變數,x++,++x整合觀念範例


00005.每天一句英文筆記『Did the alarm clock buzz?』

00005.每天一句英文筆記『Did the alarm clock buzz?』


蘋果-新聞魔法 [漫畫](2013年10月26日)

蘋果-新聞魔法 [漫畫](2013年10月26日)


[生活小撇步]-去痘方法

[生活小撇步]-去痘方法


[Java 教學範例拷貝]- 給C使用者的第一個Java 程式(一)

[Java 教學範例拷貝]- 給C使用者的第一個Java 程式(一)


2013年10月24日 星期四

[Java 教學範例拷貝]- 第一 個Java程式

[Java 教學範例拷貝]- 第一 個Java程式


[生活小撇步]-卸粧方法

[生活小撇步]-卸粧方法


[C/C++ 演算法]- 4N 魔方陣

[C/C++ 演算法]- 4N 魔方陣


蘋果-新聞魔法 [漫畫](2013年10月25日)

蘋果-新聞魔法 [漫畫](2013年10月25日)


00004.每天一句英文筆記『Did the alarm clock go off?』

00004.每天一句英文筆記『Did the alarm clock go off?』


2013年10月22日 星期二

[Linux C]-一行指令建立帳號、更新密碼 (需setuid) 於 Ubuntu 12.04

[Linux C]-一行指令建立帳號、更新密碼 (需setuid) 於 Ubuntu 12.04


vi 編輯器簡介

vi 編輯器簡介


[C/C++ 演算法]- 上三角、下三角、對稱矩陣

[C/C++ 演算法]- 上三角、下三角、對稱矩陣


蘋果-新聞魔法 [漫畫](2013年10月23日)

蘋果-新聞魔法 [漫畫](2013年10月23日)


[生活小撇步]-割傷處理

[生活小撇步]-割傷處理


00002.每天一句英文筆記『Good morning, John.』

00002.每天一句英文筆記『Good morning, John.』


2013年10月21日 星期一

LINUX中讓程式具有最高權限 且 所有人都可執行

LINUX中讓程式具有最高權限 且 所有人都可執行


00001.每天一句英文筆記『Good morning』

00001.每天一句英文筆記『Good morning』


[生活小撇步]-刮魚鱗不四散

[生活小撇步]-刮魚鱗不四散


Ubuntu使用crontab定時任務(Linux 排程)

Ubuntu使用crontab定時任務(Linux 排程)


[C/C++ 演算法]- 多維矩陣轉一維矩陣

[C/C++ 演算法]- 多維矩陣轉一維矩陣


蘋果-新聞魔法 [漫畫](2013年10月22日)

蘋果-新聞魔法 [漫畫](2013年10月22日)


2013年10月20日 星期日

[C/C++基礎]-C/C++_#ifdef 範例

[C/C++基礎]-C/C++_#ifdef 範例


[C#基礎]-明確實作兩個介面的成員教學/應用

[C#基礎]-明確實作兩個介面的成員教學/應用


[C#基礎]-明確實作介面成員教學/應用

[C#基礎]-明確實作介面成員教學/應用


[C#基礎]-介面教學/應用

[C#基礎]-介面教學/應用


[C#基礎]-繼承教學/應用

[C#基礎]-繼承教學/應用


Java 字串切割(分割)「String split() Method」

Java 字串切割(分割)「String split() Method」


[C/C++基礎]-純C實作字串切割(拆解)split函數

[C/C++基礎]-純C實作字串切割(拆解)split函數


每天一個Linux指令- at 指令(安排自動運行的(一次性)任務(動作) 工具)

每天一個Linux指令- at 指令(安排自動運行的(一次性)任務(動作) 工具)


[C/C++ 演算法]- 稀疏矩陣

[C/C++ 演算法]- 稀疏矩陣


蘋果-新聞魔法 [漫畫](2013年10月21日)

蘋果-新聞魔法 [漫畫](2013年10月21日)


[生活小撇步]-刮出漂亮的牛蒡的皮

[生活小撇步]-刮出漂亮的牛蒡的皮


2013年10月19日 星期六

Java 字串搜尋「String indexOf() Method」

Java 字串搜尋「String indexOf() Method」


[C#基礎]-C# namespace應用

[C#基礎]-C# namespace應用


00000.自學教材url

00000.自學教材url


[生活小撇步]-利用過期牛奶

[生活小撇步]-利用過期牛奶


蘋果-新聞魔法 [漫畫](2013年10月20日)

蘋果-新聞魔法 [漫畫](2013年10月20日)


每天一個Linux指令- watch 指令(監測一個命令的運行結果 工具)

每天一個Linux指令- watch 指令(監測一個命令的運行結果 工具)


拷貝來源:


01.http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html


02.http://www.cnblogs.com/peida/archive/2012/12/31/2840241.html


watch是一個非常實用的命令,基本所有的Linux發行版都帶有這個小工具,如同名字一樣,watch可以幫你監測一個命令的運行結果,省得你一遍遍的手動運行。在Linux下watch是週期性的執行下個程式,並全屏顯示執行結果。你可以拿他來監測你想要的一切命令的結果變化,比如 tail 一個 log 檔,ls 監測某個檔的大小變化,看你的想像力了


1命令格式:


watch[參數][命令]


2命令功能:


可以將命令的輸出結果輸出到標準輸出設備,多用於週期性執行命令/定時執行命令


3命令參數:


-n或--interval  watch缺省每2秒運行一下程式可以用-n或-interval來指定間隔的時間


-d或--differences  用-d或--differences 選項watch 會高亮顯示變化的區域 而-d=cumulative選項會把變動過的地方(不管最近的那次有沒有變動)都高亮顯示出來


-t 或-no-title  會關閉watch命令在頂部的時間間隔,命令當前時間的輸出


  -h, --help 查看幫助文檔


4使用實例:


實例1:


命令:每隔一秒高亮顯示網路鏈結數的變化情況


watch -n 1 -d netstat -ant
說明:


其他操作:
切換終端: Ctrl+x
退出watch:Ctrl+g


實例2:隔一秒高亮顯示http鏈結數的變化情況


命令:


watch -n 1 -d 'pstree|grep http'


說明:


每隔一秒高亮顯示http鏈結數的變化情況。 後面接的命令若帶有管道符,需要加''將命令區域歸整。


實例3:即時查看模擬攻擊客戶機建立起來的連接數


命令:


watch 'netstat -an | grep:21 | \ grep<模擬攻擊客戶機的IP>| wc -l' 


說明:


實例4:監測當前目錄中 scf' 的檔的變化


命令:watch -d 'ls -l|grep scf' 


實例5:10秒一次輸出系統的平均負載


命令:watch -n 10 'cat /proc/loadavg'


 


[C/C++ 演算法]- 費氏搜尋法

[C/C++ 演算法]- 費氏搜尋法


2013年10月18日 星期五

每天一個Linux指令- ps 指令(列出系統中當前運行的那些進程 工具)

每天一個Linux指令- ps 指令(列出系統中當前運行的那些進程 工具)


拷貝來源:


01.http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html


02.http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html


Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,如果想要動態的顯示進程資訊,就可以使用top命令。


要對進程進行監測和控制,首先必須要瞭解當前進程的情況,也就是需要查看當前進程,而 ps 命令就是最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。


ps 為我們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;如果想對進程時間監控,應該用 top 工具。


kill 命令用於殺死進程。


linux上進程有5種狀態: 


1. 運行(正在運行或在運行佇列中等待) 


2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號) 


3. 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生) 


4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放) 


5. 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行) 


ps工具標識進程的5種狀態碼: 


不可中斷 uninterruptible sleep (usually IO) 


運行 runnable (on run queue) 


中斷 sleeping 


停止 traced or stopped 


僵死 a defunct (”zombie”) process 


1命令格式:


ps[參數]


2命令功能:


用來顯示當前進程的狀態


3命令參數:


a  顯示所有進程


-a 顯示同一終端下的所有程式


-A 顯示所有進程


c  顯示進程的真實名稱


-N 反向選擇


-e 等於“-A”


e  顯示環境變數


f  顯示程式間的關係


-H 顯示樹狀結構


r  顯示當前終端的進程


T  顯示當前終端的所有程式


u  指定用戶的所有進程


-au 顯示較詳細的資訊


-aux 顯示所有包含其他使用者的行程 


-C<命令> 列出指定命令的狀況


--lines<行數> 每頁顯示的行數


--width<字元數> 每頁顯示的字元數


--help 顯示幫助資訊


--version 顯示版本顯示


4使用實例:


實例1:顯示所有進程資訊


命令:ps -A


輸出:


[root@localhost test6]# ps -A


  PID TTY          TIME CMD


    1 ?        00:00:00 init


    2 ?        00:00:01 migration/0


    3 ?        00:00:00 ksoftirqd/0


    4 ?        00:00:01 migration/1


    5 ?        00:00:00 ksoftirqd/1


    6 ?        00:29:57 events/0


    7 ?        00:00:00 events/1


    8 ?        00:00:00 khelper


   49 ?        00:00:00 kthread


   54 ?        00:00:00 kblockd/0


   55 ?        00:00:00 kblockd/1


   56 ?        00:00:00 kacpid


  217 ?        00:00:00 cqueue/0


  ……省略部分結果


說明:


實例2:顯示指定用戶資訊


命令:ps -u root


輸出:


[root@localhost test6]# ps -u root


  PID TTY          TIME CMD


    1 ?        00:00:00 init


    2 ?        00:00:01 migration/0


    3 ?        00:00:00 ksoftirqd/0


    4 ?        00:00:01 migration/1


    5 ?        00:00:00 ksoftirqd/1


    6 ?        00:29:57 events/0


    7 ?        00:00:00 events/1


    8 ?        00:00:00 khelper


   49 ?        00:00:00 kthread


   54 ?        00:00:00 kblockd/0


   55 ?        00:00:00 kblockd/1


   56 ?        00:00:00 kacpid


    ……省略部分結果


說明:


實例3:顯示所有進程資訊,連同命令行


命令:ps -ef


輸出:


[root@localhost test6]# ps -ef


UID        PID  PPID  C STIME TTY          TIME CMD


root         1     0  0 Nov02 ?        00:00:00 init [3]                  


root         2     1  0 Nov02 ?        00:00:01 [migration/0]


root         3     1  0 Nov02 ?        00:00:00 [ksoftirqd/0]


root         4     1  0 Nov02 ?        00:00:01 [migration/1]


root         5     1  0 Nov02 ?        00:00:00 [ksoftirqd/1]


root         6     1  0 Nov02 ?        00:29:57 [events/0]


root         7     1  0 Nov02 ?        00:00:00 [events/1]


root         8     1  0 Nov02 ?        00:00:00 [khelper]


root        49     1  0 Nov02 ?        00:00:00 [kthread]


root        54    49  0 Nov02 ?        00:00:00 [kblockd/0]


root        55    49  0 Nov02 ?        00:00:00 [kblockd/1]


root        56    49  0 Nov02 ?        00:00:00 [kacpid]


……省略部分結果


說明:


實例4: ps 與grep 常用組合用法,查找特定進


命令:ps -ef|grep ssh


輸出:


[root@localhost test6]# ps -ef|grep ssh


root      2720     1  0 Nov02 ?        00:00:00 /usr/sbin/sshd


root     17394  2720  0 14:58 ?        00:00:00 sshd: root@pts/0 


root     17465 17398  0 15:57 pts/0    00:00:00 grep ssh


說明:


實例5:將目前屬於您自己這次登入的 PID 與相關資訊列示出來


命令:ps -l


輸出:


[root@localhost test6]# ps -l


F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD


4 S     0 17398 17394  0  75   0 - 16543 wait   pts/0    00:00:00 bash


4 R     0 17469 17398  0  77   0 - 15877 -      pts/0    00:00:00 ps


說明:


各相關資訊的意義:


代表這個程式的旗標 (flag), 4 代表使用者為 super user


代表這個程式的狀態 (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


輸出:


[root@localhost test6]# ps aux


USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND


root         1  0.0  0.0  10368   676 ?        Ss   Nov02   0:00 init [3]                  


root         2  0.0  0.0      0     0 ?        S<   Nov02   0:01 [migration/0]


root         3  0.0  0.0      0     0 ?        SN   Nov02   0:00 [ksoftirqd/0]


root         4  0.0  0.0      0     0 ?        S<   Nov02   0:01 [migration/1]


root         5  0.0  0.0      0     0 ?        SN   Nov02   0:00 [ksoftirqd/1]


root         6  0.0  0.0      0     0 ?        S<   Nov02  29:57 [events/0]


root         7  0.0  0.0      0     0 ?        S<   Nov02   0:00 [events/1]


root         8  0.0  0.0      0     0 ?        S<   Nov02   0:00 [khelper]


root        49  0.0  0.0      0     0 ?        S<   Nov02   0:00 [kthread]


root        54  0.0  0.0      0     0 ?        S<   Nov02   0:00 [kblockd/0]


root        55  0.0  0.0      0     0 ?        S<   Nov02   0:00 [kblockd/1]


root        56  0.0  0.0      0     0 ?        S<   Nov02   0:00 [kacpid]


……省略部分結果


說明:


USER:該 process 屬於那個使用者帳號的


PID :該 process 的號碼


%CPU:該 process 使用掉的 CPU 資源百分比


%MEM:該 process 所佔用的實體記憶體百分比


VSZ :該 process 使用掉的虛擬記憶體量 (Kbytes)


RSS :該 process 佔用的固定的記憶體量 (Kbytes)


TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程式,若為 pts/0 等等的,則表示為由網路連接進主機的程式。


STAT:該程式目前的狀態,主要的狀態有


:該程式目前正在運作,或者是可被運作


:該程式目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。


:該程式目前正在偵測或者是停止了


:該程式應該已經終止,但是其父程式卻無法正常的終止他,造成 zombie (疆屍) 程式的狀態


START:該 process 被觸發啟動的時間


TIME :該 process 實際使用 CPU 運作的時間


COMMAND:該程式的實際指令


實例7列出類似程式樹的程式顯示


命令ps -axjf


輸出


[root@localhost test6]# ps -axjf


Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ


 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND


    0     1     1     1 ?           -1 Ss       0   0:00 init [3]                  


    1     2     1     1 ?           -1 S<       0   0:01 [migration/0]


    1     3     1     1 ?           -1 SN       0   0:00 [ksoftirqd/0]


    1     4     1     1 ?           -1 S<       0   0:01 [migration/1]


    1     5     1     1 ?           -1 SN       0   0:00 [ksoftirqd/1]


    1     6     1     1 ?           -1 S<       0  29:58 [events/0]


    1     7     1     1 ?           -1 S<       0   0:00 [events/1]


    1     8     1     1 ?           -1 S<       0   0:00 [khelper]


    1    49     1     1 ?           -1 S<       0   0:00 [kthread]


   49    54     1     1 ?           -1 S<       0   0:00  \_ [kblockd/0]


   49    55     1     1 ?           -1 S<       0   0:00  \_ [kblockd/1]


   49    56     1     1 ?           -1 S<       0   0:00  \_ [kacpid]


說明:


實例8:找出與 cron 與 syslog 這兩個服務有關的 PID 號碼


命令:ps aux | egrep '(cron|syslog)'


輸出:


[root@localhost test6]# ps aux | egrep '(cron|syslog)'


root      2682  0.0  0.0  83384  2000 ?        Sl   Nov02   0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5


root      2735  0.0  0.0  74812  1140 ?        Ss   Nov02   0:00 crond


root     17475  0.0  0.0  61180   832 pts/0    S+   16:27   0:00 egrep (cron|syslog)


[root@localhost test6]#


說明:


其他實例:


1. 可以用 | 管道和 more 連接起來分頁查看


命令:


ps -aux |more


2. 把所有進程顯示出來,並輸出到ps001.txt文件


命令ps -aux > ps001.txt


3. 輸出指定的欄位


命令:ps -o pid,ppid,pgrp,session,tpgid,comm


輸出:


[root@localhost test6]# ps -o pid,ppid,pgrp,session,tpgid,comm


  PID  PPID  PGRP  SESS TPGID COMMAND


17398 17394 17398 17398 17478 bash


17478 17398 17478 17398 17478 ps


[root@localhost test6]#