基础篇二---基本命令总结

一、查看系统指标的一些命令

uname   -r ,查看系统内核版本(内核是哪一个版本的,如)

cat  /etc/issue :查看操作系统版本信息(是centos或者redhat的哪一个版本,如);

ps  -ef       查看服务器当前进程,仅查看进程是否存活   

ps  aux    查看服务器进程,显示每一个进程占用的cpu、内存、状态(stat)、开始时间等信息

kill  -9   UID  杀掉进程

top   查看服务器进程及各个进程消耗资源情况

more    /etc/services  查看系统的默认端口号

pwd      查看当前路径

uptime   查看系统负载,5,10,15分钟内等待CPU处理的进程数量

iostat 2 3   每隔2秒刷新显示cpu、磁盘io状态,一共显示3次

vmstat 2 3  查看服务器的CPU、内存、虚拟内存、io使用情况

init   [level]   切换运行级别,例:init N 切换为N级别    PS:2、3、4、5为用户模式,可以用runlevel查看当前系统运行级别;

setup  设置公用程序

history   显示历史执行过的命令,一般和|grep一起使用,此时!N即执行第N条历史命令;

gentenforce:显示seselinux的状态, vim /etc/selinux/config   SELINUX=enforcing <==调整 enforcing|disabled|permissive

which  [命令]: 查看此命令是否存在,在哪个位置;

date   查看日期,例:date -d  "yeterday" +%Y-%m-%d ,查看昨天是几号,以“%Y-%m-%d”格式显示出来;

cal:显示日历

echo $?    检查上一条命令是否执行成功(0为成功,1为失败)

echo $PATH  输出PATH变量值;PATH可以换成其他所有的变量名

source [文件名]     让系统重新加载此文件; 或者使用 . [文件名] 命令;

>覆盖重定向,文件内容会被覆盖,>>追加重定向,追加到文件的最后一行,|命令连接符

w     查看系统登录用户情况

last  查看系统最近登录的用户

useradd  [用户名]   创建用户,/etc/passwd文件保存所有的用户信息,此文件只有root有权限修改;

passwd  [用户名]    设置用户密码(设置root密码,只需执行passwd命令即可重新设置密码)

groupadd [用户组名]   创建用户组;

groupadd   –r  [用户组名]   创建系统用户组;不加r则创建普通用户组;useradd也一样

useradd  [用户名]  -g  [用户组]   -s  /bin/nologin :创建用户并指定组,且设置此用户不可登录(不加-s则默认可登录);

id  [用户名]      查看用户信息及是否存在

userdel  -r   [用户名]   删除用户且删除其家目录

二、查看网络的一些命令

/etc/sysconfig/network-scripts/   网卡文件所在位置

curl  [web域名]   web测试工具,用法示例:curl  http://192.168.3.3 或者 curl  -sI   http:192.168.3.3-->返回请求网页的请求头

ping [主机名或IP]   确定网络和各外部主机的状态,测试、评估和管理网络,命令每秒发送一个数据报并且为每个接收到的响应打印一行输出;

iftop    查看各进程的流量使用情况

telnet  ip 或域名 PORT   查看远程主机指定端口是否处于监听,例:telnet  www.baidu.com 80查看www.baidu.com的80端口是否处于监听;

ifconfig  eth0  down    关闭网卡;

ifconfig  eth0  up   启动网卡;

route   -n   显示系统当前路由(网关、子网掩码等)信息

vim    /etc/resolv.conf    在其中可以以“nameserver    IP”格式指定本机可使用的dns服务器,这个也是dns的配置文件;

/etc/hosts    系统默认dns解析文件,可以新增“ip  域名”来实现本机访问该域名时首先解析到该IP

/etc/hosts.allow    加入此文件的IP可以远程连接本机;

/etc/hosts.deny    加入此文件的IP不可以远程连接本机;

dig  [域名]   查看某域名的解析过程;例:dig  www.baidu.com-- –>查询百度的域名解析过程;

mtr  -r  IP    判断向某IP的丢包情况

traceroute   -q   3  www.baidu.com   探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;

tcpdump     抓包命令,可监视指定指定网络(-i   eth1,即eth1网卡)指定主机(host  192.168.1.102,即主机)、指定端口和指定网络或者指定协议的数据;

                   例:tupdump  host 192.168.3.3 and  \ (210.27.48.2 or 210.27.48.3\),截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信

                         tcpdump -i eth0 src host hostnam  截获主机hostname发送的所有数据

                         tcpdump -i eth0 dst host hostname 截获主机hostname接收的所有数据

          备注:在win下的wireshark命令,用于抓取数据包

三、磁盘管理的一些命令

df  -h   查看分区挂载情况及使用的情况

df  -i    查看分区inode节点使用情况,若节点使用完,则即使磁盘仍有空间但无法写入文件or目录;

lsblk   查看光盘(sr0)和磁盘(sda、sdb、、)的分区挂载情况,会显示所有的新磁盘及分区情况

blkid   查看磁盘分区的格式化情况(即查看每个分区的UUID和文件系统ext4或者swap)

fdisk [磁盘名]  给某磁盘进行分区,p查看已有分区,n新增分区(加G方式,一般不用加扇区),w保存退出

mkfs.ext4    dev/sdb1:格式化sdb1分区(完成后,一般再blkid查看一下分区的格式化情况)

vim   /etc/fstab 在此文件中添加磁盘分区,则为永久挂载为启动时自动加载的文件(之后再需要mount -a 进行刷新,然后再df  -h查看分区挂载情况)

PS:swap一般为内存大小的两倍;

四、文件管理的一些命令

ls  查看目录下的文件

ll   查看目录下文件的基本信息

mv    File1    /PATH/File2   把文件File1改名为File2,并移动到/PATH下

mv    File1    /PATH/    把文件File1移动到/PATH下

mv   /TEST/    /PATH/   :把文件夹/TEST/移动到文件夹/PATH/下

cp    File1    /PATH/File2   把文件file拷贝到file2中,若没有file2则新建file2;会询问是否覆盖,y,则直接覆盖,n,则不执行此次移动操作;

cp    File1    /PATH/    把文件File1拷贝到目录下;

cp    File1  File2   /PATH/  把多个文件拷贝到/PATH/下;此时必须拷贝到目录下;

cp    /PATH/   -r    /PATH/TEST:把/PATH/及以下所有目录,递归复制到/PATH/TEST下,若TEST不存在,则新建TEST;若为文件则报错;注意这里要加-r

rmdir  -p    递归删除空目录;若目录非空则报错

rm   -r   /TEST  递归删除TEST目录下的各目录及文件,会询问是否删除,y则删除,n则不删除;

mkdir  -p   aa/bb/cc :创建各级目录(不报不存在,直接创建);

mkdir   test :创建目录;

touch  File:创建文件;

chmod  +rwx  test   给所有用户加"读\写\执行"权限

chmod  a+x  test    给all

chmod  o+x  test    给others

chmod  u+x  test    或者 chmod  g+x  test  给属主或者属组

chmod  -R    777    /PATH/ 给目录递归加全部权限;

chattr    +i     test    给文件or文件夹赋予不可编辑的权限(不可vim或者touch新文件)

lsattr     -d     aa     查看aa目录有无i权限

chown  newuser:newgrowp  file   改变文件的用户和属组

chown  –R  newuser:newgrowp   /PATH/   改变目录的用户和属组

du  -sh   [文件或者目录]    查看文件或目录的大小;不指定则查看当前目录的大小;

du  –sh   --max-depth=1    查看该目录下所有直属文件夹的大小

tree   [目录]    查看目录结构,不跟对象则查看当前目录树

gzip   test.txt  > /PATH/test.txt.gz   将文件test.txt压缩/PATH目录下的test.txt.gz,原文件则不再存在;若要保留源文件,则 gzip   -c   test.txt   > /PATH/test.txt.gz

gunzip   test.txt.gz  >   /PATH/test.txt   将文件test.txt.gz解压为test.txt,原文件不再存在;若要保留原文件,则 gunzip  -c test.txt.gz  > /PATH/test.txt 

zip    /PATH/bb.zip   bb 压缩bb为/PATH/bb.zip

unzip   bb.zip 或者 unzip   bb.zip   -d   /PATH  解压到当前目录下或者指定目录下

tar  -zcvf   /tmp/etc.zip   /etc  将/etc下的文件全部打包为/tmp/etc.zip(格式为zip)

PS:不加-v则不显示压缩的文件,加v则显示压缩的文件;另外,若被压缩的文件使用绝对路径,则解压后,路径也都解压到当前目录下,文件在当前目录下的当前路径下;在当前路径下,压缩绝对路径文件,加-C则只压缩文件;

tar -jcvf    /tmp/etc.bz2  /etc  将/etc下的文件全部打包为/tmp/etc.bz2(格式为bz2)

tar -xvf    /tmp/etc.tar.gz   -C   /usr/local/rsc    将/tmp/etc.tar.gz解压到/usr/local/rsc目录下,此时必须加-C,否则报错;(解压到哪个目录,一般就先切换到该目录下,若要解压到/usr/local/src下,则先cd /usr/local/src,再进行解压)

find   /root   -name   File:搜索家目录下的某文件,要知道目录下有没有此文件时用此命令;

ln  -s  filename   linkname  建立软件连,一般是对目录建立,可以跨分区;例如:当前在家目录下,ln  -s   /root/httpd-2.3   /dirtest/httptest  可以看出在建立软连接时,不论为哪个路径的文件建立在哪个路径下的链接,均指定绝对路径即可,一般的,先进入目录

echo   test  >  bb   把test字符串追加到bb文件中,原文件中的内容全部删除;

echo test   >>  bb  把test字符串追加到bb文件中,写在最后一行,不删除原文的内容;

cat   bb:查看bb文件内容,只查看,不可编辑;

cat  >  /opt/server/nginx/vhosts/fengkong.conf  << EOF     ----创建文件fengkong.conf

           log_format fengkong.wanglibao.com                                     ----这里开始为文件输入内容

          server {

                        listen       80;

                        server_name fengkong.wanglibao.com;

                       }

           EOF                                                                                     ----- 为文件fengkong.conf输入内容结束

cut  -d:   -f  n  截取文件中的行并显示,这里以域来划分;例:cat /etc/passwd|head -n 5|cut -d : -f 1  -d来设置间隔符为冒号,然后用-f来设置我要取的是第一个域,

vim非编辑状态下的各命令

        u:按一下恢复到上一次修改状态;q不保存退出,q!不保存强制退出;wq保存退出,wq!保存并强制退出;x!保存并强制退出;/  搜索内容 ,定位搜索出指定内容;

        %s/字符串1/字符串2/g:当前所有“字符串1”替换为“字符串2”;s/字符串1/字符串2/g:当前行所有“字符串1”替换为“字符串2”;

        行前加#,注释掉该行;

wc  -l  bb   统计bb文件中有多少行,例:ls | wc -l  统计ls显示的内容有多少行

head   查看文件的前多少行,例:head -N bb 查看bb文件的前多少行;

tail     查看文件后多少行,例:tail   -f  -N   bb 查看bb文件最后N行且动态显示,例如: tail  -f  -200 bb.log

more   分页查看文件,按enter键进行切屏,例:ls   /etc |more 分屏查看;

sz     将选定的文件传送(send)到本地机器,命令格式:sz   filename

rz      运行该命令会弹出一个文件选择窗口,从本地选择文件上传到linux服务器,从弹出的窗口中选择文件,上传文件的用户和组为当前登录的;

五、查看服务的一些通用命令

lsof   -i:PORT   查看端口占用情况

netstat    -ntlup     查看端口及使用情况(t表示tcp协议的,u表示udp协议,可以自行添加)

./ab  -n  3000 -c 30000   http://www.test.com/    (其中-n代表每次并发量,-c代表总共发送的数量)ab命令放在apache目录bin目录下面,测试apache的web服务器的性能测试工具,每秒钟处理的http请求

chkconfig  --add  httpd 加入httpd到开机自启列表

chkconfig  httpd  on/off  设置httpd服务开启启动或关闭

chkconfig   --list |grep httpd  查看httpd服务是否开机启动  一般的,某种重要服务在搭建完成后均需要设置为开启启动;

vim  /etc/rc.local时,在其中可以设置某服务为开机自启;

alias:此命令用来定义命令别名;

crontab  -e   编辑新的计划任务(计划任务由crond服务来提供控制,若该服务没启动(其是开机启动,可通过ps -ef |grep crond查看),则计划任务不执行)

crontab  -l   列示现在所有计划任务 (/var/spool/cron/root ,root用户创建的计划任务都在这里)

计划任务格式::分  时 日 月 周 命令

2 * * * * ,每2分钟执行一次;

2 02 * * * ,每天凌晨2点2分执行一次命令命令;

2 02 02 * * ,每月2号凌晨2点执行一次命令;

2 02 02 02 *,每年2月的2号的凌晨2点零2分执行一次命令;

2 02 * *  0,每周的凌晨2点零2分执行一次命令;

*/2 02 * * 2,4,6,每周的2、4、6的凌晨2点开始每隔2分钟执行一次命令;

       示例1:* * * * 2,4,6  tar  -jcvf   /logs/messages-$(date +%y%m%d).tar.bz2    /var/log/message    每周的2、4、6备份var下面的文件到logs,命名为“messages-yyyymmdd”;

       示例2:*/9 * * * * wget -O -q  http://www.baidu.com/common/logo.sh|sh     每隔9分钟下载执行脚本文件logo.sh

       示例3:30 01 * * * /bin/bash  /usr/local/databack.sh     每天1点半执行数据库备份脚本;

yum whatprovides  *bin/rz

yum  –y  install  rz  lrzsz-0.12.20-27.1.el6.x86_64

yum -y install [应用名称]      yum安装应用;

yum remove [应用名]           yum卸载应用;---->应用安装的所有依赖文件(别的应用也依赖的则不卸载)全部卸载;

yum  list  [服务名]                列示某服务的yum包

PS:配置yum源:安装base源和epel源;另外,在yum   makecache 之前一般执行以下yum  clean all 操作,因为只要有过yum命令,就会有缓存在,否则容易报错url=  404;

rpm  -ivh   *.rpm     安装rpm应用包;

rpm  -Uvh   url.*rpm   升级一个包;

rpm  -e        proftpd-1.1.2.3   卸载rpm应用 --->仅卸载rpm安装时的文件;

rpm  -qa      proftpd    查看proftpd是否安装,会列示出安装的版本;装过之后看一下有没有装上;

rpm  -ql       proftpd    列示proftpd应用的文件及安装位置,这个很有用,看一下具体的文件位置在什么地方;

PS:man  [命令],查看命令的帮助文件;源码包:tar.gz,解压后需要变异,然后马make&&make install;rpm包,里面默认了很多默认项,直接rpm进行安装,各目录放在默认目录下;

六、数据库管理的一些命令

(1)基本命令

show databases  查看库

use  [库名]     使用或者进入某库

start slaves  启动从

stop  slaves  停止从

change  master to master_host='10.251.1.105',master_port=3306,master_user='rep',master_password='h47Ny0GR3A',master_log_file='mysql-bin.000137',master_log_pos=38544288    在从上重新定向主;

show slave status\G 

show master status

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1   让从库跳出当前事务,去执行下一个event

drop database  [库名]   删除库;

create database [库名]  增加库;

alter table table_name rename table_new_name   改表名

show processlist  显示当前运行线程

select  host,user from mysql.user   查询表的host,user字段

grant all privileges on oil.* to 'oil'@'220.181.134.224' identified by '123456' 授权用户oil,赋予oil库所有表的所有权限

grant select on  oil.* to 'oil'@'%' identified by '123456' 授权用户oil,可在所有IP上登录,赋予oil库所有表的读权限

revoke select,insert,update,delete on 数据库名.* from '用户名'@'IP'  identified by "密码"    移除用户的读,改,删除权限;

create user 'test'@'127.10.0.1' identified by '123456'  创建test用户

flush privileges  刷新状态,立即生效

show VARIABLES like '%max_allowed_packet%' 查看某参数值

show global variables like '%timeout'   查看某全局参数

set globle wait_timeout=2880000  设置某全局参数

kill  [用户ID号]  踢出某登录用户

show grants 查看所有登录权限

show grants for '用户名'@'ip'  查看某用户的登录权限

update user set password='密码' where user='用户名'    改密码    

update user set password='密码' where host='IP'    改登录时的授权登录IP

drop user '用户名'@'IP地址'   删除用户

(2)备份,导入命令

mysqldump --opt  testdb20160316  -uroot -pIVYFeu4jS9 |gzip > /data0/testdb.gz   导出库并压缩

mysqldump -uroot -pIVYFeu4jS9   --all-databases > /home/sqlfile.sql    导出全部数据库

mysqldump  -uroot  -pIVYFeu4jS9  testdb  special_offer > /root/special_offer.sql   导出表---->注意(1)这里先写库在写表(2)直接导出为.sql结尾的文件

mysqldump  -h127.0.0.1 -uroot  -ppassword   --add-locks  -d  dbname > dbname.sql    加-d,只导出表结构(--add-locks,导出过程中锁定表,导出后解锁)


gunzip  < /data0/mysql/cong1/testdb2016-05-05.gz | mysql -uroot -pIVYFeu4jS9  testdb   导入库 --->注意(1)这里源文件.gz会继续保存(2)只会覆盖原有的表;

#gunzip  /data0/mysql/cong1/testdb2016-05-05.gz
#mysql -uroot -ppassword 
>show databases;
>use testdb;
>source /root/testdb2016-05-05;        
导入库 ----->注意(1)这里是文件,不是压缩文件;(2)只会覆盖有的表,其他的表则保存,不会覆盖;

>exit

mysql -uroot -p123456 --all-databases < /home/sqlfile.sql
#mysql -uroot -ppassword 
>source /home/sqlfile.sql           导入全部数据库
>exit

mysql -uroot -pIVYFeu4jS9  testdb <  /root/special_offer.sql      导入表    ---->注意,这里直接导入到某库里即可;

gunzip   -c   文件名.sql.gz  >  文件名       解压sql.gz文件为指定文件---->注意,加-c则源文件保留,去掉则源文件不保留;

备注:mysqldump 备份后重新导入,不会对备份后的“新增库or表”进行覆盖操作,这跟mysqldump的原理有关,可以看一下导出后的文件;

(3)mysql的恢复还原操作

show    global    variables like 'log_%'        查看binlog是否开启
show   binary   logs         查看binlog日志位置号
mysqlbinlog    -vv  --base64-output=decode-rows   mysql-bin.000110       将binlog日志翻译成sql文件













你可能感兴趣的:(基础)