您的位置:首页 > 运维架构 > Linux

Linux一些常用命令

2010-06-20 11:07 459 查看
    1.文本搜索

        grep 'SSL' /home/yaobin/software/php-mysql-apache/httpd-2.2.12/docs/conf/httpd.conf

    2.文件检索

        find / -name "201012023335251.jpg" -ls

    3.选中一行

    关掉防火墙

    service iptables stop

    4 挂载Windows目录

    mount -t cifs  -o username=binbin0915,password=123456  //192.168.2.154/20100209 /tempyaobin/mnt/mntin/

    5 文件个数

    ls   -l   |grep   "^-"   |   wc   -l 

    6 只列出目录

    ls -l | grep ^d

    /etc/inittab

    以ROOT权限登录, 

      打开   /etc/inittab   文件 

      

      

      将id:5:initdefault:   这一行的5改为3 

    Linux操作系统中,root用户权限。

    修改/etc/passwd即可,把用户名的ID和ID组修改成0。

    至于/etc/group是否修改,经过测试,不修改也行的,修改了也没问题。

 

例如:把D盘下1 文件夹共享给 管理员并且具有完全权限

    net share abc=d:/1 /grant:administrator,full

    who

    groups

    如何将一个用户加入到一个组中

    查看版本号

    uname -a

    cat /proc/version

    root无着色

    vi /etc/profile.d/vim.sh

    查看CPU等硬件信息

    dmesg

    more /proc/cpuinfo

    data -s 2010/01/18

    data -s 17:28:41

    配置网络

/etc/sysconfig/network-scripts

ifconfig eth1 192.168.2.102 netmask 255.255.255.0

ifup eth1

ifdown eth1

service network restart

/etc/init.d/network restart

方法一:

b:eth0 192.168.1.1 网关192.168.1.254 eth1 192.168.2.1

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

c:eth0 192.168.2.2 网关192.168.2.1

方法二:

b: echo "1" > /proc/sys/net/ipv4/ip_forward

ifconfig eth0 0.0.0.0 up

ifconfig eth1 0.0.0.0 up

brctl addbr br0

brctl addif br0 eth0

brctl addif br0 eth1

ifconfig br0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 up

route add default gw 192.168.1.254

c: eth0 192.168.1.2 网关192.168.1.254

DEVICE=eth0

HWADDR=E0:CB:4E:4E:D3:28

ONBOOT=no

IPADDR=192.168.2.101

BOOTPROTO=none

NETMASK=255.255.255.0

TYPE=Ethernet

GATEWAY=192.168.2.1

NM_CONTROLLED=yes

IPV6INIT=no

USERCTL=no

PREFIX=24

NAME="System eth0"

UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

vi /etc/sysconfig/network-scripts/ifcfg-eth0

挂载Linux目录(Linux之间共享目录)

service nfslock start

 service nfs start

 showmount -e

vi /etc/exports

umount /tempyaobin/mnt/mntoutporn

/www/imseer.com/imagefilter_man/picresult/mnt20100209/predictporn20100209 192.168.*.*(rw,sync,all_squash,anonuid=65534,anongid=65534)

 mount -t nfs 192.168.2.103:/www/imseer.com/imagefilter_man/picresult/mnt20100210/predictporn20100210  /tempyaobin/mnt/mntoutporn

在Linux下安装完Apache 2.2.6,启动HTTP服务就报错,似乎不影响服务的使用,但是也挺别扭的。

[root@linux http]# ./apachectl start

httpd: apr_sockaddr_info_get() failed for linux(在BSD上是apr_sockaddr_info_get() failed for freebsdla)

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

经分析发现是apache的conf目录下的配置文件httpd.conf中关于hostname设置和/etc/sysconfig/network中的HOSTNAME设置不统一导致的,修改成统一的主机名即可解决该问题。

注:/etc/sysconfig/network 默认主机名是:HOSTNAME=localhost.localdomain

PS:网上有这种办法,似乎是没用的,因为我认为apache在编译安装过程中会编译ARP的,因此下述操作有点多余。

[LAMP] 让 PHP 执行 root 权限的指令 Mon, Apr 11. 2005

今天下午 Mito 在 QQ上问我如何用 PHP 执行系统指令,还要 root 权限,原来是他们老板要管理员通过 Web 修改系统时间日期……无语中,这个要求真 TMD 变态。

不过这个问题我也不会,测试一下重定向和管道技术把密码发给 su 指令,提示信息是:

su: must be run from a terminal

不过想想也是正常,安全问题嘛,小心为好。不过还是不死心,搜索了一下解决方法。

其中让 PHP 执行系统命令有以下几种方法:

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

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

(以上两个傻子都知道)

void passthru (string command [, int return_var]);

这个有点新鲜,说明是:passthru()只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上。所以passthru()函数经常用来调用象pbmplus(Unix下的一个处理图片的工具,输出二进制的原始图片的流)这样的程序。同样它也可以得到命令执行的状态码。

实例:

<?php

    header("Content-type: image/gif");

    passthru("./ppmtogif hunte.ppm");

?>

用“`”符号,这个……估计呆子也能知道,居然那个网站还觉得是秘籍……汗ing

最重要的,也是解决 root 权限的方法,就是使用 popen() 函数打开进程。

原网站上说明如下:上面的方法只能简单地执行命令,却不能与命令交互。但有些时候必须向命令输入一些东西,如在增加 Linux 的系统用户时,要调用 su 来把当前用户换到 root 才行,而 su 命令必须要在命令行上输入 root 的密码。这种情况下,用上面提到的方法显然是不行的。popen() 函数打开一个进程管道来执行给定的命令,返回一个文件句柄。既然返回的是一个文件句柄,那么就可以对它读和写了。在 PHP3 中,对这种句柄只能做单一的操作模式,要么写,要么读;从 PHP4 开始,可以同时读和写了。除非这个句柄是以一种模式(读或写)打开的,否则必须调用 pclose() 函数来关闭它。

实例:

<?php

    /* PHP中如何增加一个系统用户

       下面是一段例程,增加一个名字为james的用户, root密码是 verygood。仅供参考 */

    $sucommand = "su --login root --command";

    $useradd = "useradd ";

    $rootpasswd = "verygood";

    $user = "james";

    $user_add = sprintf("%s "%s %s"", $sucommand, $useradd, $user);

    $fp = @popen($user_add, "w");

    @fputs($fp, $rootpasswd);

    @pclose($fp);

?>

Posted by Wei Geng in TechniquE Comments: (0) Trackbacks: (0)

Defined tags for this entry: php, technique, tip

Related entries by tags:

自己动手,丰衣足食

WAMP crashes easily those days: Some notes on PHP configuration

在 Slackware 下全部从源代码安装邮件服务器

Install LILO to MBR on CCISS device

在 Slackware 下全部从源代码安装邮件服务器:五、启动并且测试服务

login as: root

root@192.168.2.101's password:

Last login: Sat Jan 30 09:36:24 2010 from 192.168.2.169

 Redhat Linux 硬盘挂载方法!!!

 编写背景:

这周要开始搭建测试管理系统bugzilla,第一步是装操作系统。由于使用的机器配置非常的老,机器有4块硬盘,每个硬盘17G;第一次遇到这样的情况,装上操作系统后,如何挂接硬盘还真是不会,在网上找了不少资料看,对资料进行归类总结,在此收录保存同时供大家需要时查看。

                          Redhat Linux 硬盘挂载方法!!!

参考资料网址:http://www.chinalinuxpub.com/read.php?wid=1080

硬盘挂载操作工作步骤:

1、先查看目前机器上有几块硬盘,查看命令有两种:

命令1:# fdisk –l

命令2:# dmesg | grep sd

其中:fdisk命令说明如下:

fdisk命令用途:观察硬盘的实体使用情形与分割硬盘用。

fdisk命令使用方法:

  一、在 console 上输入 fdisk -l ,观察硬盘之实体使用情形。

二、在 console 上输入 fdisk  /dev/sda(具体磁盘名称),可进入分割硬盘模式。

?         输入 m 显示所有命令列示。

?         输入 p 显示硬盘分割情形。

?         输入 a 设定硬盘启动区。

?         输入 n 设定新的硬盘分割区。

?         输入 e 硬盘为[延伸]分割区(extend)。

?         输入 p 硬盘为[主要]分割区(primary)。

?         输入 t 改变硬盘分割区属性。

?         输入 d 删除硬盘分割区属性。

?         输入 q 结束不存入硬盘分割区属性。

?         输入 w 结束并写入硬盘分割区属性。

dmesg命令说明如下:

功能说明:显示开机信息。

语  法:dmesg [-cn][-s ]

补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文档里。

参  数:

 -c  显示信息后,清除ring buffer中的内容。

 -s  预配置为8196,刚好等于ring buffer的大小。

 -n  配置记录信息的层级。

2、对要挂载的硬盘创建磁盘分区

   创建磁盘分区步骤举例如下:

   # fdisk /dev/sdb

进入fdisk模式:

Command (m for help):m   //查看fdisk命令帮助

Command (m for help):n   //创建新分区

Command action:

e extended    //输入e为创建扩展分区

p primary partition (1-4)     //输入p为创建主分区,这里我们选择p

Partion number(1-4):1     //第一个扩展分区,按需求可以最多分4个主分区

First Cylinder(1-1014,default 1): 1   //第一个主分区起始的磁盘块数,可以选择默认值

Last cylindet or +siza or +sizeM or +sizeK: +1024MB //可以是以MB为单位的数字或者

以磁盘块数,这 里我们输入+1024MB表示分区大小为1G

这样我们就创建完一个分区,如果要创建更多分区可以照上面的步骤继续创建。所有分区创建完后用w保存分区。

Command (m for help): w

The partition table has been altered!

保存完成后重启服务器,可以用#fdisk -l 命令检查刚刚所建分区,可以在返回结果中确认/dev/sdb1的信息。

3、对要挂载的分区进行格式化

   用如下命令将新建的分区格式化为ext3

# mkfs -t ext3 -c /dev/sdb1

mkfs 命令说明如下:

   功能说明:建立各种文件系统。

语法:mkfs [-vV][fs][-f <文件系统类型>][设备名称][区块数]

补充说明:mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。

参数:

fs   指定建立文件系统时的参数。

-t<文件系统类型>  指定要建立何种文件系统。

-v   显示版本信息与详细的使用方法。

-V   显示简要的使用方法。

4、挂载分区

格式化完后我们需要进行挂载分区,举例如下:

# mkdir /test

# mount /dev/sdb1 /test

# df            //用df命令进行查看

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda1 101089 9463 86407 10% /boot

none 62988 0 62988 0% /dev/shm

/dev/sdb1 485906 8239 452580 2% /test //新挂载的分区

为了在每次系统启动时自动挂载新分区,需要修改/etc/fstab文件来进行自动挂载。在文件的末位加入如下一行:

/dev/sdb1 /test ext3 defaults 1 2

这样服务器每次启动都会自动挂载此分区,到此硬盘挂载工作就结束了。

mkdir命令说明如下:

功能:创建一个目录(类似MSDOS下的md命令)。

  语法:mkdir [选项] dir-name

  说明:该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dir-name不能是当前目录中已有的目录或文件名称。

   参数:

  - m 对新建目录设置存取权限。也可以用chmod命令设置。

  - p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。

mount命令说明如下:

功能:加载指定的文件系统。

语法:mount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [加载点]

用法说明:mount可将指定设备中指定的文件系统加载到Linux目录下(也就是装载点)。可将经常使用的设备写入文件/etc/fastab,以使系统在每次启动时自动加载。mount加载设备的信息记录在/etc/mtab文件中。使用umount命令卸载设备时,记录将被清除。

参数说明:

描述内容比较多,在这里就不记录了。

具体可访问这个网址:http://blog.chinaunix.net/u1/55764/showart_1145424.html

df命令说明如下:

功能:查看Linux 文件系统的状态信息,显示各个分区的容量、已使用量、未使用量及挂载点等信息。

语法:df  [选项]... [文件]...

参数说明:

-a, --all             包括大小为 0 个块的文件系统

-B, --block-size=大小块以指定<大小>的字节为单位

-h, --human-readable 以容易理解的格式印出文件系统大小 (例如 1K 234M 2G)

-H, --si              类似 -h,但取 1000 的次方而不是 1024

-i, --inodes          显示 inode 信息而非块使用量

-k                    即 --block-size=1K

-l, --local           只显示本机的文件系统

      --no-sync         取得使用量数据前不进行 sync 动作 (默认)

-P, --portability     使用 POSIX 输出格式

      --sync            取得使用量数据前先进行 sync 动作

-t, --type=类型       只印出指定<类型>的文件系统信息

-T, --print-type      印出文件系统类型

-x, --exclude-type=类型   只印出不是指定<类型>的文件系统信息

-v                    (此选项不作处理)

      --help     显示此帮助信息并离开

      --version 显示版本信息并离开

常用操作:

df -k  以千字节KB 为单位显示各分区的信息

 df -a  显示所有分区包括大小为0 的分区

 df -T  显示分区类型EXT2 或EXT3 等

mysql -h localhost -u root -p mydb2 < e:/mysql/mydb2.sql

重启命令 eth0

端口转发 :    iptables -t nat -A PREROUTING  -p tcp -s 192.163.3.1/24 --dport 80 -j REDIRECT --to-port 808

                iptables -t nat -A POSTROUTING -s 192.168.3.1/16 -o eth0 -j SNAT --to 192.168.2.200

        /etc/rc.d/init.d/iptables save

echo "Enable IP Forwarding..."

echo 1 >/proc/sys/net/ipv4/ip_forward

echo "Starting iptables rules..."

/sbin/modprobe iptable_filter

/sbin/modprobe ip_tables

/sbin/modprobe iptable_nat

/sbin/modprobe ip_nat_ftp

/sbin/modprobe ip_conntrack_ftp ;

/sbin/modprobe ip_conntrack_h323

/sbin/modprobe ip_nat_h323 ;

iptables -F INPUT

iptables -F FORWARD

iptables -F OUTPUT

iptables -F POSTROUTING -t nat

iptables -F PREROUTING -t nat

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i eth1 -j ACCEPT

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s 192.168.3.1/24 -j ACCEPT

iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.3.1/24 -j MASQUERADE

/etc/rc.d/init.d/iptables restart

iptables -L
http://bbs.chinaunix.net/archiver/?tid-504537.html http://tech.ccidnet.com/art/9513/20070601/1098119_1.html http://doc.linuxpk.com/1640.html http://bbs.chinaunix.net/archiver/?tid-504537.html
*mysql:

mysql -h 192.168.2.101 -u -p

show datebases;

数据的导入导出

1、文本数据转到数据库中

文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:

1 name duty 2006-11-23

数据传入命令 load data local infile "文件名" into table 表名;

2、导出数据库和表

mysqldump --opt news > news.sql(将数据库news中的所有表备份到news.sql文件,news.sql是一个文本文件,文件名任取。)

mysqldump --opt news author article > author.article.sql(将数据库news中的author表和article表备份到author.article.sql文件, author.article.sql是一个文本文件,文件名任取。)

mysqldump --databases db1 db2 > news.sql(将数据库dbl和db2备份到news.sql文件,news.sql是一个文本文件,文件名任取。)

mysqldump -h host -u user -p pass --databases dbname > file.dump

就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中

mysqldump --all-databases > all-databases.sql(将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。)

3、导入数据

mysql < all-databases.sql(导入数据库)

mysql>source news.sql;(在mysql命令下执行,可导入表)

export PATH==$PATH:/opt/php/bin/

JAVA     -Xms100m   -Xmx100m   -version  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息