php开发时linux常用命令,php执行命令

发布时间:2022-11-19

本文目录一览:

  1. linux常用命令有哪些
  2. 如何通过Linux命令行使用和运行PHP脚本
  3. linux基本操作命令
  4. 如何通过PHP执行linux命令?
  5. php 执行linux命令呢?
  6. PHP执行linux系统命令的常用函数使用说明

linux常用命令有哪些

Linux常用命令大全100条:

  1. echo "aa" > test.txtecho "bb" >> test.txt
    > 将原文件清空,并且内容写入到文件中,>> 将内容放到文件的尾部
  2. chmod go+w -R /home/zhangy
    给组用户和其他用户添加写的权限
  3. tar -tzvf test.tar.gz
    列出归档内容
  4. du -ah
    查看文件列表大小
  5. du -sh
    查看所有文件的大小总和
  6. echo '1+2' | bc -l
    数学运算
  7. uname -a
    查看linux内核等的一些信息
  8. badblocks -s /dev/sda
    坏道扫描时显示进度
  9. time command
    查看命令的运行时间
  10. ls -lrt
    按时间的倒序排序
  11. rsync -P
    同步时显示进度
  12. history -c
    清除历史命令
  13. cd -
    返回上次目录
  14. tree
    显示目录树
  15. umount -n /mnt/hda2
    强制卸载
  16. echo ~/
    显示用户的home目录
  17. echo $[5*5]
    算术运算
  18. echo $((5*5))
    算术运算
  19. eval ls; ps aux | grep httpd
    这两个命令都能执行
  20. free -m
    以MB为单位显示内存
  21. uptime
    显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载
  22. 加法运算
[root@krlcgcms01 mytest]# let a=34+3;
[root@krlcgcms01 mytest]# echo $a;
  1. export
    查看所有环境变量
  2. echo $PATH
    查看单个变量
  3. cmp file1 file2
    文件内容比对
  4. clear
    清屏
  5. echo 23423 | awk --re-interval '/[0-9]{3,}/'
    如果不加re-interval的话,不显示
  6. cal
    得到一个整齐的日历格式
  7. wc -l
    统计行数,wc -w 统计单词
  8. echo "AaDCbd23" | tr "[A-Z]" "[a-z]"
    大写变小写,echo "AaDCbdc23" | tr -c b-d =
    将b-d之外的字符串替换成=
  9. echo "ADSF" | iconv -f UTF8 -t GBK
    把字符由utf8转成gbk
    -f 是from的简写,-t 是terminal的简写
  10. cat -n file
    内容的前面会显示行号
  11. chattr +i file
    只读,root用户也没法对其进行修改
  12. lsattr file
    查看文件属性
  13. cat /etc/passwd | awk -F: '{print $1}'
    查看系统中所有用户
  14. cat /etc/group
    查看系统中所有的组
  15. groups
    查看当前用户所在的,所有组
  16. usermod -g 组名 用户
    这种方式是覆盖的方式,用的时候要小心,如果用户A属于mysql usermod -g php mysql
    这样的话只属于php了
  17. usermod -G 组名 用户
    这种方式是增加的方式,如果用户A属于mysql usermod -g php mysql
    这样的话,mysql就属于2个组了
  18. bc
    进入数学计算中去
  19. umask 003
    u权限是7,g权限是7,其他用户是4,也就是774,777-003=774
  20. mkfs -t vfat /dev/hda6
    将移动硬盘里面的一个分区格式化成vfat格式
  21. mount /dev/cdrom /media/cdrom
    挂载cdrom
  22. getent group 532
    通过组ID,来查找组信息
  23. last
    登录成功用户记录
  24. lastb
    登录不成功用户记录
  25. dump -S /dev/sda2
    查看一下要备份/dev/sda2所要的容量
  26. dump -0j -f /dev/hda2/sda2_bak.dump.bz2 /dev/sda2
    将sda2进行备份并压缩
  27. restore -t -f /dev/hda2/sda2_bak.dump
    查看备份信息
  28. restore -r -f /dev/hda2/sda2_bak.dump
    还原备份
  29. fc-list
    查看系统中安装的字体
  30. find ./ -type f -exec grep -q "root" {} ; -exec echo {} ;
    查找目录下文件所包含的字符串
  31. vmstat 5
    每5秒显示一次系统信息,cpu,memory,i/o等
  32. top 后按 Shift + P
    所占进程的排序显示
  33. top 后按 Shift + M
    所占内存的排序显示
  34. iptraf -g
    查看各个接口的流量
  35. iostat -d -x /dev/sda2 2
    用iostat查看磁盘/dev/sda2的磁盘i/o情况,每两秒刷新一次
  36. paste -sd '|||\n' test
    文件的每4行转换成1行,并用|隔开
  37. lsof -i :22
    知道22端口现在运行什么程序
  38. lsof -c abc
    显示abc进程现在打开的文件
  39. lsof -p 12
    看进程号为12的进程打开了哪些文件
  40. route
    查看路由信息
  41. ifup
    开启网卡
  42. ifdown
    关闭网卡
  43. route del -net 172.168.0.0 netmask 255.255.0.0 dev eth0
    删除172.168这个网段
  44. route add -net 172.168.10.0 netmask 255.255.255.0 dev eth0
    增加一个路由
  45. netstat -tunl
    列出监听的网络服务端口
  46. netstat -tun
    列出已连接的网络服务端口
  47. nmap -sP 172.30.4.0/24
    在这个网段内有多少用户在我的主机上操作,一个不错的安全检查工具
  48. vgdisplay
    查看系统中的可用空间
  49. lvextend -L+20G /dev/tank/part1
    向part1这个分区增加20G的空间
  50. lvresize -L-10G /dev/tank/part2
    向part2这个分区减少10G的空间
  51. pvdisplay
    查看磁盘信息
  52. mplayer -loop 10 /mnt/song/music/花儿开了.mp3
    循环播放10遍
  53. pacman -S firefox -nd
    nd去掉依赖
  54. wget -c
    断点下载
  55. chroot /mnt/ubuntu
    改变根目录到/mnt/ubuntu
  56. Ctrl+a
    命令行下,光标移动到开头
  57. Ctrl+e
    命令行下,光标移动到结尾
  58. cut -d: -f 1-4 test
    :分割文件,取分割后的1-4列
  59. file /home/zhangy/test.php
    用于查看文件的一些基本信息
  60. touch test.txt
    创建一个空文件 text.txt
  61. htpasswd -cbd /usr/local/nginx/conf/authfile
    创建访问控制文件
  62. df
    查看磁盘空间,和当前的磁盘数
  63. fdisk -l
    查看所有磁盘数
  64. alsamixer
    进入后,m键可以实现静音
  65. killall httpd
    把所有httpd进程杀掉
  66. killall -9 mysqld_safe
    有些进程超级用户也停止不了,-9是强制删除
  67. mirror /mysql
    下载mysql目录
  68. mirror -R /mysql
    上传mysql目录
  69. rmmod pcspkr
    关掉tab提示音
  70. modprobe pcspkr
    开启tab提示音
  71. gpasswd -a zhangy wheel
    将zhangy这个用户添加到wheel这个组
  72. dd if=/dev/zero of=/virtual/ubuntu.virt.img bs=1M count=4096
    创建一个4G的IMG镜像
  73. lspci
    显示pci设备
  74. lsusb
    显示usb设备
  75. history | less
    less跟more有点像,感觉less用着更舒服点
  76. ln -s
    如果忘了-s就变成硬链接了
  77. tar zxvf test.tar.gz -C /home/zhangy
    将内容解压到指定目录

如何通过Linux命令行使用和运行PHP脚本

在 Linux 命令行中运行 PHP 代码 PHP的语法和C、Java以及带有一些PHP特性的Perl编程语言中的语法十分相似,它当下大约正被2.6亿个网站所使用,当前最新的稳定版本是PHP版本5.6.10。 PHP是HTML的嵌入脚本,它便于开发人员快速写出动态生成的页面。PHP主要用于服务器端(而Javascript则用于客户端)以通过HTTP生成动态网页,然而,当你知道可以在Linux终端中不需要网页浏览器来执行PHP时,你或许会大为惊讶。 本文将阐述PHP脚本语言的命令行方面。

  1. 在安装完PHP和Apache2后,我们需要安装PHP命令行解释器。
    # apt-get install php5-cli        # [Debian 及类似系统]
    # yum install php-cli             # [CentOS 及类似系统]
    
    接下来我们通常要做的是,在 /var/www/html (这是 Apache2 在大多数发行版中的工作目录)这个位置创建一个内容为 <?php phpinfo(); ?>,名为 infophp.php 的文件来测试(PHP是否安装正确),执行以下命令即可。
    # echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
    
    然后,将浏览器访问 http://localhost/infophp.php,这将会在网络浏览器中打开该文件。 检查PHP信息 不需要任何浏览器,在Linux终端中也可以获得相同的结果。在Linux命令行中执行 /var/www/html/infophp.php,如:
    # php -f /var/www/html/infophp.php
    
    从命令行检查PHP信息 由于输出结果太大,我们可以通过管道将上述输出结果输送给 less 命令,这样就可以一次输出一屏了,命令如下:
    # php -f /var/www/html/infophp.php | less
    
    检查所有PHP信息 这里,-f 选项解析并执行命令后跟随的文件。
  2. 我们可以直接在Linux命令行使用 phpinfo() 这个十分有价值的调试工具而不需要从文件来调用,只需执行以下命令:
    # php -r 'phpinfo();'
    
    PHP调试工具 这里,-r 选项会让PHP代码在Linux终端中不带 <?php?> 标记直接执行。
  3. 以交互模式运行PHP并做一些数学运算。这里,-a 选项用于以交互模式运行PHP。
    # php -a
    Interactive shell
    php> echo 2+3;
    5
    php> echo 9-6;
    3
    php> echo 5*4;
    20
    php> echo 12/3;
    4
    php> echo 12/5;
    2.4
    php> echo 2+3-1;
    4
    php> echo 2+3-1*3;
    2
    php> exit
    
    输入 exit 或者按下 Ctrl+C 来关闭PHP交互模式。 启用PHP交互模式
  4. 你可以仅仅将PHP脚本作为shell脚本来运行。首先,创建在你当前工作目录中创建一个PHP样例脚本。
    # echo -e '#!/usr/bin/php\n<?php phpinfo(); ?>' > phpscript.php
    
    注意,我们在该PHP脚本的第一行使用 #!/usr/bin/php,就像在shell脚本中那样(/bin/bash)。第一行的 #!/usr/bin/php 告诉Linux命令行用 PHP 解释器来解析该脚本文件。 其次,让该脚本可执行:
    # chmod 755 phpscript.php
    
    接着来运行它:
    # ./phpscript.php
    
  5. 你可以完全靠自己通过交互shell来创建简单函数,这你一定会被惊到了。下面是循序渐进的指南。 开启PHP交互模式:
    # php -a
    
    创建一个函数,将它命名为 addition。同时,声明两个变量 $a$b
    php> function addition ($a, $b)
    
    使用花括号来在其间为该函数定义规则。
    php> {
    
    定义规则。这里,该规则讲的是添加这两个变量。
    php> echo $a + $b;
    
    所有规则定义完毕,通过闭合花括号来封装规则。
    php> }
    
    测试函数,添加数字4和3,命令如下:
    php> var_dump (addition(4,3));
    
    样例输出:
    7
    NULL
    
    你可以运行以下代码来执行该函数,你可以测试不同的值,你想来多少次都行。将里头的 a 和 b 替换成你自己的值。
    php> var_dump (addition(a,b));
    php> var_dump (addition(9,3.3));
    
    样例输出:
    12.3
    NULL
    
    创建PHP函数 你可以一直运行该函数,直至退出交互模式(Ctrl+Z)。同时,你也应该注意到了,上面输出结果中返回的数据类型为 NULL。这个问题可以通过要求 php 交互 shell用 return 代替 echo 返回结果来修复。 只需要在上面的函数的中 echo 声明用 return 来替换 替换:
    php> echo $a + $b;
    
    为:
    php> return $a + $b;
    
    剩下的东西和原理仍然一样。 这里是一个样例,在该样例的输出结果中返回了正确的数据类型。 PHP函数 永远都记住,用户定义的函数不会从一个shell会话保留到下一个shell会话,因此,一旦你退出交互shell,它就会丢失了。

linux基本操作命令

linux基本操作命令如下:

  1. 查看内核版本:uname -a
  2. 控制台-图形界面:init 5 或者 startx
  3. 图形界面-控制台:init 3 或者直接注销。
  4. 如何查看ip地址:ifconfig
  5. 配置ip:ifconfig eth0 ip地址
  6. 重启:reboot 或者 shutdown -r now

linux常用命令举例

cd 命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径,如:

cd /root/Documents  # 切换到目录 /root/Documents
cd ./path           # 切换到当前目录下的 path 目录中

这是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多,下面就列出一些我常用的参数吧,如下:

  • -l:列出长数据串,包含文件的属性与权限数据等
  • -a:列出全部的文件连同隐藏文件一起列出来
  • -d:仅列出目录本身,而不是列出目录的文件数据
  • -h:将文件容量以较易读的方式列出来
  • -R:递归列出目录内容

如何通过PHP执行linux命令?

你想问得是php如何执行shell命令把? 可以用 system(), exec(), passthru() 这三个函数实现 虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:

  • system() 输出并返回最后一行shell结果。
  • exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
  • passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。 相同点:都可以获得命令执行的状态码 例子:system("ls -al"); 【使用之前要在php.ini中把safe_mode关闭】

php 执行linux命令呢?

php内置函数:

  • exec — 执行一个外部程序
  • passthru — 执行外部程序并且显示原始输出
  • shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回

PHP执行linux系统命令的常用函数使用说明

system函数

说明:执行外部程序并显示输出资料。 语法:

string system(string command, int [return_var]);

返回值:字符串 详细介绍: 本函数就像是 C 语言中的函数 system(),用来执行指令,并输出结果。若是 return_var 参数存在,则执行 command 之后的状态会填入 return_var 中。同样值得注意的是若需要处理用户输入的资料,而又要防止用户耍花招破解系统,则可以使用 EscapeShellCmd()。若 PHP 以模块式的执行,本函数会在每一行输出后自动更新 Web 服务器的输出缓冲暂存区。若需要完整的返回字符串,且不想经过不必要的其它中间的输出界面,可以使用 PassThru()。 实例代码:

<?php
$last_line = system('ls', $retval);
echo 'Last line of the output: ' . $last_line;
echo '<hr />Return value: ' . $retval;
?>

exec函数

说明:执行外部程序。 语法:

string exec(string command, string [array], int [return_var]);

返回值:字符串 详细介绍: 本函数执行输入 command 的外部程序或外部指令。它的返回字符串只是外部程序执行后返回的最后一行;若需要完整的返回字符串,可以使用 PassThru() 这个函数。 要是参数 array 存在,command 会将 array 加到参数中执行,若不欲 array 被处理,可以在执行 exec() 之前呼叫 unset()。若是 return_vararray 二个参数都存在,则执行 command 之后的状态会填入 return_var 中。 值得注意的是若需要处理使用者输入的资料,而又要防止使用者耍花招破解系统,则可以使用 EscapeShellCmd()。 实例代码:

<?php
echo exec('whoami');
?>

popen函数

说明:打开文件。 语法:

int popen(string command, string mode);

返回值:整数 详细介绍: 本函数执行指令开档,而该文件是用管道方式处理的文件。用本函数打开的文件只能是单向的(只能读或只能写),而且一定要用 pclose() 关闭。在文件操作上可使用 fgets()fgetss()fputs()。若是开档发生错误,返回 false 值。 实例代码:

<?php
$fp = popen("/bin/ls", "r");
?>

PHP监控linux服务器负载

在实际项目的应用中,我们由于各种条件的现实,利用PHP来实现服务器负载监控将是一种更为灵活的方式。 由于 Web Server 以及 PHP 的实现方式所限,我们在现实环境中很难利用PHP去调用一些Linux中需要root权限才能执行的程序,对此,我从网上找到另外一种方式来绕开这个限制。首先先写个 C 程序中转调用系统命令,然后用 PHP 去执行此 C 程序。

C程序

首先写个C文件,比如 /usr/local/ismole/w.c

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
    uid_t uid, euid;
    // 获得当前的uid
    uid = getuid();
    // 获得当前euid
    euid = geteuid();
    // 交换这两个id
    if(setreuid(euid, uid))
        perror("setreuid");
    // 执行将要执行linux系统命令
    system("/usr/bin/w");
    return 0;
}

编译该文件:

gcc -o w -Wall w.c

这时会在当前目录下生成程序 w。改变此程序的属主:

chmod u+s ./w

PHP执行

文件内容如下,放在web目录下,访问就会输出当前的服务器负载情况。

<?php
/*
More
Original PHP Framwork
Copyright (c) 2007-2008 IsMole Inc.
$Id: serverMonitor.php 408 2008-12-02 08:07:40Z kimi $
*/
// key的验证过程
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;

按照上面的实例,我们可以用PHP来做任何我们想执行的Linux系统命令,SVN更新,服务器监控,备份,恢复,日常维护等等。