一、初始常用命令
1、主机提示符
[用户名@主机名 当前目录名 ]提示符
[root@localhost ~ ]# #为 root用户提示符
[niuxitong@localhost ~]$ $为普通用户提示符
2、重启、关键命令
# shutdown -r now 立刻重启 (最安全)
# reboot 立刻重启
# init 6 重启
先执行 # sync 将数据同步到硬盘中 (关机前使用)
# shutdown -h now 立刻关机 (最安全)
# shutdown -h 20 系统在20分钟后关机
# shutdown -h 20:00 晚上8点关机
(一般重启前都会用who 看看谁在线 或者 ps -aux 看先哪些进程在使用)
3、修改主机名
(1)临时生效
# hostname localhost 断开再次连接
此方法只能临时生效, 服务器重启失效
(2)永久生效
# hostnamectl set-hostname localhost
# reboot 重启
其实此命令也是把配置文件/etc/hostname里的内容修改了
(3)手工修改文件/etc/hostname
# vim /etc/hostname 把里面的默认主机名修改成你自己的 如localhost
# reboot 重启
4、查看服务器信息
(1)查看内核版本 # uname -r
(2)查看centos版本号 # cat /etc/centos-release
(3)查看系统位数(32位or64位) #getconf LONG_BIT
(4)查看与设置日期名
# date -- 显示时间
# date -s “2017-05-01” -- 修改时间为 2017-05-01 00:00:00
# date -s “2017-05-01 08:20:00” -- 修改时间为 2017-05-01 08:20:00
# date -R 显示时区
# clock -w // 将日期写入CMOS,永久保存,避免重启后失效
5、常用网络命令
(1)查看所有端口号 服务 # netstat -lnpt
# netstat -lnpt | grep nginx
# netstat -lnpt | grep mysql
# netstat -lnpt | grep php-fpm
二、文件及目录操作命令
1、目录操作命令
1、pwd -- 显示当前目录名称
2、cd -- 切换目录(change directory)
# cd - 返回到上次进来的目录
3、ls -- 打印目录下的内容(list)
语法: ls [选项 [-a l d]] [指定目录]
-a 显示所有文件, 包括隐藏文件
-l 长数据串列出,包含文件的属性与权限等数据
-d 只列出目录属性不显示其下的内容
-R :递归显示目录下所有的内容和子目录内容
# ls 列出当前目录下的内容
# ls |grep redis-3.0.7.tar.gz 当列表内容过多时,此方法用于搜索指定文件是否存在
# ls -l /test/ -- 列出test目录下的内容的属性
# ls -dl testdir 列出testdir目录的属性而不显示其下的内容的属性
drwxr-xr-x 5 root root 4096 4月 16 16:01 testdir
补充知识:文件或目录的属性
drwxr-xr-x 2 root root 4096 07-04 00:17 bin
-rw-r--r-- 1 root root 84733045 07-04 16:43 xampp-linux.gz
依次表示:
类型、权限,硬链接个数,所有者,所属组,文件大小,时间,文件名
drwxr-xr-x 共10个字符
第一个字符d 代表文件类型,常见的三种文件类型:
d -- 目录(directory), - (一个横杠) --表示是二进制文件, l -- 软链接文件(link)
后面九个rwxr-xr-x可以分成三部分,表示三部分用户权限:
r -- 表示read 可读权限 值为4
w -- 表示write 可写权限 值为2
x -- 表示execute 可执行权限 值为1
其中:
rwx 表示所有者拥有rwx 可读可写可执行三种权限
r-x 表示所属组拥有r-x 可读可执行权限(没有的用-表示)
r-x 其他人
4、mkdir -- 创建新目录(新建文件夹)(make directories)
# mkdir -p /test/test --递归创建多个目录
5、touch -- 创建新文件(新建文件)
# touch /test/newfile.txt
向文档里写入数据:(>> 向文件的最后一行写入内容, > 覆盖文件的原内容)
# echo "再写入一段内容" >> /test/newfile
# echo "这是覆盖的内容,原来内容没有了" > /test/newfile
6、cp -- 复制文件或目录(copy)
语法:cp [-r -p] [原文件或目录] [目标文件或目录]
参数:-r 复制目录 -p 保留文件属性
# cp file1 file2 dir1 将文件file1 file2复制到目录dir1
# cp -r dirl dir2 将dir1连同里面的内容复制到目录dir2里
# cp dir1/* dir2 将dir1里的所有文件复制到dir2里
# cp –r dir1/* dir2 将dir1 里所有的目录及文件拷贝到 dir2中
7、mv -- 剪切移动文件、更名(move)
语法:mv [-i -f] [源文件或目录][目标目录]
参数: -i 覆盖提示,-f 强制覆盖
# mv file1 file3 将文件file1更名为file3
# mv file2 dir2 将文件file2移动到目录dir2下
# mv -f file5 /test/ 将文件强行移动到test目录下,如果已经存在,就强行覆盖
# mv /www/newdir /test/newdir_xin -- 移动的同时修改名称
# mv ./mydriA/* ../../ 把mydirA目录下的所有内容 移动到当前之前的两级目录上
# mv ./* ../../ 把当前目录的所有内容移动到前两级目录上。
8、rm -- 删除文件或目录(remove)
语法:rm [-r f ] [文件或目录]
-r 删除目录 -f 强制删除文档或目录。
# rm file3 删除文件file3
# rm -r dir1 删除目录dir1
# rm -f ./* 删除当前目录下的所有文件
# rm -rf ./* 删除当前目录下的所有文件和目录
在终端删除文件或目录时,会有一个询问的过程,然后输入y 同意删除 n 放弃删除,如果不想要此询问过程可以用 -f参数。
9、rmdir -- 删除目录且只能删除空目录
# rmdir emptydirname 删除空目录
10、cat -- 显示文件内容 (tac 倒序显示内容)
语法:cat [-n] [文件名]
# cat /etc/issue
# cat -n /etc/services //显示行号( -n 功能同vim中的 :set nu)
11、tac -- 倒序显示文件内容
# cat /etc/passwd
12、more -- 分页显示文件内容
语法:more [文件名]
(空格) 或 f 显示下一页
(Enter键) 显示下一行
q 或者 Q 退出
# more /etc/services
13、less -- 分页显示文件内容 可以向上翻页
# more /etc/services
q 或者 Q 退出
14、head -- 查看文件的前几行
语法: head [-n 具体数字] [文件名]
# head –n 20 /etc/services 显示前20行
15、tail --查看文件的最后几行
语法:tail [-n 具体数字] [文件名]
-num 显示文件的最后num行
-f 动态显示文件内容
# tail –n 30 /etc/services
常用于实时监测系统日志文件的变化,如:
tail -n -f 2020-05-01.log
16、ln -- 创建文件的链接文件(软和硬链接)(link)
语法:ln –s [源文件] [目标文件]
-s 创建软连接使用,后缀名任意,一般用.soft不加 -s 创建硬链接,后缀名任意,一般用.hard
特别强调:ln只能创建文件的链接而不是目录的链接
创建文件 /etc/issue 文件的软链接,放置在根目录/下
# ln -s /etc/issue /issue.soft
创建文件 /etc/issue 文件的硬链接,放置在根目录/下
# ln /etc/issue /issue.hard
ln testfile.txt ../yinglianjie.hard 创建此硬链接到上级目录
说明:软连接就是windows下的快捷方式;硬链接类似于源文件的备份,两者有任一文件改动,另一个文件也随之改动,当源文件被删除时,不影响硬链接文件的访问
例: ls –al /dev/
lrwxrwxrwx 1 root root 3 4月 16 19:10 cdrom -> sr0
lrwxrwxrwx 1 root root 3 4月 16 19:10 cdrw -> sr0
brw-rw---- 1 root cdrom 11, 0 4月 16 19:10 sr0
这里的 cdrom cdrw 都是 sr0的快捷方式 (sr0是设备文件如光驱)
软连接的特性:
(1)软链接的权限都是rwxrwxrwx 777
(2)没有文件大小,只是一个链接符号
(3)cdrom -> sr0 箭头指向原文件
硬链接特性:
-rw-r--r-- 2 root root 10 4月 16 20:23 yinglianjie.hard
(1)等效于对文件的拷贝 cp –p + 同步更新(修改硬链接里的内容,原文件里的内容也同步更新)
(2)可通过i节点识别
(3)不能夸分区
2 文件目录权限命令
1、chmod -- 改变文件或目录权限
语法:chmod[{ugo}{+-=}{rwx}][文件或目录][mode=421][文件或目录]
+ 增加权限;- 减少权限; = 赋予权限
三种用于:u所有者; g所属组; o其他人
常用 chmod –R 777 dirname ------- 为dirname目录及其子目录赋777权限
rwx三种权限,对于文件和目录不同:
r -- 可读权限,可以查看(cat, more, head, tail)文件内容;可以列出(ls,ll)目录中的文件内容
w -- 可写权限,可以修改(echo,vim)文件内容;可以在目录中创建、删除文件(touch,mkdir,rm)
x -- 可执行权限 ,可以执行文件;可以进入目录(cd )
一个文件用于777权限,并不代表普通用户可以删除它,要看这个目录是否有允许删除的权限。
三种权限的数字表示
r – 4 w – 2 x – 1
三种用户权限的数字表示 (每中用户的权限数值取和)
rwx r-x r -- 754
rwx rwx rwx 777 (这就是我们通常所说的最高权限)
# chmod g+w file1 //给文件file1所属组赋予写权限
# chmod 777 dir1 //设定目录dir1为所有用户都具有全部权限
常用参数 -R或--recursive 递归处理
2、chown -- 改变文件或目录的所有者(change file ownership)
语法:chown [用户][文件或目录]
# chown nobody file1 //改变文件file1的所有者为nobody
# chown zhangsan dirname //改变目录dirname的所有者为zhangsan
3、chgrp -- 改变文件或目录的所属组
语法:chgrp [用户组] [文件或目录]
# chgrp adm file1 //改变文件file1的所属组为adm
4、umask -- 显示、设置文件的缺省权限
语法:umask [-S]
-S 表示 以rwx形式显示新建文件或者目录缺省权限
# umask
# umask -S
5、chattr -- 改变文件属性 特殊命令
语法: chattr –i filename
3、文件搜索命令
1、find -- 查找文件或目录
语法:find [搜索路径][搜索关键字]
# find /test/ //如果省略了搜索关键词,则会搜索/test/下的所有文件和递归子目录的所有内容。(这样很占用资源)
#例:在/etc下
# find /etc -name init //查找名为init的文件或目录
# find /etc -name init* //查找名称以init开头的文件或目录
# find /etc -size +204800 //在根目录下查找大于100MB的文件
# find / -user zhangsan //在根目录下查找所有者为zhangsan的文件
# find / -mtime -1 #查找在系统中最后24小时里修改过的文件
常用关键字:
-name 文件名 有两个通配符:*匹配任意字符,?匹配一个字符
-name init*
-name init???
-size 文件大小(单位:数据块block;1block=512字节=0.5KB , 1M=1024KB = 2048block)
大于 + 小于 - (等于,直接写数字, 如 find /etc -size 10240 不常用)
-type 按文件类型 f 二进制文件 l 软链接文件 d目录
-user 所有者 (hehe , root, 等 用户)
-group 所属组
-ctime(创建日期、属性被修改日期) -atime(访问日期) mtime(修改日期,内容被修改) --以天为单位
-cmin() -amin() -mmin() --以分钟为单位
在时间之内 - 超过时间 +
1、连接符:-a 逻辑与(and) -o 逻辑或(or)
2、连接符: find ...-exec (或者 -ok 会有一个询问过程) 命令 {} \; 这里的{} 表示find 查询的结果,\ 斜杠表示转义符 ;分号为结束符
find /etc -name inittab -exec ls -l {} \;
-rw-r--r-- 1 root root 1666 07-03 22:24 /etc/inittab
2、locate -- 在文件资料库中查找文件或目录
语法:locate [搜索关键字]
# locate file //列出所有跟file相关的文件
# locate services
此查询对于新创建的文件或目录查找不到,经常与updatedb命令联合使用
# touch /test/locate_file //创建一个locate_file的文件
# locate locate_file //查找此文件 结果为 没有找到
如果我们 创建完一个文件后,先用updatedb更新一下,就能找到
# updatedb //更新系统数据库
# locate locate_file //这是找到了
3、updatedb -- 建立整个系统目录文件的数据库
语法:updatedb
执行权限:root
# updatedb //更新 系统数据库(也就是整个系统的情况)
4、grep -- 在文件内容中搜寻字符串匹配的行并输出
语法:grep [-i -v][指定字串][源文件]
-i 不区分大小写 -v 排除指定字符串
# grep ftp /etc/services //输出services文件中关于ftp的内容
# grep myslq /root/install.log // 查找安装日志中关于mysql的内容
5、whereis -- 除了显示命令所在目录,还显示出帮助文档所在位置:
语法:whereis [命令名称]
# which ls //返回 /bin/ls
# whereis ls //返回 /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz
4 压缩解压命令
1、tar -- 把一个目录打包成并压缩成 .tar.gz格式的压缩文件。 或者解压一个 .tar.gz的文件
用于压缩时:
语法:tar [-zcvf][新名].tar.gz [源目录]
-z 打包同时压缩
-c 产生.tar打包文件(压缩时必须用)
-v 显示详细信息(可以省略)
-f 指定压缩后的文件名
# tar –zcvf aitifen3-0501.tar.gz aitifen3 // 将目录aitifen3 压缩成.tar.gz格式的文件
# tar -zcvf testfile.tar.gz testfile //将文件testfile打包并压缩成test.tar.gz格式的文件
# tar -cvf newdir2.tar newdir2 //将目录newdir2打包(.tar)
用于解压时:
语法:tar [-zxvf] xxxx.tar.gz [-C 释放目录 默认为当前目录]
-z 解压缩
-x 解包.tar文件(解压时必须用)
-v 显示详细信息(可以省略)
-f 指定解压文件
# tar –zxvf aitifen3-0501.tar.gz //将此压缩文件解压到当前目录下
# tar -zxvf dir1.tar.gz -C ceshi_test/ //把文件解压到当前目录下的 ceshi_test目录下
# gunzip newdir3.tar.gz //先从压缩文件中把包解压出来 newdir3.tar
# tar -xf newdir3.tar // 再把包再次解压出最终目录
排除某个文件或记录
tar -zcvf vymeet.tar.gz ./vymeet --exclude=file1 --exclude=dir1
2、gzip -- 把文件压缩成.gz格式的文件(GNU zip)
语法:gzip 选项[文件]
特点:1、只能压缩文件不能压缩目录; 2、不保留源文件
# gzip file1 //把文件file1压缩成file1.gz的压缩文件
# gzip newfile //把文件压缩成newfile.gz
3、gunzip -- 解压缩.gz格式的压缩文件(GNU unzip)
语法:gunzip 选项[解压的文件]
# gunzip file1.gz //把压缩文件file1.gz解压出来
# gunzip /test/newfile.gz //把test目录下的压缩文件解压出来
4、zip -- 压缩文件或目录,压缩成.zip (默认windows和linux通用格式)
语法:zip 选项[-r(目录用之)] [压缩后文件名称] [原文件或目录]
特点,1、文件和目录都可以压缩;2、压缩后源文件还保留
# zip services.zip /etc/services
# zip newfile3.zip newfile3 //将文件newfile3 压缩成newfile3.zip
# zip -r newdir3.zip newdir3 //将目录newdir3 压缩成newdir3.zip
5、unzip -- 解压.zip格式的压缩文件
语法:unzip [压缩文件]
# unzip test.zip
# unzip newfile2.zip // 解压压缩文件newfile3.zip
# unzip newdir3.zip // 解压压缩目录newdir3.zip
6、bzip2 -- 把文件压缩成.bz2格式的文件(压缩率很高,gzip的升级)
语法:bzip2 选项[-k(压缩后保留源文件)] [文件]
特点:1、只能压缩文件,不能压缩目录; 2、可以通过-k来保留原文件
# bzip2 -k file1 //压缩这个文件并保留源文件
7、bunzip2 -- 解压.bz2格式的压缩文件
语法:bunzip2 选项[-k(解压后保留源文件)] [文件]
# bunzip2 -k file1.bz2 //解压这个文件,并保留源文件
5 帮助命令
1、man -- 获取帮助信息(manual)
语法:man [命令或配置文件] [| more 可以分页显示信息]
# man ls //查看ls命令的帮助信息
# man ls | more //分页查看ls命令的帮助信息
# man services //查看配置文件services的帮助信息
# man date // 查看date命令的用法
[q]键退出
2、help -- 获得shell内置命令的帮助信息
语法: 命令 --help
# ls --help 查看 ls
# help shell内置命令
3、info -- 获取帮助信息(information)
语法:info [任何关键字]
# info ls //查看ls命令的帮助信息
4、whatis -- 获取索引的简短说明信息
语法:whatis apropos [任何关键字]
# whatis ls
# apropos fstab //相当于 man -k
# makewhatis //建立whatis和apropos搜索使用的数据库,当使用这两个命令发生错误时,就是 whatis database没有建立
5、which -- 打印命令所在目录
语法:which 命令名
# which touch => /bin/touch
# which yum => /usr/bin/yum
# which shutdown => /sbin/shutdown:4.6 vim常用命令
6、磁盘管理命令
1、df -- 查看磁盘空间使用情况
用于查看挂载磁盘的总容量、使用容量、剩余总容量等,不加任何参数默认为KB为单位显示。
参数 : -i 查看inodes的使用情况
- h 表示以合适的单位显示,如 GB
- k 或 -m 表示以 Kb 或Mb为单位显示
-all 查看全部
2、top -- 查看CPU占用情况
三、Vim常用命令
vim 一般分三种模式『一般模式』、『编辑模式』与『命令行模式』
1、一般模式下常用命令
初始打开文件的模式就是一般模式,主要用于对文档进行查看、复制、粘贴、删除等操作。但是不能写入新内容
(1):set nu 显示行号 :set nu! 取消行号
(2):100 光标移动到100行
30 直接回车 ,向下移动30行
(3)上下翻一页
[Ctrl] + [f] -- 『向下』移动一页,相当于 [Page Down]按键
[Ctrl] + [b] -- 『向上』移动一页,相当于 [Page Up] 按键
(4)上下翻半页
[Ctrl] + [d] -- 屏幕『向下』移动半页
[Ctrl] + [u] -- 屏幕『向上』移动半页
:w -- 保存修改过的文件(常用)
:q! -- 不保存修改的文档
:wq -- 保存文件后离开,若为:wq! 则问强制储存后离开(常用)
:w! -- 如文件属性为只读,强制写入该文件,当然,还与权限有关。
(5)查找替换类
/word -- 向光标之下寻找一个名称为 word 的字符串(常用)
?word -- 向光标之上寻找一个名称为 word 的字符串(常用)
删除类:
X -- 为向前删除一个字符(相当于[backspace]退格键)
x -- 为向后删除一个字符(相当于[del]按键)
dd -- 删除(剪切)光标所在行一整行(常用)
8dd -- 删除(剪切)光标所在行向下8行--(常用)
复制、粘贴类:
yy -- 复制光标所在的这一行(常用)
P(大写) – 将复制的内容粘贴到光标所在的这一行!(常用)
nyy -- 复制光标所在的向下n列(常用)
p -- 为将已复制的数据在光标下一行粘贴,
yG -- 复制光标所在列到最后一列的所有数据(常用)
y1G -- 复制光标所在列到第一列的所有数据
y0 -- 复制光标所在的那个字符到该行行首的所有数据:
y$ -- 复制光标所在的那个字符到该行行尾的所有数据
n -- 代表『重复前一个搜索的动作』搜索指定字符串的下一个出现位置。
N -- 代表『重复前一个搜索的动作』,『反向』进行前一个搜索动作
:%s/old/new/g -- 全文替换指定字符串(常用)
:n1,n2s/old/new/g -- 在第n1与n2行之间将old取代为new(常用)
2、编辑模式下常用命令
一般模式下按 i 或 o 或 a 任意键进入『编辑模式』 模式:在一般模式中可以进行删除、复制、粘贴等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任一键后进入编辑模式(也叫插入模式)。画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时按下『Esc』键即可
可用操作:
i – 在光标所在字符前插入
a – 在光标所在字符后插入
o – 在光标所在行下一行插入新行
I – 在光标所在行行首插入
A – 在光标所在行行尾插入
O – 在光标上所在行上一行插入新行
[Esc] -- 退出编辑模式,回到一般模式中(常用)
3、命令行模式
一般模式下按 : 或 / 或 ?o任意键进入『命令行模式』 模式在这个模式当中, 可以提供你『搜索资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的
可用操作:
:w -- 保存修改过的文件(常用)
:q! -- 不保存修改的文档
:wq -- 保存文件后离开,若为:wq! 则问强制储存后离开(常用)
:w! -- 如文件属性为只读,强制写入该文件,当然,还与权限有关。
:n1,n2 w [filename] -- 将 n1 到 n2 的内容储存成 filename 这个档案。
:w [filename] -- 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] -- 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到光标所在行后面
:! command -- 暂时离开 vi 到命令行模式下执行 command 的显示结果!
:set nu -- 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu -- 与 set nu 相反,为取消行号!
:map ^P I#<ESC>
:n1,n2s/^/#/g -- 连续添加注释
:n1,n2s/^#//g -- 连续删除注释
:n1,n2s/^/\/\//g
四、LNMP常用命令
1、Nginx常用命令
重启命令:
//如果设置启动脚本,并且通过chkconfig --add nginx 加到service服务后,可以通过一下命令重启
# service nginx start (systemctl start nginx.service)
# service nginx stop (systemctl stop nginx.service)
# service nginx restart (systemctl restart nginx.service)
# service nginx status (systemctl status nginx.service)
或者也可以使用:
# /etc/init.d/nginx start
# /etc/init.d/nginx stop
# /etc/init.d/nginx restart
# /etc/init.d/nginx status
初始安装后没有加载环境变量前只能使用
# /usr/local/nginx/sbin/nginx 来启动服务
# /usr/local/nginx/sbin/nginx -s stop 停止服务
# /usr/local/nginx/sbin/nginx -s reload 平滑重启(必须在开启的状态下才可以)
# /usr/local/nginx/sbin/nginx -t 查看nginx配置是否正确
//设置环境变量后,直接通过
# nginx 来代替上面的 /usr/local/nginx/sbin/nginx 即可
常用网络命令
# netstat -tlnp //查看端口,仅显示服务中的
# netstat -antup //查看所有端口
# netstat -antup|grep nginx //查看nginx端口
# ps aux //查看所有进程
# ps aux | grep nginx //查看nginx的进程
# kill 3228 //杀死进程平滑停止 3228为nginx主进程的PID(可以通过ps aux | grep nginx 命令查看,第一条master对应的是)
或 killall nginx //杀死进程平滑停止
2、MySQ常用命令
#
# /etc/init.d/mysqld
Usage: mysqld {start|stop|restart|reload|force-reload|status} [ MySQL server options ]
# /etc/init.d/mysqld start //开启
# /etc/init.d/mysqld stop //停止
# /etc/init.d/mysqld restart //重启(强制重启)
# /etc/init.d/mysqld reload //平滑重启(在开启的状态下)
# /etc/init.d/mysqld status //查看状态
加入环境变量以后可以使用
# service mysqld {start|stop|restart|reload|force-reload|status}
或者
# systemctl {start|stop|restart|reload|force-reload|status} mysqld.service
# netstat -tlnp //查看所有端口号
# ps aux | grep mysqld //查看进程
# kill 9203 //通过杀死进程结束mysql
操作常用命令
# 本地连接数据库
# mysql -u root -p
Enter password:
也可以直接写成
# mysql -uroot -p'niu123456'
# 远程连接数据库(如在118.24.241.124上连接106.12.2.195上的)
# mysql -u root -p -h106.12.2.195 -P3306 //-h用于指定登录主机的IP地址,-P(大写)用于指定远程主机的端口
Enter password:
mysql> show databases; //显示所有数据库
mysql> use mysql; //选择mysql数据库
mysql> show tables; //显示当前mysql数据库中的所有数据表
mysql> desc user; //显示user表的所有字段
mysql> show create table user\G; //显示user表的建表语句
mysql> show create database mysql\G; //显示mysql数据库的建库语句
mysql> select version(); //查看当前数据库的版本
mysql> select user(); //查看当前是哪个用户
mysql> select database(); //查看当前是哪个数据库
mysql> show status; //查看mysql当前状态
mysql> show variables; //查看mysql的参数
mysql> show variables like '%dir';
mysql> show processlist; //查看当前mysql服务器的队列
mysql> grant all on *.* to niuxitong identified by 'niu123456'; //创建一个普通用户niuxitong *.* 前一个*表示所有数据库 ,后一个*表示所有表 密码用单引号括起来
mysqldump -u root -p 'niu123456' mysql > /mydata/databack/mysql-001.sql; //为名为mysql的数据库做备份。导出sql文件保存到/mydata/databack/mysql-001.sql文件中
mysql -u root -p 'niu123456' mysql < /mydata/databack/mysql-001.sql; 还原数据库
3、PHP常用命令
重启命令
/etc/init.d/php-fpm start 开启服务
/etc/init.d/php-fpm stop 停止服务
/etc/init.d/php-fpm status 查看状态
/etc/init.d/php-fpm restart 重启服务
/etc/init.d/php-fpm reload 平滑重启
加入系统服务以后可以使用
service php-fpm start/stop/status/restart/reload
安装路径
# netstat -ntpl 查看9000端口是否开启(PHP使用的是9000端口)
/etc/init.d/php-fpm php启动文件
/usr/local/php PHP安装目录
/usr/local/php/bin/ 可执行目录
/etc/php.ini PHP配置文件
五、系统管理命令
1、系统状态监控(查看)命令
1、w 命令查看当前系统负载情况
从左往右依次是:当前时间、系统运行时间、登录用户、平均负载
load average:0.00, 0.01, 0.05依次表示1分钟、5分钟、15分钟内的负载值。
值越大说明服务器压力越大,一般第一个值只要不超过服务器CPU数量就没关系
2、查看cup个数命令
# cat /proc/cpuinfo 显示cpu详细
# cat /proc/cpuinfo | grep -c "process" 显示cup个数(逻辑个数也就是几核)
# cat /proc/cpuinfo | grep "physical id" | sort | uniq|wc -l 查看物理个数。
3、vmstat 监控系统的状态。
(1)procs 显示进程的相关信息
r(run) 表示运行或等待,CPU的进程数,该值如果长期大于CPU个数,说明CPU资源不足
b(block)等待资源的进程数,指的是I/O,内存等 。该数如果长时间大于1 ,就需要关注一下。
(2)memory 显示内存的相关信息
swpd:表示切换到交换区中的内存数量,单位为KB
free:表示当前空闲的内存数量单位为KB
buff:表示(即将写入磁盘的)缓冲大小
cache:表示(从磁盘中读取的)缓存大小
(3)swap 显示内存的交换情况
si:表示由交换区写入内存的数据量
so:表示由内存写入交换区的数据量
(4)io 显示磁盘的使用情况
bi:表示从块设备读取数据的量(读磁盘)
bo:表示从块设备写入数据的量 (写磁盘)
(5)system 显示采集间隔内发生的中断次数
in:表示在某一时间间隔内观测到的每秒设备的中断次数
cs:每秒产生的上下文切换次数
(6)cpu 显示CPU的使用状态
us:显示用户下所花费cpu的时间百分比
sy:显示系统花费cpu的时间百分比
id:表示cpu处于空闲状态的时间百分比
wa:表示I/O等待所占cpu的时间百分比
st:表示被偷走的cpu所占百分比 (一般都为0,不用关注)
4、top 显示进程所占的系统资源
可以清晰的显示系统负载(load average)、进程数(Tasks)、内存(swap)等
可以很清晰的查看哪些进程占用CPU的情况(如MySQL、nginx、php-fpm)从而可以知道网站到底哪里占cup大
5、sart 监控系统状态
最后一行代表平均值
# sar -n DEV 查看网卡流量
常用参数:
rxpck:表示每秒进入收取的包数 ()
txpck :表示每秒发出去的包数
rxkB: 表示每秒收取的数据量
txkB: 表示每秒发送的数据量
如果某一天网站丢包严重,就可以用此命令查看 , 如果rxpck大于4000 或者 rxkB大于5000000 表示服务器很可能收到攻击。
# sar -n DEV 1 5 实时监控流量
# sar -n DEV -f /var/log/sa/sa25 查看25号的流量信息
# sar -q 查看历史负载
6、nload 查看网卡流量
Incoming 进入网卡的流量 Outgoing 出网卡的流量
7、free 查看内存使用情况
8、ps 命令查看系统进程
# ps aux | grep -c redis 表示查看redis的进程情况
9、netstat 查看网络状况
# netstat -an | grep 80 查看当前连接web服务的有哪些IP
2、抓包工具(命令)
1、tcpdump
# tcpdump 命令会不停的刷屏,越快说明网卡上的数据包越多。
# tcpdump -nn -i eth0 表示查看网卡eth0 上的数据包
# tcpdump -nn -i eth0 prot 80 只抓取80端口的数据包
2、wireshark
# yum -y install wireshark 默认没安装,需要安装
3、网络相关命令
1、ifconfig 查看网络ip
2、查看防火墙状态命令
方法一:
# firewall-cmd --state
出现not running 说明防火墙已经关闭
方法二:
# systemctl status firewalld
或者:
# systemctl status firewalld.service
出现dead状态,即防火墙未开启。
3、开启防护墙命令
# systemctl start firewalld.service
或者
# systemctl start firewalld
4、关闭防火墙命令
方法一:
# systemctl stop firewalld.service
方法二:
# vim /etc/sysconfig/selinux
把 SELINUX = enforcing 的值修改为 SELINUX= disabled
# systemctl stop firewalld.service
方法三:永久关闭
# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0
出现 setenforce: SELinux is disabled 永久关闭
还不放心,再执行下面两个命令
# systemctl stop firewalld.service //停止firewall
# systemctl disable firewalld.service //禁止firewall开机启动
5、查看所有端口命令
# netstat -nlpt
6、开发指定端口号
先开启防火墙
# firewall-cmd --permanent --zone=public --add-port=3306/tcp
再关闭防火墙
4、磁盘管理命令
1、df 查看已挂载的磁盘容量、使用情况等
2、du 查看某个目录或文件占用空间大小
# du -s /home/wwwroot/qinser