Linux--奇思淫才

Image Entrypoint Image Cmd Container command Container args Command run
[/ep-1] [foo bar] not set not set [ep-1 foo bar]
[/ep-1] [foo bar] [/ep-2] not set [ep-2]
[/ep-1] [foo bar] not set [zoo boo] [ep-2 zoo boo]
[/ep-1] [foo bar] [/ep-2] [zoo boo] [ep-2 zoo boo]

shell 脚本遇到错误时直接退出

set -e 

在写的每个脚本都应该在文件开头加上set -e, 
这句语句告诉bash如果任何语句的执行结果不是true则应该退出

查看CPU消耗前十的进程

[ec2-user@baolin ~]$ps -aux --sort=-pcpu |head

根据进程号找到可执行的文件路径

[ec2-user@baolin ~]$ ll /proc/<pid>/exe 
lrwxrwxrwx 1 ec2-user ec2-user 0 May 30 06:41 /proc/<pid>/exe -> /usr/local/java/jdk1.7.0_79/bin/java

mysql单条语句生成insert sql语句

[ec2-user@baolin ~]$ mysqldump -h 192.1688.50.100 -t -uroot -p baolin_rel tbl_ap_version_i --where="vers_id < 100" >   tbl_ap_version_i.sql                 
Enter password: 

mysql查看表的列信息

MariaDB [adsdk_rel]> show full columns from 表名;
+-----------------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+-------------+
| Field           | Type         | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment     |
+-----------------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+-------------+
| usin_id         | int(10)      | NULL            | NO   | PRI | NULL    | auto_increment | select,insert,update,references |             |
| usin_deviceId   | varchar(100) | utf8_general_ci | NO   |     | NULL    |                | select,insert,update,references | 设备ID      |
| usin_appId      | varchar(10)  | utf8_general_ci | NO   |     | NULL    |                | select,insert,update,references | APP应用ID   |
| usin_createTime | datetime     | NULL            | NO   |     | NULL    |                | select,insert,update,references | 日期        |
+-----------------+--------------+-----------------+------+-----+---------+----------------+---------------------------------+-------------+
4 rows in set (0.01 sec)

查看Linux的网关

[root@linux_base#>> ~]#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.100.2   0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

通过sshpass实现对秘钥的分发

# 安装 sshpass
# yum install sshpass -y
# 生成本地key 
# ssh-keygen

[root@linux-node1#>> ~]#egrep -v "#|^$" scp_key.sh 
IP="
192.168.100.11
192.168.100.12
192.168.100.13
"
for node in ${IP};do
  sshpass -p 123456 ssh-copy-id  -p22 ${node}  -o StrictHostKeyChecking=no
    if [ $? -eq 0 ];then
    echo "${node} 秘钥copy完成,准备环境初始化....."
       scp -P22 /etc/hosts ${node}:/etc/hosts
       echo "${node} host 文件拷贝完成"
    fi
done

当修改完时区后发现计划任务不能在指定时间执行:

# 重启一下计划任务
systemctl restart crond.service

Vim 粘贴格式错乱解决

:set paste

查看文件目录大于100 M的文件夹

root@cd849280f837e4584aa13572dc2ff51d/diff# du -sh * |egrep ([0-9]{1,3}){3}M | sort
133M    04468714e8fc6d5437c54e5f8ab9a67d6b092b74dd4784a84d5bee3ad1217221
133M    5f457319fdabcfa6f22ed47f60af69a74f781b5b035fc49a6a5f0d1ab5d3855e
137M    76af62511fc0eb213aea6f4e183c2f2124c6b729401022dd480cec58c2f14a16
153M    9cabdd2e9f7c7aff0d23ad3fc80b924574a8fb7046d389a51bb843a186956d9a
181M    5d0c9517f3a8baab413a8407c0b72fc34130929c081145f58201205989b5f8f0
190M    c5bcce19e9c189198e24613d7ec317c2747be5631f7610704f9b8856b7b80a36
203M    4cffaee108a74ed17a964e379754f7e33994b6e09192acfe65e288738911c29c

常用命令

ps的常见参数

-A     显示所有进程(等价于-e)(utility)
-a     显示一个终端的所有进程,除了会话引线
-N     忽略选择。
-w     显示加宽可以显示较多的资讯
-au    显示较详细的资讯
-aux     显示所有包含其他使用者的行程
-d     显示所有进程,但省略所有的会话引线(utility)
-x     显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p     pid 进程使用cpu的时间
-u     uid or username 选择有效的用户id或者是用户名
-g     gid or groupname 显示组的所有进程。
U      username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f     全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l     长格式(有F,wchan,C 等字段)
-j     作业格式
-o     用户自定义格式。
v      以虚拟存储器格式显示
s      以信号格式显示
-m     显示所有的线程
-H     显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e      命令之后显示环境(如:ps -d e; ps -a e)(utility)
h      不显示第一行

1 .查看java进程的pid

[ec2-user@ip-172-11-11-10 ~]$ ps -ef |grep java

2 .根据进程pid 查看有哪些线程 tid

[ec2-user@ip-172-11-11-10 ~]$ ps -mp 32355 -o THREAD,tid,time |sort -rn

3 .查询CPU占用前10的进程

[ec2-user@ip-172-11-11-10 ~]$ ps -aux --sort=-pcpu |head -10

TOP 常用参数

1 .查看当前进程的tid实时状态

[ec2-user@ip-172-11-11-10 ~]$ top -H -p 32355

2 .查看指定tid 的16进制值

[ec2-user@ip-172-11-11-10 ~]$ printf "%x
" 8509

3 .使用jstack 查看该 pid的线程内容

[ec2-user@ip-172-11-11-10 ~]$ ./jstack PID |grep 'tid 16 进制值' -A 60

更多top的使用方法:
https://www.jianshu.com/p/3f19d4fc4538

原文地址:https://www.cnblogs.com/baolin2200/p/9337330.html