ifconfig // 查看ip地址 ip addr // 如何不支持,那个可使用 vi /etc/sysconfig/network-scripts/ifcfg-xx // 好比lo eth0 什么的,把ONBOOT=no 改为yes就开始网卡 yum install net-tools // 安装就能够用ipconfig了
http://mirrors.163.com/.help/centos.html 教程php
第一步首: 先备份/etc/yum.repos.d/CentOS-Base.repohtml
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步: 下载对应版本repo文件, 放入/etc/yum.repos.d/vue
cd /etc/yum.repos.d/ ls wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
第三步: 运行如下命令生成缓存java
yum clean all yum makecache
安装SSHpython
yum install openssh-server
启动mysql
service sshd start
设置开机启动linux
chkconfig sshd on
SSH是典型的客户端与服务端的交互模式,客户端普遍的支持各个平台nginx
ssh root@140.143.244.18 就登陆了 帐号@ip
host "jia" HostName 192.168.0.106 User root Port 22 host "jia2" HostName 192.168.0.106 User root Port 22
ssh jia 就能够直接登陆了jia那个ip的服务器
生成git
ssh-keygen -t rsa ssh-keygen -t dsa
authorized_keys 那个文件新建在.ssh 下面加上公钥就能够免密登陆 在linex上须要ssh-add ~/.ssh/imooc_rsa 添加到空间
默认端口22
避免被别人利用,改默认端口web
修改/etc/ssh/shh_config的配置 Port 2222 而后重启 service sshd restart
软件操做
安装的软件:yum 安装:yum install xxx 卸载:yum remove xxx 搜索:yum search xxx 清理缓存:yum clean packages 列出已安装:yum list 软件包信息:yum info xxx
服务器强件资源和磁盘操做
内存:free -m 用m来展现g就是g 硬盘:df -h 能够看懂的形式 负载:w/top cpu个数和核数 cat /proc/cpuinfo fdisk命令用于观察硬盘实体使用状况,也可对硬盘分区 文件的操做命令 ls touch mkdir mkdir -p c/d/s 就能够循环建立 cd rm 删除文件和目录 rm -rf 删除非空文件 cp 复制 mv 移动 mv ./chen.log ~/ 移动到家目录 重命名 mv ./chen.log ./j.log pwd
文件和文件夹操做命令
根目录 / 家目录 /home 当前用户的家目录 ~ 临时目录 /tmp 配置目录 /etc 用户程序目录 /usr
vim
用户权限421rwx 读写执行
chmod
文件搜索、查找、读取
tail 从文件尾部开始读 head 从文件头部读 cat 读取整个文件 more 分页读取 less 可控分页 grep 搜索关键词 grep "a" j.log 在文件中搜索 -n就是统计 find 查找文件 find . -name "*.vue" 将目前目录及其子目录下全部延伸档名是vue的文件列出来 find . -type f 将目前目录其其下子目录中全部通常文件列出 d: 目录c: 字型装置文件b: 区块装置文件p: 具名贮列f: 通常文件l: 符号连结s: socket find . -ctime -20 将目前目录及其子目录下全部最近 20 天内更新过的文件列出 find /var/log -type f -mtime +7 -ok rm {} \; 查找/var/log目录中更改时间在7日之前的普通文件,并在删除以前询问它们,能够用于目录操做 find . -type f -perm 644 -exec ls -l {} \; 查找前目录中文件属主具备读、写权限,而且文件所属组的用户和其余用户具备读权限的文件 find / -type f -size 0 -exec ls -l {} \; 为了查找系统中全部文件长度为0的普通文件,并列出它们的完整路径 wc 统计个数 cat j.log | wc -l 统计出行数 grep "a" j.log | wc -l
压缩命令
-c: 创建压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示全部过程 -O:将文件解开到标准输出 参数 -f 是必须的: -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 压缩 tar –cvf jpg.tar *.jpg // 将目录里全部jpg文件打包成 tar.jpg tar –czf jpg.tar.gz *.jpg // 将目录里全部jpg文件打包成 jpg.tar 后,而且将其用 gzip 压缩,生成一个 gzip 压缩过的包,命名为 jpg.tar.gz tar –cjf jpg.tar.bz2 *.jpg // 将目录里全部jpg文件打包成 jpg.tar 后,而且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,命名为jpg.tar.bz2 tar –cZf jpg.tar.Z *.jpg // 将目录里全部 jpg 文件打包成 jpg.tar 后,而且将其用 compress 压缩,生成一个 umcompress 压缩过的包,命名为jpg.tar.Z rar a jpg.rar *.jpg // rar格式的压缩,须要先下载 rar for linux zip jpg.zip *.jpg // zip格式的压缩,须要先下载 zip for linux 解压 tar –xvf file.tar // 解压 tar 包 tar -xzvf file.tar.gz // 解压 tar.gz tar -xjvf file.tar.bz2 // 解压 tar.bz2 tar –xZvf file.tar.Z // 解压 tar.Z unrar e file.rar // 解压 rar unzip file.zip // 解压 zip 总结 一、*.tar 用 tar –xvf 解压 二、*.gz 用 gzip -d或者gunzip 解压 三、*.tar.gz和*.tgz 用 tar –xzf 解压 四、*.bz2 用 bzip2 -d或者用bunzip2 解压 五、*.tar.bz2用tar –xjf 解压 六、*.Z 用 uncompress 解压 七、*.tar.Z 用tar –xZf 解压 八、*.rar 用 unrar e解压 九、*.zip 用 unzip 解压
系统用户操做命令
useradd 添加用户 adduser 添加用户 userdel 删除用户 passwd 设置密码
防火墙设置
iptables命令是Linux上经常使用的防火墙软件 安装 yum install firewalld 启动 service firewalld start 检查状态 service firewalld status 关闭或禁用防火墙 service firewalld stop/disable iptables(选项)(参数) -t<表>:指定要操纵的表; -A:向规则链中添加条目; -D:从规则链中删除条目; -i:向规则链中插入条目; -R:替换规则链中的条目; -L:显示规则链中已有的条目; -F:清楚规则链中已有的条目; -Z:清空规则链中的数据包计算器和字节计数器; -N:建立新的用户自定义规则链; -P:定义规则链中的默认目标; -h:显示帮助信息; -p:指定要匹配的数据包协议类型; -s:指定要匹配的数据包源ip地址; -j<目标>:指定要跳转的目标; -i<网络接口>:指定数据包进入本机的网络接口; -o<网络接口>:指定数据包要离开本机所使用的网络接口。
提权操做sudo和文件传输操做
提权:sudo visudo编辑 下载 wget curl 文件上传 scp scp j.log chenjinxinlove@192.168.0.106:/tmp/ 上传到那个目录了
安装 yum install httpd 启动 service httpd start 中止 service httpd stop 配置文件 /etc/httpd/conf
CentOS7默认安装mariadb数据库 yum remove mariadb-libs.x86_64 下载MYsql源 https://dev.mysql.com/downloads/repo/yum/ cd /tmp/ wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm 安装源 yum localinstall mysql57-community-release-el7-8.noarch.rpm 安装服务器 yum install mysql-community-server 默认密码查找 cat /var/log/mysqld.log | grep "password" 启动 service mysqld start/restart 中止 service mysqld stop 链接 mysql -uroot -p 密码 远程链接 开启Genelog set global general_log_file="/tmp/genetal.log";//设置文件路径 set global general_log="on";// 开启 新建用户和权限操做 忘记root密码怎么办
安装 yum install memcached 启动 memcached -d(守护进行) -l(支持的ip) -m(分配多少内存) -p (端口号11211) 中止 kill pid
安装 源码编译安装 启动 redis-server start/restart 中止 redis-server stop 客户端 redis-client // 下载到/tmp目录 获取源码 wget http://download.redis.io/releases/redis-4.0.11.tar.gz 解压 tar xvfz redis-4.0.11.tar.gz cd src && ls 启动 ./redis-server
安装 yum install git git 命令自动补全设置
略
yum -y isntall java-1.8.0 -openjdk java -version 查看版本
官网下载,源码编译安装 https://tomcat.apache.org/ wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat-9.0.10.tar.gz 启动到tomcat的目录sh start.sh cd /tmp/apache-tomcat-9.0.10/bin/ bootstrap.jar ciphers.bat configtest.bat digest.sh shutdown.sh tomcat-native.tar.gz version.sh catalina.bat ciphers.sh configtest.sh setclasspath.bat startup.bat tool-wrapper.bat catalina.sh commons-daemon.jar daemon.sh setclasspath.sh startup.sh tool-wrapper.sh catalina-tasks.xml commons-daemon-native.tar.gz digest.bat shutdown.bat tomcat-juli.jar version.bat
官网下载,源码编译安装 https://maven.apache.org/ wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz 解压 tar xvfz apache-maven-3.5.4-bin.tar.gz 创建软链接 ln -s /tmp/apache-maven-3.5.4/bin/mvn /usr/local/bin/ 或 可是要使用绝对路径 ln -s /tmp/apache-maven-3.5.4/bin/mvn /usr/bin/
yum install python2-pip 换成豆瓣源 mkdir ~/.pip vim ~/.pip/pip.conf [global] timeout=60 index-url = https://pypi.tuna.tsinghua.edu.cn/simple
pip install virtualenv
ntpdate cn.pool.ntp.org
/etc/logrotate.d 目录下 [root@VM_0_4_centos logrotate.d]# ls 2017-08-29 bootlog chrony httpd mysql nginx ppp syslog wpa_supplicant yum [root@VM_0_4_centos logrotate.d]# cat nginx /var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript } [root@VM_0_4_centos logrotate.d]# pwd
pip install supervisor
官网 https://www.zabbix.com/
安装 https://www.zabbix.com/download
RPM包默认安装的服务
独立服务
启动 使用/etc/init.d/ 目录中脚本启动服务如:/etc/init.d/httpdstart/stop/restart 使用servide命令启动服务如:service httpd start|stop|restart 自启动 使用chkconfig命令来管理自启动如:chkconfig --level 2345 httpd on | off 修改/etc/rc.local文件,如vi/etc/rc.d/rc.local 加入 /etc/init.d/httpd start 使用ntsysv命令管理服务自启动
源码包安装的服务
启动 使用源码包启动脚本启动服务:如 /usr/local/apache2/bin/apachect| start 自启动 自能修改/etc/rc.loacl文件
进程管理
进程查看
ps aux USER:该进程属于那个使用者帐号的? • PID :该进程的进程ID号。 • %CPU:该进程使用掉的 CPU 资源百分比; • %MEM:该进程所占用的物理内存百分比; • VSZ :该进程使用掉的虚拟内存量 (Kbytes) • RSS :该进程占用的固定的内存量 (Kbytes) • TTY :该进程是在那个终端机上面运做,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络链接进主机的程序。 • STAT:该程序目前的状态,主要的状态有: R :该程序目前正在运做,或者是可被运做; S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。 T :该程序目前正在侦测或者是中止了; Z :该程序应该已经终止,可是其父程序却没法正常的终止他,形成 zombie (疆尸) 程序的状态 • START:该进程被触发启动的时间; • TIME :该进程实际使用 CPU 运做的时间。 • COMMAND:该程序的实际指令为何? ps -le pstree -p 显示进程pid -u 显示进程的所属用户
查看系统监控健康状态
选项 -d读秒:指定top命令每隔几秒更新,默认3秒 -b :使用批处理模式输出。通常和-n选项合用 -n 次数:指定top命令执行的次数。通常和-b一块儿使用 top命令的交互模式当中能够执行的命令 h帮助 P: 以cpu使用频率排序,是默认的 M:之内存的使用率排序 N:以pid排序 q:退出top 杀死进程 kill【选项】【信号】进程名 选项 -t 信号:kill -l SIGHUP 1 从新读取配置文件,而后重启 SIGKILL 9 强制杀死 killall/pkill 根进程名 来杀死所有进程 -i 交互氏 pkill -t 能够根据终端号,只有root能够踢用来提出终端用户 w 命令来查看登陆那些用户,而后在提出 修改进程的优先级
命令后面很 &能够放入后台,可是绑定终端号,不能有交互的命令,使用jobs命令查看 使用ctrl + z是在后台暂定的 jobs [-l] -l是查看工做的pid的。+是最近一个放入的后台的程序,-是倒数第二个 fg % 工做号 恢复到前台 bg % 工做号 回到后台去 后台命令脱离登陆终端执行的方法 第一种,把执行的命令加倒入/etc/rc.local文件中开机自启动 加入到定时任务中 使用nohup命令 系统资源查看
at一次性定时任务
肯定at安装 chkconfig --list | grep atd at服务是否安装 service atd restart at服务的启动 at的访问控制 若是系统中有/etc/at.allow文件,那么只有写入/etc/at.allow文件(白名单)中的用户可使用at命令(/etc/at.deny文件会被忽略) 若是系统中没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny(黑名单)中的用户不能使用at命令。对root不起做用 若是都不存在,只能root用户来操做 at命令 通常直接加时间 HH:MM 02:30 HH:MM YYYY-MM-DD 02:30 2013-07-25 HH:MM[am|pm] [month] [date] 02:30 july 25 HH:MM[am|pm]+[minutes|hours|days|weeks] 例子1 at now +2 minutes 在两分钟以后执行hello.sh脚本 at> /root/hello.sh atq:查看正在容许的at命令 例子2: at 02:00 2013-07-26 在指定的时间重启 at> /bin/sync at> /sbin/shutdown -r now
crontab循环定时任务
也存在cron.allow和cron.deny的白黑名单 选项 -e 编辑crontab定时 -l 查询crontab任务 -r 删除当前用户全部的crontab任务 系统的crontab设置 crontab -e 进入编辑界面, ***** 执行的任务 第一个* 一小时当中第几分钟 0-59 第二个* 一天当中的第几个小时 0-23 第三个* 一个月当中的第几天 1-31 第四个 * 一年当中的第几个月 1-12 第五个* 一周当中的星期几 0-7 (0和7都表明星期日) 特殊符合 *表明任意时间,第一个*就是一个小时每分钟都执行一次的意思 , 表明不连续的时间,好比“0, 8,12,16 ***” ,就表明在天天的8点0分,12点0分,16点0分都执行一次 - 表明连续的时间范围,好比“0 5 * * 1-6” 表明在周一到周六的凌晨5点0分执行命令 */n 表明每一个多久执行一次 好比 */10 * * * * ,表明每隔10分钟就执行一遍命令 例子: 45 22 * * * 表明在22点45分执行 0 17 * * 1 表明每周一的17点0分执行 0 5 1,15 * * 表明每个月1号和15号的凌晨5点0分执行命令 */10 4 * * * 表明 天天的凌晨4点,每隔十分钟执行一次 0 0 1,15 * 1 表明1号15号,每周1的0点0分都会执行:注意周不要和月混在一块儿 设置 有些定时任务须要系统执行,这时咱们就须要编辑/etc/crontab这个配置文件 系统定时任务 第一种是须要定时执行的脚本复制到/etc/cron.{daily,weekly,monthly}目录下 第二种修改/etc/crontab配置文件 anacron配置 因为服务器等缘由,没有执行定时任务,开机以后会在次执行定时任务 anacron会使用一天,七天,一个月做为检测周期 在系统的/var/spool/anacron/目录中存在cron.{daily,weekly,monthly}文件,用于记录上次执行cron的时间 和当前时间作比较,若两个时间的插值超过了anacron的指定时间差,证实有cron任务错过执行 配置文件 /etc/anacrontab
vmstat[刷新延时 刷新次数] 命令监控系统资源: 例如vmstat 1 3 r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,通常负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载相似每秒的运行队列。若是运行队列过大,表示你的CPU很繁忙,通常会形成CPU使用率很高。 b 表示阻塞的进程,这个很少说,进程阻塞,你们懂的。 swpd 虚拟内存已使用的大小,若是大于0,表示你的机器物理内存不足了,若是不是程序内存泄露的缘由,那么你该升级内存了或者把耗内存的任务迁移到其余机器。 free 空闲的物理内存的大小,个人机器内存总共8G,剩余3415M。 buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,加速读取 cache cache直接用来记忆咱们打开的文件,给文件作缓冲, 加速写入 si 每秒从磁盘读入虚拟内存的大小,若是这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。个人机器内存充裕,一切正常。 so 每秒虚拟内存写入磁盘的大小,若是这个值大于0,同上。 bi 块设备每秒接收的块数量,这里的块设备是指系统上全部的磁盘和其余块设备,默认块大小是1024byte,我本机上没什么IO操做,因此一直是0,可是我曾在处理拷贝大量数据(2-3T)的机器上看过能够达到140000/s,磁盘写入速度差很少140M每秒 bo 块设备每秒发送的块数量,例如咱们读取文件,bo就要大于0。bi和bo通常都要接近0,否则就是IO过于频繁,须要调整。 in 每秒CPU的中断次数,包括时间中断 cs 每秒上下文切换次数,例如咱们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,咱们通常作性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程能够由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,咱们的代码就会进入内核空间,致使上下文切换,这个是很耗资源,也要尽可能避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,致使CPU干正经事的时间少了,CPU没有充分利用,是不可取的。 us 用户CPU时间,我曾经在一个作加密解密很频繁的服务器上,能够看到us接近100,r运行队列达到80(机器在作压力测试,性能表现不佳)。 sy 系统CPU时间,若是过高,表示系统调用时间长,例如是IO操做频繁。 id 空闲 CPU时间,通常来讲,id + us + sy = 100,通常我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。 wt 等待IO CPU时间 dmesg 看内核自检测信息 dmesg grep | CPU 查看cpu的信息。能够用来查看硬件信息 free[-b|-k|-m|-g] 以b、k、m、g来显示,显示内存状态 total used free shared buffers cached Mem: 7872 1806 6066 0 172 1177 -/+ buffers/cache: 456 7416 Swap: 0 0 0 cat /proc/cpuinfo 查看cpu的信息 uptime查看系统当前时间等,就是top的第一行 10:31:42 up 54 days, 15:48, 1 user, load average: 0.00, 0.00, 0.00 查看内核相关的信息 uname -a 查看系统全部相关信息 -r 查看内核版本 -s 查看内核名称 file /bin/ls 来查看系统位数 /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped lsb_release -a 查看发行版本 LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.8 (Final) Release: 6.8 Codename: Final lsof命令 lsof | more 查看系统中全部进程调用的文件 lsof /sbin/init 查询摸个文件被那个进程调用 lsof -c httpd 查看httpd进程调用了那些文件 lsof -u root 根据用户名,查询某用户的进程调用的文件名