Linux/CentOS 常用命令

一:查看cpu

more /proc/cpuinfo | grep "model name"

grep "model name" /proc/cpuinfo

[root@localhost /]# grep "CPU" /proc/cpuinfo

model name      : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz

model name      : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz

如果觉得需要看的更加舒服

grep "model name" /proc/cpuinfo | cut -f2 -d:

二:查看内存

grep MemTotal /proc/meminfo

grep MemTotal /proc/meminfo | cut -f2 -d:

free -m |grep "Mem" | awk '{print $2}'

三:查看cpu是32位还是64位

查看CPU位数(32 or 64)

getconf LONG_BIT

四:查看当前linux的版本

more /etc/redhat-release

cat /etc/redhat-release

五:查看内核版本

uname -r

uname -a

六:查看当前时间

date

上面已经介绍如何同步时间了,

七:查看硬盘和分区

df -h

fdisk -l

也可以查看分区

du -sh

可以看到全部占用的空间

du /etc -sh

可以看到这个目录的大小

八:查看安装的软件包

查看系统安装的时候装的软件包

cat -n /root/install.log

more /root/install.log | wc -l

查看现在已经安装了那些软件包

rpm -qa

rpm -qa | wc -l

yum list installed | wc -l

不过很奇怪,我通过rpm,和yum这两种方式查询的安装软件包,数量并不一样。没有找到原因。

九:查看键盘布局

cat /etc/sysconfig/keyboard

cat /etc/sysconfig/keyboard | grep KEYTABLE | cut -f2 -d=

十:查看selinux情况

sestatus

sestatus | cut -f2 -d:

cat /etc/sysconfig/selinux

十一:查看ip,mac地址

在ifcfg-eth0 文件里你可以看到mac,网关等信息。

ifconfig

cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR

cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR | cut -f2 -d=

ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-

ifconfig   | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'

查看网关

cat /etc/sysconfig/network

查看dns

cat /etc/resolv.conf

十二:查看默认语言

echo $LANG $LANGUAGE

cat /etc/sysconfig/i18n

十三:查看所属时区和是否使用UTC时间

cat /etc/sysconfig/clock

十四:查看主机名

hostname

cat /etc/sysconfig/network

修改主机名就是修改这个文件,同时最好也把host文件也修改。

#查看开机运行时间

uptime

09:44:45 up 67 days, 23:32, ...

:-) ,看来刚才确实是网段的问题,我的机器还是67天前开机的。

#系统资源使用情况

vmstat 1 -S m

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r b   swpd   free   buff cache   si   so    bi    bo   in   cs us sy id wa st

0 0      0    233    199    778    0    0     4    25    1    1 3 0 96 0 0

0 0      0    233    199    778    0    0     0     0 1029 856 13 1 86 0 0

这个还是专门分一片文章来描述吧

  • 2. 批量替换文件

今天使用svn进行系统迁移,结果发现最初的路径写错了,导致无法访问源服务器,查看 .svn/entries 大致了解了一下里面的内容。重新迁移时间太久了,还是直接把文件替换掉吧

for f in $(find ./ -type f -name 'entries')

do

   sed -i "s/202\.68\.134\.18/202\.68\.134\.34/g" $f

done

sed 简单说明:

sed "s/sourcestring/newstring/g" $f

把 $f 文件中的 sourcestring 换成 newstring,输出到终端。s 表示搜索替换,/g表示全局。

sed -i $f

表示直接在 $f 中修改。

sed -iback $f

表示修改后的文件另存为 $fback

sed 中所有正则表达式都必须使用严格的转义符 \ 来限定

sed 的正则比较严格: " \ / ! 都需要分别用 \" \/ \\ \! 转义。

\n 表示换行

  • 3. shell 变量 字符串操作

    mono 跑在linux下时,apache+mod_mono有时候需要加载的 Assembly 必须配置在 GAC 中,下面是一个脚本完成此功能

    cd bin

    for f in $(find ./ -name "*.dll")

    do

       gacutil -i $f

    done

    如果要从 GAC 中批量卸载这些 Assembly, 可以如下

    for f in $(ls *.dll)

    do

       gacutil -u ${f%%.dll}

    done

    其中就用到了字符串变量的替换, ${f%%.dll}

    ${f%%.dll} 的意义为 删除 $f 变量 .dll 及之后的所有内容

    修改Linux主机名称

    #vi /etc/sysconfig/network

    修改主机名称解析

    #vi /etc/hosts

    修改主机IP地址及MAC地址

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

    重新启动主机网络服务

    #/etc/init.d/network stop

    #/etc/init.d/network start

    重新启动网络接口

    #ifconfig eth0 down

    #ifconfig eth0 up

    查看主机处理器CPU信息

    #cat /proc/cpuinfo

    查看主机内存memory信息

    #cat /proc/meminfo

    #dmesg |grep mem

    重新启动Linux主机

    #reboot

    #shutdown –ry 0

    关闭Linux主机

    #halt

    #shutdown -h

    #init 0

    CentOS Linux防火墙配置及关闭

    最近在CentOS Linux下安装配置 ORACLE 数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下防火墙。

    偶然看到防火墙的配置操作说明,感觉不错。执行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”按钮,出现防火墙配置界面,将”安全级别”设为”禁用”,然后选择”确定”即可.

    或者用命令:

    #/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT

    #/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT

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

    这样重启计算机后,防火墙默认已经开放了80和22端口

    这里应该也可以不重启计算机:

    #/etc/init.d/iptables restart

    防火墙的关闭,关闭其服务即可:

    查看防火墙信息:

    #/etc/init.d/iptables status

    关闭防火墙服务:

    #/etc/init.d/iptables stop

    永久关闭?不知道怎么个永久法:

    #chkconfig –level 35 iptables off

    看了好几个页面内容都有错,下面是正确方法:

    #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

    #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

    然后保存:

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

    再查看是否已经有了:

    [root@vcentos ~]# /etc/init.d/iptables status

    Table: filter

    Chain INPUT (policy ACCEPT)

    num target prot opt source destination   

    1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80

    2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

    3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0   

    Chain FORWARD (policy ACCEPT)

    num target prot opt source destination   

    1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

    服务器遭受到大量的大量SYN_RECV,80端号占死,网站打不开

    没有硬防

    有什么办法可以解决吗

    1

    sysctl -w net.ipv4.tcp_syncookies=1 #启用使用syncookies

    sysctl -w net.ipv4.tcp_synack_retries=1 #降低syn重试次数

    sysctl -w net.ipv4.tcp_syn_retries=1 #降低syn重试次数

    sysctl -w net.ipv4.tcp_max_syn_backlog=6000 #最大半连接数

    sysctl -w net.ipv4.conf.all.send_redirects=0

    sysctl -w net.ipv4.conf.all.accept_redirects=0 #不接受重定向的icmp數據包

    sysctl -w net.ipv4.tcp_fin_timeout=30

    sysctl -w net.ipv4.tcp_keepalive_time=60

    sysctl -w net.ipv4.tcp_window_scaling=1

    sysctl -w net.ipv4.icmp_echo_ignore_all=1 #禁止ICMP

    sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 #ICMP禁止广播

    2.限制单位时间内连接数

    iptables -N syn-flood

    iptables -A FORWARD -p tcp --syn -j syn-flood

    iptables -A INPUT -p tcp --syn -j syn-flood

    iptables -A syn-flood -p tcp --syn -m limit --limit 3/s --limit-burst 1 -j ACCEP

    iptables -A syn-flood -j DROP

    iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP

    iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP

    3 如果还是不行,

    iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT

    iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEP

    如攻击过来的流量大于你的服务器的流量,那就没有什么办法了,如果流量不大,以上方法,可以暂时保证你的80可以访问

    如果你的内核已经支持iptables   connlimit可以使用, iptables 设定部份,也可以使用

    iptables -I FORWARD -p tcp --syn -m connlimit --connlimit-above 5 -j DROP

    iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT

    对付SYN FLOOD的话,真正起作用的是:

    sysctl -w net.ipv4.tcp_syncookies=1        #启用使用syncookies

    sysctl -w net.ipv4.tcp_synack_retries=1        #降低syn重试次数

    其他IPTABLES的限制速度功能不能用来对付SYN FLOOD的(不能阻止拒绝服务,但是确实可以防止服务器CRASH)。

    CentOS下的网络设置--网络命令篇

    2009-04-03 17:29

    CentOS网络设置

    这里介绍一下Linux下的网络设置文件,这是网络计算机服务器的前提条件。

    1.网络的基本设置

    我们在设置网络环境的时候,提前要弄清楚以下的相关信息。

    IP IP地址                                                                      

    Netmak 子网掩码

    Gateway 默认网关

    HostName 主机名称

    DomainName 域名

    DNS DNS的IP

    2.网络设置文件

    无论是通过网络配置命令(下文将提到)来配置网络,还是通过图形化的配置界面,最终的配置信息都将写入到某某的文件中,也就是说一旦我们知道了这些信息都写到了什么文件中或哪儿个文件中,我们就可以通过直接的修改某某文件来直接进行配置,下面就说明一下网络设置将要涉及到的几个主要的文件。不光是CentOS,其他的UNIX系的OS都可以通过这个方法来配置网络,不过系统的不同定义也不同,比如说有些系统会说到通过直接修改文件的方法配置网络信息会导致网络环境的不稳定,提倡使用图形界面或配置命令的形式来配置网络,这里要特别的注意。

    (1)文件 /etc/sysconfig/network

    这个/etc/sysconfig/network文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。

    设定形式:设定值=值

    /etc/sysconfig/network的设定项目如下:

    NETWORKING 是否利用网络                                        

    GATEWAY 默认网关

    IPGATEWAYDEV 默认网关的接口名

    HOSTNAME 主机名

    DOMAIN 域名

    (2)文件 /etc/sysconfig/network-scripts/ifcfg-eth0

    /etc/sysconfig/network-scripts在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg- eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg- eth3......(这里面的文件是相当重要的,涉及到网络能否正常工作)

    设定形式:设定值=值

    设定项目项目如下:

    DEVICE 接口名(设备,网卡)

    BOOTPROTO IP的配置方法(static:固定IP, dhcpHCP, none:手动)          

    HWADDR MAC地址

    ONBOOT 系统启动的时候网络接口是否有效(yes/no)

    TYPE 网络类型(通常是Ethemet)

    NETMASK 网络掩码

    IPADDR IP地址

    IPV6INIT IPV6是否有效(yes/no)

    GATEWAY 默认网关IP地址

    这里有一个例子:

    CODE:

    [root@linux ~]# cat -n /etc/sysconfig/network-scripts/ifcfg-eth0

         1   DEVICE=eth0

          2   BOOTPROTO=static

          3   BROADCAST=192.168.1.255

          4   HWADDR=00:0C:2x:6x:0x:xx

          5   IPADDR=192.168.1.23

          6   NETMASK=255.255.255.0

          7   NETWORK=192.168.1.0

          8   ONBOOT=yes

          9   TYPE=Ethernet

    (3)文件 /etc/resolv.conf

    安装有图形界面的情况下,启动linux在终端下输入:

    startx

    即可进入X11的图形操作界面。

    如果希望每次都自动进入xwindos。。

    修改inittab文件。

    vi /etc/inittab

    找到id:3:initdefault:这行

    按i进入编辑模式,将3改为5。

    按esc退出编辑。

    输入 :qw —输入包括“:”

    如果希望每次都自动进入多用户模式

    改为:

    id:3:initdefault:

    有下几种模式:

    #   0 - halt (Do NOT set initdefault to this)

    #   1 - Single user mode   //单用户模式

    #   2 - Multiuser, without NFS (The same as 3, if you do not have networking) //多用户模式,没有网络文件系统

    #   3 - Full multiuser mode /完全多用户模式

    #   4 - unused

    #   5 - X11        //窗口模式

    #   6 - reboot (Do NOT set initdefault to this)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值