#我目前购买的是阿里云的主机,操作系统CentOS 64 (推荐使用支持yun命令的linux版本,安装软件比较方便) 下面的一些命令可能会针对不同的系统略有差别,请自行查阅!
#看本文前,我觉得大家还是有必要了解一些linux 下的命令。毕竟你想要熟悉它,使用它的命令这是必须的!
#1、首先第一步我们可能最关心的就是它的硬件状态
df -hl #查看我们硬盘的大小和一共有几块硬盘一目了然。
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # 查看cpu信息
top/free #查看服务器的内存大小
#top很实用的工具哦 其中load average 很关键,其表示系统的负载状况(1分钟、5分钟、15分钟前到现在的平均值).对于初期系统维护者很实用
getconf LONG_BIT #直接查看系统的位数
lsb_release -a #查看所有版本
#2、要查看ssh的状况(这其实是废话,我都用ssh登陆进来了,还用看?)
rpm -qa |grep ssh #查找当前系统是否已经安装ssh协议
yum install ssh #(如果没有安装可以使用该命令安装,一般都会有的)
service sshd (/etc/init.d/sshd) #status 查看ssh的状态
service sshd start #启动ssh 有了ssh协议 就默认有了sftp了 我们就可以使用任意的ftp工具(支持sftp协议)登陆到我们的主机
#3、下面可能我们更加关心的就是我们服务器的安全问题了 下面我们的各个专题都是针对服务器安全方面的操作
more /etc/passwd #查看系统下的所有用户 或是直接sudo vim /etc/passwd #/sbin/nologin 就是不可以登陆
passwd #修改我们登陆用户的密码
passwd XXX #修改XXX陆用户的密码
#可能我们当前登陆的是root用户,此用户的权限太高恐怕会误删某些文件,造成不良的后果所以我们有必要新建个用户 然后每次都使用他进行登陆和操作
groupadd Rylan #新建用户组
useradd -d /home/Rylan -g Rylan Rylan #添加Rylan用户然后添加到Rylan组中
passwd Rylan #修改密码
userdel -r Rylan #删除用户 -r 一并删除用户的主目录
#这样我们就新建了个用户然后可以试试
su - Rylan # -的作用可以直接切换到该用户的环境(包括环境变量)
#输入密码:
#好了我们新建了个Rylan用户可以试试ssh登陆了(sftp也可以的) 以后我们就用他来登陆了
#4、其次我们首先要检查的就是防火墙的状态 这是最关键的 一般的话 默认都是关闭的 所以我们首先要打开它
service iptables status #查看当前防火墙状态
service iptables start (restart/stop/status) #打开(重启/关闭/状态)
# 在 /etc/sysconfig/iptables 中添加
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT #打开80端口
service iptables restart #重启生效
iptables -L -n --line-numbers # 查看当前iptable 端口开启状态
#这里我们提到了一个service 的命令 这其实是linux中类似于我们平时使用window中的任务管理器中服务的概念 我们可以把我们安装的任意软件的开始方式和关闭方式写成脚本
#然后拷贝到/etc/rc.d/init.d 下 这里面就是配置服务的 启动脚本针对不同的程序 脚本也不同,这个可以针对不同的程序到网上搜索一下 cp XXX /etc/rc.d/init.d/XXX 这样就可以使用 service 了# 具体的后面我会有一个安装例子,到时候大家就会清楚了。这里先大概说下。
#5、我们一般要修改ssh的端口 一般的攻击都会扫描22端口
vi /etc/ssh/sshd_config #如果要修改端口,把 port 后面默认的22端口改成别的端口即可(注意前面的#号要去掉)
service sshd restart #然后重启ssh功能 端口才能生效
#记住修改端口后要在防火墙上也打开该端口,否则间访问不到
#6、一般我们都会有很多的主机,如果登陆后都显示ip的方式,使我们搞不清楚我们到底登陆的是哪个主机,尤其是当我们有真的生成环境的时候。那就更危险了。
# 使用hostname命令是一个很好的解决方式,我们针对不同的 主机配置不同的hostname 区分开服务器不同的用途,这样比我们只看ip明显的多。
#使用方式 hostname=修改的主机名 (当前生效,重启后无效) 例如:
hostname productXXX
hostname testXXX
hostname localXXX
#使用上面的方式只是我们本次登陆有效,而不是长期的有效。如果想长期 使用如下方式
vi /etc/sysconfig/network
HOSTNAME=XXX
#这样就会一直生效了 但是要记住需要 重启后才会生效
#7、有时我们编译c程序或是运行java程序的时候,运行或是编译的时候总会出现乱码,这个我们大家一定都很头疼,这时我们就要看一下我们服务器的本地的字符编码
locale #可以使用locale命令查看到如下信息
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
#这时我们就清楚了为什么本地运行的好好的,一道服务器就不好用(如果是tomcat作为中间件还有考虑tomcat中的字符编码问题)
export LANG=zh_CN.UTF-8 #可以使用如下命令修改 临时有效,如有保持需要设置环境变量
#8、大部分情况下都是我们很多人都在使用同一台服务器,而按照我们的名字不同给我们分配了不同的空间。这时我们就要了解到 个人环境变量和系统环境变量
#系统环境变量 对所有用户生效(永久的) 一般不要自己修改
vi /etc/profile
#例如我们添加上面的 lang
export LANG=zh_CN.UTF-8
#用户级环境变量 在此用户中生效 --这个配置很重要 大多数的时候我们都需要配置用户级的环境变量
cd 到自己的主目录 /home/Rylan
ls -a #查看所有的文件 我们会看到一个.bash_profile unix中是.profile 文件 没有则新建 touch .bash_profile 其实mac中我们也要如此配置
vi .bash_profile #这里面我们可以自己定义自己的环境变量和简短命令 这对当前用户生效
#下面列举了我服务器中的一些配置
PATH=$PATH:$HOME/bin #这是一些基本的命令 需要导入
export PATH
MYSQL_HOME=/usr/local/mysql
NGINX_HOME=/usr/local/nginx
REDIS_HOME=/install/redis-2.8.9
alias tomcat1='cd /usr/local/tomcats/tomcat_XXX_1' #此处注意 tomcat1='' 之间不要有 空格
alias rm='rm -i' #太重要了。大多数的服务器都添加了此项。 拒绝rm *
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -l' #很实用
#alias 是一个设置指令的别名的命令 相当于我们程序中变量的引用一样,命令的一个别名
source .bash_profile #也可以使用 . .bash_profile 是环境变量生效
#然后使用
env #查看所有环境变量
echo $MYSQL_HOME
#9、一般情况我们程序启动 或是服务器异常都会是因为我们的一些端口被别人开启或是攻破,此时我们就需要检查那些端口不是我们使用的,那些有异常
netstat -an # netstat -antp
#或是我们需要查看某些 例如 80
netstat -an | grep 80
#找到端口后,我们可以确定是哪个程序恶意的开启了,然后使用ps 查看程序状态
ps -ef |grep tomcat #可以查看到进程号
#关闭 进程
kill -9 进程号
#或使用
pkill -9 tomcat
#此时是我们针对异常攻击的一些基本办法。详细的对于被攻击了那些信息,我们就要去 /var/log/ 日志中详细的查找。
#10、Linux完成内核(Kernel)引导后,会由init初始化进程调用/etc/inittab配置文件。init进程号为始终为1。 如果我们要修改linux启动为命令行启动
vi /etc/inittab
id:5:initdefault; #修改为3
0-halt 关机,让init关闭所有进程并关机
1-Single user mode 单用户字符界面,通常又称为s或S
2-Multiuser,without NFS 不具备网络文件系统功能的多用户字符界面
3-Full multiuser mode 具备网络文件系统功能的多用户字符界面
4-unused 保留不用
5-X11 具备网络功能的图形用户界面
6-reboot 关闭所有运行的进程并重新启动系统
#下面我们配置一个软件。以tomcat为例。当然对tomcat而言不需要安装只需要ftp就好。但是配置还是需要说一下
#创建Tomcat用户
groupadd tomcat
useradd -s /sbin/nologin -g tomcat tomcat
#ftp tomcat的压缩包到服务器中 或者是用 scp 命令 。 一般习惯在根下建立 /install 目录用户存放一些安装软件
scp -P 22 apache-tomcat-7.0.42.tar.gz root@192.168.1.5:/install
# 安装Tomcat
mkdir -p /usr/local/tomcats
cd /install
tar xzvf apache-tomcat-7.0.42.tar.gz -C /usr/local/tomcats
cd /usr/local/tomcats
mv apache-tomcat-7.0.42 tomcata
#当然这这是简单的基本安装 如果要提高tomcat的性能还需要native。网上很多请读者自行查阅。
# 拷贝自启动脚本 后面为修改权限和添加服务
cp /install/tomcat7 /etc/rc.d/init.d/tomcata #添加tomcat服务
cd /etc/rc.d/init.d/
chmod +x tomcata
chkconfig --add tomcata #以service 的方式添加自启动方式
#vi /etc/rc.d/rc.local 或者是以脚本的形式 添加自启动
service tomcata start #以后每次都可以使用这种方式启动了。 至此添加服务的方式已经完成。
#一下我还总结出一些常用的基本的linux 命令(自认为很实用的)。毕竟因为我目前只是工作2年。认识还不深也只能积累这些常用命令。
#重启
reboot
#关机
shutdown -h now
halt
shutdown -h 10 10分钟后自动关机
#查看文件
more/less/head/cat/tail 其中 more tail cat 比较常用
#新建文件
touch
#软件安装
yum install gitweb
#查看安装路径
rpm -ql gitweb
#按时间逆序显示文件属性
ls -lrt
#“>”重定向覆盖原来的文件;“>>”追加到文件的末尾
cat 想拷贝的文件 > 目标文件
#清空文件
cat /dev/null > 要清空的文件
#查找当前目录下的指定的core文件
find . -name "core"
#解压
tar -zxvf nginx-1.6.0.tar.gz
#wc命令 -l 统计行数
#查看单层子目录下的文件大小 按文件大小逆序排序 -----很实用
du -smc * |sort -nr #或者
du -shc * |sort -nr #带单位
#查看 IO性能 很多工程师都在用这个命令
iostat
# 查看所有已经建立的连接
netstat -antp
#可以查看http头
curl -I www.baidu.com
#查看内存使用量和交换区使用量
free -m
# 查看各分区使用情况
df -h
#查看所有监听端口
netstat -lntp
#查看所有已经建立的连接
netstat -antp
#查看网络统计信息
netstat -s
.........
#由于小弟工作年限有限,以上内容有可能有不对或是疏忽的地方,还请大家多多指出!