Linux下的十个好用的命令工具:查看系统版本,显示目录的大小,查看硬盘HDD/SSD,硬盘测速,ssh时自动输入密码,查看程序的内存使用情况,查看I/O的速度,查看ssh密码错误日志,查找文件
文章目录
- 1.查看系统版本
- 2.显示目录的大小
- 3.查看硬盘是HDD还是SSD
- 4.硬盘测速
- 5.在ssh的时候自动输入密码
- 6.查看程序的内存使用情况
- 7.查看I/O的速度
- 8.查看ssh密码错误日志,并防止暴力破解
- 9.查找文件
1.查看系统版本
以下都是通用命令:
在Debian系统上的执行结果:
-> # uname -a
Linux VM-73-203-debian 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64 GNU/Linux
-> # cat /proc/version
Linux version 4.9.0-9-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13)
-> # cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
在centos上的执行结果:
root@:/data3/# uname -a
Linux .site 3.10.107-1-tlinux2-0046 #1 SMP Tue Dec 26 16:16:57 CST 2017 x86_64 x86_64 x86_64 GNU/Linux
root@:/data3/# cat /proc/version
Linux version 3.10.107-1-tlinux2-0046 (root@.site) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Tue Dec 26 16:16:57 CST 2017
root@:/data3/# cat /etc/*release*
CentOS Linux release 7.2 (Final)
NAME=" linux"
VERSION="2.2 (Final)"
ID="linux"
ID_LIKE="rhel fedora centos"
VERSION_ID="2.2"
PRETTY_NAME=" linux 2.2 (Final)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:linux:linux:2"
HOME_URL="http://linux.com/"
BUG_REPORT_URL="http://.com/linux/bugtrace/bugreports/my_view/"CentOS Linux release 7.2 (Final)linux release 2.2 (Final)
cpe:/o:linux:linux:2:GAlinux release 2.2 (Final)
2.显示目录的大小
网址:ls - How do I get the size of a directory on the command line? - Unix & Linux Stack Exchange
-> # du -sh /root
14G /root
参数含义:
-s, --summarizedisplay only a total for each argument-h, --human-readableprint sizes in human readable format (e.g., 1K 234M 2G)
如果你想更方便,可以使用ncdu
,非常好用:
ncdu
使用方法:
ncdu /
3.查看硬盘是HDD还是SSD
在Linux下查看硬盘是固态硬盘还是机械硬盘
参考网址:linux - How to know if a disk is an SSD or an HDD - Unix & Linux Stack Exchange
通用方法:
root@:/data1# lsblk -o NAME,ROTA
NAME ROTA
sda 0
|-sda1 0
|-sda2 0
|-sda3 0
`-sda4 0
nvme0n1 0
nvme1n1 0
nvme2n1 0
nvme3n1 0
0的意思是没有转速的硬盘,也就是SSD,
1表示机械硬盘。
其实很多时候,我们不在意是SSD还是HDD,只要速度够快就行,测速代码:
time for i in `seq 1 1000`; dodd bs=4k if=/dev/sda1 count=1 skip=$(( $RANDOM * 128 )) >/dev/null 2>&1;
done
SSD结果如下:
real 0m0.754s
user 0m0.052s
sys 0m0.100s
HDD结果如下:
real 0m14.249s
user 0m0.752s
sys 0m6.284s
4.硬盘测速
既然提到了硬盘,那就要提到如何给硬盘测速。
参考文章:Disk Speed Test (Read/Write): HDD, SSD Performance in Linux - ShellHacks
先测写:
-> # sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 3.59688 s, 299 MB/s
然后测读取速度,记得先清空缓存:
-> # sudo /sbin/sysctl -w vm.drop_caches=3
vm.drop_caches = 3
-> # dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.05339 s, 1.0 GB/s
更专业的做法是使用hdparm
:
apt install hdparm
hdparm -Tt /dev/sda
5.在ssh的时候自动输入密码
警告:不推荐自动输入密码,有条件的可以使用 ssh key实现自动认证,参考网址:How to automate SSH login with password? - Server Fault
如果想要实现在ssh的时候自动输入密码,那么你需要实现shell的自动交互。
你可以用perl,ruby,Python实现交互。
原先我都是使用Python进行交互的,现在想到使用shell的交互工具。
参考网址:How to enter ssh password using bash? - Stack Overflow
需要先安装:
apt-get install expect
然后写脚本:
#!/usr/bin/expect -f
spawn ssh user@my.server.com
expect "assword:"
send "mypassword\r"
interact
6.查看程序的内存使用情况
有时候我们需要查看一个进程的内存使用情况,但如果有多线程存在,那么在top
或者htop
中的内存使用情况是不准确的。
参考:linux - How to measure actual memory usage of an application or process? - Stack Overflow
使用pmap
进行查看:
pmap -x <process pid>
Address Kbytes RSS Dirty Mode Mapping
0000000000400000 137956 12604 0 r-x-- clickhouse
0000000008aba000 152 96 4 r-x-- clickhouse
0000000008ae0000 104 68 36 rwx-- clickhouse
...............
00007f3c5762d000 4 4 4 rwx-- [ anon ]
00007ffeedc86000 132 48 48 rwx-- [ stack ]
00007ffeedd9c000 8 4 0 r-x-- [ anon ]
ffffffffff600000 4 0 0 r-x-- [ anon ]
---------------- ------- ------- -------
total kB 4921884 1068388 1054568
这里有几个参数:RSS, Dirty,Mode,Mapping。
参考:pmap(1): report memory map of process - Linux man page
RSS是驻留集大小,用于显示分配给该进程的内存量,并且位于RAM中。它不包括换出的内存。它确实包括来自共享库的内存,只要这些库中的页面实际上在内存中。它确实包括所有堆栈和堆内存。
VSZ是虚拟内存大小。它包括进程可以访问的所有内存,包括被换出的内存,已分配但未使用的内存以及来自共享库的内存。
更多内容参考:What is RSS and VSZ in Linux memory management - Stack Overflow
脏: 脏页(共享和私有),以千字节为单位
模式: map的权限:读取,写入,执行,共享,私有(写入时复制)
mapping: 支持映射的文件,或者用于分配内存的’[anon]’,或用于程序堆栈的’[stack]’
另外一个解决方法是查看/proc/$pid/status
:
root@:/data4/data/test/app_pv_13# cat /proc/20863/status
Name: clickhouse-serv
NStgid: 20863
NSpid: 20863
NSsid: 5818
State: S (sleeping)
FDSize: 256
VmPeak: 4921880 kB
VmSize: 4921880 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 1076732 kB
VmRSS: 1054856 kB
VmData: 4766592 kB
VmStk: 132 kB
VmExe: 115836 kB
VmLib: 25888 kB
VmPTE: 3388 kB
VmSwap: 0 kB
Threads: 45
最重要的是VmSize
,就是程序使用的内存大小??
7.查看I/O的速度
参考:linux - Howto check disk I/O utilisation per process - Server Fault
你可以使用iotop
命令查看实时的I/O速度,或者如下命令:
含义是每20秒使用此命令打印每个进程的累积io统计信息
pidstat -dl 20
8.查看ssh密码错误日志,并防止暴力破解
参考:security - How do I keep track of failed SSH log-in attempts? - Ask Ubuntu
在Ubuntu/Debian系统上查看ssh登录失败日志:
grep sshd.\*Failed /var/log/auth.log | less
在我的机器上有4000多条别人的尝试记录。
解决方法很简单,安装fail2ban
:
apt install fail2ban
默认情况下,只要有人尝试三次失败,他们的IP就会被禁止五分钟。
9.查找文件
我一般喜欢用locate查找文件:
updatedb
locate test.cpp
但有时系统没装,那么只能用find:
find / -name "test.cpp"
Linux下的十个好用的命令工具:查看系统版本,显示目录的大小,查看硬盘HDD/SSD,硬盘测速,ssh时自动输入密码,查看程序的内存使用情况,查看I/O的速度,查看ssh密码错误日志,查找文件相关推荐
- 构建LINUX下的入侵检测系统——LIDS 系统管理命令--vlock
构建LINUX下的入侵检测系统--LIDS 系统管理命令--vlock http://blog.chinaunix.net/uid-306663-id-2440200.html LIDS官方网站: ...
- 启动mq命令 linux,RocketMQ:Linux下启动server和broker的命令
目录 QUESTION:RocketMQ:Linux下启动server和broker的命令? ANSWER: 一.启动mqnamesrv 1.1当前执行 1.2后台运行 二.启动mqbroker 2. ...
- RocketMQ:Linux下启动server和broker的命令
目录 QUESTION:RocketMQ:Linux下启动server和broker的命令? ANSWER: 一.启动mqnamesrv 1.1当前执行 1.2后台运行 二.启动mqbroker 2. ...
- Linux 下五个顶级的开源命令行 Shell
这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的. 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择.他们尝试过不计其数的窗口管理器.系统发行版和几乎所有能找到的桌面插件. 另一类用户 ...
- linux下mysql数据库基础及客户端命令详解
linux下mysql数据库基础及客户端命令详解 1.mysql数据库存储引擎: SHOW ENGINES; #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: ...
- Linux下安装tuned以使用tuned-adm命令优化Linux系统性能
本文介绍在RHEL.CentOS 8/7.Ubuntu.Debian Linux下安装tuned以使用tuned-adm命令优化Linux系统性能.作为系统管理员,您应该能够通过调整各种设置来优化Li ...
- linux 垃圾桶命令,linux下的一些好用的命令行
linux下的一些好用的命令行 添加环境变量 Linux 中需要将 libjakaAPI.so 和 jkrc.so 放在同一个文件夹下,并添加当前文件夹路径到环境变量, 使用命令 export LD_ ...
- linux 更改make版本,Linux下查看系统版本和make版本
一.查看Linux内核版本命令(两种方法): 1.cat /proc/versionz [root@localhost ~]# cat /proc/version Linux version 2.6. ...
- linux下如何查看BIOS版本,linux、centos下查看系统版本、bios版本,内存信息等
1.查看系统版本 [[email protected] ~]#more /etc/issue CentOS release 6.2 (Final) Kernel \r on an \m 2.查看CPU ...
最新文章
- access open 知乎_NX使用——远程IDE利器
- 一文读懂机器学习项目的完整生命周期
- hdu3400 两重三分
- python 二进制文件_使用Python进行二进制文件读写的简单方法(推荐)
- CSS行高——line-height
- java semaphore(0)_面试官:说说Java中的信号量?Semaphore
- sqlmap中的php,python - sqlmap源码中的一个问题
- ejb 2.1 jboss_带有Eclipse IDE,EJB Project和JBoss 6.0 AS的JMS 1.1生产者和使用者示例
- python锁机制_Python并发编程之谈谈线程中的“锁机制”(三)
- 豆瓣评分9.2,GitHub 3.3k的学霸笔记终于出书了!获得李宏毅等大佬好评 -- 文末送书...
- 解决IE浏览器的Automation 服务器不能创建对象的问题
- 折线图-面积图-K线图
- html id 重复,Apple ID一直重复登录无效!怎么处理!
- Unity插入视频音频
- 中超联赛首轮 山东鲁能一球小胜
- UUCTF(公共赛道)
- 【Python】盘点全网下载量Top100的Python库
- 如何将iPhone微信资料显示地区修改为“中国”
- 美的楼宇科技荆州工厂正式投产;华为加入国际电联P2C数字联盟 | 美通企业日报...
- 我在网上抢九价:有人过节送女友,有人被骗八千多
热门文章
- Science | 初步的SARS-CoV-2蛋白酶抑制剂在小鼠中显示功效
- mac升级后虚拟机无法启动_使用了自家M1处理器后,苹果新一代Mac迎来三大重点升级...
- 中科院微生物所王军课题组建立靶向RNA的病原检测新方法mtNGS和mtTGS
- SR:嗜酸古菌的代谢和进化模式
- 单细胞转录组专题研讨会第二期
- Python使用matplotlib可视化发散型条形图、发散条形图(Diverging Bars)是一种可以同时处理负值和正值的条形图、并按照大小排序区分数据(Diverging Bars)
- R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(主题模式配置、色彩设置)实战
- python使用matplotlib可视化包含倒影的柱状图(bar plot with shadow)、配置rcParams坐标轴正确显示负号(-)
- R语言psych包的corr.test函数计算相关性并给出所有相关性的显著性(Correlation matrix and tests of significance via corr.test())
- sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)