linux shell 常用命令

// 为 mysql 设置密码

参考:Linux–忘记MySQL密码的解决方法和输入mysqld_safe –skip-grant-tables &后无法进入MySQL的解决方法_数据库_菜鸟Li-CSDN博客

# 关闭 mysql
systemctl stop mariadb
# 使用命令跳过输入密码过程
mysqld_safe --skip-grant-tables &
# 进入 mysql
mysql
# 进入 mysql 数据库使用语句修改密码
show databases;
user mysql;
update user set password=password("root1234") where user='root'; //修改用户:root的密码成为:root1234
flush privileges//刷新MySQL的系统权限相关表,否则会出现拒绝访问 忘记输入的话重启mysql服务也可以
# 退出并重启 mysql,如果无法重启,则kill pid mysqld 之后再进行重启;

 

// mysql shell 连接,无法查看所有数据库

参考:mysql,本地连接看到的数据库不全,远程连接看到的数据库是完整的 – 全栈测试笔记 – 博客园

# 停止 mysql
systemctl stop mariadb
# 安全模式启动
mysqld_safe --skip-grant-tables &
# 使用 navicat 删除 mysql 表中 host为localhost的记录
# 进入 mysql 插入下面的记录
INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0','0','','');
# 重启mysql,再次进入时就可以查看所有的数据库了

// 远程主机的 mysql 无法远程连接

(2条消息)解决报错:错误1130- Host xxx is not allowed to connect to this MariaDb server_数据库_qq_35396905的博客-CSDN博客

# 确保服务器安全组3306端口已经开放;
有两种解决方法:

1.授权法

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; // %:表示从任何主机连接到mysql服务器

FLUSH   PRIVILEGES;

或者

GRANT ALL PRIVILEGES ON *.* TO 'user'@'116.30.70.187' IDENTIFIED BY 'password' WITH GRANT OPTION;//表示从指定ip从任何主机连接到mysql服务器

FLUSH   PRIVILEGES;

 

2.该表法

 

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入MySQL后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root'  and host='localhost';
mysql>select host, user from user;
然后重启MySQL服务。或再执行 执行一个语句 mysql>FLUSH   PRIVILEGES;使修改生效。

 

1. 
for i in `find . *.php`; do grep "6379" $i; done
for i in `find . *.php`; do grep "6379" $i; echo --------$i; done
当前目录    所有.php结尾的文件 过滤关键字 6379  输出
for i in `ls`; do grep "6379" $i; echo --------$i; done

2. scp linux远程传送文件
scp -r root@192.168.50.13:/var/www/html/* .
scp -r /usr/local/nginx/ root@192.168.50.12:/usr/local/

3. xshell linux 与 win 传递文件 
yum install lrzsz

http://blog.51cto.com/oldboy/588592

4. 查看网关
route -n

5. 查看端口
ss -ntl (centos7 里面的命令)
netstat -ntl (centos6 里面的命令)

6. Discuz 论坛发布目录权限
[root@3021094201c5 html]# chmod o+w config/ data/ uc_* -R

7. 查看防火墙规则
[root@localhost ~]# iptables -L -n

8. 查看内核参数
[root@localhost ~]# sysctl -p

9. 查看 centos 版本
[root@localhost  ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)

10. 查看 DNS
[root@localhost ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.50.254

11. 查看 CPU 
[root@localhost ~]# top # 按数字 1 查看 CPU 个数

12. 查看 内存
[root@localhost ~]# free -m

13. 将前一个命令的结果作为后一个命令的参数执行
[root@iZ2zee5k6k35veifg4kt0dZ wp-includes]# find . -name '*' -type d -exec chmod 755 {} \;
[root@iZ2zee5k6k35veifg4kt0dZ ~]# tailf -n 100 /var/log/nginx/access.log | awk -F: '{print$1}'

14. 命令行查看天气
[root@localhost ~]# curl wttr.in

# 查看网卡启动脚本
bash-4.1# vim /etc/init.d/network

# 生成大文件命令
/dev/zero 空设备,用于写入大的空文件
of=jfedu1.tar.gz 输出称为jfedu1.tar.gz
bs=1M 每次写入的大小
count=10000 总共写入多少次
dd if=/dev/zero of=jfedu1.tar.gz bs=1M count=10000

# 查看文件大小
-bash-4.1# du -sh nginx-1.12.2.tar.gz 
960K nginx-1.12.2.tar.gz

# 永久修改主机名
[root@localhost ~]# hostnamectl set-hostname Linuxidc
[root@localhost ~]# hostnamectl --pretty
Linuxidc
[root@localhost ~]# hostnamectl --static
Linuxidc
[root@localhost ~]# hostnamectl --transient
Linuxidc

# yum 安装卸载软件
yum install 软件名称
yum remove 软件名称

# nmap 扫描局域网ip存活状态;扫描局域网,广域网的端口是否连通,扫描服务器上有哪些软件
[root@1-2 ~]# yum install nmap -y
[root@1-3 ~]# nmap 192.168.1.2

Starting Nmap 6.40 ( http://nmap.org ) at 2018-02-05 18:15 CST
Nmap scan report for 192.168.1.2
Host is up (0.00037s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 00:0C:29:44:81:F1 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 5.57 seconds

完毕!
[root@1-3 ~]# telnet 192.168.1.2 22
Trying 192.168.1.2...
Connected to 192.168.1.2.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1

# 初始化 mysql
mysql_install_db --user=mysql --datadir=/var/lib/mysql/ --basedir=/usr

# 批量停止服务的命令
for i in `ls open* neutron*`;do systemctl stop $i;done

# 安装扩展源
yum install epel-release -y

# 查看每台服务器的负载,配合ansible 使用,需要配置免秘钥登陆
for i in 2 3 4 5;do echo -e "\033[32m The 192.168.1.$i to command for result:\033[0m";ssh -l root "192.168.1."$i "uptime";done

# linux 任务计划 crontab 参考文章1参考文章2参考资料3
crontab -e # 编辑 crontab crontab -l 列出当前用户的任务计划

分 时 日 月 星期 命令
0 0 * * * /usr/sbin/ntpdate pool.ntp.org >>/tmp/ntp.log 2>2>&1
每五分钟执行  */5 * * * *

每小时执行     0 * * * *

每天执行        0 0 * * *

每周执行       0 0 * * 0

每月执行        0 0 1 * *

每年执行       0 0 1 1 *

早上 7 点关闭防火墙
0 7 * * * systemctl stop firewalld
晚上 9 点半 开启防火墙
30 21 * * * systemctl start firewalld

# 探测主机是否存活
[root@www-jfedu-net ~]# fping 192.168.1.2
192.168.1.2 is alive# 

# whereis 查找命令是否存在
[root@www-jfedu-net ~]# whereis yum
yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8
[root@www-jfedu-net ~]# # 

# 反向删除文件,例如:jenkins.war
[root@www-jfedu-net ROOT]# ls | grep -v "jenkins.war" | xargs rm -rf

# 删除文件的空行和注释
[root@1-6 conf]# cat httpd.conf | grep -vE '^$|#' # 删除空行和注释行

# centos6 防火墙
service iptable status # 显示防火墙状态
servcie iptables stop # 临时关闭防火墙
chkconfig iptablesoff # 永久关闭防火墙

# centos6 永久修改主机名
[root@1-101 ~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
# HOSTNAME=localhost.localdomain
HOSTNAME=1-101
NTPSERVERARGS=iburst
[root@1-101 ~]# vi /etc/hosts
# 127.0.0.1 localhost.localdomain localhost
127.0.0.1 1-101
::1 localhost6.localdomain6 localhost6
[root@1-101 ~]# reboot

# 配置虚拟 ip (子ip)
[root@1-101 network-scripts]# cp ifcfg-eth2 ifcfg-eth2:1
[root@1-101 network-scripts]# vim ifcfg-eth2:1 
DEVICE=eth2:1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=yes
IPADDR=192.168.1.103
[root@1-101 network-scripts]# service network restart

# centos6.8 设置命令行下开机启动
chkconfig --level 3 sshd on

# centos7.3 添加服务到开机自启动列表中
systemctl enable sshd

# 通过nginx日志利用shell统计日pv和uv ←点击进入原文链接

1.根据访问IP统计UV

awk '{print $1}'  access.log|sort | uniq -c |wc -l

2.统计访问URL统计PV

awk '{print $7}' access.log|wc -l

3.查询访问最频繁的URL

awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more

5.根据时间段统计查看日志

cat  access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more

pv:cat  /usr/local/nginx/logs/access.log| sed -n /`date "+%d\/%b\/%Y"`/p |awk '{print $7}' |sort|wc -l

uv:cat  /usr/local/nginx/logs/access.log| sed -n /`date "+%d\/%b\/%Y"`/p |awk '{print $1}' |sort|uniq -c |wc -l

这个是看当日的,看昨天的改日期格式就行。

# 创建用户 参考这里

添加用户:useradd -m -g 组 新建用户名            注意:-m 自动建立用户家目录; -g 指定用户所在的组,否则会建立一个和用户名同名的组
useradd -m -g dev test1

 

发表评论

zh_CNChinese
zh_CNChinese