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的硬盘
LAMP,LNMP服务器:
/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,进入图形化环境
查看运行级别配置
[[email protected] /
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: //默认运行级别
开机服务设置:
命令的处理方法:1)ntsysv 2)setup-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) NOPASSWD:ALL //无敌,密码都不用
rex2 ALL=(root) !/usr/bin/passwd,/usr/bin/passwd
[A-Za-z]*,!/usr/bin/passwd root
授权后,对应用户用sudo+命令然后输入自己密码即可以root身份执行,短时间内再操作,可不需要密码
[[email protected] ~
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
#此优化适合apache,nginx,squid多种等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
【系统知识点】linux基础&优化命令