本文目录一览:
- linux常用命令有哪些
- 如何通过Linux命令行使用和运行PHP脚本
- linux基本操作命令
- 如何通过PHP执行linux命令?
- php 执行linux命令呢?
- PHP执行linux系统命令的常用函数使用说明
linux常用命令有哪些
Linux常用命令大全100条:
echo "aa" > test.txt
和echo "bb" >> test.txt
>
将原文件清空,并且内容写入到文件中,>>
将内容放到文件的尾部chmod go+w -R /home/zhangy
给组用户和其他用户添加写的权限tar -tzvf test.tar.gz
列出归档内容du -ah
查看文件列表大小du -sh
查看所有文件的大小总和echo '1+2' | bc -l
数学运算uname -a
查看linux内核等的一些信息badblocks -s /dev/sda
坏道扫描时显示进度time command
查看命令的运行时间ls -lrt
按时间的倒序排序rsync -P
同步时显示进度history -c
清除历史命令cd -
返回上次目录tree
显示目录树umount -n /mnt/hda2
强制卸载echo ~/
显示用户的home目录echo $[5*5]
算术运算echo $((5*5))
算术运算eval ls; ps aux | grep httpd
这两个命令都能执行free -m
以MB为单位显示内存uptime
显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载- 加法运算
[root@krlcgcms01 mytest]# let a=34+3;
[root@krlcgcms01 mytest]# echo $a;
export
查看所有环境变量echo $PATH
查看单个变量cmp file1 file2
文件内容比对clear
清屏echo 23423 | awk --re-interval '/[0-9]{3,}/'
如果不加re-interval的话,不显示cal
得到一个整齐的日历格式wc -l
统计行数,wc -w
统计单词echo "AaDCbd23" | tr "[A-Z]" "[a-z]"
大写变小写,echo "AaDCbdc23" | tr -c b-d =
将b-d之外的字符串替换成=echo "ADSF" | iconv -f UTF8 -t GBK
把字符由utf8转成gbk
-f
是from的简写,-t
是terminal的简写cat -n file
内容的前面会显示行号chattr +i file
只读,root用户也没法对其进行修改lsattr file
查看文件属性cat /etc/passwd | awk -F: '{print $1}'
查看系统中所有用户cat /etc/group
查看系统中所有的组groups
查看当前用户所在的,所有组usermod -g 组名 用户
这种方式是覆盖的方式,用的时候要小心,如果用户A属于mysqlusermod -g php mysql
这样的话只属于php了usermod -G 组名 用户
这种方式是增加的方式,如果用户A属于mysqlusermod -g php mysql
这样的话,mysql就属于2个组了bc
进入数学计算中去umask 003
u权限是7,g权限是7,其他用户是4,也就是774,777-003=774mkfs -t vfat /dev/hda6
将移动硬盘里面的一个分区格式化成vfat格式mount /dev/cdrom /media/cdrom
挂载cdromgetent group 532
通过组ID,来查找组信息last
登录成功用户记录lastb
登录不成功用户记录dump -S /dev/sda2
查看一下要备份/dev/sda2所要的容量dump -0j -f /dev/hda2/sda2_bak.dump.bz2 /dev/sda2
将sda2进行备份并压缩restore -t -f /dev/hda2/sda2_bak.dump
查看备份信息restore -r -f /dev/hda2/sda2_bak.dump
还原备份fc-list
查看系统中安装的字体find ./ -type f -exec grep -q "root" {} ; -exec echo {} ;
查找目录下文件所包含的字符串vmstat 5
每5秒显示一次系统信息,cpu,memory,i/o等top
后按Shift + P
所占进程的排序显示top
后按Shift + M
所占内存的排序显示iptraf -g
查看各个接口的流量iostat -d -x /dev/sda2 2
用iostat查看磁盘/dev/sda2的磁盘i/o情况,每两秒刷新一次paste -sd '|||\n' test
文件的每4行转换成1行,并用|
隔开lsof -i :22
知道22端口现在运行什么程序lsof -c abc
显示abc进程现在打开的文件lsof -p 12
看进程号为12的进程打开了哪些文件route
查看路由信息ifup
开启网卡ifdown
关闭网卡route del -net 172.168.0.0 netmask 255.255.0.0 dev eth0
删除172.168这个网段route add -net 172.168.10.0 netmask 255.255.255.0 dev eth0
增加一个路由netstat -tunl
列出监听的网络服务端口netstat -tun
列出已连接的网络服务端口nmap -sP 172.30.4.0/24
在这个网段内有多少用户在我的主机上操作,一个不错的安全检查工具vgdisplay
查看系统中的可用空间lvextend -L+20G /dev/tank/part1
向part1这个分区增加20G的空间lvresize -L-10G /dev/tank/part2
向part2这个分区减少10G的空间pvdisplay
查看磁盘信息mplayer -loop 10 /mnt/song/music/花儿开了.mp3
循环播放10遍pacman -S firefox -nd
nd去掉依赖wget -c
断点下载chroot /mnt/ubuntu
改变根目录到/mnt/ubuntuCtrl+a
命令行下,光标移动到开头Ctrl+e
命令行下,光标移动到结尾cut -d: -f 1-4 test
用:
分割文件,取分割后的1-4列file /home/zhangy/test.php
用于查看文件的一些基本信息touch test.txt
创建一个空文件 text.txthtpasswd -cbd /usr/local/nginx/conf/authfile
创建访问控制文件df
查看磁盘空间,和当前的磁盘数fdisk -l
查看所有磁盘数alsamixer
进入后,m键可以实现静音killall httpd
把所有httpd进程杀掉killall -9 mysqld_safe
有些进程超级用户也停止不了,-9
是强制删除mirror /mysql
下载mysql目录mirror -R /mysql
上传mysql目录rmmod pcspkr
关掉tab提示音modprobe pcspkr
开启tab提示音gpasswd -a zhangy wheel
将zhangy这个用户添加到wheel这个组dd if=/dev/zero of=/virtual/ubuntu.virt.img bs=1M count=4096
创建一个4G的IMG镜像lspci
显示pci设备lsusb
显示usb设备history | less
less跟more有点像,感觉less用着更舒服点ln -s
如果忘了-s
就变成硬链接了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脚本语言的命令行方面。
- 在安装完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信息 由于输出结果太大,我们可以通过管道将上述输出结果输送给# php -f /var/www/html/infophp.php
less
命令,这样就可以一次输出一屏了,命令如下:
检查所有PHP信息 这里,# php -f /var/www/html/infophp.php | less
-f
选项解析并执行命令后跟随的文件。 - 我们可以直接在Linux命令行使用
phpinfo()
这个十分有价值的调试工具而不需要从文件来调用,只需执行以下命令:
PHP调试工具 这里,# php -r 'phpinfo();'
-r
选项会让PHP代码在Linux终端中不带<?php
和?>
标记直接执行。 - 以交互模式运行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交互模式 - 你可以仅仅将PHP脚本作为shell脚本来运行。首先,创建在你当前工作目录中创建一个PHP样例脚本。
注意,我们在该PHP脚本的第一行使用# echo -e '#!/usr/bin/php\n<?php phpinfo(); ?>' > phpscript.php
#!/usr/bin/php
,就像在shell脚本中那样(/bin/bash
)。第一行的#!/usr/bin/php
告诉Linux命令行用 PHP 解释器来解析该脚本文件。 其次,让该脚本可执行:
接着来运行它:# chmod 755 phpscript.php
# ./phpscript.php
- 你可以完全靠自己通过交互shell来创建简单函数,这你一定会被惊到了。下面是循序渐进的指南。
开启PHP交互模式:
创建一个函数,将它命名为# php -a
addition
。同时,声明两个变量$a
和$b
。
使用花括号来在其间为该函数定义规则。php> function addition ($a, $b)
定义规则。这里,该规则讲的是添加这两个变量。php> {
所有规则定义完毕,通过闭合花括号来封装规则。php> echo $a + $b;
测试函数,添加数字4和3,命令如下:php> }
样例输出:php> var_dump (addition(4,3));
你可以运行以下代码来执行该函数,你可以测试不同的值,你想来多少次都行。将里头的 a 和 b 替换成你自己的值。7 NULL
样例输出:php> var_dump (addition(a,b)); php> var_dump (addition(9,3.3));
创建PHP函数 你可以一直运行该函数,直至退出交互模式(12.3 NULL
Ctrl+Z
)。同时,你也应该注意到了,上面输出结果中返回的数据类型为NULL
。这个问题可以通过要求 php 交互 shell用return
代替echo
返回结果来修复。 只需要在上面的函数的中echo
声明用return
来替换 替换:
为:php> echo $a + $b;
剩下的东西和原理仍然一样。 这里是一个样例,在该样例的输出结果中返回了正确的数据类型。 PHP函数 永远都记住,用户定义的函数不会从一个shell会话保留到下一个shell会话,因此,一旦你退出交互shell,它就会丢失了。php> return $a + $b;
linux基本操作命令
linux基本操作命令如下:
- 查看内核版本:
uname -a
。 - 控制台-图形界面:
init 5
或者startx
。 - 图形界面-控制台:
init 3
或者直接注销。 - 如何查看ip地址:
ifconfig
。 - 配置ip:
ifconfig eth0 ip地址
。 - 重启:
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_var
跟 array
二个参数都存在,则执行 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更新,服务器监控,备份,恢复,日常维护等等。