文章目录

  • 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密码错误日志,查找文件相关推荐

  1. 构建LINUX下的入侵检测系统——LIDS 系统管理命令--vlock

    构建LINUX下的入侵检测系统--LIDS   系统管理命令--vlock http://blog.chinaunix.net/uid-306663-id-2440200.html LIDS官方网站: ...

  2. 启动mq命令 linux,RocketMQ:Linux下启动server和broker的命令

    目录 QUESTION:RocketMQ:Linux下启动server和broker的命令? ANSWER: 一.启动mqnamesrv 1.1当前执行 1.2后台运行 二.启动mqbroker 2. ...

  3. RocketMQ:Linux下启动server和broker的命令

    目录 QUESTION:RocketMQ:Linux下启动server和broker的命令? ANSWER: 一.启动mqnamesrv 1.1当前执行 1.2后台运行 二.启动mqbroker 2. ...

  4. Linux 下五个顶级的开源命令行 Shell

    这个世界上有两种 Linux 用户:敢于冒险的和态度谨慎的. 其中一类用户总是本能的去尝试任何能够戳中其痛点的新选择.他们尝试过不计其数的窗口管理器.系统发行版和几乎所有能找到的桌面插件. 另一类用户 ...

  5. linux下mysql数据库基础及客户端命令详解

    linux下mysql数据库基础及客户端命令详解 1.mysql数据库存储引擎: SHOW ENGINES;   #查看mysql支持的存储引擎 常见有如下两个存储引擎: MyISAM:每表三个文件: ...

  6. Linux下安装tuned以使用tuned-adm命令优化Linux系统性能

    本文介绍在RHEL.CentOS 8/7.Ubuntu.Debian Linux下安装tuned以使用tuned-adm命令优化Linux系统性能.作为系统管理员,您应该能够通过调整各种设置来优化Li ...

  7. linux 垃圾桶命令,linux下的一些好用的命令行

    linux下的一些好用的命令行 添加环境变量 Linux 中需要将 libjakaAPI.so 和 jkrc.so 放在同一个文件夹下,并添加当前文件夹路径到环境变量, 使用命令 export LD_ ...

  8. linux 更改make版本,Linux下查看系统版本和make版本

    一.查看Linux内核版本命令(两种方法): 1.cat /proc/versionz [root@localhost ~]# cat /proc/version Linux version 2.6. ...

  9. linux下如何查看BIOS版本,linux、centos下查看系统版本、bios版本,内存信息等

    1.查看系统版本 [[email protected] ~]#more /etc/issue CentOS release 6.2 (Final) Kernel \r on an \m 2.查看CPU ...

最新文章

  1. access open 知乎_NX使用——远程IDE利器
  2. 一文读懂机器学习项目的完整生命周期
  3. hdu3400 两重三分
  4. python 二进制文件_使用Python进行二进制文件读写的简单方法(推荐)
  5. CSS行高——line-height
  6. java semaphore(0)_面试官:说说Java中的信号量?Semaphore
  7. sqlmap中的php,python - sqlmap源码中的一个问题
  8. ejb 2.1 jboss_带有Eclipse IDE,EJB Project和JBoss 6.0 AS的JMS 1.1生产者和使用者示例
  9. python锁机制_Python并发编程之谈谈线程中的“锁机制”(三)
  10. 豆瓣评分9.2,GitHub 3.3k的学霸笔记终于出书了!获得李宏毅等大佬好评 -- 文末送书...
  11. 解决IE浏览器的Automation 服务器不能创建对象的问题
  12. 折线图-面积图-K线图
  13. html id 重复,Apple ID一直重复登录无效!怎么处理!
  14. Unity插入视频音频
  15. 中超联赛首轮 山东鲁能一球小胜
  16. UUCTF(公共赛道)
  17. 【Python】盘点全网下载量Top100的Python库
  18. 如何将iPhone微信资料显示地区修改为“中国”
  19. 美的楼宇科技荆州工厂正式投产;华为加入国际电联P2C数字联盟 | 美通企业日报...
  20. 我在网上抢九价:有人过节送女友,有人被骗八千多

热门文章

  1. Science | 初步的SARS-CoV-2蛋白酶抑制剂在小鼠中显示功效
  2. mac升级后虚拟机无法启动_使用了自家M1处理器后,苹果新一代Mac迎来三大重点升级...
  3. 中科院微生物所王军课题组建立靶向RNA的病原检测新方法mtNGS和mtTGS
  4. SR:嗜酸古菌的代谢和进化模式
  5. 单细胞转录组专题研讨会第二期
  6. Python使用matplotlib可视化发散型条形图、发散条形图(Diverging Bars)是一种可以同时处理负值和正值的条形图、并按照大小排序区分数据(Diverging Bars)
  7. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(主题模式配置、色彩设置)实战
  8. python使用matplotlib可视化包含倒影的柱状图(bar plot with shadow)、配置rcParams坐标轴正确显示负号(-)
  9. R语言psych包的corr.test函数计算相关性并给出所有相关性的显著性(Correlation matrix and tests of significance via corr.test())
  10. sklearn使用投票器VotingClassifier算法构建多模型融合的硬投票器分类器(hard voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)