導航:首頁 > 程序命令 > shellexec命令

shellexec命令

發布時間:2022-06-06 21:12:48

1. php 用exec執行shell命令時超時。

exec("(shbuild.sh>/dev/null&)");

放到後台執行。

2. 關於shell_exec的用法

exec()是用於執行shell命令的函數。它返回執行並返回命令輸出的最後一行,但你可以指定一個數組作為第二個參數,這樣輸出的每一行都會作為一個元素存入數組。使用方式如下:

1.代碼如下:
<?php
$last = exec('ls', $output, $return);
print_r($output);
echo "Return [$return]";
?>

2.假設ls命令在shell中手工運行時會產生如下輸出:

代碼如下:

$ ls
total 0
-rw-rw-r-- 1 chris chris 0 May 21 12:34 php-security
-rw-rw-r-- 1 chris chris 0 May 21 12:34 chris-shiflett

3.當通過上例的方法在exec()中運行時,輸出結果如下:

代碼如下:
Array
(
[0] => total 0
[1] => -rw-rw-r-- 1 chris chris 0 May 21 12:34 php-security
[2] => -rw-rw-r-- 1 chris chris 0 May 21 12:34 chris-shiflett
)
Return [0]

這種運行shell命令的方法方便而有用,但這種方便為你帶來了重大的風險。如果使用了被污染數據構造命令串的話,攻擊者就能執行任意的命令。
我建議你有可能的話,要避免使用shell命令,如果實在要用的話,就要確保對構造命令串的數據進行過濾,同時必須要對輸出進行轉義:

4.代碼如下:

<?php
$clean = array();
$shell = array();
/* Filter Input ($command, $argument) */
$shell['command'] = escapeshellcmd($clean['command']);
$shell['argument'] = escapeshellarg($clean['argument']);
$last = exec("{$shell['command']} {$shell['argument']}", $output, $return);
?>

3. PHP中exec函數和shell_exec函數的區別

這兩個函數都是執行linux命令函數,不同的是獲取返回結果不一樣,exec只能獲取最後一行數據,shell_execu則可以獲取全部數據。
假如腳本路徑下有如下文件:
復制代碼
代碼如下:
-bash-4.1#
ll
總用量
12
-rw-rw-r--.
1
www
web
133
7月
16
15:00
a.php
-rw-r--r--.
1
lee
web
59
2月
29
17:05
b.php
-rw-r--r--.
1
lee
web
81
3月
8
17:00
c.php
exec例子
復制代碼
代碼如下:
<?php
/**
*
exec與shell_exec的區別
*
瓊台博客
*/
$data
=
exec('/bin/ls
-l');
echo
'<pre>';
print_r($data);
echo
'</pre>';
?>
執行結果
復制代碼
代碼如下:
-rw-r--r--.
1
lee
web
81
Mar
8
17:00
c.php
shell_exec例子
復制代碼
代碼如下:
<?php
/**
*
exec與shell_exec的區別
*
瓊台博客
*/
$data
=
shell_exec('/bin/ls
-l');
echo
'<pre>';
print_r($data);
echo
'</pre>';
?>
執行結果
復制代碼
代碼如下:
total
12
-rw-rw-r--.
1
www
web
139
Jul
16
2012
a.php
-rw-r--r--.
1
lee
web
59
Feb
29
17:05
b.php
-rw-r--r--.
1
lee
web
81
Mar
8
17:00
c.php
所以平時使用exec函數的童鞋注意了,如果你需要獲取全部返回信息,就應該使用shell_exec函數,當然,如果命令執行結果只有一行返回信息,那麼使用哪個都無所謂。

4. shell編程中,exec $0 是什麼意思

$0代表執行該腳本時輸入的第一個參數。

5. Linux下有什麼Shell命令

Shell 命令的詳細使用方法。

adser 創建新的用戶賬戶
alias 設置命令的別名
bzips .bz2的文件壓縮程序
cal 月歷顯示
cat 將所有內容輸出到標准輸出設備
chfn 更改finger命令顯示的信息
chgrp 變更文件與目錄的所屬組
chmod 更換文件或目錄的許可權
chown 更換文件或目錄的擁有者或所在組
clear 清除畫面上的信息
col 濾除控制字元
cp 復制文件或目錄
crontab 設置定時器
date 設置顯示系統時間及日期
dd 由鍵盤輸入文件中的數據,然後依照指定格式來轉換數據,再輸出至所指定的文件或屏幕上
df 顯示磁碟文件系統的使用狀況
dmesg 顯示開機信息
顯示目錄或文件所佔磁碟空間
e2fsck 檢查ext2文件系統
echo 文字顯示
edquota 編輯quota
egrep 查找文件中符合條件的字元串
exec shell執行命令後即交出控制權
export 設置顯示環境變數
fdisk 磁碟分割(分區)
fg 前台執行程序或命令
fgrep 查找文件中符合條件的字元串
file 識別文件類型
find 查找文件或目錄
finger 顯示用戶信息
free 查看內存狀態
fsck 檢查文件系統並試著修復錯誤
ftp 傳輸文件
grep 搜索文件中符合條件的字元串
groupadd 創建組
groupdel 刪除組
groupmod 改變組識別碼或名稱
gunzip 文件解壓
gzip 文件壓縮
halt 關閉系統
help shell創建命令內容
history 列出所有使用過的命令
hostname 查詢及設置主機名稱
id 顯示用戶ID及所屬的組ID
ifconfig 顯示或設置網路上狀態
insmod 載入模塊
jobs 顯示正在後台執行的工作
kill 刪除執行中的程序或工作
last 列出目前與過去登錄系統的用戶相關信息
less 顯示文件內容
lilo 安裝內核載入、開機管理程序
linuxconf 設置Linux系統
ln 連接文件或目錄
locate 尋找文件
login 登錄系統
logout 注銷系統
ls 列出目錄內容
lsmod 顯示已載入系統的模塊名稱
mail E-mail管理程序
make 編譯系統核心或模塊
man 在線查詢命令
m 復制MS-DOS文件
mdel 刪除MS-DOS文件
mdeltree 刪除MS-DOS文件及包含的子目錄文件
mdir 顯示MS-DOS目錄
mkbootdisk 創建目前系統的引導盤
mkdir 創建目錄
mke2fs 創建ext2文件系統
mkfs 創建各種文件系統
more 一頁一頁地顯示文件內容(文本文件)
miunt 掛入文件系統
mouseconfig 設置滑鼠相關參數
mv 移動或更名現有的文件或目錄
netconfig Red Hat Linux用來設置網路功能的圖形介面程序
netstat 顯示目前系統的網路狀態
nice 變更程序執行時的優先等級
nohup 在用戶注銷系統後繼續以後台的方式執行指定的命令
open 查找第一個可使用的虛擬終端,並執行位於「--」符號後的命令
passwd 提供管理員及用戶管理或變更密碼
patch 利用修補文件來修改源文件
pine 郵件處理程序,它可收發電子郵件及瀏覽新聞組
ping 使用ICMP對遠程主機發出要求響應的信息,以偵測遠程主機的網路功能是否正常
ps 顯示程序執行的狀況
pwd 顯示目前的工作目錄
quota 查詢磁碟空間限制以及使用情形
quotacheck 檢查磁碟使用空間及限制
quotaoff 關閉磁碟使用空間限制
quotaon 開啟磁碟使用空間限制
reboot 停止系統運作並重新開機
renice 重新調整程序執行的優先順序
repquota 顯示磁碟空間限制狀況
rm 刪除文件或目錄
rmdir 刪除目錄
rpm 管理Red Hat Linux套件
set 設置Shell的執行方式
setup 設置公用程序,可設置的選項包括:登錄認證方法、鍵盤配置、
滑鼠配置、開機啟動服務、音效卡本配置、時區設置和 X Window配置等
shutdown 系統關機
startx 啟動 X Window
stat 顯示inode內容
su 變更用戶身份
sync 將內存緩沖區內的數據寫入磁碟
tail 列出文件內容最後部分
talk 和其他用戶交談
tar 文件備份
telnet 登錄遠程主機
top 顯示及管理執行中的程序
traceroute 顯示封包到遠程主機間的詳細路徑
umask 在創建文件時預設的許可權屏蔽
umount 卸載文件系統
unalias 刪除別名
uname 顯示系統信息
uncompress 將.Z文件解壓縮
unzip 將.Zip文件解壓縮
useradd 創建用戶賬號
userdel 刪除用戶賬戶
vi 編輯文本文件
w 顯示目前登錄系統的用戶信息
wall 將信息傳送至每位終端用戶
whereis 查找文件,預設whereis去查找的文件包括:/bin、/etc、/sbin、
/usr/bin、/usr/etc、/usr/games、/usr/include、/usr/lib、
/usr/local、/usr/man、/usr/sbin、/usr/src、/usr/local/bin、
/usr/local/etc、/usr/local/game、/usr/local/lib 和/usr/local/man>
which 在環境變數¥PATH 設置的目錄中,搜索符合條件的文件
who 顯示目前登錄系統的用戶信息
whoami 顯示用戶名稱
whois 搜索並顯示用戶信息
write 可傳送信息給另一位登錄的用戶
Xconfigurator 設置 Xfree86
xf86config 設置XFree86
zip 壓縮程序

6. linux shell腳本 解釋exec

判斷/var/log/x.log文件是否為空
如果為空,則將exec的操作結果放入/var/log/x.log中
exec應該是一個命令,但是這邊這個語法沒有意義

7. 關於Linux的shell的exec命令

wall是向所有登錄系統的用戶發送信息,消息的內容是 "Thanks for all the fish" , 相當於簡訊群發。
exec 3<afile 打開文件afile,文件描述符是3,然後這個3就可以代表文件afile,比如
cat <&3 查看文件afile的內容

閱讀全文

與shellexec命令相關的資料

熱點內容
java手動釋放內存 瀏覽:867
迷你世界怎麼自己創伺服器 瀏覽:810
cmd命令不能運行 瀏覽:297
最新pdf閱讀 瀏覽:755
c語言中的排序演算法 瀏覽:596
php原生鏈接資料庫 瀏覽:44
web前端後端程序員 瀏覽:24
萬能zip的壓縮包怎麼解壓 瀏覽:40
國內動漫用什麼app看 瀏覽:353
樹莓派高級編程 瀏覽:928
30歲學編程晚嗎 瀏覽:68
解壓專家怎麼打開 瀏覽:86
php開源留言板 瀏覽:49
新鄉市區疫情怎麼查詢app 瀏覽:158
我的世界伺服器怎麼弄圖 瀏覽:999
vc6的編譯框 瀏覽:198
程序員寫照 瀏覽:539
怎麼退出github伺服器版本 瀏覽:797
雲伺服器sip 瀏覽:910
對稱平衡型壓縮機 瀏覽:953