linux方便文档

#############################最小化安装必备#############################

1.yum -y install vim

2.yum -y install net-tools.x86_64    //没有安装network

3.yum -y install bash-completion    //firewalld  不能补齐

4.yum -y install bc   

 

安装图形界面

yum groupinstall "X Window System"

yum grouplist |grep  -i desktop    //有时要安装desktop 或gnome desktop

yum groupinstall “GNOME Desktop”

startx 进图形

在centos6中vim /etc/inittab

id:3:initdefault:修改为id:5:initdefault:保存文件并重启即可

在centos7中root用户权限下,设置centos系统默认的启动方式:

  1. systemctl set-default multi-user.target   //设置成命令行模式

2 .systemctl set-default graphical.target    //设置成图形模式

 

 

 

 

 

 

########################批量在目录下来替换文本内容#####################

#!bin/bash

a=/data/test/public_www/static/uiqy/cloud_list

b=-1.html

c=/data/test/public_www/static/uiqy/test2/cloud_list

abc=`grep qy.com.cn -rl /data/test`

for x in $abc

do

  if [ "$x" == "$a"  ];then

     continue;

  fi

 

  if [ "$x" == "$b"  ];then

     continue;

  fi

 

  if [ "$x" == "$c"  ];then

     continue;

  fi

sed -i "s#qy.com.cn#ziyun.com#g" $x

done

sed -i "s#qy.com.cn#ziyun.com#g" '/data/test/public_www/static/uiqy/cloud_list -1.html'

sed -i "s#qy.com.cn#ziyun.com#g" '/data/test/public_www/static/uiqy/test2/cloud_list -1.html'

 

#####################批量在目录下少量文本替换#################

sed   -i    ‘s#aa#bb#g’    `grep ‘aa’ -rl /root/ `

 sed   -n    ‘s#aa#bb#g p’    `grep ‘aa’ -rl /root/ `

 

################mysqldump备份压缩############

①用--databases指定多个库导出,用空格分开

mysqldump -uroot -p --databases test1 test2 test3 > /root/test.sql

②导出的时候可以压缩

mysqldump -uroot -p --databases test1 test2 test3| gzip --fast > /root/test.sql.gz

mysqldump -uroot -p --databases test1 test2 test3| gzip --best > /root/test.sql.gz

③导出压缩可以用time计算下时间

time mysqldump -uroot -p --databases test1 test2 test3| gzip --fast > /root/test.sql.gz

time mysqldump -uroot -p --databases test1 test2 test3| gzip --best > /root/test.sql.gz

④用-o代表--one-database 顾名思义指定库导入

mysql -uroot -p test1 -o < /root/test.sql

###############################################################################

 

 

###################不进数据库mysql输命令#############################

mysql -uroot -p‘123456‘ -e "show variables like ‘%character%’"

 

 

 

#############改端口文件rsync文件传输###########

rsync -arvz -e ‘ssh -p 50022’  /root   192.168.99.99:/root

 

 

###################tar打包目录####################

tar -zcvf     打包后生产的文件.tar.gz         要打包的目录 //打包并压缩

tar -cvf      打包后生产的文件.tar       要打包的目录  //打包,不压缩

tar -xvzf      踏包.tar.gz

 

zip   -r   ./xiaoxiao.zip    ./*    -r 表示递归

unzip    解压

 

 

#####################时间更新##########################

*/20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1

 

01 */3 * * * /usr/sbin/ntpdate ntp.fudan.edu.cn >> /dev/null 2>&1

 

 

 

#######################防火墙firewall-cmd############################
1、firewalld的基本使用

启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalld 

开机禁用  : systemctl disable firewalld

开机启用  : systemctl enable firewalld

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

3.配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息:  firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

那怎么开启一个端口呢

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd --reload

查看

firewall-cmd --zone= public --query-port=80/tcp

删除

firewall-cmd --zone= public --remove-port=80/tcp --permanent

 

firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="42.51.41.86"  port protocol="tcp" port="3306" accept'

firewall-cmd --reload

 

firewall-cmd  --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="42.7.27.166" service name="ssh" reject"      //阻止sshd

 

 

###############linux文件备份到window rsync#################################

cd c:/cwRsync_5.5.0_x86_Free\bin

 

xxxxxxxx>rsync.exe -vzrtopg --progress --delete  --password-file=/cygdrive/C/rsync.pass [email protected]::xx  /cygdrive/D/nfsbackup/yy

  注:yy看window目录

linux  插看xx

 rsync --list-only [email protected]::    可以查看xx目录

 

 

 mysqlbinlog --no-defaults /data/mysql/mysql-bin.000015  

 

 

/usr/bin/mysqldump -uroot -p -B -F -R -x --master-data=2 ops

 

-B:指定数据库
-F:刷新日志
-R:备份存储过程等
-x:锁表
--master-data:默认等于1,将dump起始(change master to)binlog点和pos值写到结果中,等于2是将change master to写到结果中并注释。

mysql> show binlog events in 'mysql-bin.000003';

通过分析,造成数据库破坏的pos点区间是介于 875--954 之间(这是按照日志

区间的pos节点算的),只要恢复到875前就可。

 

 

 

#################################################

 

mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名

--------------------------------------------------------
常用参数选项解释:
--start-position=875 起始pos点
--stop-position=954 结束pos点
--start-datetime="2016-9-25 22:01:08" 起始时间点
--stop-datetime="2019-9-25 22:09:46" 结束时间点
--database=zyyshop 指定只恢复zyyshop数据库(一台主机上往往有多个数据库,只限本地log日志)
--------------------------------------------------------
不常用选项:
-u --user=name 连接到远程主机的用户名
-p --password[=name] 连接到远程主机的密码
-h --host=name 从远程主机上获取binlog日志
--read-from-remote-server 从某个MySQL服务器上读取binlog日志

 

 

xtrabackup --user=root --password=123456 --databases="test1 test2 test3" --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup

 

  1.  grep -Ev '^$|^#' zabbix_agentd.conf

 

输出两行echo

echo -e "42.51.41.86  slave86\n 42.51.28.180 slave180" >>/etc/hosts

 

awk -F "[ :]+" 

 

 

使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割

 $ awk -F '[ ,]'  '{print $1,$2,$5}'   log.txt

 

 

 

ps -A 显示进程信息

ps -u root //显示root进程用户信息

ps -ef //显示所有命令,连带命令行

-aux 显示所有包含其他使用者的行程

 

 

###############正则扩展表达式##############################

 .* 任意长度的任意字符

                \? 匹配其前面的字符0或1次

               \+ 匹配其前面的字符至少1次 (非贪婪模式)

               \{n\} 匹配前面的字符n次

               \{m,n\} 匹配前面的字符至少m次,至多n次

               \{,n\} 匹配前面的字符至多n次

                \{n,\} 匹配前面的字符至少n次

 

 

 

 

 

 

###############mysql数据库授权#####################

grant  权限列表  on 库名  to 用户名@”客户端地址“  identified  by ”密码“  whith grant option;

                   权限列表: all   select  update  delete   usage

 

flush privileges;

 

######################安装ab 压力测试##################

yum -y install httpd-tools

 

 

 

##################查看IP访问次数#######################

netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n

 

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

 

 

 

 

 

#############修改时间#################################

  1. 修改时间
    [CentOS6]
    $ vim /etc/sysconfig/clock
       ZONE="Asia/Tokyo"
       UTC=fales
    $ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

    [CentOS7]
    $ timedatectl set-timezone Asia/Tokyo
    $ timedatectl status

 

 

######################开机自启############################

自启动
[CentOS6]
$ chkconfig service_name on/off

[CentOS7]
$ systemctl enable service_name
$ systemctl disable service_name

 

 

 

#################修改内核参数  文件######################

/etc/sysctl.conf文件

 

 

#########检查shell语法格式#############

sh -n httdps.sh

 

 

 

 

 

################一次性创多个目录################

mkdir -pv /var/tmp/nginx18/{proxy,fastcgi,uwsgi,scgi}

 

################显示行号##################

cat -n file(文件)

 

 

##############计划任务10s一次###########################

 

* * * * * sleep 10;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh  &>/dev/null

* * * * * sleep 20;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh  &>/dev/null

* * * * * sleep 30;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh  &>/dev/null

* * * * * sleep 40;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh  &>/dev/null

* * * * * sleep 50;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh  &>/dev/null

 

*/20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1  20分钟

 

#匹配行前加

sed -i '/allow 361way.com/iallow www.361way.com' the.conf.file#匹配行前后

sed -i '/allow 361way.com/aallow www.361way.com' the.conf.file

a = after ,i = in front

 

 

 

添加网关add

route del default gw 192.168.1.1

 

检查数据库代码是否有误#/usr/libexec/mysqld --help --verbose

 

 

 

只查看当前连接数(Threads就是连接数.)

mysqladmin -uroot -proot status

 

show full processlist 看一下所有连接进程,注意查看进程等待时间以及所处状态 是否locked

如果进程过多,就把进程打印下来,然后查看

 

mysql -e 'show full processlist;' > 111

 

查找非locked的进程,一般就是当前执行中卡死,导致后面的进程排队的原因。

 

mysqladmin -u root -proot -h localhost status

这条命令返回MYSQL当前状态的几个值

Uptime: 18869  Threads: 1  Questions: 1  Slow queries: 0  Opens: 33  Flush tables: 1  c: 0  Queries per second avg: 0.000

Uptime:是mysql正常运行的时间。

Threads:指开启的会话数吧。

Questions: 服务器启动以来客户的问题(查询)数目  (应该是只要跟mysql作交互:不管你查询表,还是查询服务器状态都问记一次)。

Slow queries:按字面意思是慢查询的意思,不知道musql认为多久才足够算为长查询,这个先放着。

Opens:服务器已经打开的数据库表的数量

Flush tables: 服务器已经执行的flush ...、refresh和reload命令的数量。

open tables:通过命令是用的数据库的表的数量,以服务器启动开始。

 Queries per second avg:select语句平均查询时间?

 

 

--------------------shell前后插入-----------

#如果知道行号可以用下面的方法

sed -i '88 r b.file' a.file    #在a.txt的第88行插入文件b.txt

awk '1;NR==88{system("cat b.file")}' a.file > a.file

 

#如果不知道行号,可以用正則匹配

sed -i '/regex/ r b.txt' a.txt # regex是正则表达式

awk '/target/{system("cat b.file")}' a.file > c.file

 

#sed的話如果不改变源文件,可以去掉-i开关,修改会输出到STDOUT

 

 

原文件:

[root@xiaowu shell]# cat -n file 

     1  aaaa

     2  bbbb

     3  cccc

     4  dddd

 

现在要在第二行即“bbbb”行的下面添加一行,内容为“xiaowu”

[root@xiaowu shell]# sed '/bbbb/a\xiaowu' file 

aaaa

bbbb

xiaowu

cccc

dddd

 

如果要加两行“xiaowu”可以用一下语句,注意用“\n”换行

[root@xiaowu shell]# sed '/bbbb/a\xiaowu\nxiaowu' file 

aaaa

bbbb

xiaowu

xiaowu

cccc

dddd

 

如果要在第二行即“bbbb”行的上添加一行,内容为“xiaowu”,可以把参数“a”换成“i”

[root@xiaowu shell]# sed '/b/i\xiaowu' file 

aaaa

xiaowu

bbbb

cccc

dddd

 

以上文件中只有一行匹配,如果文件中有两行或者多行匹配,结果有是如何呢?

 

[root@xiaowu shell]# cat -n file 

     1  aaaa

     2  bbbb

     3  cccc

     4  bbbb

     5  dddd

 

[root@xiaowu shell]# sed '/bbbb/a\xiaowu' file 

aaaa

bbbb

xiaowu

cccc

bbbb

xiaowu

dddd

 

由结果可知,每个匹配行的下一行都会被添加“xiaowu”

 

那么如果指向在第二个“bbbb”的下一行添加内容“xiaowu”,该如何操作呢?

可以考虑先获取第二个“bbbb”行的行号,然后根据行号在此行的下一行添加“xiaowu”

 

获取第二个“bbbb”行的行号的方法:

方法一:

[root@xiaowu shell]# cat -n file |grep b |awk '{print $1}'|sed -n "2"p

4

方法二:

[root@xiaowu shell]# sed -n '/bbbb/=' file |sed -n "2"p

4

由结果可知第二个“bbbb”行的行号为4,然后再在第四行的前或后添加相应的内容:

[root@xiaowu shell]# sed -e '4a\xiaowu' file 

aaaa

bbbb

cccc

bbbb

xiaowu

dddd

[root@xiaowu shell]# sed -e '4a\xiaowu\nxiaowu' file 

aaaa

bbbb

cccc

bbbb

xiaowu

xiaowu

dddd

 

向指定行的末尾添加指定内容,比如在“ccccc”行的行尾介绍“ eeeee”

 

[root@xiaowu shell]# cat file

aaaaa

bbbbb

ccccc

ddddd

[root@xiaowu shell]# sed 's/cc.*/& eeeee/g' file

aaaaa

bbbbb

ccccc eeeee

 

################如何让nginx显示文件夹目录############

location / {   
    root /data/www/file   //指定实际目录绝对路径;   
    autoindex on;       //开启目录浏览功能;   
    autoindex_exact_size off;   //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;   
 autoindex_localtime on; //开启以服务器本地时区显示文件修改日期!   
}

 

 

 

########################修改时间############################
timedatectl set-timezone "Asia/Shanghai"

 

yum -y install chrony

vim /etc/chrony.conf

systemctl restart chronyd

systemctl enable chronyd

timedatectl set-ntp true

 firewall-cmd --add-service=ntp --permanent

$ firewall-cmd --reload

 

#########################ssh免密登入########################

ssh-keygen -t rsa

cd .ssh/

ssh-copy-id -i id_rsa.pub   42.51.44.17  -p 50022

 

#######################secureCRT 用lrzsz上传下载################

rz是上传    rz file

sz是下载    sz  file

你可能感兴趣的:(linux方便文档)