在 Linux 系統(tǒng)中,可以使用 ls 命令列出當前目錄下的文件和目錄。如果您希望在 ls 命令的輸出中添加行號,可以使用 nl 命令配合 ls 命令使用。例如,您可以這樣使用這兩個命令:
成都創(chuàng)新互聯主要從事網站設計、成都做網站、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務武勝,10余年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
ls | nl
這條命令會列出當前目錄下的文件和目錄,并在每一行的開頭添加一個行號。如果您只想顯示文件,可以使用 -l 參數來更改 ls 命令的輸出,例如:
ls -l | nl
這條命令只會列出當前目錄下的文件,并且會顯示每個文件的詳細信息,包括權限、大小、時間等。
需要注意的是,nl 命令的行號是從 1 開始的,如果您希望從其他數字開始編號,可以使用 -n 參數來指定行號的開始值。例如,如果您希望從 5 開始編號,可以這樣使用 nl 命令:
ls | nl -n 5
這條命令會從 5 開始編號,每一行的行號都比上一行多 1。您還可以使用其他參數,來控制行號的格式和顯示方式。具體的用法可以參考 nl 命令的幫助文檔,或者搜索相關資料。
linux系統(tǒng)下用ls命令列出當前目錄下的文件。
ls 命令將每個由 Directory 參數指定的目錄或者每個由 File 參數指定的名稱寫到標準輸出,以及您所要求的和標志一起的其它信息。如果不指定 File 或 Directory 參數, ls 命令顯示當前目錄的內容。
ls運行時可指定下列參數,
-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-b 把文件名中不可輸出的字符用反斜杠加字符編號(就象在C語言里一樣)的形式列出。
-c 輸出文件的 i 節(jié)點的修改時間,并以此排序。
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。
-e 輸出時間的全部信息,而不是輸出簡略信息。
-f -U 對輸出的文件不排序。
-g 無用。
-i 輸出文件的 i 節(jié)點的索引信息。
-k 以 k 字節(jié)的形式表示文件的大小。
-l 列出文件的詳細信息。
-m 橫向輸出文件名,并以“,”作分格符。
-n 用數字的 UID,GID 代替名稱。
-o 顯示文件的除組信息外的詳細信息。
-p -F 在每個文件名后附上一個字符以說明該文件的類型,“*”表示可執(zhí)行的普通
文件;“/”表示目錄;“@”表示符號鏈接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可輸出的字符。
-r 對目錄反向排序。
-s 在每個文件名后輸出該文件的大小。
-t 以時間排序。
-u 以文件上次被訪問的時間排序。
-x 按列輸出,橫向排序。
-A 顯示除 “.”和“..”外的所有文件。
-B 不輸出以 “~”結尾的備份文件。
-C 按列輸出,縱向排序。
-G 輸出文件的組的信息。
-L 列出鏈接文件名而不是鏈接到的文件。
-N 不限制文件長度。
-Q 把輸出的文件名用雙引號括起來。
-R 列出所有子目錄下的文件。
-S 以文件大小排序。
-X 以文件的擴展名(最后一個 . 后的字符)排序。
-1 一行只輸出一個文件。
缺省情況下,ls 命令按照文件名的字母順序顯示所有信息。整理順序由環(huán)境變量 LANG 或 LC_COLLATE 環(huán)境變量確定。在 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 "National Language Support Overview for Programming" 包含更多細節(jié)。當 ls 命令顯示目錄內容時,它不顯示名稱以 .(點)開頭的文件項,除非使用了 -a 或者 -A 標志。如果命令由 root 用戶執(zhí)行,它缺省使用 -A 標志。格式化輸出有三種主要方式:* 每行列出一項。* 通過指定 -C 或 -x 標志以多列列出各項。當向 tty 輸出時,-C 標志是缺省格式。如果文件或目錄名太長,ls 命令顯示單列輸出。* 通過指定 -m 標志可以以逗號分隔系列列出項。要確定輸出行中字符位置的數目,ls 命令使用環(huán)境變量 COLUMNS。如果沒有設置此變量,命令獲取顯示的當前列值。如果使用這些方法,ls 命令還不能確定字符位置的數量,它就使用缺省值 80。使用 -e 和 -l 標志所顯示的方式解釋如下:如果第一個字符是:d 此項為目錄。b 此項為塊特殊文件。c 此項為字符特殊文件。l 此項為符號鏈接,或者指定 -N 標志,或者符號鏈接不指向現有文件。p 此項為一個先進先出(FIFO)特殊文件。s 此項為本地套接字。- 此項為普通文件。接下來的 9 個字符被分成 3 個集合,每個集合 3 個字符。第一組 3 字符集合顯示所有者許可權。下一組 3 字符集合顯示了組中其它用戶的許可權。最后 3 字符集合顯示了訪問此文件的其它任何人的許可權。每個集合中的三個字符各自表示了文件的讀、寫和執(zhí)行權限。目錄的執(zhí)行權限讓您可以搜索目錄中的指定文件。
printf 是linux 下的格式化輸出命令。
有點兒類似于python 和c 語言的printf 命令,但是應該沒有c語言的那么強大.。printf 命令常用于linux 下的awk 編程, 平時使用輸出時用 echo 即可。pintf 命令不能接受管道符參數,也不能之直接跟文件名, 但是可以跟系統(tǒng)命令執(zhí)行的結果,如`df` 或者 $(cat /etc/passwd)。
一、命令格式: printf ?'輸出類型轉義符' 輸出內容。
二、常用輸出格式:
1、%ns : ?輸出字符串; 輸出n位的字符串;
2、 %ni: ????輸出整數: 輸出n位的整數;
3、%m.nf: ?輸出浮點數: m位整數 和 n位小數;
三、常用轉義符:
1、\t ?水平tab 鍵;
2、\v ?垂直tab 鍵;
3、\n ?換行;
4、\r ??回車, Enter鍵;
5、\f ??清除屏幕;
6、\b ?輸出退格鍵;
7、\a ?輸出警告聲音。
注意:
1. printf 命令默認輸出結果沒有換行符,需要手工添加\n。
2. printf 命令后面不能接受管道符參數, 如: ?df ?| print ?'%s' 是錯誤的。
3. print ?命令后面也不能直接跟文件名, 如: print '%5s' ?/etc/passwd ?是錯誤的。
4. print ?命令后可以跟系統(tǒng)命令執(zhí)行的結果, 如: print '%s' ?$(cat /etc/password)'。
PHP在linux上執(zhí)行命令
目錄:
一、PHP中調用外部命令介紹
二、關于安全問題
三、關于超時問題
四、關于PHP運行l(wèi)inux環(huán)境中命令出現的問題
一、PHP中調用外部命令介紹
在PHP中調用外部命令,可以用,1調用專門函數、2反引號、3popen()函數打開進程,三種方法來實現:
方法一:用PHP提供的專門函數(四個):
PHP提供4個專門的執(zhí)行外部命令的函數:exec(), system(), passthru(), shell_exec()
1)exec()
原型: string exec ( string $command [, array $output [, int $return_var ] )
說明: exec執(zhí)行系統(tǒng)外部命令時不會輸出結果,而是返回結果的最后一行。如果想得到結果,可以使用第二個參數,讓其輸出到指定的數組。此數組一個記錄代表輸出的一行。即如果輸出結果有20行,則這個數組就有20條記錄,所以如果需要反復輸出調用不同系統(tǒng)外部命令的結果,最好在輸出每一條系統(tǒng)外部命令結果時清空這個數組unset($output),以防混亂。第三個參數用來取得命令執(zhí)行的狀態(tài)碼,通常執(zhí)行成功都是返回0。
?php
exec("dir",$output);
print_r($output);
?
2)system()
原型: string system ( string $command [, int $return_var ] )
說明: system和exec的區(qū)別在于,system在執(zhí)行系統(tǒng)外部命令時,它執(zhí)行給定的命令,輸出和返回結果。第二個參數是可選的,用來得到命令執(zhí)行后的狀態(tài)碼。
?php
system("pwd",$result);
print $result;//輸出命令的結果狀態(tài)碼
?
關于第二個參數結果狀態(tài)碼的簡單介紹:
如果返回0是運行成功,
在Bash中,當錯誤發(fā)生在致命信號時,bash會返回128+signal number做為返回值。
如果找不到命令,將會返回127。
如果命令找到了,但該命令是不可執(zhí)行的,將返回126。
除此以外,Bash本身會返回最後一個指令的返回值。
若是執(zhí)行中發(fā)生錯誤,將會返回一個非零的值。
Fatal Signal : 128 + signo
Can't not find command : 127
Can't not execute : 126
Shell script successfully executed : return the last command exit status
Fatal during execution : return non-zero
3)passthru()
原型: void passthru ( string $command [, int $return_var ] )
說明: passthru與system的區(qū)別,passthru直接將結果輸出到游覽器,不返回任何值,且其可以輸出二進制,比如圖像數據。第二個參數可選,是狀態(tài)碼。
?php
header("Content-type:image/gif");
passthru("/usr/bin/ppm2tiff /usr/share/tk8.4/demos/images/teapot.ppm");
?
4)shell_exec()
原型: string shell_exec ( string $cmd )
說明: 直接執(zhí)行命令$cmd
?php
$output = shell_exec('ls -lart');
echo "pre$output/pre";
?
方法二:反撇號
原型: 反撇號`(和~在同一個鍵)執(zhí)行系統(tǒng)外部命令
說明: 在使用這種方法執(zhí)行系統(tǒng)外部命令時,要確保shell_exec函數可用,否則是無法使用這種反撇號執(zhí)行系統(tǒng)外部命令的。
?php
echo `dir`;
?
方法三:用popen()函數打開進程
原型: resource popen ( string $command , string $mode )
說明: 能夠和命令進行交互。之前介紹的方法只能簡單地執(zhí)行命令,卻不能與命令交互。有時須向命令輸入一些東西,如在增加系統(tǒng)用戶時,要調用su來把當前用戶換到root用戶,而su命令必須要在命令行上輸入root的密碼。這種情況下,用之前提到的方法顯然是不行的。
popen( )函數打開一個進程管道來執(zhí)行給定的命令,返回一個文件句柄,可以對它讀和寫。返回值和fopen()函數一樣,返回一個文件指針。除非使用的是單一的模式打開(讀or寫),否則必須使用pclose()函數關閉。該指針可以被fgets(),fgetss(),fwrite()調用。出錯時,返回FALSE。
?php
error_reporting(E_ALL);
/* Add redirection so we can get stderr. */
$handle = popen('/path/to/executable 21', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?
top命令是Linux下常用的性能分析工具,能夠實時顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務管理器。top顯示系統(tǒng)當前的進程和其他狀況,是一個動態(tài)顯示過程,可以自動或者通過用戶按鍵來不斷刷新當前狀態(tài)。如果在前臺執(zhí)行該命令,它將獨占前臺,直到用戶終止該程序為止.。比較準確的說,top命令提供了實時的對系統(tǒng)處理器的狀態(tài)監(jiān)控,顯示系統(tǒng)中CPU最“敏感”的任務列表。top命令可以按CPU使用、內存使用和執(zhí)行時間對任務進行排序。而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設定.。
下面詳細介紹它的使用方法。
對于一個新手來說,如果從來沒有使用過top命令,在命令行模式下直接輸入top,可以查看到當前所有進程的信息。
輸出結果中,有很多指標。下面介紹各個指標都代表什么含義。
top命令輸出結果中,統(tǒng)計信息區(qū)前五行是系統(tǒng)整體的統(tǒng)計信息。
第一行是任務隊列信息,同 uptime 命令的執(zhí)行結果。其內容如下:
第二、三行為進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行。內容如下:
最后兩行為內存信息。內容如下:
進程信息區(qū)統(tǒng)計信息區(qū)域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。
默認情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列??梢酝ㄟ^下面的快捷鍵來更改顯示內容。
參考列表: