繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM