[英]how do I edit a file on command line?
我正在尝试创建一个添加用户的php文件,并使用exec()function(php)在linux中创建public_html目录。
我可以将以下代码添加到php文件中
exec(“ useradd -d / home / username -m username”); exec(“ mkdir / home / username / public_html”);
现在。我必须在smb.conf中添加public_html才能在Windows上工作public_html。
是否可以在命令行上编辑smb.conf?
当然,我将使用SSH作为根目录来执行php文件。
编辑:阅读罗伊·里科的答案后,我相信我误解了这个问题。
您可以使用nano或vi。 如果您是初学者,那么nano会更简单。 像这样简单地使用它:
nano /etc/samba/smb.conf
我相信ctrl + o将保存文件,而ctrl + x将退出。
您是要使用在命令行上执行的php脚本来编辑文件,还是要自己使用命令行来编辑命令行(使用交互式shell)?
如果您尝试使用php脚本编辑文件,则必须使用fopen,fwrite命令,以及将文件访问权限授予脚本,然后可能会遇到很多安全问题,等等。等等。最重要的是,这里不仅可以提供快速的答案。
如果您使用的是交互式外壳程序,那么vi和emacs是出色的编辑器,但是如果您以前从未使用过它们,那么将非常令人生畏。 对于不熟悉CL编辑器的人来说,pico和nano更友好。
大多数人将Vim或Emacs用作命令行编辑器。 就个人而言,我更喜欢emacs,但同时尝试两者,看看您更喜欢哪个。
看一下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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.