潇洒的走
相信自己是最棒的!

 
服务器信息:
----------------------------------------------------------------------------------------------------------------------
cat /etc/issue              #查看Linux发行版信息
cat /proc/cpuinfo           #查看CPU的信息
uname –a                    #查看系统内核
ifconfig                    #查看网络配置信息
chkconfig –list             #查看当前打开的服务
netstat –an                 #查看当前打开的端口
fdisk –l    / df –h         #查看磁盘信息
ps -aux / top               #查看当前系统运行情况
date                        #查看服务器当前时间
date    -s    '2012-xx-xx'  #修改服务器时间[ clock -w / hwclock -w  强制把系统时间写入CMOS]
ntpdate asia.pool.ntp.org   #同步授时中心的时间

pkill -HUP ServiceName      #重新加载服务[进程不会被关闭]

服务器配置:
----------------------------------------------------------------------------------------------------------------------
chkconfig iptables off     关闭防火墙
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。  关闭selinux



下载文件到本目录
wget [下载地址]

查看指定服务路径
which [服务名]

查看当前HTTPD的连接数【查看在80端口建立的连接】
netstat -ant | grep $ip:80 | wc -l

立即关机
shutdown -h now

查看网络情况
tcpdump -i eth0 -nn

查看命令的用法
man [5] [命令]

查看命令的路径
which [命令]

查看文件内容
cat [文件名]

发送终端消息
/usr/bin/wall

显示工作路径
pwd

返回上次所在的目录
cd -



文件操作命令:
----------------------------------------------------------------------------------------------------------------------
tar zxvf 包名                 #解压某个压缩软件
tar -zcvf /file.tar.gz /file  #将文件或目录打包为tar.gz格式
cp -r / -a                    #复制文件
mv fname newname              #文件重命名 / 移动文件
rm -r                         #删除文件,不管它是文件还是目录都删掉[删除一个文件提示一下]
rm -rf                        #强制删除,没有提示
touch                         #创建一个文件
mkdir dir1 dir2               #创建目录
mkdir -p /tmp/dir1/dir2       #创建一个目录树

文件搜索
find
    [-name]         #查找文件 [例: find / -name *.txt 在根目录下查找后缀为txt的文件]
    [-perm]         #按执行权限来查找
    [-user]         #按文件属主来查找 [例: find / -user root 在根目录下搜索属于用户 root 的文件和目录]
    [-group]        #按组来查找
    [-mtime]        #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
    [-atime]        #按文件访问时间来查GIN: 0px">
    [-ctime]        #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
    [-nogroup]      #查无有效属组的文件,即文件的属组在/etc/groups中不存在
    [-nouser]       #查无有效属主的文件,即文件的属主在/etc/passwd中不存
    [-newer]        找文件,-n指n天以内,+n指n天以前
    [-ctime]        #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
    [-nogroup]      #查无有效属组的文件,即文件的属组在/etc/groups中不存在
    [-nouser]       #查无有效属主的文件,即文件的属主在/etc/passwd中不存
    [-newer]        #查更改时间比f1新但比f2旧的文件
    [-type]         #查是块设备、目录、字符设备、管道、符号链接、普通文件
    [-size]         #查长度为n块[或n字节]的文件
    [-depth]        #使查找在进入子目录前先行查找完本目录
    [-fstype]       #查更改时间比f1新但比f2旧的文件
    [-type]         #查是块设备、目录、字符设备、管道、符号链接、普通文件
    [-size]         #查长度为n块[或n字节]的文件
    [-depth]        #使查找在进入子目录前先行查找完本目录
    [-fstype]       #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
    [-mount]        #查文件时不跨越文件系统mount点
    [-follow]       #如果遇到符号链接文件,就跟踪链接所指的文件
    [-cpio]         #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
    [-mount]        #查文件时不跨越文件系统mount点
    [-follow]       #如果遇到符号链接文件,就跟踪链接所指的文件
    [-cpio]         #对匹配的文件使用cpio命令,将他们备份到磁带设备中
    [-prune]        #忽略某个目录

示例:find / -nouser | xargs rm -rf    #在根目录查找无效属主的文件,并删除


文本搜索
grep
    [-c]        只输出匹配行的计数。
    [-I]        不区分大 小写(只适用于单字符)。
    [-h]        查询多文件时不显示文件名。
    [-l]        查询多文件时只输出包含匹配字符的文件名。
    [-n]        显示匹配行及 行号。
    [-s]        不显示不存在或无匹配文本的错误信息。
    [-v]        显示不包含匹配文本的所有行。
    [pattern]   正则表达式主要参数:
    [\]         忽略正则表达式中特殊字符的原有含义。
    [^]         匹配正则表达式的开始行。
    [$]         匹配正则表达式的结束行。
    [\<]        从匹配正则表达 式的行开始。
    [\>]        到匹配正则表达式的行结束。
    [[ ]]       单个字符,如[A]即A符合要求 。
    [[ - ]]     范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    [。]        所有的单个字符。
    [*]         有字符,长度可以为0。


软件包管理
----------------------------------------------------------------------------------------------------------------------
RPM安装软件包
rpm
    [-a]              #查询所有己安装的软件包
    [-e]              #卸载软件[--nodeps 强制卸载忽略依赖包]
    [-f]              #查询文件所属软件包
    [-q]              #查看指定软件是否安装
    [-p]              #查询软件包
    [-i]              #显示软件包信息
    [-l]              #显示软件包中的文件列表
    [-d]              #显示被标注为文档的文件列表
    [-c]              #显示被标注为配置文件的文件列表
    [-U]              #软件升级
    [-V]              #效验文件
    [-ivh]            #安装软件
    [-qf]             #查看指定文件属于哪个RPM包
    [-qc]             #查询软件包配置文件
    [-qd]             #查询软件包帮助文档
    [-qi]             #查询软件包信息
    [-ql]             #查询软件包安装文件
    [-qlp]            #查询软件包将要安装哪些文件在系统中

附加项
--test              #只对安装进行测试,并不实际安装
--nodeps            #忽略软件包的依赖关系强制安装
--prefix=path       #将软件安装到path指定的路径下[有些rpm包不能指定路径]
--excludedocs       #不安装软件包中的文档文件
--replacepkgs       #覆盖安装该软件包
--replocefiles      #覆盖安装冲突的文件

软件包文件提取
rpm2cpio 包名 | cpio -ivh 解压路径


yum 安装软件包
------------------------------------------------------
yum
    [list]          #软件包查询
    [info]          #软件包信息
    [install]       #从互联网上下载安装软件
    [check-update]  #检测软件的升级
    [update]        #升级软件
    [remove]        #卸载
    [-help]         #帮助


源码包安装
------------------------------------------------------
tar -xzvf xxx.tar.gz    #解压解包
./configure             #预编译
make                    #编译源码
make install            #安装软件



Linux 用户管理
----------------------------------------------------------------------------------------------------------------------
Linux 下有三类用户
    1.超级用户
        超级用户具有操作系统的一切权限 UID 值为0

    2.普通用户
        普通用户具有操作系统有限的权限 UID 值为 500 - 60000
        
    3.伪用户
        为了方便系统管理,满足相应的系统进程文件属主的要求,不能登陆[如apache] UID值为1-499

用户账号存放在 /etc/passwd    文件里,该文件中一行定义一个用户,分为七个部分(使用“:”分隔)
例:root:x:0:0:root:/root:/bin/bash
    账号名称 :root
    密码位     :x(x表示有密码)
    用户ID     :0
    用户组ID:0
    描述信息 :root
    宿主目录 :/root
    命令解析器 :/bin/bash

用户密码存放在 /etc/shadow    文件里,该文件中一行定义一个用户,分为九个部分(使用“:”分隔)
例:root:$1...:15782:0:99999:7:::
    用户账号 :root
    用户密码 :md5加密过的字符串(如果口令的第一个字符是!,则这个用户不能登陆,为空则表示不需要密码就能登陆)
    上一次修改密码时间 : 从1970至今的天数
    最小时间间隔 : 0表示随时可以修改,设定时间后,只有时间到了才能修改密码。[单位:天]
    最大时间间隔 : 99999表示没有限制,其它设置表示规定时间内必需修改密码。[单位:天]
    警告时间     : 默认7天,最大时间间隔过期前7天开始提醒用户修改密码。[单位:天]
    账号闲置时间 : 显示用户几天没有登陆过系统。[单位:天]
    失效时间     : 密码失效的绝对天数,例:2013-03-18。[单位:天]
    标志         : 一般不使用。

用户组文件     : /etc/group
用户组密码文件 : /etc/gshadow
用户配置文件   : /etc/login.defs
                 /etc/default/useradd
 
新用户信息文件     : /etc/skel
用户登录前提示信息 : /etc/issue
用户登录后提示信息 : /etc/motd

添加用户
useradd

修改或设置密码
passwd [username]

修改用户信息
usermod

删除用户
userdel -r username

查询UID和组信息
id

添加用户组
groupadd [-g 组ID] 组名

删除用户组
groupdel 组名


禁用和恢复用户
禁用
usermod -L username
passwd -l username

恢复
usermod -U username
passwd -u username

查看用户属于哪些组
groups username

修改用户组信息
groupmod

将用户添加到某个组
gpasswd [-A 设置组管理员] [-a 添加] [-d 删除] username groupname

给组设置密码
gpasswd groupname

查看组中的成员
grep root /etc/group

切换当前用户组
newgrp groupname

改变所属组
chgrp 组名 文件夹

检测/etc/passwd文件(锁定文件)
pwck

用户组配置文件检测
grpck

编辑/etc/group文件(锁定文件)
vigr

查看当前登录的用户信息
who / w

启动或停用shadow功能
pwconv / pwunconv
grpconv / grpunconv

启用图形界面管理用户
system-config-users

SetUID  4/s
SetGID  2/s
粘着位  1/t
当目录有粘着位的权限时,每个普通用户只能删除所属者为自己的文件


进程管理
----------------------------------------------------------------------------------------------------------------------
查看进程
top
    [-d 刷新间隔]
    [-c 显示整个命令行]
    [-u 查看指定用户的进程]
    [-k 终止执行中的进程]
    [-r 改变刷新的时间间隔]
    [-W 将当前设置写入~/.toprc文件中]
    [-h 帮助]
按q退出

查看进程
ps -le
ps -aux
ps -aux | grep httpd


结束进程
kill -1 进程号 [重启进程]
kill -9 进程号 [强行关闭]

查找服务进程号
pgrep 服务名

关闭所有同名的进程
killall 进程名称

以服务名关闭进程
pkill 进程名

启动程序的时候给定优先级
nice -[取值范围-20 - 19] 脚本地址

改变进程的优先级
renice [取值范围-20 - 19] PID

使进程在用户退出登陆后仍继续执行
nohup program & [默认储存到当前目录的noup.out中]

进程的中止(挂起) 和 终止
挂起 (Ctrl+Z)
终止 (Ctrl+C)

查看被挂起和后台执行的进程
jobs

恢复进程
将进程恢复到前台继续运行 (fg)
将进程恢复到后台继续运行 (bg)


进程处理方式
standalone    独立运行
xinetd        进程托管

改变守护进程运行等级
Chkconfig

查看端口对应的服务名
lsof [-i] [:端口]

使用图形界面来查看或关闭服务
ntsysv



计划任务
----------------------------------------------------------------------------------------------------------------------
一次性计划任务
at
    [-f 文件名] 时间
    [-l 查看队列中的任务]
    [-d 删除队列中的任务] 队列ID
    
如果直接手动写按Ctrl+D键保存
默认存放在/var/spool/at文件夹中

限制哪些用户可以使用at命令
/etc/at.alow 文件里面的用户才可以使用at命令
/etc/at.deny 文件里面的用户不可以使用at命令
如上面的文件都不存在则只有超级用户能使用at


一次性计划任务
batch

*与at用法一样,不同的是batch会检测服务器负载,负载小于0.8才会执行


周期性计划任务
crontab

分       时       天       月      星期
0        4        *        *        *          //每天4点执行一次
0        4        *        *       2,6         //只有每个星期二和星期六的4点执行一次
0        4        *        1-5     1-5         //1到5月每个礼拜1至礼拜5的4点执行一次
*/10     *        *        *        *          //每隔10分钟执行一次

[-l 显示当前的crontab]
[-e 编辑当前的crontab]
[-r 删除全部的计划任务]

*注意里面的时间采用的是24小时至
*crontab配置文件存放在 /etc/crontab
*计划任务存放在/var/spool/cron/[username]目录中
* /etc/cron.allow   允许使用crontab的用户
* /etc/cron.deny    不允许使用crontab的用户

*atd crond每隔一分钟检查一次计划任务所有不能精确实秒
*在终端提示消息 /usr/bin/wall



文件系统构成
----------------------------------------------------------------------------------------------------------------------
/usr/bin、/bin      存放所有用户可以执行的命令
/usr/sbin、/sbin    存放只有超级管理员可以执行的命令
/home       用户缺省宿主目录
/proc       虚拟文件系统,存放当前内在镜像
/dev        存放设备文件
/lib        存放系统程序运行所需的共享库
/tmp        存放临时文件
/etc        系统配置文件
/var        包含经常发生变动的文件,如邮件、日志计划任务等
/usr        存放所有命令、库、手册页等[/usr/local/ 目录通常被指定软件的安装目录]
/mnt        临时文件系统的安装点
/boot       内核文件及自举程序文件保存位置
/lost+found 存放一些系统出错的检查结果

查看分区使用情况
df
    [-h 按G来显示]
    [-m 按M来显示]

查看文件、目录大小
du

检测修复文件系统
fsck 、e2fsck    [单用户模式执行]

判断文件类型
file

挂载光驱
mount /dev/cdrom /mnt/cdrom
[mount: block device /dev/cdrom is write... 表示挂载成功]
*挂载的内容重新启动服务器后会失效
*修改/dev/fstab文件能够自动加载分区

卸载光驱
umount /mnt/cdrom
eject


添加磁盘或分区

划分分区
fdisk    
例: fdisk [/dev/sdb 硬盘名称]
        [m 帮助]
        [p 显示分区表]
        [n 添加新分区]
        [t 改变分区文件系统类型]
        [d 删除分区]
        [w 保存退出]
        [q 不保存退出]

格式化分区
mkfs / mkfs.ex3 [/dev/sdb1 分区名称]

设置分区卷标
e2label [物理分区名称] 卷标名称

硬盘对考备份
dd

用户配额
userquota

用户组配额
grpquota

创建用户配额数据库文件
quotacheck -cug /

启动或停用配额功能
quotaon
quotaoff

编辑用户配额
edquota

查看一个分区上面每一个用户的配额使用信息
repquota [路径]



日志
----------------------------------------------------------------------------------------------------------------------
错误日志
/var/log/messages

系统登陆记录
/var/log/secure

最后一次登陆系统的记录
lastlog




lvs dr 模式的负载均衡配置
----------------------------------------------------------------------------------------------------------------------
安装ipvsadm软件

-----------------------------  -----------------------------
1.均衡分配主服务器:
ifconfig eth0:0 192.168.100.10 netmask 255.255.255.255 up
route add -host 192.168.100.10 dev eth0:0

#start arp.sh
    ifconfig eth0:0 192.168.100.10 netmask 255.255.255.255 up
    route add -host 192.168.100.10 dev eth0:0    
    echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore
    echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
    echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo 2 >/proc/sys/net/ipv4/conf/all/arp_announcei
#end arp.sh

#start lvs.sh
    #!/bin/bash
    ipvsadm -C
    ipvsadm -At 192.168.100.10:80 -s rr
    ipvsadm -at 192.168.100.10:80 -r 192.168.100.2:80 -g
    ipvsadm -at 192.168.100.10:80 -r 192.168.100.3:80 -g
    ipvsadm -L -n
#end lvs.sh

删除路由
例:route del -net 192.168.20.0 netmask 255.255.255.0

------------------------------ end -----------------------------

2.http服务器:
ifconfig lo:0 192.168.100.10 netmask 255.255.255.255
route add -host 192.168.100.10 dev lo:0

echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce



shell
----------------------------------------------------------------------------------------------------------------------
echo $PATH         #查看系统环境变量
echo $LANG         #结果是空的表示只支持英文,否则显示其它支持的语言
echo $SHELL        #查看当前使用的shell

#!/bin/bash        #表示指定使用的shell
#                  #以#号开头表示该行被注释

echo "hello shell"      #输出字符串
echo `date`             #*使用``包含的是系统命令
echo                    #输出一行空格,换行

#变量:
    #临时变量:在shell程序中内部定义的。
    #永久变量:指的是系统环境变量
    #*变量由字母或下划线开头,变量名尽量大写。
    #单双引号[使用双引号赋值时能输出双引号里的变量内容,而单引号只会输出字符串]
NUMBER=100        #定义一个变量
echo $NUMBER      #输出一个变量

set         #列出系统中所有变量
unset       #删除一个指定的变量

posted on 2013-07-03 15:14  潇洒的走  阅读(220)  评论(0编辑  收藏  举报