Linux常用技巧 Linux笔记
个人经常使用,忘记了备查的笔记条目,不是按系统性的知识分享,运维实操实战最常用的一些好用经验技巧,分享给大家。
1. Mysql 数据库版本查询方法
- 1) mysql -V */终端下
- 2) status */进入数据库后执行
- 3) mysql –help |grep Distrib */终端下
- 4) select version() */进入数据库后执行
2. awk常用格式以及如何取倒数第二列
- 1) cat test.txt |awk -F ” ” ‘{print$1}’ // 默认空格时 -F可以不写
- 2) cat test.txt |awk -F ” ” ‘{print$NF}’ //打印最后一列
- 3) cat test.txt |awk ‘{for (i=2;i<=NF;i++)printf(“%s “, $i);print “”}’ //第2至最后一列
- 4) cat test.txt |awk ‘{for(i=NF-3;i<=NF;++i) printf $i “\t”;printf “\n”}’ //打印最后3列 –也可以写成 awk ‘{for(i=NF-3;i<=NF;++i) printf $i “\t”;printf “\n”}’ ./test
3. tar 压缩命令
- tar -cf 20170704-195527.tar 20170704-195527/ –将 目录“20170704-195527/”压缩为20170704-195527.tar ,-c是表示产生新的包,-f指定包的文件名。
- -C 指定解压到哪个目录:tar -zxvf /opt/work/softwares/kibana-7.14.0-linux-x86_64.tar.gz -C /opt/work/item-install/
4. iptables开放80端口
vi /etc/sysconfig/iptables (允许80端口通过防火墙)
- -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
- — */加在 -A INPUT -m state –state NEW -m tcp -p tcp –dport ** -j ACCEPT 之后./*、
5. 时间修改
- 查看时间:date/hwclock –show
- Centos系统,必须同时修改系统时间和硬件时间,才可以保证修改有效,单纯的使用date命令修改系统时间,是立即生效,重启后会还原。
- date -s “2022-04-08 09:42:00” –设置系统世间
- hwclock -set -date=”07/07/06 10:19″ (月/日/年 时:分:秒) –硬件时间
- hwclock –hctosys –让系统的时间同步到硬件时钟
- clock -w –保存时钟
6. 查看系统运行了多久和当前登录在线的所有用户
- 命令: w
7. 查看某个进程啥时候运行的,运行了多久
- 命令:ps -eo pid,lstart,etime | grep PID
8. 查看CPU信息
- cat /proc/cpuinfo
9. 查看当前系统磁盘吞吐IO
- 命令: iostat -d -x -k 1 10 — -d 显示磁盘信息 -x 显示详细信息 -k 以kb为单位显示 (查询10次,间隔1秒)
- 命令: iostat -c 1 10 –查看CPU繁忙情况
- %iowait值高,表存在I/O瓶颈;%idlecCPU空闲 //CPU
- Device 监测设备名称
- rrqm/s 每秒需要读取需求的数量
- wrqm/s 每秒需要写入需求的数量
- r/s 每秒实际读取需求的数量
- w/s 每秒实际写入需求的数量
- rkB/s 每秒实际读取的大小,单位为 KB
- wkB/s 每秒实际写入的大小,单位为 KB
- avgrq-sz 需求的平均大小区段
- avgqu-sz 需求的平均队列长度 –值高,表有io在等待
- await 等待 I/O 平均的时间(milliseconds)
- r_await 等待读 I/O 平均的时间(milliseconds)
- w_await 等待写 I/O 平均的时间(milliseconds)
- svctm I/O 需求完成的平均时间 –如接近 await表没有等待时间;await高于svctm的值,则表示I/O队列等待太长程序将变慢
- %util 被 I/O 需求消耗的 CPU 百分比 –%util 高表磁盘繁忙;100%表示设备已经接近满负荷运行
iostat主要用于监控系统设备的IO负载情况,通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
10. rpm看配置文件位置、版本、安装的包文件
- rpm -qc httpd 查看httpd的配置文件目录
- rpm -qi httpd 查看httpd的版本和安装信息
- rpm -ql httpd 列出httpd软件包中的文件
11. ps -ef和 ps aux 的区别
- COMMADN列如果过长,aux会截断显示,而ef不会
- -ef是System V展示风格,而aux是BSD风格
- 看进程的CPU占用率和内存,使用aux ;看进程的父进程ID和完整的COMMAND命令,用ef
12. column友好打印输出
- cat /etc/passwd |column -s: -t — -s: 以冒号为分界线/-t 表格输出
- -c 指定显示的列宽字符数
- -x 更改排列顺序(左→右)。默认的顺序为(上→下)
13. 编译安装软件configure、 make 、make install解释
- configure,这一步一般用来生成 Makefile,为下一步的编译做准备
- make,这一步就是编译
- make insatll,这条命令来进行安装
14. 全目录包括子目录搜索所有文件包含的关键字
- egrep -ir KEYY ./* — -i不区分大小写 -r递归子目录
15. du命令查看各级目录文件大小
- du -ah –max-depth=1 –只查看1层深度,约等于 du -sh * //a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。
16. vim 文本替换
- 行首插入内容 :%s/^/your_word/
- 行尾插入内容 :%s/$/your_word/
- 替换所有行的内容 :%s/from/to/g
- 替换当前行中的内容 :s/from/to/ (s即substitude)
- 替换某一行的内容 :33s/from/to/g (假设第33行)
- 替换最后一行的内容 :$s/from/to/g
- 替换某些行的内容 :10,20s/from/to/g
- 对第一行到当前行的内容进行替换 :1,.s/from/to/g
- 对当前行到最后一行的内容进行替换 :.,$s/from/to/g
- shift+% 成对显示 {}的位置
- gg 跳到文本开头
- GG跳到文本末尾
- ESC推出编辑按u 恢复上一次编辑
- ESC推出编辑按CTRL + R 撤销/恢复上一次删除
17. 命令行删除/退格快捷键
- ctrl + w 往行首删除一个字符串(可以理解为单词),空格为界
- ctrl + u 删除从光标至行首内容
- ctrl + k 删除从光标至行尾内容
18. 命令行光标位置跳跃
- ctrl + a 光标跳跃到起始位置
- ctrl + e 光标跳跃到末尾位置
20. IT常用术语
- rd–开发环境 qa–测试环境 local–本地环境 online–线上环境
21. 免密登录设置
- ssh-keygen 四次回车生成密钥
- ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.238 将密钥发送到需要免密登录的服务器
- ssh 192.168.1.238 测试免密登录
22. scp对拷文件并重命名
- scp /home/wwwroot/www/charts/util/a.txt root@192.168.1.65:/home/wwwroot/limesurvey_back/scp/b.text
- 发送目标为目录的时候最后不能带斜杆 /
23. 登录服务器时自动显示的提示信息设置
- 写入 /etc/motd 即可
24. 自动计划任务内容对应的文本
- /var/spool/cron/root (root 为帐号名),更改此文档后当前系统计划任务会立刻实时变更。
25. 探测某个 IP是否处于使用状态 –用来分配静态IP看是否被占用
- nmap -sP 192.168.1.1 探测.1.1 是否存在
- nmap -sP 192.168.1.1-5 探测.1.1到.1.5整段IP是否存在
26. Mysql时间字段比另一个时间字段大(后)4h
- … AND ar.create_time > DATE_ADD(ds.update_time,INTERVAL -4 HOUR)
- case替换 CASE WHEN ar.revice_time IS NULL THEN ‘未恢复’ ELSE ‘已恢复’ END AS ‘报警状态’
27. grep匹配关键字前5行,后5行,前后5行
- grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
- grep -B 5 foo file 显示foo及前5行
- grep -A 5 foo file 显示foo及后5行
28. egrep多个字符串/关键字或关系匹配
- cat test.txt | egrep -i “KEYA|KEYB|KEYC”
29. yum的常用命令
- yum list –showduplicates kubeadm | grep 1.18 查看某个软件的所有可选版本
- yum clean all && yum clean dbcache && yum makecache 更新Yum源后,清除旧的、然后建立新仓库的缓存
- yum repolist 获取当前系统有效的repolist
- yum list 列出所有可安装的软件包
- yum list installed 列出所有已安装的软件包
- yum list updates 列出所有可更新的软件包
- yum -y update 升级所有包同时也升级软件和系统内核
- yum -y update xxx 只升级某个软件xxx
- yum -y upgrade 只升级所有包,不升级软件和系统内核
30. mysql中drop、truncate和delete的区别
- drop table tb 将表格直接删除,没有办法找回
- truncate (table) tb 删除表中的所有数据,不能与where一起使用;不可回滚
- delete from tb (where) 删除表中的数据(可制定某一行);可回滚
31. window平台查询端口
- netstat |findstr “120.78.12.133”
32. Mysql数据库中各个表数据量大小查询
- SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE,CREATE_TIME,CONCAT(ROUND(data_length/1024/1024,2),’MB’) AS datalength,CONCAT(ROUND(index_length/1024/1024,2),’MB’) AS indexlength FROM information_schema.TABLES ORDER BY data_length DESC
- 本MySQL实例中各个库、表的大小都记录在information_schema.TABLES
持续更新中。。。。。。