Xshell上传下载服务器的文件:

yum -y install lrzsz sysstat//安装对应软件

sz XXXX//下载

rz XXXX//上传

 

创建用户:

Useradd vrfxie //创建用户

-c comment 指定一段注释性描述。

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

-g 用户组 指定用户所属的主用户组。

-G 用户组,用户组 指定用户所属的附加组。

-s Shell文件 指定用户的登录Shell #可以设置为/sbin/nologin意思是用户不允许登录,仅不可登陆,但可以运行某些服务

-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

 

Passwd vrfxie  //创建密码

密码不符合安全设定的话 就会提醒你 但还是能创建的

一步创建到位,非交互操作:echo "vrf123" | passwd --stdin vrfxie

 

for user in 'seq 10';do useradd user$user;echo user$user | passwd --stdin user$user;done //批量创建用户

 

Woami //查看当前用户,检查一下

 

Su - //切换用户,如果使用su而不加上“-”这个参数,那么,切换前的用户的相关信息还会存在

 

$是普通用户的命令提示符,#是超级用户的命令提示符

 

su命令总结

1)普通用户切换到root用户,可使用su -或su - root。必须输入root密码才能完成切换。

2)root用户切换到普通用户,可使用“su - 普通用户名”的写法。不需要输入任何密码就能完成切换。切换到普通用户后,在执行一些命令如ifconfig时,可能会遭遇到环境变量PATH路径问题而找不到某些系统命令(一般是/sbin,/usr/sbin等下面的命令),这时就需要将普通用户的PATH,配置成root的PATH内容,前面的文章已讲解过这个配置方法,不清楚的读者,可以翻阅下。

3)如果仅希望在某用户下执行命令,而不直接切换到该用户下操作,可以使用 su - 用户名 -c "命令"的方式。

 

rpm软件管理

rpm -qa | grep XXX //查看对应软件有没安装

如何查看rpm包里有什么内容

rpm -qlp

如何查看rpm包的安装脚本

rpm -qp --scripts

如何查看rpm包的依赖性关系

rpm -qp --requires

如何查看rpm包详细信息

rpm -qi

如何安装rpm包

rpm -ivh

如何更新软件

rpm -Uvh

如何卸载软件

rpm -e

如何在安装过程中指定相对安装路径

rpm -ivh --nodeps --force --root=你指定的路径

如何在安装过程中忽略依赖性关系

rpm -ivh --nodeps --force

如何查看rpm包的更新记录

 

yum

基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

 

设置更新源(改成国内的源):

mv   CentOS6-Base.repo  CentOS6-Base.repo.ori

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

mv CentOS6-Base-163.repo CentOS6-Base.repo

yum makecache

系统&软件更新:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* //导入验证密钥,验证安装包的安全性

yum update

安装包群:

yum grouplist //查看程序包群的安装情况

yum groupinstall "XXXX" //安装包群

yum groupremove   //卸载包组

 

事先规划磁盘,引导程序

建议练习机安装时的磁盘分区能有//boot,swap三个分区,这也是工作中常用的分区方法。如果是数据库及存储的服务器还可以在分出一个/data分区。

 

门户网站一般的分区方案:假设服务器16G内存,1T硬盘。

/boot 分区 100-200M

swap 分区 物理内存的1.5-2倍,如果内存大于16G,可以给8-16G

/分区 80-200G

剩余空间不分,保留给使用的人根据业务在具体问题具体分区

 

web服务器集群,普通服务器:600G-1T的硬盘

/boot 100-200M

swap 1.5 men(如果大于8G,就给8-16G

/ 所有剩余的,相当于笔记本的只有C盘。

数据有集群所以不怕丢失,一块分区,使用不存在分区不够大问题。

 

数据库存储系统:600G-1T的硬盘

 

LAMPLNMP服务器:

/boot 100-200M

swap 1.5 men(如果大于8G,就给8-16G

/ 40-80-100G

/data 所有剩余空间都给/data

提示:一般有重要数据的业务,尽可能数据所在的分区独立分出来。

 

SElinux

Linux的一个扩张强制访问控制安全模块

 

Getenforce //查看Selinux的状态

 

Setenforce 0/1 //开关Selinux,一般选择关闭,开启性价比不高

 

linux运行级别

 

关机                         0 - halt (Do NOT set initdefault to this)

单用户模式                   1 - Single user mode

多用户模式,没有NFS 2 - Multiuser, without NFS (The same as 3, if you do not have networking)

全功能多用户模式(命令行模式)3 - Full multiuser mode

图形化环境              5 - X11

重启                                   6 - reboot (Do NOT set initdefault to this)

 

init x(x=0,1,3,5,6)  #切换运行级别

startx   #init 5,进入图形化环境

 

查看运行级别配置

[root@rex / 12:27:13]# cat /etc/inittab

# Default runlevel. The runlevels used are:

#   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)

#

id:5:initdefault: //默认运行级别

 

开机服务设置:

命令的处理方法:1ntsysv 2setup-system service 3)脚本一键完成处理

 

脚本:

# LANG=en

# for SS in 'chkconfig --list | grep 3:on | awk '{print $1}'';do chkconfig --level 3 $SS off;done #把所有服务关闭

# for SS in crond network syslog sshd;do chkconfig --level 3 $SS on;done #只开启自己想要的服务

 

# chkconfig --list|grep 3:on #查询开启的服务

acpid                  0:off        1:off        2:on        3:on        4:on        5:on        6:off

atd                    0:off        1:off        2:off        3:on        4:on        5:on        6:off

auditd                 0:off        1:off        2:on        3:on        4:on        5:on        6:off

 

设置开机自启动服务原则:最小化原则---尽量不安装不适用的软件,尽量不开启不需要开启的而服务。即只要不用就不要开启,这样的系统的性能和安全性才是最好的。

 

sudo权限管理

 

# visudo //授权给各用户

user    MACHINE(授权哪个角色的权力)      COMMANDS(对应命令)

 ## Allow root to run any commands anywhere

 root    ALL=(ALL)       ALL

 rex     ALL=(ALL)       NOPASSWDALL //无敌,密码都不用

            rex2    ALL=(root)      !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root

授权后,对应用户用sudo+命令然后输入自己密码即可以root身份执行,短时间内再操作,可不需要密码

[rex2@rex ~ 15:56:22]$ sudo /usr/sbin/useradd kkk

[sudo] password for rex2:

 

Which //查看命令所在位置

 

重要的环境变量:

 

PATH //路径变量,路径变量里面有的路径,就可以直接执行路径里面的命令

#echo $PATH //查看路径变量

#vim .bash_profile //修改路径变量(全局)

 

SSH服务优化:

//优化配置,防止***

主配置文件:/etc/ssh/sshd_config

Port 1631 //修改端口号,对应防火墙要开启

PermitRootLogin no //root很敏感,不允许root远程登录

PermitEmptyPasswords no //禁止空密码

UseDNS no//不适用DNS

/etc/init.d/sshd restart //重启服务,生效配置

netstat -n | grep -i est//查看ssh连接情况

 

合适字符集设置:

简单的说就是一套文字符号及其编码。常用的字符集有:

GBK 定长 双字节 不是国际标准,支持的系统不少

UTF-8 非定长 1-4字节 广泛支持,mysql也使用

 

通过快捷的命令方式在/etc/sysconfig/il8n中添加内容即可//设置字符集

 

cat /etc/sysconfig/i18n //查看字符集

LANG="C"

SYSFONT="latarcyrheb-sun16"

 

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori

echo 'LANG="zh_CN.GB18030"' > /etc/sysconfig/i18n //中文显示配置要跟SSH客户端一样

source /etc/sysconfig/i18n

//修改为中文显示

ps:当然能不用中文就不用中文,这里只是以中文为例子

 

时间同步:

# ntpdate time.nist.gov  //手动更新

# echo '*/5 * * * * /sbin/ntpdate time.nist.gov > /dev/null 2>&1' >> /var/spool/cron/root  //建立定时更新,正确错误信息不显示


加大服务器描述符:

 

内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。

习惯上,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2。尽管这种习惯并非

Unix内核的特性,但是因为一些 shell 和很多应用程序都使用这种习惯,因此,如果内核不遵循这种习惯的话,很多应用程序将不能使用。

文件描述符是由

无符号整数表示的句柄,进程使用它来标识打开的文件。文件描述符与包括相关信息(如文件的打开模式、文件的位置类型、文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文。

ulimit -n //查看当前描述符限制量为多少

设置描述符数量:

1.在文件/etc/security/limits.conf末尾配置 *     -        nofile        65535

2.ulimit -SHn 65535 //openfile   ulimit -s 65535//stacksize    #也可以加入/etc/rc.local,每次重启生效

 

调整内核参数文件/etc/sysctl.conf

#此优化适合apachenginxsquid多种等web应用,特许业务也可能需要略作调整

所谓内核优化,主要是在linux系统中针对业务服务应用而进行的系统内核参数优化,优化并无特殊的标准,

下面以常见生产环境linux的内核优化条目,自行百度其意义&测试适合自己的配置值

net.ipv4.tcp_fin_timeout

net.ipv4.tcp_tw_reuse

net.ipv4.tcp_tw_recycle

net.ipv4.tcp_syncookies

net.ipv4.tcp_keepalive_time

net.ipv4.tcp_local_port_range

net.ipv4.tcp_max_syn_backlog

net.ipv4.tcp_max_tw_buckets

net.ipv4.tcp_synack_retries

net.ipv4.tcp_syn_retries

net.ipv4.tcp_max_orphans

net.core.somaxconn

net.core.netdev_max_backlog

sysctl -p //激活生效

 

锁定关键系统文件:

chattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/group

chattr +i /etc/gshadow

chattr +i /etc/inittab

 

然后把chattr改名,也就是把锁命令隐藏

 mv /usr/bin/chattr /usr/bin/yincang

 

隐藏我们的版本(放烟幕弹给***):

修改 /etc/issue

 

更多优化可参考:http://oldboy.blog.51cto.com/2561410/988726