成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Linux命令打開函數(shù) linux系統(tǒng)如何打開命令行

Linux 常用命令(要求全而精)

1、linux分區(qū)

創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元四平做網(wǎng)站,已為上家服務(wù),為四平各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

--在linux里面所有的設(shè)備、任何東西,在linux看來都是文件。

--文件在它看來,有兩種形式:

第一種是字符型(鍵盤輸入、打印機(jī));

第二種是二進(jìn)制型(硬盤、光驅(qū)、U盤)

--linux中所有硬件

--手動(dòng)分區(qū)

--A、至少有兩個(gè)分區(qū)

/ 根分區(qū)

SWAP 交換分區(qū)(物理內(nèi)存大小的兩倍)

--B、個(gè)人桌面分區(qū)

/

/boot 128MB is enough

/usr

SWAP

/tmp(用于光盤刻錄)

2、linux目錄說明

--/dev/xxyN

--xx (分區(qū)所在設(shè)備類型:hd--IDE硬盤 sd--SCSI硬盤)

--y (標(biāo)明分區(qū)所在設(shè)備

例如:/dev/hda 第一個(gè)IDE硬盤 或 /dev/hdb 第二個(gè)IDE硬盤 或 /dev/sdb 第二個(gè)SCSI硬盤)

--N (數(shù)字代表分區(qū):1-4--主分區(qū)或擴(kuò)展分區(qū);邏輯分區(qū)從5開始!

例如:/dev/hda3 第一個(gè)IDE硬盤上的第三個(gè)主分區(qū)或擴(kuò)展分區(qū)

/dev/sdb6 第二個(gè)SCSI硬盤上的第二個(gè)邏輯分區(qū))

3、linux目錄結(jié)構(gòu)

/ 根目錄,最高級(jí)別

/bin 系統(tǒng)基本命令存放目錄(/usr/bin)

/boot linux的內(nèi)核及引導(dǎo)系統(tǒng)程序文件存放目錄(如:vmlinuz、initrd.img)

一般情況下,GRUB或LILO系統(tǒng)引導(dǎo)管理也位于這個(gè)目錄

/dev 設(shè)備文件存儲(chǔ)目錄,如聲卡、光驅(qū)...

/ect 存放系統(tǒng)設(shè)置文件(如用戶賬號(hào)密碼、服務(wù)器配置文件等)

/home 普通用戶家目錄,默認(rèn)存放目錄

/lib 庫文件存放目錄

/lost+found 在ext2或ext3文件系統(tǒng)中,當(dāng)系統(tǒng)以外崩潰或機(jī)器意外關(guān)機(jī),而產(chǎn)生一些文件碎片放在這里。

當(dāng)系統(tǒng)啟動(dòng)的過程中,fsck工具會(huì)檢查這里,并修復(fù)已經(jīng)損壞的文件系統(tǒng)。

有事喜用發(fā)生問題,有很多的文件被移到這個(gè)目錄中,可能會(huì)用手工的方式來修復(fù),或者移文件到原來的位置上。

/media 即插即用型存儲(chǔ)設(shè)備的掛載點(diǎn)自動(dòng)在這個(gè)目錄下創(chuàng)建。

如USB盤系統(tǒng)自動(dòng)掛在后,會(huì)在這個(gè)目錄下產(chǎn)生一個(gè)目錄;

類似cdrom的目錄

/mnt 存放掛載存儲(chǔ)設(shè)備的掛載目錄,如cdrom等目錄

/opt 表示可選的意思,有些軟件包也會(huì)被安裝在此,也就是自定義軟件包,

比如OpenOffice,或者一些我們自己編譯的軟件包,也可安裝此處。

/proc 操作系統(tǒng)運(yùn)行時(shí),進(jìn)程(正在運(yùn)行的程序)信息及內(nèi)核信息(比如CPU、硬盤分區(qū)、內(nèi)存信息等)存放在此。

/proc目錄是偽裝的文件系統(tǒng)proc的掛載目錄,proc并不是真正的文件系統(tǒng)

/root linux超級(jí)權(quán)限用戶root的家目錄

/sbin 大多是涉及系統(tǒng)管理的命令的存放,只有超級(jí)權(quán)限用戶root才可執(zhí)行命令存放,普通用戶無權(quán)限執(zhí)行此目錄下的命令

與 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目錄相似

(sbin,只有root權(quán)限才能執(zhí)行)

/tmp 臨時(shí)文件目錄,有時(shí)用戶運(yùn)行程序的時(shí)候,會(huì)產(chǎn)生臨時(shí)文件。

/var/tmp目錄和此目錄相似

/usr 系統(tǒng)存放程序的目錄,如命令、幫助文件等。這個(gè)目錄下有很多的文件和目錄。

大部分Linux發(fā)行版提供的軟件包都安裝在此,涉及服務(wù)器的配置文件就安裝在/ect中。

/usr/share/fonts 字體目錄

/usr/share/man 或 /usr/share/doc 幫助目錄

/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通用戶可執(zhí)行文件目錄

/usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超級(jí)權(quán)限用戶root可執(zhí)行命令存放目錄

/usr/include 程序頭文件存放目錄

/var (vary)此目錄經(jīng)常變動(dòng)

/var/log 用來存放系統(tǒng)日志

/var/www 用來定義Apache服務(wù)器站點(diǎn)存放

/var/lib 用來存放一些庫文件,如MySQL的,以及MySQL數(shù)據(jù)庫的存放地。

4、基本命令

--查看幫助 *** --help *** --?

--查看詳細(xì)幫助 man ***

--登錄 login

--退出窗口 exit

--關(guān)機(jī) shutdown

--重啟 reboot

--初始化 init (run level -/etc/inittab),0-6看第六部分的g

--進(jìn)入根目錄 cd /

--回上層目錄 cd ..

--相對(duì)路徑 cd dev

--絕對(duì)路徑 cd /dev

--查用戶名 whoami

--查當(dāng)前目錄 pwd

--列出當(dāng)前目錄內(nèi)容 ls

-l(樹詳細(xì)顯示目錄內(nèi)容)

-m(橫列顯示目錄內(nèi)容,是屏幕長度顯示)

-a(列出全部文件,包括隱藏文件)

-S(以文檔大小排序)

--創(chuàng)建目錄 mkdir dname

--刪除目錄 rmdir dname

rm -r *** -(遞歸刪除該目錄下所有內(nèi)容,詢問每個(gè)準(zhǔn)備刪除的文件)

rm -rf ***-(強(qiáng)制刪除該目錄下所有內(nèi)容,不詢問)

--創(chuàng)建空白文件 touch ***

(ps:從技術(shù)的角度來講,linux的文件后綴名沒有任何意義)

--復(fù)制 cp

cp -r **1 **2 (復(fù)制1到2中)

--移動(dòng) mv

mv -t **1 **2 (把2移動(dòng)到1中)

--編輯文本 vi [文件名]

--查看文本 cat 由第一行開始顯示文本內(nèi)容

tac 從最后一行顯示,可以看出 tac 是 cat 的倒著寫

more 一頁一頁的顯示文檔內(nèi)容

less 與 more 類似,可以往前翻頁

head 只看頭幾行

-N(數(shù)字,可根據(jù)行數(shù)顯示)

tail 只看后幾行

-N(數(shù)字,可根據(jù)行數(shù)顯示)

nl 顯示的時(shí)候,順序輸出行號(hào)

od 以二進(jìn)制位的方式讀取檔案內(nèi)容

--查找文本 find [路徑][查找類型][搜索文件名]

如查找rc.local find /etc -name *.local

--查找命令信息及其位置 whereis 命令

如 whereis ls

--查看環(huán)境變量 echo $SHELL

如 echo $PATH (分大小寫:分隔符是:,windows是echo %path%;)

--鏈接 ln

如 ln joe.txt a (硬鏈接,如同復(fù)制一個(gè)新文件,joe.txt刪除后,a還存在)

a是鏈接的名稱,a和joe.txt同步,然后a的內(nèi)容和joe.txt一樣

joe.txt改變,a也跟著變

如 ln -s joe.txt b (軟鏈接,如同創(chuàng)建一個(gè)快捷方式,joe.txt刪除后,b不存在)

--wc 統(tǒng)計(jì)指定文本文件的行數(shù)、字?jǐn)?shù)、字符數(shù)

--grep(很常用) 在指定的文本文件中查找指定的字符串

grep 字符串 文件名

--col 見管道..

--------------------

----信息顯示命令----

--------------------

--date 顯示和設(shè)置日期

--stat 顯示指定文件的相關(guān)信息

--who、w 顯示在線登錄用戶

--whoami 顯示用戶自己的身份

--id 顯示當(dāng)前用戶的id信息

--hostname 顯示主機(jī)名稱

--uname 顯示操作系統(tǒng)信息

--dmesg 顯示系統(tǒng)啟動(dòng)信息

--du 顯示指定的文件(目錄)已使用的磁盤空間

--df 顯示文件系統(tǒng)磁盤空間的使用情況

--free 顯示當(dāng)前內(nèi)存和交換空間的使用情況

--fdisk -l 顯示磁盤信息

--locale 顯示當(dāng)前語言環(huán)境

5、掛載點(diǎn)(mount 設(shè)備目錄 掛載目錄)

--訪問設(shè)備 (那設(shè)備當(dāng)成一個(gè)文件,和另外一個(gè)文件夾進(jìn)行綁定)

--例如掛載光驅(qū):步驟 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接訪問光驅(qū)內(nèi)容

--卸載掛載設(shè)備(umount /dev/cdrom)--注意必須先退出掛載目錄,否則出現(xiàn)"device is busy"錯(cuò)誤.

6、startup-shutdown(linux啟動(dòng)流程)

--A、boot sequence(important) linux啟動(dòng)過程

a. load bios(hardware information)

b. read MBR's config to find out the OS

(MBR--Master Boot Record,硬盤第一個(gè)物理扇區(qū),柱面0、磁頭0、扇區(qū)1,包含主引導(dǎo)程序和硬盤分區(qū)表)

c. load the kernel of the OS

(加載為kernel核心的OS)

d. init process starts...

(啟動(dòng)linux第一個(gè)進(jìn)程init)

e. execute /etc/rc.d/sysinit

(執(zhí)行系統(tǒng)最重要的配置文件,后臺(tái)啟用進(jìn)程)

(rc.d--run command)

f. start other modules(stc/modules.conf)

(開啟各種模塊,如內(nèi)存管理模塊、硬盤管理模塊)

g. execute the run level scripts

(系統(tǒng)啟動(dòng)是分層次的,根據(jù)情況執(zhí)行,每個(gè)層次之間沒關(guān)系)

0 - 系統(tǒng)停機(jī)狀態(tài)

1 - 單用戶工作狀態(tài) root

2 - 多用戶狀態(tài)(沒有NFS)

3 - 多用戶狀態(tài)(有NFS)

NFS - Network File System 網(wǎng)絡(luò)文件系統(tǒng),聯(lián)網(wǎng)系統(tǒng)

4 - 系統(tǒng)未使用,留給用戶

5 - 圖形界面

6 - 系統(tǒng)正常關(guān)閉并重新啟動(dòng)

如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多個(gè)文件夾,保存著各個(gè)層次執(zhí)行的進(jìn)程文件

h. execute /etc/rc.d/rc.local (重要)

(保存其它進(jìn)程腳本,如tomcat自動(dòng)啟動(dòng),要修改此配置文件)

i. execute /bin/login

(登錄界面)

j. shell started...

7、vi 文本編輯器

--兩種模式:命令模式 編輯模式

--vi [文件名]

(切換到編輯模式)

a append-光標(biāo)后添加

i insert-光標(biāo)前插入

o open-另起一行編輯

esc (切換回命令模式)

:w 存盤

:wq 存盤退出

:q 退出

:q! 不存盤退出

dd 刪除其中一行

dw 刪除一個(gè)單詞

(sudo gedit 文本 常用linux下的文本編輯器,比vi好用)

8、用戶設(shè)置

--切換用戶(switch user) su username

小技巧:直接exit切換

--添加用戶 useradd username [-g] [組名](分配到某個(gè)用戶組)

(創(chuàng)建后會(huì)自動(dòng)在/home目錄下創(chuàng)建該新用戶的文件夾,如/home/username)

--設(shè)置密碼 passwd username

--cd /etc

--查看用戶信息 more password

如新增的用戶信息:username:x:500:500::/home/username:/bin/bash

第一個(gè)數(shù)字,代表用戶組,當(dāng)添加用戶沒有指定用戶組時(shí),系統(tǒng)會(huì)創(chuàng)建一個(gè)和用戶ID一樣的組ID;

第二個(gè)數(shù)字:用戶ID號(hào);

用戶的目錄是/home/username;

用戶的SHELL是/bin/bash

(命令---SHELL[解釋命令]---kenrel內(nèi)核)

SHELL有多種類型,如csh、bash(常用)、bsh、ksh、sh(最原始)

--添加用戶組 groupadd groupname

--查看用戶組信息 more group

--刪除用戶組 groupdel groupname

--修改用戶 usermod [-g] [組名] [用戶名]

--刪除用戶 userdel username

然后把/home的文件夾刪除了 rm -rf 文件夾

9、權(quán)限file privilege

--linux把文件的權(quán)限分成四種:r:read w:write x:execute -:none

如:-rw-r--r--

lrwxrwxrwx

drwxr-xr-x

drwxr-xr-x

第一個(gè)數(shù)字'-'代表文件,其余是文件夾,后9位分為3組,每組有四種權(quán)限設(shè)置rwx-

第一位表示文件所有者

第二位表示和所有者在同一用戶組的用戶

第三位表示不在同一用戶組的用戶權(quán)限

--設(shè)置權(quán)限 (隨意應(yīng)用,靈活組合!)

1、普通用法

--添加權(quán)限 [chmod +x 文件]

如:-rw-r--r-- --- -rwxr-xr-x

--刪除權(quán)限 [chmod -x 文件]

如:-rwxr-xr-x --- -rw-r--r--

--給自己添加權(quán)限 [chmod ?+x 文件]

如此類推,組--g,其他人--o

如:chmod u+x -rw-r--r-- --- -rwxr--r--

chmod g+x -rw-r--r-- --- -rw-r-xr--

chmod o+x -rw-r--r-- --- -rw-r--r-x

2、專業(yè)用法 chmod 755/777

--原理,八進(jìn)制轉(zhuǎn)二進(jìn)制

如755,111 101 101, rwx r-x r-x

777,111 111 111, rwx rwx rwx

--修改所有者權(quán)限 chown (change owner)

如:chown 原來文件 file1 的所有者是 root,改成joe的

chown joe file1

10、管道(把上一個(gè)命令執(zhí)行的結(jié)果交給下一個(gè)命令)

--使用方法:

命令1|命令2|命令3......|命令n

--使用舉例

--$ls -Rl /etc | more

(如 ls -Rl /etc (在控制臺(tái)模式下,無法返回前面過去的信息),因此需要管道執(zhí)行該查詢,實(shí)現(xiàn)分頁的工作, ls -Rl /etc | more)

--$cat /etc/passwd | wc

(顯示文件結(jié)果,再數(shù)數(shù)有多少行)

--$cat /etc/passwd | grep lrj

(顯示文件結(jié)果,再查找包含lrj的行)

--#dmesg | grep eth0

(顯示系統(tǒng)啟動(dòng)的信息,再查找包含eth0的行--真正含義,檢查網(wǎng)卡執(zhí)行信息是否正常)

--$man bash | col -b bash.txt

語法:col [-bfx][-l緩沖區(qū)列數(shù)]

補(bǔ)充說明:在許多UNIX說明文件里,都有RLF控制字符。當(dāng)我們運(yùn)用shell特殊字符""和"",把說明文件的內(nèi)容輸出成純文本文件時(shí),控制字符會(huì)變成亂碼,col指令則能有效濾除這些控制字符。

參數(shù):

-b 過濾掉所有的控制字符,包括RLF和HRLF。

-f 濾除RLF字符,但允許將HRLF字符呈現(xiàn)出來。

-x 以多個(gè)空格字符來表示跳格字符。

-l緩沖區(qū)列數(shù) 預(yù)設(shè)的內(nèi)存緩沖區(qū)有128列,您可以自行指定緩沖區(qū)的大小。

--$ls -l | grep "^d"

(用正則表達(dá)式篩選出目錄列表中 頭字母為'd' 的內(nèi)容--目錄)(^是正則表達(dá)式開頭部分)

--$ls -l * | grep "^-" | wc -l

(列出目錄列表中 頭字符為'-'的內(nèi)容--文件,并統(tǒng)計(jì)顯示的行數(shù)wc -l)

11、其他命令

--wall(warning all) 通知所有人

a.命令替換

如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)

b.重定向

重定向輸出:

如 ls cmd.txt ,把文件寫到cmd.txt,不輸出在控制臺(tái)

ls cmd.txt ,把文件追加寫到cmd.txt

重定向輸入:

如 wall cmd.txt,把文本內(nèi)容發(fā)給所有人

12、修改系統(tǒng)的默認(rèn)系統(tǒng)級(jí)別

常用3和5

3 - 多用戶狀態(tài)(有NFS)

NFS - Network File System 網(wǎng)絡(luò)文件系統(tǒng),聯(lián)網(wǎng)系統(tǒng)

5 - 圖形界面

PS.設(shè)置用戶權(quán)限: sudo chmod 777 目錄

4表示讀,2表示寫,1表示執(zhí)行.

第一位表示文件所有者,第二位表示和所有者在同一用戶組的用戶,第三位表示不在同一用戶組的用戶權(quán)限.

755表示文件所有者可讀寫,執(zhí)行.

第二位5表示與所有者在同一用戶組的可讀,可執(zhí)行,不可寫.

第三位5表示其它組可讀,可執(zhí)行,不可寫. 轉(zhuǎn)載于Joewalker在本人空間也有詳細(xì)說明

PHP執(zhí)行l(wèi)inux系統(tǒng)命令的常用函數(shù)使用說明

system函數(shù)

說明:執(zhí)行外部程序并顯示輸出資料。

語法:string

system(string

command,

int

[return_var]);

返回值:

字符串

詳細(xì)介紹:

本函數(shù)就像是

C

語中的函數(shù)

system(),用來執(zhí)行指令,并輸出結(jié)果。若是

return_var

參數(shù)存在,則執(zhí)行

command

之后的狀態(tài)會(huì)填入

return_var

中。同樣值得注意的是若需要處理用戶輸入的資料,而又要防止用戶?;ㄕ衅平庀到y(tǒng),則可以使用

EscapeShellCmd()。若

PHP

以模塊式的執(zhí)行,本函數(shù)會(huì)在每一行輸出后自動(dòng)更新

Web

服務(wù)器的輸出緩沖暫存區(qū)。若需要完整的返回字符串,且不想經(jīng)過不必要的其它中間的輸出界面,可以使用

PassThru()。

實(shí)例代碼:

復(fù)制代碼

代碼如下:

?php

$last_line

=

system('ls',

$retval);

echo

'Last

line

of

the

output:

'

.

$last_line;

echo

'hr

/Return

value:

'

.

$retval;

?

exec函數(shù)

說明:執(zhí)行外部程序。

語法:string

exec(string

command,

string

[array],

int

[return_var]);

返回值:

字符串

詳細(xì)介紹:

本函數(shù)執(zhí)行輸入

command

的外部程序或外部指令。它的返回字符串只是外部程序執(zhí)行后返回的最后一行;若需要完整的返回字符串,可以使用

PassThru()

這個(gè)函數(shù)。

要是參數(shù)

array

存在,command

會(huì)將

array

加到參數(shù)中執(zhí)行,若不欲

array

被處理,可以在執(zhí)行

exec()

之前呼叫

unset()。若是

return_var

array

二個(gè)參數(shù)都存在,則執(zhí)行

command

之后的狀態(tài)會(huì)填入

return_var

中。

值得注意的是若需要處理使用者輸入的資料,而又要防止使用者?;ㄕ衅平庀到y(tǒng),則可以使用

EscapeShellCmd()。

實(shí)例代碼:

復(fù)制代碼

代碼如下:

?php

echo

exec('whoami');

?

popen函數(shù)

說明:打開文件。

語法:int

popen(string

command,

string

mode);

返回值:

整數(shù)

詳細(xì)介紹:

本函數(shù)執(zhí)行指令開檔,而該文件是用管道方式處理的文件。用本函數(shù)打開的文件只能是單向的

(只能讀或只能寫),而且一定要用

pclose()

關(guān)閉。在文件操作上可使用

fgets()、fgetss()

fputs()。若是開檔發(fā)生錯(cuò)誤,返回

false

值。

實(shí)例代碼:

復(fù)制代碼

代碼如下:

?

$fp

=

popen("/bin/ls","r"

);

?

PHP監(jiān)控linux服務(wù)器負(fù)載

在實(shí)際項(xiàng)目的應(yīng)用中,我們由于各種條件的現(xiàn)實(shí),利用PHP來實(shí)現(xiàn)服務(wù)器負(fù)載監(jiān)控將是一種更為靈活的方式。

由于Web

Server以及PHP的實(shí)現(xiàn)方式所限,我們?cè)诂F(xiàn)實(shí)環(huán)境中很難利用PHP去調(diào)用一些Linux中需要root權(quán)限才能執(zhí)行的程序,對(duì)此,我從網(wǎng)上找到另外一種方式來繞開這個(gè)限制。首先先寫個(gè)c程序中轉(zhuǎn)調(diào)用系統(tǒng)命令,然后用PHP去執(zhí)行此c程序。

c程序

首先寫個(gè)c文件,比如/usr/local/ismole/w.c

復(fù)制代碼

代碼如下:

#includestdio.h

#includestdlib.h

#includesystypes.h

#includeunistd.h

int

main()

{

uid_t

uid

,euid;

//note

獲得當(dāng)前的uid

uid

=

getuid();

//note

獲得當(dāng)前euid

euid

=

geteuid();

//note

交換這兩個(gè)id

if(setreuid(euid,

uid))

perror("setreuid");

//note

執(zhí)行將要執(zhí)行l(wèi)inux系統(tǒng)命令

system("/usr/bin/w");

return0;

}

編譯該文件gcc

-o

w

-Wall

w.c,這時(shí)會(huì)在當(dāng)前目錄下生成程序w。改變此程序的屬主chmod

u+s

./w。

PHP執(zhí)行

文件內(nèi)容如下,放在web目錄下,訪問就會(huì)輸出當(dāng)前的服務(wù)器負(fù)載情況。

復(fù)制代碼

代碼如下:

?php

/*

More

Original

PHP

Framwork

Copyright

(c)

2007

-

2008

IsMole

Inc.

$Id:

serverMonitor.php

408

2008-12-02

08:07:40Z

kimi

$

*/

//note

key的驗(yàn)證過程

if($key

!=

$authkey)

{

//

exit('key

error);

}

$last_line

=

exec('/usr/local/ismole/w',

$retval);

$returnArray

=

explode("load

average:

",

$retval[0]);

$returnString

=

$returnArray[1];

echo

$returnString; 

 按照上面的實(shí)例,我們可以用PHP來做任何我們想執(zhí)行的Linux系統(tǒng)命令,SVN更新,服務(wù)器監(jiān)控,備份,恢復(fù),日常維護(hù)等等。

LINUX+NGINX下的PHP shell_exec()函數(shù)執(zhí)行l(wèi)inux命令 2019-08-08

LINUX+NGINX下的PHP shell_exec()函數(shù)執(zhí)行l(wèi)inux命令

環(huán)境說明

手頭有一臺(tái)linux的測試服務(wù)器,最近因?yàn)闃I(yè)務(wù)需要,需要通過php訪問另一臺(tái)服務(wù)器去執(zhí)行某些命令。

由于另一臺(tái)服務(wù)器已經(jīng)對(duì)這臺(tái)服務(wù)器開了私鑰,所以在終端上是可以直接執(zhí)行命令而不需要輸入密碼的。

問題

PHP無法使用exec命令,沒有任何返回值。

解決途徑

1.php.ini的配置有問題。

由于php是7.0以上的版本,取消了安全模式,所以考慮PHP.ini文件配置。

打開php配置文件,里面有一行disabel_function的值,此處記錄了禁止運(yùn)行的函數(shù),在里面講exec和shell_exec,system等函數(shù)刪除。

2.權(quán)限問題

修改以后PHP可以運(yùn)行部分命令了,但是部分外部程序和命令仍然不能運(yùn)行。使用sudo返回失敗。

于是運(yùn)行“whoami”查看,環(huán)境下php-frm的運(yùn)行角色是www。

于是修改sudoers文件。

vi /etc/sudoers

將www添加到

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

下面:

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

www ALL=(ALL) NOPASSWD:ALL

然后找到Default requiretty這一行,把他注釋掉

# Default requiretty

ps:意思就是sudo默認(rèn)需要tty終端,注釋掉就可以在后臺(tái)執(zhí)行了.

重啟nginx和php-fpm

service nginx restart

service php-fpm restart

這樣,PHP就可以在需要執(zhí)行外部命令的時(shí)候使用sudo利用root身份執(zhí)行命令,而不會(huì)報(bào)錯(cuò)或者執(zhí)行失敗了!

分享題目:Linux命令打開函數(shù) linux系統(tǒng)如何打開命令行
分享地址:http://jinyejixie.com/article26/dochhcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站制作微信小程序、網(wǎng)站營銷網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
峨边| 垦利县| 潜江市| 隆安县| 沭阳县| 玉溪市| 清水河县| 宁安市| 洱源县| 青州市| 荔波县| 乾安县| 蛟河市| 义乌市| 五河县| 晋中市| 沙河市| 霍林郭勒市| 宜章县| 广昌县| 苍南县| 启东市| 景东| 同德县| 南川市| 句容市| 麟游县| 蚌埠市| 陕西省| 阳曲县| 弥渡县| 鄂托克旗| 府谷县| 友谊县| 通渭县| 孝昌县| 海晏县| 伽师县| 葫芦岛市| 玉龙| 博乐市|