linux目前常用的命令总结2

查看内存占用

free -m

1
2
3
4
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 11852 1250 8668 410 1934 9873
Swap: 6015 0 6015

free -h
以GB为单位显示内存使用情况

1
2
3
4
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 11G 1.2G 8.5G 410M 1.9G 9.6G
Swap: 5.9G 0B 5.9G

free -t
以总和的形式查询内存的使用信息

1
2
3
4
5
[root@localhost ~]# free -t
total used free shared buff/cache available
Mem: 12137332 1285344 8870628 420268 1981360 10105740
Swap: 6160380 0 6160380
Total: 18297712 1285344 15031008

sudo重定向

将 test.asc 权限设置为只有 root 用户才有权限进行写操作:

1
2
$ sudo echo "又一行信息" >> test.asc
-bash: test.asc: Permission denied

这时,可以看到 bash 拒绝这么做,说是权限不够。这是因为重定向符号 “>” 和 “>>” 也是 bash 的命令。我们使用 sudo 只是让 echo 命令具有了 root 权限,但是没有让 “>” 和 “>>” 命令也具有 root 权限,所以 bash 会认为这两个命令都没有像 test.asc 文件写入信息的权限。
解决这一问题的途径有两种。第一种是利用 “sh -c” 命令,它可以让 bash 将一个字串作为完整的命令来执行,这样就可以将 sudo 的影响范围扩展到整条命令。具体用法如下:

1
$ sudo sh -c 'echo "又一行信息" >> test.asc'

另一种方法是利用管道和 tee 命令,该命令可以从标准输入中读入信息并将其写入标准输出或文件中,具体用法如下:

1
$ echo "第三条信息" | sudo tee -a test.asc

注意,tee 命令的 “-a” 选项的作用等同于 “>>” 命令,如果去除该选项,那么 tee 命令的作用就等同于 “>” 命令。

netstat查看端口号

netstat命令各个参数说明如下:

  -t : 指明显示TCP端口

  -u : 指明显示UDP端口

  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。

  -n : 不进行DNS轮询,显示IP(可以加速操作)

查看当前所有tcp端口

1
netstat -ntlp

hdparm

hdparm(选项)(参数)

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

-a<快取分区>:设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定;

-A<0或1>:启动或关闭读取文件时的快取功能;

-c<I/O模式>:设定IDE32位I/O模式;

-C:检测IDE硬盘的电源管理模式;

-d<0或1>:设定磁盘的DMA模式;

-f:将内存缓冲区的数据写入硬盘,并清楚缓冲区;

-g:显示硬盘的磁轨,磁头,磁区等参数;

-h:显示帮助;

-i:显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供;

-I:直接读取硬盘所提供的硬件规格信息;

-t;评估硬盘的读取效率;

-T:平谷硬盘快取的读取效率;

-u<0或1>:在硬盘存取时,允许其他中断要求同时执行;

-v:显示硬盘的相关设定;

-w<0或1>:设定硬盘的写入快取;

-X<传输模式>:设定硬盘的传输模式;

-y:使IDE硬盘进入省电模式;

-Y:使IDE硬盘进入睡眠模式;

-Z:关闭某些Seagate硬盘的自动省电功能。