Linux入门常用命令和一些简单操作

 
[root@CentOS~ ]w //*查看当前登陆的所有用户*//
05:57:16 up 10 min, 4 users, load average: 0.00, 0.23, 0.23
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/ 192.168.10.10 11:30 21.00s 0.11s 0.11s w
root pts/2 192.168.10.2 08:57 8:55 0.12s 0.02s -bash

为了T出pts/2的僵尸,则执行:skill -kill pts/2
[root@CentOS~ ]skill -kill pts/2
[root@CentOS~ ]w
05:58:08 up 11 min, 2 users, load average: 0.00, 0.19, 0.21
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/ 192.168.10.10 11:30 21.00s 0.11s 0.11s w
arch:显示处理器的架构类型
cat:查看文件的内容,如 cat lorem.txt
cd:更改工作目录,如 cd /bin
cksum:查看 CRC 校验和及文件的字节数,如 cksum lorem.txt moo.txt
cp:复制文件,如 cp lorem.txt copy_of_lorem.txt
date:显示当前的日期和时间
df:查看磁盘的占用空间及可用空间
du:查看目录的占用空间,如 du -h /bin
echo:回显文本,如 echo foobar
groups:查看你的帐号属于哪些用户组
hostname:显示主机名称
id:查看用户 id、组 id 及你帐号的组
man:阅读手册页,如 man bash
md5sum:查看文件的 MD5 值,如 md5sum lorem.txt
mkdir:创建目录,如 mkdir foobar
mv:移动或重命名文件,如 mv lorem.txt ipsum.txt
ping:ping 主机,如 ping -c 2 127.0.0.1
ps:查看正在运行的进程
pwd:查看当前工作的目录
sha1sum:查看文件的 SHA1 值,如 sha1sum lorem.txt
stat:查看文件的状态,如 stat lorem.txt
rm:删除文件或目录,如 rm lorem.txt
rmdir:删除目录,如 rmdir foobar
touch:更改文件的访问及修改时间戳,如果该文件不存在,则创建它,如 touch lorem.txt
tty:查看当前终端的名称
uname:查看系统、主机名称、内核版本、日期与时间、以及处理器等信息,如 uname -a
uptime:查看系统已经运行了多长的时间
w:查看谁登录及他们在干什么
wc:统计文件的行数,如 wc -l lorem.txt
who:查看谁登录了系统
whoami:查看你的用户名(或帐号名)
http://www.33220.cn/2011/0108/219.html
Linux系统信息查看命令大

系统
# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载

[root@localhost ~]# getconf WORD_BIT
32
[root@localhost ~]# echo $HOSTTYPE
i686
这个是我的机子,如果是64位的话,第一条跟第三条命令会显示: x86_64
磁盘和分区
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况

网络
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息

进程
# ps -ef # 查看所有进程
# top # 实时显示进程状态

用户
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务

服务

# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务
程序
# rpm -qa # 查看所有安装的软件包
灰色 普通的提示信息、提示符、配置文件注释及无关项目
白色 新建立的配置文件或脚本的全文
黄色 命令、需要手动输入的项目
红色 配置文件中修改配置前的状态
绿色 配置文件中修改配置后的状态、配置文件中需要添加的项目
紫色 配置文件及命令中需要特别注意的地方
水色 文字说明的注意部分
蓝色 解说部分

 

======================================
(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, dhcp:动态IP, 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
这个文件是用来配置主机将用的DNS服务器信息。在这个文件中如果不设置DNS服务器的IP地址,那么在通信的时候,将无法指定像[url=../] [url=http://www.centospub.com[/url]www.centospub.com[/url[/url]]这样的域 名。(DNS是Domain Name
System的简称,中文名称域名解析服务器,主要是IP和域名转换功能)/etc/resolv.conf的设定项目:
domain ←定义本地域名
search ←定义域名和搜索列表
nameserver←定义被参照的DNS服务器的IP地址(最多可指定3个)
一般来说最重要的是第三个nameserver项目,没有这项定义,用域名将无法访问网站,并且yum等服务将无法利用
(4)文件 /etc/hosts
/etc/hosts这个文件是记载LAN内接续的各主机的对应[HostName和IP]用的。在LAN内,我们各个主机间访问通信的时候,用的是内网 的IP地址进行访问(例:192.168.1.22,192.168.1.23),从而确立连接进行通信。除了通过访问IP来确立通信访问之外,我们还可 以通过HostName进行访问,我们在安装机器的时候都会给机器起一个名字,这个名字就是这台机器的HostName,通过上图可以看到,HostA的 hostname是centos1,HostB的hostname是centos2那我们怎么能不但通过IP确立连接,通过这个IP对应的 HostName进行连接访问呢?解决的办法就是这个/etc/hosts这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入 这个文件的时候,就可以解决
root@centos1 ~]# ssh 192.168.1.23
root@centos1 ~]# ssh centos2
ssh:centos2: Name or service not known ←提示错误,不知道主机
[root@centos1 ~]#
那么我们编辑/etc/hosts文件,将HostB的IP和hostname的对应关系写入这个文件,如果主机有域名,可以将域名写在IP地址之后hostname之前,并且用空格隔开,形式如第三行127.0.0.1的设置。
[root@centos1 ~]# cat -n /etc/hosts
1 # Do not remove the following line, or various programs
2 # that require network functionality will fail.
3 127.0.0.1 localhost.localdomain localhost
4 192.168.1.23 centos2
[root@centos2 ~]#
然后我们再从复#ssh centos2的操作

[root@centos1 ~]# ssh centos2
[email=root@centos2’s]root@centos2’s[/email] password:
Last login: Mon Dec 25 15:05:07 2006 from centos1
[root@centos2 ~]#
可以看到访问成功了,这个文件就是这样的,倘若你要用windowsXP访问局域网中的linux你也可以用上面的方法,只不过在 windowsXP下面你也要修改hosts这个文件,文件路径:C:\WINDOWS\system32\drivers\etc\hosts,在这个 文件中添加你要访问的局域网中的主机的IP和hostname,就能通过主机名访问主机了。

3.网络基本命令
(1)network service的制御网络接口配置信息改动后,网络服务必须从新启动,来激活网络新配置的使得配置生效,这部分操作和从新启动系统时时一样的作用。制御 (控制)是/etc/init.d/network这个文件,可以用这个文件后面加上下面的参数来操作网络服务。例如:
[root@linux ~]#/etc/init.d/networkrestart
同样也可以用service这个命令来操作网络服务例如:
[root@linux ~]#service network restart
start ←启动
stop ←停止
restart ←再启动
reload ←和再启动一样(..)
status ←状态表示
如果服务器软件采用rpm的方式安装,以上的内容大多数都对应。
(2)network管理命令网络管理还有一些常用的命令,下面介绍几个常用的命令。
ifconfig
netstat
hostname
ping
traceroute
这个命令可以用于,网络接口的启动/停止,更改设置和表示网络状态,在不添加任何参数的情况下,这个ifconfig可以表示网络接口的状态。例如:
[root@linux ~]# ifconfig

root@linux ~]#ifconfigeth0 down
相反的开启如下:
[root@linux ~]#ifconfigeth0 up
通过这个命令还可以设置网络接口(网卡),例如我们将eth0的IP设置成192.168.1.11,子网衍码设置成255.255.255.0如下:
[root@linux ~]#ifconfigetho inet 192.168.1.11 netmask 255.255.255.0
假如有多个网络接口的情况下,ethX的X部分用网络接口码(数字,例如eth0,eth1,eth2代替)。
netstat
这条命令是显示网络各种情况的命令,在不跟随任何参数被执行的情形下,将表示Active Internet connections和ActiveUNIX domain sockets的情报。
看看下面的输出信息:
这里是192.168.1.56正在通过ssh连接192.168.1.81的情形
[root@linux ~]#netstat
主要的选项:
-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同“ipconfig -e”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r 显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
以上的选项可以结合使用,例如我们想知道正在开放的TCP端口,可以用下面的形势执行察看:
[root@linux ~]#netstat -at
重启centos shutdown -r now
一:查看cpu

more /proc/cpuinfo | grep “model name”
grep “model name” /proc/cpuinfo

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

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文件也修改。

查看pci信息 lspci
查看硬盘信息 df -lh

curl –head www.163.com 查看163.com的服务器环境

uptime 查看开机时间多长

ifconfig eth0 up 启用网卡eth0

/etc/initd/network restart 重启网络服务

centos-命令-yum
yum

yum=Yellow dogUpdater,Modified
主要功能是更方便的添加/删除/更新RPM包.
它能自动解决包的倚赖性问题.
它能便于管理大量系统的更新问题

特点
可以同时配置多个资源库(Repository)
简洁的配置文件(/etc/yum.conf)
自动解决增加或删除rpm包时遇到的倚赖性问题
使用方便
保持与RPM数据库的一致性

安装
Fedora,centos自带(yum-2.0.4-2.noarch.rpm)
#rpm -ivh yum-2.0.4-2.noarch.rpm

参数
-y 询问模式

指令
注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.

*rpm包的更新
检查可更新的rpm包
#yum check-update

更新所有的rpm包
#yum update

更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source

大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
#yum upgrade

rpm包的安装和删除
安装rpm包,如xmms-mp3
#yum install xmms-mp3

删除rpm包,包括与该包有倚赖性的包
#yum remove licq
注:同时会提示删除licq-gnome,licq-qt,licq-text

yum暂存(/var/cache/yum/)的相关参数
清除暂存中rpm包文件
#yum clean packages

清除暂存中rpm头文件
#yum clearn headers

清除暂存中旧的rpm头文件
#yum clean oldheaders

清除暂存中旧的rpm头文件和包文件
#yum clearn或#yum clearn all
注:相当于yum clean packages + yum clean oldheaders

rpm包列表
列出资源库中所有可以安装或更新的rpm包
#yum list

列出资源库中特定的可以安装或更新以及已经安装的rpm包
#yum list mozilla
#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包

列出资源库中所有可以更新的rpm包
#yum list updates

列出已经安装的所有的rpm包
#yum list installed

列出已经安装的但是不包含在资源库中的rpm包
#yum list extras
注:通过其它网站下载安装的rpm包

rpm包信息显示(info参数同list)
列出资源库中所有可以安装或更新的rpm包的信息
#yum info

列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
#yum info mozilla
#yum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla开头的rpm包的信息

列出资源库中所有可以更新的rpm包的信息
#yum info updates

列出已经安装的所有的rpm包的信息
#yum info installed

列出已经安装的但是不包含在资源库中的rpm包的信息
#yum info extras
注:通过其它网站下载安装的rpm包的信息
*搜索rpm包

搜索匹配特定字符的rpm包
#yum search mozilla
注:在rpm包名,包描述等中搜索

搜索有包含特定文件名的rpm包
#yum provides realplay
rpm
查询
# rpm -qa 列出所有被安装的rpm

删除
# rpm -e RPM包名称 ( –nodeps 强制删除 )

安装
# rpm –ivh RPM包的全路径文件名
chkconfig
检查,设置系统的各种服务
# chkconfig serviceName on|off
or
# /sbin/chkconfig serviceName on|off
service
服务管理
# service serviceName start|stop|restart
or
# /sbin/service serviceName start|stop|restart

查看 centos 版本 cat /etc/redhat-release

查看CPU信息 cat /proc/cpuinfo

查看内存信息 cat /proc/meminfo

查看pci信息 lspci

查看硬盘信息 df -lh

wall命令
这个命令的功能是对全部已登录的用户发送信息,用户可以先把要发送的信息写好存入一个文件中,然后输入:

# wall < 文件名

这样就能对所有的用户发送信息了。

在上面的例子中符号“<”表示输入重定向,有关它的含义和用法请参阅第十章的有关内容。 例如:
# wall ‘Thank you!’

Broadcast message from root (tty1) Fri Nov 26 14:15:07 1999…
Thank you!
#
执行以上命令后,用户的屏幕上显示出“Thank you!”信息后,并不出现系统提示符$(#),再次按回车键后,屏幕出现系统提示符。

write命令

write命令的功能是向系统中某一个用户发送信息。 该命令的一般格式为:
write 用户帐号 [终端名称]
例如: $ write Guest hello
此时系统进入发送信息状态,用户可以输入要发送的信息,输入完毕,希望退出发送状态时,按组合键< Ctrl+c>即可。

mesg指令
mesg命令设定是否允许其他用户用write命令给自己发送信息。如果允许别人给自己发送信息,输入命令:
# mesg y
否则,输入:
# mesg n
对于超级用户,系统的默认值为 n;而对于一般用户系统的默认值为y。 如果mesg后不带任何参数,则显示当前的状态是y还是n.。

sync命令
sync命令是在关闭Linux系统时使用的。 用户需要注意的是,不能用简单的关闭电源的方法关闭系统,因为Linux象其他Unix系统一样,在内存中缓存了许多数据,在关闭系统时需要进行内存数据与硬盘数据的同步校验,保证硬盘数据在关闭系统时是最新的,只有这样才能确保数据不会丢失。一般正常的关闭系统的过程是自动进行这些工作的,在系统运行过程中也会定时做这些工作,不需要用户干预。 sync命令是强制把内存中的数据写回硬盘,以免数据的丢失。用户可以在需要的时候使用此命令。该命令的一般格式为:
sync

shutdown命令
shutdown 命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟;时间段由“+”和分钟数表示。系统执行该命令后,会自动进行数据同步的工作。
该命令的一般格式为: shutdown [选项] [时间] [警告信息] 命令中各选项的含义为:
– k 并不真正关机,而只是发出警告信息给所有用户。
– r 关机后立即重新启动。

– h 关机后不重新启动。
– f 快速关机,重启动时跳过fsck。
– n 快速关机,不经过init程序。

– c 取消一个已经运行的shutdown。
需要特别说明的是,该命令只能由超级用户使用。

free命令

free命令的功能是查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区。
该命令的一般格式为: free [-b | -k | -m] 命令中各选项的含义如下:
-b 以字节为单位显示。

-k 以K字节为单位显示。

-m 以兆字节为单位显示。

uptime命令
uptime命令显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
该命令的一般格式为: uptime
一:查看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 statusTable: filterChain 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:803 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

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0C:2x:6x:0x:xx
IPADDR=192.168.1.23
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
TYPE=Ethernet
(3)文件 /etc/resolv.conf
linux进入图形界面

Posted 2008年10月24号 – 23:19 in: linux
安装有图形界面的情况下,启动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)