如何在命令行上编辑文件?

我正在尝试创build一个PHP文件,添加一个用户并使用exec()函数(PHP)在Linux中创buildpublic_html目录。

我可以将以下代码添加到php文件中

exec(“useradd -d / home / username -m username”); exec(“mkdir / home / username / public_html”);

现在..我必须添加public_html smb.conf工作public_html在Windows上。

有没有可能在命令行上编辑smb.conf?

当然,我将使用SSH作为root来执行php文件。

看看parse_ini_file()函数。

那么如果你想在ini文件中写入,试试这个:

function writeini($file,$title,$item,$data) { $source = file($file); $t_match = "/^\[".$title."\]/i"; $s_title = ""; $c = "0"; $o = ""; foreach ($source as $temp) { $c++; if (preg_match("/^\[.+\]/i",$temp)) { if (preg_match($t_match,$l_title)) { $done = "yes"; $f_write .= $item."=".$data."\n"; } $l_title = $temp; $f_write .= $temp; } elseif (preg_match("/^".$item."=/i",$temp) && preg_match($t_match,$l_title)) { $done = "yes"; $f_write .= $item."=".$data."\n"; $l_title = ""; } elseif ($c == count($source) && $done != "yes") { if (preg_match($t_match,$l_title)) { $f_write .= $temp.$item."=".$data."\n"; } else { $f_write .= $temp."[".$title."]\n".$item."=".$data."\n"; } } else { $f_write .= $temp; } } $ini_write = fopen($file,'w'); fwrite($ini_write,$f_write); fclose($ini_write); } 

编辑:在阅读罗伊·里科的答案后,我相信我误解了这个问题。

您可以使用nano或vi。 如果你是初学者,那么纳米将是更直接的。 简单地使用它就像这样:

 nano /etc/samba/smb.conf 

我相信ctrl + o会保存文件,ctrl + x将退出。

您是否正在使用在命令行上执行的php脚本来编辑文件,或者您是否要自己使用命令行来编辑命令行(使用交互式shell)?

如果你正在用你的php脚本来编辑这个文件,那么你将不得不使用fopen,fwrite命令,以及将文件访问到你的脚本,那么你可能会遇到很多安全问题,比如等等。底线,这不仅仅是一个可以在这里给你的快速答案。

如果你使用的是交互式shell,那么vi和emacs是非常棒的编辑器,但是如果你以前从未使用过它们,那将是非常艰巨的。 对于那些不熟悉CL编辑的人来说,pico和nano是比较友好的。

大多数人使用Vim或Emacs作为他们的命令行编辑器。 就个人而言,我更喜欢emacs,但尝试两种,看看你更喜欢。