文档章节

Linux命令总结

whc20011
 whc20011
发布于 2016/09/19 11:22
字数 6332
阅读 42
收藏 5

一、万能命令

    想要看某个命令怎么用,只要用man命令就可以了。之后的命令总结都是粗略的简介,了解即可。

man 命令名称

二、文件目录操作命令

1、ls命令

ls [选项] [目录名]    列出目标目录所有目录和文件

ebj1877:~ user$ ls
Applications   	Desktop		Documents      	Downloads      	Library		Movies 		Music  		Pictures       	Public 		software
ebj1877:~ user$ ls -l
total 0
drwx------   5 user  staff   170  8 11 17:27 Applications
drwx------+  4 user  staff   136  6 24 15:09 Desktop
drwx------+ 10 user  staff   340  9 14 10:29 Documents
drwx------+  8 user  staff   272  9 18 19:44 Downloads
drwx------@ 53 user  staff  1802  7 29 13:52 Library
drwx------+  6 user  staff   204  6  6 09:21 Movies
drwx------+  6 user  staff   204  6  5 03:21 Music
drwx------+  6 user  staff   204  6  6 09:10 Pictures
drwxr-xr-x+  6 user  staff   204  6  5 10:59 Public
drwxr-xr-x   7 user  staff   238  9 18 10:31 software
ebj1877:~ user$ ls -l /Users/user/software/
total 0
drwxr-xr-x   4 user  staff  136  9 14 19:34 data
drwxr-xr-x   8 user  staff  272  9 17 17:45 development
drwxr-xr-x   8 user  staff  272  9 14 20:02 environment
drwxr-xr-x  19 user  staff  646  9 18 20:45 test

2、mv命令

mv 源文件或目录  目标文件或目录

用来移动文件或给文件改名

ebj1877:test user$ ll
total 16
-rw-r--r--  1 user  staff     0B  9 19 11:48 love.txt
-rwxrw-rw-  1 user  staff   268B  9 14 17:48 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  2 user  staff    68B  9 19 11:48 whc/
ebj1877:test user$ mv love.txt live.txt
ebj1877:test user$ ll
total 16
-rw-r--r--  1 user  staff     0B  9 19 11:48 live.txt
-rwxrw-rw-  1 user  staff   268B  9 14 17:48 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  2 user  staff    68B  9 19 11:48 whc/
ebj1877:test user$ mv live.txt whc/
ebj1877:test user$ ll
total 16
-rwxrw-rw-  1 user  staff   268B  9 14 17:48 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 11:49 whc/
ebj1877:test user$ cd whc
ebj1877:whc user$ ll
total 0
-rw-r--r--  1 user  staff     0B  9 19 11:48 live.txt

3、cp命令

cp [选项] 源目录 目标目录

用来复制文件

ebj1877:test user$ ll
total 16
-rwxrw-rw-  1 user  staff   268B  9 14 17:48 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  2 user  staff    68B  9 19 12:00 whc/
-rw-r--r--  1 user  staff     0B  9 19 11:59 who.txt
ebj1877:test user$ cp who.txt whc/
ebj1877:test user$ ls whc/
who.txt

4、cat命令

cat [选项] [文件]

用来查看整个文件或或合并几个文件为一个文件

ebj1877:test user$ cat who.txt
123
ebj1877:test user$ cat who.txt whoami.txt > result
ebj1877:test user$ cat result
123
456

5、nl命令

在输出中自动为文件加上行号(-b a表示也为空行加行号)

ebj1877:test user$ cat result
123
456


ebj1877:test user$
ebj1877:test user$ nl result
     1 	123
     2 	456


ebj1877:test user$
ebj1877:test user$ nl -b a result
     1 	123
     2 	456
     3
     4

6、more命令

跟cat类似,more在启动时会加载整个文件,但会以一页一页的形式展示给用户。按space即可翻页,CTRL + B 返回上一屏。

7、less命令

是Linux正统查看文件内容的工具,功能及其强大。与more类似,但支持向前翻。

8、head命令

显示文件的开头至标准输出中,加-n参数表示显示的行数

ebj1877:test user$ head -n 10 who.txt

9、tail命令

显示文件的结尾至标准输出中,并且可不断刷新。-n控制显示的行数,-f 表示循环读取

ebj1877:test user$ tail -fn 5 who.txt
123

二、文件查找命令

1、which命令

在PATH变量指定的路径中,搜索某个系统命令的位置。

ebj1877:test user$ which pwd
/bin/pwd
ebj1877:test user$ which ls
/bin/ls

2、locate命令

locate和find相似,但locate是痛殴update程序将硬盘中的所有档案和目录先建立一个索引数据看,在执行locate时直接找该索引,查询速度会较快,但较新的文件可能会暂时找不到。、

ebj1877:conf user$ locate pwd

3、find 命令

用于在目录结构中进行查找,并作出相应的处理。

命令格式:find pathname -options [-print -exec -ok ...]

示例:1、在当前目录中查找包含java的文件或目录

ebj1877:test user$ find . -name java

2、列出当前目录及子目录下所有文件和文件夹

whc@bj1281:~/software/test/com$ find . -print
.
./whc
./whc/whcservice
./whc/whcservice/api
./whc/whcservice/api/userdevice

-amin n   查找系统中最后N分钟访问的文件

-atime n  查找系统中最后n*24小时访问的文件

-cmin n   查找系统中最后N分钟被改变文件状态的文件

-ctime n  查找系统中最后n*24小时被改变文件状态的文件

-mmin n   查找系统中最后N分钟被改变文件数据的文件

-mtime n  查找系统中最后n*24小时被改变文件数据的文件

示例:查看最后一天内被访问的文件

ebj1877:test user$ find . -atime -1
.
./result
./test.sh
./whc
./whc/who.txt
./who.txt
./whoami.txt

3、查看指定目录内指定大小的文件

MOMO@bj1281:~/software/logs$ ll
total 2096
-rw-r--r--  1 MOMO  staff   2.7K  5 28 20:09 gc.log
-rw-r--r--  1 MOMO  staff   1.0M  5 28 20:09 stdout.log
MOMO@bj1281:~/software/logs$
MOMO@bj1281:~/software/logs$ find . -size +3k
./stdout.log
MOMO@bj1281:~/software/logs$ find . -size -3k
.
./gc.log
MOMO@bj1281:~/software/logs$ find . -size 3k
MOMO@bj1281:~/software/logs$
MOMO@bj1281:~/software/logs$ find . -size 1M
MOMO@bj1281:~/software/logs$ find . -size +1M
./stdout.log

4、find命令之exec

当我们find 出需要的文件时,可能并不只是看看而已,而是要作相应的操作,这时就可以用到find命令了。

-exec后面跟的就是一般的命令,以分号为终止符,/是用来转义分号的。{}表示前面find出的文件名。

示例:找出当前目录中的普通文件,并列出

ebj1877:test user$ find . -type f -exec ls -l {} \;
-rw-r--r--  1 user  staff  10  9 19 13:58 ./result
-rwxrw-rw-  1 user  staff  268  9 19 11:59 ./test.sh
-rwxrwxrwx  1 user  staff  62  9 18 11:19 ./test_2.sh
-rw-r--r--  1 user  staff  0  9 19 12:01 ./whc/who.txt
-rw-r--r--  1 user  staff  4  9 19 13:51 ./who.txt
-rw-r--r--  1 user  staff  4  9 19 13:51 ./whoami.txt

示例:找出当前目录中以.log结尾的,超过1天没访问的文件,删除掉。

ebj1877:test user$ find . -name "*.log" -atime +1 -exec rm {} -ok \;

5、find命令之xargs

为避免exec参数过长或启动进程较多的弊端,出现了xargs。find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。

示例:查找当前目录的普通文件,使用xargs查看他们属于哪类文件

ebj1877:test user$ find . -type f -print | xargs file
./result:      ASCII text
./test.sh:     POSIX shell script text executable
./test_2.sh:   Bourne-Again shell script text executable
./whc/who.txt: empty
./who.txt:     ASCII text
./whoami.txt:  ASCII text

三、打包、压缩命令

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

示例 1:打包、解包命令

ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 12:01 whc/
-rw-r--r--  1 user  staff    10B  9 20 10:11 who.txt
ebj1877:test user$
ebj1877:test user$ tar -cvf who.tar who.txt
a who.txt
ebj1877:test user$ ll
total 40
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 12:01 whc/
-rw-r--r--  1 user  staff   2.0K  9 21 09:58 who.tar
-rw-r--r--  1 user  staff    10B  9 20 10:11 who.txt
ebj1877:test user$
ebj1877:test user$ rm who.txt
ebj1877:test user$
ebj1877:test user$ tar -xvf who.tar
x who.txt
ebj1877:test user$ ll
total 40
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 12:01 whc/
-rw-r--r--  1 user  staff   2.0K  9 21 09:58 who.tar
-rw-r--r--  1 user  staff    10B  9 20 10:11 who.txt

示例 2:打包压缩、解压解包

ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 12:01 whc/
-rw-r--r--  1 user  staff    10B  9 20 10:11 who.txt
ebj1877:test user$
ebj1877:test user$ tar -zcvf who.tar.gz who.txt
a who.txt
ebj1877:test user$ ll
total 40
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 12:01 whc/
-rw-r--r--  1 user  staff   144B  9 21 10:20 who.tar.gz
-rw-r--r--  1 user  staff    10B  9 20 10:11 who.txt
ebj1877:test user$ rm who.txt
ebj1877:test user$
ebj1877:test user$ tar -zxvf who.tar.gz
x who.txt
ebj1877:test user$ ll
total 40
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 12:01 whc/
-rw-r--r--  1 user  staff   144B  9 21 10:20 who.tar.gz
-rw-r--r--  1 user  staff    10B  9 20 10:11 who.txt

四、文件权限

1、chmod命令

修改文件访问权限,-R表示递归形式增加权限

ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 12:01 whc/
-rw-r--r--  1 user  staff    10B  9 20 10:11 who.txt
ebj1877:test user$
ebj1877:test user$ chmod 777 who.txt
ebj1877:test user$
ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxr-xr-x  3 user  staff   102B  9 19 12:01 whc/
-rwxrwxrwx  1 user  staff    10B  9 20 10:11 who.txt*
ebj1877:test user$
ebj1877:test user$ chmod -R 777 whc/
ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxrwxrwx  3 user  staff   102B  9 19 12:01 whc/
-rwxrwxrwx  1 user  staff    10B  9 20 10:11 who.txt*
ebj1877:test user$ ls -l whc
total 0
-rwxrwxrwx  1 user  staff  0  9 19 12:01 who.txt

2、chgrp命令

改变文件所属的用户组

ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxrwxrwx  3 user  staff   102B  9 19 12:01 whc/
-rwxrwxrwx  1 user  staff    10B  9 20 10:11 who.txt*
ebj1877:test user$
ebj1877:test user$ sudo chgrp -v bin who.txt
Password:
who.txt
ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxrwxrwx  3 user  staff   102B  9 19 12:01 whc/
-rwxrwxrwx  1 user  bin      10B  9 20 10:11 who.txt*

3、chown命令

改变文件拥有者、文件所属组,-R参数可递归

sh-3.2# ls -l
total 32
-rw-r--r--  1 user  staff   10  9 19 13:58 result
-rwxrw-rw-  1 user  staff  268  9 19 11:59 test.sh
-rwxrwxrwx  1 user  staff   62  9 18 11:19 test_2.sh
drwxrwxrwx  3 user  staff  102  9 19 12:01 whc
-rwxrwxrwx  1 user  staff   10  9 20 10:11 who.txt
sh-3.2#
sh-3.2# chown -v root:bin who.txt
who.txt
sh-3.2# ls -l
total 32
-rw-r--r--  1 user  staff   10  9 19 13:58 result
-rwxrw-rw-  1 user  staff  268  9 19 11:59 test.sh
-rwxrwxrwx  1 user  staff   62  9 18 11:19 test_2.sh
drwxrwxrwx  3 user  staff  102  9 19 12:01 whc
-rwxrwxrwx  1 root  bin     10  9 20 10:11 who.txt

五、磁盘存储相关

1、df命令

用来捡来Linux文件系统的磁盘占用情况。

ebj1877:test user$ df -h
Filesystem      Size   Used  Avail Capacity iused    ifree %iused  Mounted on
/dev/disk1     112Gi   38Gi   74Gi    34% 9959682 19363580   34%   /
devfs          335Ki  335Ki    0Bi   100%    1160        0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%       0        0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0        0  100%   /home

2、du命令

显示每个文件和目录的磁盘使用情况

示例 1 :显示目录和文件。 du:显示目录使用情况   du -ah:显示文件和目录的使用情况

ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxrwxrwx  3 user  staff   102B  9 19 12:01 whc/
-rwxrwxrwx  1 root  bin      10B  9 20 10:11 who.txt*
ebj1877:test user$
ebj1877:test user$ du
0      	./whc
32     	.
ebj1877:test user$
ebj1877:test user$ du -ah
4.0K   	./result
4.0K   	./test.sh
4.0K   	./test_2.sh
  0B   	./whc/who.txt
  0B   	./whc
4.0K   	./who.txt
 16K   	.

示例 2 :按大小倒序展示

ebj1877:test user$ du|sort -nr|more
32      .
0       ./whc

六、性能监控与优化命令

1、top命令

2、iostat命令

对系统的磁盘操作活动、CPU使用情况进行监视。

ebj1877:~ user$ iostat
          disk0       cpu     load average
    KB/t tps  MB/s  us sy id   1m   5m   15m
   28.45   6  0.17   5  3 91  1.69 1.54 1.67

3、lsof命令

列出当前系统打开文件

示例 1 :查看某个文件相关的进程

ebj1877:test user$ lsof /bin/bash
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
bash    4874 user  txt    REG    1,4   628496 404650 /bin/bash

示例 2 :列出某个进程打开的文件信息

ebj1877:test user$ lsof -c java
COMMAND  PID USER   FD     TYPE             DEVICE  SIZE/OFF    NODE NAME
java    6373 user  cwd      DIR                1,4       374  848093 /Users/user/Library/Caches/IntelliJIdea2016.1/compile-server
java    6373 user  txt      REG                1,4     99232  921534 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java

示例3 :列出所有的网络连接

ebj1877:test user$ lsof -i
COMMAND    PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
UserEvent  232 user    4u  IPv4 0xb0f98686ebfc201f      0t0  UDP *:*
SystemUIS  243 user    9u  IPv4 0xb0f98686ea41efff      0t0  UDP *:*
SystemUIS  243 user   10u  IPv4 0xb0f98686ea41ed97      0t0  UDP *:*
SystemUIS  243 user   13u  IPv4 0xb0f98686ea4230f7      0t0  UDP *:49983
SystemUIS  243 user   15u  IPv4 0xb0f98686ea42335f      0t0  UDP *:*
SystemUIS  243 user   18u  IPv4 0xb0f98686ebc7f99f      0t0  UDP *:*
sharingd   251 user   13u  IPv4 0xb0f98686ea41f4cf      0t0  UDP *:*
sharingd   251 user   17u  IPv4 0xb0f98686ea4229bf      0t0  UDP *:*

示例5 :根据进程端口号,查看该端口号对外连接

whc@BJ1281:~$ lsof -i:58312

示例5 :根据pid查看进程打开的文件

whc@BJ1281:~$ lsof -p 3905 | grep -v .jar
COMMAND  PID USER   FD     TYPE            DEVICE  SIZE/OFF    NODE NAME
java    3905 MOMO  cwd      DIR               1,4       612 1372239 /Applications/IntelliJ IDEA.app/Contents/bin
java    3905 MOMO  txt      REG               1,4     93824 1372266 /Applications/IntelliJ IDEA.app/Contents/jdk/Contents/Home/jre/bin/java
java    3905 MOMO  txt      REG               1,4    166688  172718 /System/Library/CoreServices/Encodings/libSimplifiedChineseConverter.dylib

3、netstat命令

查看与对外某个端口号相关连接

[whc@whcssss log]$ netstat -nlap | grep 20600
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 ::ffff:10.224.35.5:40642    ::ffff:10.87.187.164:20600  ESTABLISHED 55/java
tcp        0      0 ::ffff:10.224.35.5:38208    ::ffff:10.87.187.164:20600  ESTABLISHED 55/java
tcp        0      0 ::ffff:10.224.35.5:37736    ::ffff:10.87.187.164:20600  ESTABLISHED 55/java
tcp        0      0 ::ffff:10.224.35.5:37800    ::ffff:10.87.187.164:20600  ESTABLISHED 55/java

循环查看

while true;do netstat -nlapt|grep 10.232.210.197;done

七、网络命令

1、ifconfig命令

用来查看和配置网络设备

ebj1877:~ user$ ifconfig

2、route命令用于显示和操作IP路由表

ebj1877:~ user$ route get 192.168.9.133
   route to: 192.168.9.133
destination: default
       mask: default
    gateway: 10.20.0.201
  interface: en4
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0

3、ping命令

用于测试与目标主机的连通性,采用ICMP协议

ebj1877:~ user$ route get 192.168.9.133
   route to: 192.168.9.133
destination: default
       mask: default
    gateway: 10.20.0.201
  interface: en4
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0

4、traceroute命令

可以让我们追踪网络路由包的路由途径

ebj1877:~ user$ traceroute 192.168.9.100
traceroute to 192.168.9.100 (192.168.9.100), 64 hops max, 52 byte packets
 1  10.20.0.2 (10.20.0.2)  1.203 ms  0.672 ms  0.620 ms
 2  192.168.252.153 (192.168.252.153)  17.536 ms  5.471 ms  0.976 ms
 3  192.168.9.100 (192.168.9.100)  0.529 ms  0.709 ms  0.431 ms

5、netstat命令

用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

ebj1877:~ user$ netstat
Active Internet connections

6、telnet命令

执行telnet指令开启终端机阶段作业,并登入远端主机

7、scp命令

scp是secure copy的缩写,是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp传输是加密的。

示例 1 :从本地向远程机器copy文件

ebj1877:test user$ ll
total 40
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxr-xr-x  1 user  staff    10B  9 22 16:55 root@192.168.9.100*
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxrwxrwx  3 user  staff   102B  9 19 12:01 whc/
-rwxrwxrwx  1 root  bin      10B  9 20 10:11 who.txt*
ebj1877:test user$
ebj1877:test user$ scp who.txt seagull@10.20.254.24:/home/seagull/test
seagull@10.20.254.24's password:
who.txt

然后我们登上10.20.254.24机器,查看是否copy成功

ebj1877:test user$ ssh seagull@10.20.254.24
seagull@10.20.254.24's password:
Last login: Thu Sep 22 16:51:05 2016 from 10.20.254.34
[seagull@localhost ~]$ ls -l /home/seagull/test
总用量 47124
-rw-rw-r--. 1 seagull seagull      306 1月  23 2016 bug.py
-rw-r--r--. 1 seagull seagull 48220349 8月   3 17:08 bus-product-analysis-jar-with-dependencies.jar
drwxrwxr-x. 2 seagull seagull     4096 1月   9 2016 git
drwxrwxr-x. 2 seagull seagull     4096 9月  18 09:04 javaDemo
-rw-rw-r--. 1 seagull seagull     7629 8月   3 17:19 stack.log
-rw-r--r--. 1 tcpdump tcpdump     4695 9月  20 11:40 target.cap
-rwxrwxr-x. 1 seagull seagull       10 9月  22 16:53 who.txt

success!

示例 2 :从远程copy文件到本地

ebj1877:test user$ ll
total 32
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxr-xr-x  1 user  staff    10B  9 22 16:55 root@192.168.9.100*
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxrwxrwx  3 user  staff   102B  9 19 12:01 whc/
ebj1877:test user$
ebj1877:test user$ scp seagull@10.20.254.24:/home/seagull/test/who.txt /Users/user/software/test/
seagull@10.20.254.24's password:
who.txt                                                                                                                     100%   10     0.0KB/s   00:00
ebj1877:test user$ ll
total 40
-rw-r--r--  1 user  staff    10B  9 19 13:58 result
-rwxr-xr-x  1 user  staff    10B  9 22 16:55 root@192.168.9.100*
-rwxrw-rw-  1 user  staff   268B  9 19 11:59 test.sh*
-rwxrwxrwx  1 user  staff    62B  9 18 11:19 test_2.sh*
drwxrwxrwx  3 user  staff   102B  9 19 12:01 whc/
-rwxr-xr-x  1 user  staff    10B  9 22 17:12 who.txt*

8、curl命令

用来发送各种请求,当然主要是http啦。

1、发送正常请求:

[whc@test-docker whc]$ curl 'http://www.baidu.com'
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>新闻</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>地图</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>视频</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>登录</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>&copy;2017&nbsp;Baidu&nbsp;<a href=http://www.baidu.com/duty/>使用百度前必读</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>

2、在返回结果中包含HTTP-header信息

[whc@test-docker whc]$ curl -i 'http://www.baidu.com'
HTTP/1.1 200 OK
Server: bfe/1.0.8.18
Date: Wed, 28 Mar 2018 07:06:40 GMT
Content-Type: text/html
Content-Length: 2381
Last-Modified: Mon, 23 Jan 2017 13:27:36 GMT
Connection: Keep-Alive
ETag: "588604c8-94d"
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
Accept-Ranges: bytes

<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css hr

3、查看站点响应时间

whc@BJwhc:~$ curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://www.baidu.com"
time_connect: 0.012
time_starttransfer: 0.080
time_total: 0.082

8、tcpdump命令

服务端抓包命令,用于分析网络信息。

示例1、抓取经过网卡eth0的,目的或源地址是10.224.34.78的网络数据

tcpdump -i eth0 dst host 10.224.34.78

示例2、抓取经过网卡eth0的,源地址是10.224.34.78的网络数据

tcpdump -i eth0 src host 10.224.34.78

示例3、抓取经过网卡eth0的,目的地址是10.224.34.78的网络数据

tcpdump -i eth0 dst host 10.224.34.78

示例4、抓取经过网卡eth0的,目的或源端口是13125的网络数据

tcpdump -i eth0 port 13125

示例5、抓取经过网卡eth0的,源地址是13125的网络数据

tcpdump -i eth0 src port 13125

示例6、抓取经过网卡eth0的,目的地址是13125的网络数据

tcpdump -i eth0 dst port 13125

 

八、其他命令

1、ln命令

为某一个文件在另外一个位置建立一个同步的链接。ln的链接又分软链接和硬链接两种,软链接命令:ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接命令:ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

ebj1877:software user$ ll
total 24
-rw-r--r--@ 1 user  staff   8.0K  9 18 14:58 .DS_Store
drwxr-xr-x  4 user  staff   136B  9 14 19:34 data/
drwxr-xr-x  8 user  staff   272B  9 17 17:45 development/
drwxr-xr-x  8 user  staff   272B  9 14 20:02 environment/
drwxr-xr-x  8 user  staff   272B  9 22 17:12 test/
ebj1877:software user$
ebj1877:software user$
ebj1877:software user$
ebj1877:software user$
ebj1877:software user$ ln -s test/who.txt who.txt
ebj1877:software user$ ll
total 32
-rw-r--r--@ 1 user  staff   8.0K  9 18 14:58 .DS_Store
drwxr-xr-x  4 user  staff   136B  9 14 19:34 data/
drwxr-xr-x  8 user  staff   272B  9 17 17:45 development/
drwxr-xr-x  8 user  staff   272B  9 14 20:02 environment/
drwxr-xr-x  8 user  staff   272B  9 22 17:12 test/
lrwxr-xr-x  1 user  staff    12B  9 22 17:22 who.txt@ -> test/who.txt
ebj1877:software user$ ln test/who.txt who_2.txt
ebj1877:software user$ ll
total 40
-rw-r--r--@ 1 user  staff   8.0K  9 18 14:58 .DS_Store
drwxr-xr-x  4 user  staff   136B  9 14 19:34 data/
drwxr-xr-x  8 user  staff   272B  9 17 17:45 development/
drwxr-xr-x  8 user  staff   272B  9 14 20:02 environment/
drwxr-xr-x  8 user  staff   272B  9 22 17:12 test/
lrwxr-xr-x  1 user  staff    12B  9 22 17:22 who.txt@ -> test/who.txt
-rwxr-xr-x  2 user  staff    10B  9 22 17:12 who_2.txt*

2、diff命令

diff命令用于比较文件或目录内容。diff的normal显示格式有三种提示:a -add   c-change  d-delete  

示例 1 :比较两个文件

ebj1877:test user$ diff who.txt who_copy.txt
2c2
<
---
> 666
3a4,5
>
>

2c2表示两个文件在第二行不同,3a4,5表示who_copy.txt比who,txt多两行

示例 2 :并排比较两个文件

ebj1877:test user$ diff who.txt who_copy.txt -y
123    								123
       							      |	666
HAHA   								HAHA
       							      >
       							      >

“|”表示前后两个文件内容有不同

“<”表示后面文件比前面文件少了一行内容

“>”表示后面文件比前面文件多了一行内容

3、grep命令

grep命令是一种强大的文本搜索工具,支持正则表达式。

示例 1:查找指定进程

ebj1877:test user$
ebj1877:test user$ ps -ef | grep idea
  502  2182     1   0 19 916  ??        76:27.28 /Applications/IntelliJ IDEA 2.app/Contents/MacOS/idea
  502 46154  9204   0  7:50下午 ttys000    0:00.00 grep idea

示例 2 :从文件中查找关键词

ebj1877:test user$ grep 'HAHA' who.txt
HAHA

示例 3 :循环从文件中获取含有指定字符串的行

ebj1877:test user$ tail -fn 100 who.txt| grep 'HAHA'
HAHA

4、wc命令

统计指定文件中的字节数、字数、行数

命令参数:

-c  统计字节数

-l   统计行数

-m  统计字符数

ebj1877:test user$ cat who.txt
123
我
HAHA
ebj1877:test user$ wc -c who.txt
      13 who.txt
ebj1877:test user$ wc -l who.txt
       3 who.txt
ebj1877:test user$ grep 'HAHA' who.txt | wc -l
       1
ebj1877:test user$

5、ps命令

ps是Process Status的缩写,用来列出系统中当前运行的那些进程。

示例 1 :显示所有进程信息

ebj1877:test user$ ps -A
  PID TTY           TIME CMD
    1 ??        10:04.27 /sbin/launchd
   42 ??         1:21.86 /usr/libexec/UserEventAgent (System)
   43 ??         2:59.81 /usr/sbin/syslogd
   45 ??         0:12.76 /usr/libexec/kextd

示例 2 :与grep组合,查找特定进程

ebj1877:test user$ ps -ef | grep ssh
  502  2596     1   0 19 916  ??         0:00.17 /usr/bin/ssh-agent -l
  502 46302  9204   0  9:20下午 ttys000    0:00.00 grep ssh

示例 3 :显示进程详细信息

ebj1877:test user$ ps aux

示例4:查看CPU占用最多的10个进程

[seagull@localhost ~]$ ps auxw|sort -r -k 3|head -11
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
etcd      1232  0.4  0.1  30780 14084 ?        Ssl  7月16 589:06 /usr/bin/etcd --name=default --data-dir=/var/lib/etcd/default.etcd --listen-client-urls=http://localhost:2379
root     10213  0.3  1.3 2492304 106168 ?      Sl   8月19 253:36 /home/seagull/mongodb/bin/mongod -f /home/seagull/mongodb/standAlone/mongodb.conf
root     32697  0.3  0.4 43579300 33800 ?      Sl   8月16 275:42 /home/seagull/mongodb/bin/mongod --replSet spock -f /home/seagull/mongodb/replSet/slave/mongodb.conf
kube      2494  0.3  0.3 537736 24080 ?        Ssl  7月16 510:46 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://127.0.0.1:8080
root     32679  0.3  0.1 47771560 14580 ?      Sl   8月16 274:53 /home/seagull/mongodb/bin/mongod --replSet spock -f /home/seagull/mongodb/replSet/master/mongodb.conf
polkitd  13174  0.1  4.6 4633260 364092 ?      Sl   10月12   1:47 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/opt/activemq/conf/login.config -Dcom.sun.management.jmxremote -Djava.awt.headless=true -Djava.io.tmpdir=/opt/activemq/tmp -Dactivemq.classpath=/opt/activemq/conf:/opt/activemq/../lib/: -Dactivemq.home=/opt/activemq -Dactivemq.base=/opt/activemq -Dactivemq.conf=/opt/activemq/conf -Dactivemq.data=/opt/activemq/data -jar /opt/activemq/bin/activemq.jar start
kube      2489  0.1  0.4 472688 39164 ?        Ssl  7月16 173:57 /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd-servers=http://127.0.0.1:2379 --insecure-bind-address=127.0.0.1 --allow-privileged=false --service-cluster-ip-range=10.254.0.0/16 --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota
mysql    13250  0.0  3.8 2395656 306220 ?      Ssl  10月12   0:44 mysqld
mysql    13321  0.0  3.8 2263836 299496 ?      Ssl  10月12   0:43 mysqld
root       390  0.0  0.5  90468 44300 ?        Ss   7月16   1:13 /usr/lib/systemd/systemd-journald

示例5:查看进程使用内存大小(VmRSS:表示占用的物理内存)

[root@whc-master-5ba0ba1-024j]# cat /proc/51/status
Name:	java
State:	S (sleeping)
Tgid:	51
Ngid:	0
Pid:	51
PPid:	1
TracerPid:	0
Uid:	0	0	0	0
Gid:	0	0	0	0
FDSize:	2048
Groups:
VmPeak:	57282836 kB
VmSize:	57205808 kB
VmLck:	       0 kB
VmPin:	       0 kB
VmHWM:	 1323640 kB
VmRSS:	 1323640 kB
RssAnon:	 1313280 kB
RssFile:	   10360 kB
RssShmem:	       0 kB

示例6:显示指定进程下的线程数

[whc@user]$ ps -mq 107|wc -l
984

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
whc20011
粉丝 1
博文 52
码字总数 29810
作品 0
朝阳
程序员
私信 提问
关于学习linux的一些心得体会

昨天一个学弟问我怎么学好linux,就思考了一下,做下总结,欢迎大家补充!!!(他还让我给他补linux课,表示很蛋疼。。。。) 学习linux之前必须要做好心理准备: 第一,要明白学好linux不是...

索隆
2012/09/14
0
0
接触学习linux系统服务搭建两年来的心得

学习linux有也有快两年多了。从最初的基本命令到现在的服务搭建维护,再到自动化运维,再到系统架构。自己也是一步步走来。慢慢的发现,自己越来越离不开linux了。自己的暗下决心,已经打算在...

linuxprobe16
2017/10/22
0
0
接触学习linux系统服务搭建两年来的心得

学习linux有也有快两年多了。从最初的基本命令到现在的服务搭建维护,再到自动化运维,再到系统架构。自己也是一步步走来。慢慢的发现,自己越来越离不开linux了。自己的暗下决心,已经打算在...

linuxCool
2017/10/22
0
0
windows系统与虚拟机下的Linux系统共享文件夹

方法一:安装VMwareTools,然后共享。 1 cp /mnt/vmware-linux-tools.tar.gz /tmp 将该软件包拷贝到LINUX的 TMP目录下。 2 umount /dev/cdrom 卸载CDROM(记得退出/mnt)。 3 cd /tmp 进入T...

双月通天
2014/07/14
0
0
接触学习linux系统服务搭建两年来的心得

学习linux有也有快两年多了。从最初的基本命令到现在的服务搭建维护,再到自动化运维,再到系统架构。自己也是一步步走来。慢慢的发现,自己越来越离不开linux了。自己的暗下决心,已经打算在...

linux-tao
2017/10/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 看见这花臂了么?赶紧叫大佬!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享周华健的单曲《有没有一首歌会让你想起我》 《有没有一首歌会让你想起我》- 周华健 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
59分钟前
54
4
Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
3
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
18
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部