一、万能命令
想要看某个命令怎么用,只要用man命令就可以了。之后的命令总结都是粗略的简介,了解即可。
man 命令名称
二、文件目录操作命令
1、ls命令
ls [选项] [目录名] 列出目标目录所有目录和文件
ebj1877:~ user$ lsApplications Desktop Documents Downloads Library Movies Music Pictures Public softwareebj1877:~ user$ ls -ltotal 0drwx------ 5 user staff 170 8 11 17:27 Applicationsdrwx------+ 4 user staff 136 6 24 15:09 Desktopdrwx------+ 10 user staff 340 9 14 10:29 Documentsdrwx------+ 8 user staff 272 9 18 19:44 Downloadsdrwx------@ 53 user staff 1802 7 29 13:52 Librarydrwx------+ 6 user staff 204 6 6 09:21 Moviesdrwx------+ 6 user staff 204 6 5 03:21 Musicdrwx------+ 6 user staff 204 6 6 09:10 Picturesdrwxr-xr-x+ 6 user staff 204 6 5 10:59 Publicdrwxr-xr-x 7 user staff 238 9 18 10:31 softwareebj1877:~ user$ ls -l /Users/user/software/total 0drwxr-xr-x 4 user staff 136 9 14 19:34 datadrwxr-xr-x 8 user staff 272 9 17 17:45 developmentdrwxr-xr-x 8 user staff 272 9 14 20:02 environmentdrwxr-xr-x 19 user staff 646 9 18 20:45 test
2、mv命令
mv 源文件或目录 目标文件或目录
用来移动文件或给文件改名
ebj1877:test user$ lltotal 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.txtebj1877:test user$ lltotal 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$ lltotal 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 whcebj1877:whc user$ lltotal 0-rw-r--r-- 1 user staff 0B 9 19 11:48 live.txt
3、cp命令
cp [选项] 源目录 目标目录
用来复制文件
ebj1877:test user$ lltotal 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.txtebj1877:test user$ cp who.txt whc/ebj1877:test user$ ls whc/who.txt
4、cat命令
cat [选项] [文件]
用来查看整个文件或或合并几个文件为一个文件
ebj1877:test user$ cat who.txt123ebj1877:test user$ cat who.txt whoami.txt > resultebj1877:test user$ cat result123456
5、nl命令
在输出中自动为文件加上行号(-b a表示也为空行加行号)
ebj1877:test user$ cat result123456ebj1877:test user$ebj1877:test user$ nl result 1 123 2 456ebj1877: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.txt123
二、文件查找命令
1、which命令
在PATH变量指定的路径中,搜索某个系统命令的位置。
ebj1877:test user$ which pwd/bin/pwdebj1877: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$ lltotal 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.logMOMO@bj1281:~/software/logs$MOMO@bj1281:~/software/logs$ find . -size +3k./stdout.logMOMO@bj1281:~/software/logs$ find . -size -3k../gc.logMOMO@bj1281:~/software/logs$ find . -size 3kMOMO@bj1281:~/software/logs$MOMO@bj1281:~/software/logs$ find . -size 1MMOMO@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$ lltotal 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.txtebj1877:test user$ebj1877:test user$ tar -cvf who.tar who.txta who.txtebj1877:test user$ lltotal 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.txtebj1877:test user$ebj1877:test user$ rm who.txtebj1877:test user$ebj1877:test user$ tar -xvf who.tarx who.txtebj1877:test user$ lltotal 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$ lltotal 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.txtebj1877:test user$ebj1877:test user$ tar -zcvf who.tar.gz who.txta who.txtebj1877:test user$ lltotal 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.txtebj1877:test user$ rm who.txtebj1877:test user$ebj1877:test user$ tar -zxvf who.tar.gzx who.txtebj1877:test user$ lltotal 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$ lltotal 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.txtebj1877:test user$ebj1877:test user$ chmod 777 who.txtebj1877:test user$ebj1877:test user$ lltotal 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$ lltotal 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 whctotal 0-rwxrwxrwx 1 user staff 0 9 19 12:01 who.txt
2、chgrp命令
改变文件所属的用户组
ebj1877:test user$ lltotal 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.txtPassword:who.txtebj1877:test user$ lltotal 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 -ltotal 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.shdrwxrwxrwx 3 user staff 102 9 19 12:01 whc-rwxrwxrwx 1 user staff 10 9 20 10:11 who.txtsh-3.2#sh-3.2# chown -v root:bin who.txtwho.txtsh-3.2# ls -ltotal 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.shdrwxrwxrwx 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 -hFilesystem 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% /devmap -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /netmap auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home
2、du命令
显示每个文件和目录的磁盘使用情况
示例 1 :显示目录和文件。 du:显示目录使用情况 du -ah:显示文件和目录的使用情况
ebj1877:test user$ lltotal 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$ du0 ./whc32 .ebj1877:test user$ebj1877:test user$ du -ah4.0K ./result4.0K ./test.sh4.0K ./test_2.sh 0B ./whc/who.txt 0B ./whc4.0K ./who.txt 16K .
示例 2 :按大小倒序展示
ebj1877:test user$ du|sort -nr|more32 .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/bashCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEbash 4874 user txt REG 1,4 628496 404650 /bin/bash
示例 2 :列出某个进程打开的文件信息
ebj1877:test user$ lsof -c javaCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 6373 user cwd DIR 1,4 374 848093 /Users/user/Library/Caches/IntelliJIdea2016.1/compile-serverjava 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 -iCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEUserEvent 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 *:49983SystemUIS 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 .jarCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 3905 MOMO cwd DIR 1,4 612 1372239 /Applications/IntelliJ IDEA.app/Contents/binjava 3905 MOMO txt REG 1,4 93824 1372266 /Applications/IntelliJ IDEA.app/Contents/jdk/Contents/Home/jre/bin/javajava 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/javatcp 0 0 ::ffff:10.224.35.5:38208 ::ffff:10.87.187.164:20600 ESTABLISHED 55/javatcp 0 0 ::ffff:10.224.35.5:37736 ::ffff:10.87.187.164:20600 ESTABLISHED 55/javatcp 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.133destination: default mask: default gateway: 10.20.0.201 interface: en4 flags: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.133destination: default mask: default gateway: 10.20.0.201 interface: en4 flags: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.100traceroute 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$ netstatActive Internet connections
6、telnet命令
执行telnet指令开启终端机阶段作业,并登入远端主机
7、scp命令
scp是secure copy的缩写,是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp传输是加密的。
示例 1 :从本地向远程机器copy文件
ebj1877:test user$ lltotal 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/testseagull@10.20.254.24's password:who.txt
然后我们登上10.20.254.24机器,查看是否copy成功
ebj1877:test user$ ssh seagull@10.20.254.24seagull@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.jardrwxrwxr-x. 2 seagull seagull 4096 1月 9 2016 gitdrwxrwxr-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$ lltotal 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:00ebj1877:test user$ lltotal 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'百度一下,你就知道
2、在返回结果中包含HTTP-header信息
[whc@test-docker whc]$ curl -i 'http://www.baidu.com'HTTP/1.1 200 OKServer: bfe/1.0.8.18Date: Wed, 28 Mar 2018 07:06:40 GMTContent-Type: text/htmlContent-Length: 2381Last-Modified: Mon, 23 Jan 2017 13:27:36 GMTConnection: Keep-AliveETag: "588604c8-94d"Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transformPragma: no-cacheSet-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/Accept-Ranges: bytes
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.012time_starttransfer: 0.080time_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$ lltotal 24-rw-r--r--@ 1 user staff 8.0K 9 18 14:58 .DS_Storedrwxr-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.txtebj1877:software user$ lltotal 32-rw-r--r--@ 1 user staff 8.0K 9 18 14:58 .DS_Storedrwxr-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.txtebj1877:software user$ ln test/who.txt who_2.txtebj1877:software user$ lltotal 40-rw-r--r--@ 1 user staff 8.0K 9 18 14:58 .DS_Storedrwxr-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.txt2c2<---> 6663a4,5>>
2c2表示两个文件在第二行不同,3a4,5表示who_copy.txt比who,txt多两行
示例 2 :并排比较两个文件
ebj1877:test user$ diff who.txt who_copy.txt -y123 123 | 666HAHA 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.txtHAHA
示例 3 :循环从文件中获取含有指定字符串的行
ebj1877:test user$ tail -fn 100 who.txt| grep 'HAHA'HAHA
4、wc命令
统计指定文件中的字节数、字数、行数
命令参数:
-c 统计字节数
-l 统计行数
-m 统计字符数
ebj1877:test user$ cat who.txt123我HAHAebj1877:test user$ wc -c who.txt 13 who.txtebj1877:test user$ wc -l who.txt 3 who.txtebj1877:test user$ grep 'HAHA' who.txt | wc -l 1ebj1877: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 -11USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDetcd 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:2379root 10213 0.3 1.3 2492304 106168 ? Sl 8月19 253:36 /home/seagull/mongodb/bin/mongod -f /home/seagull/mongodb/standAlone/mongodb.confroot 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.confkube 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:8080root 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.confpolkitd 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 startkube 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,ResourceQuotamysql 13250 0.0 3.8 2395656 306220 ? Ssl 10月12 0:44 mysqldmysql 13321 0.0 3.8 2263836 299496 ? Ssl 10月12 0:43 mysqldroot 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/statusName: javaState: S (sleeping)Tgid: 51Ngid: 0Pid: 51PPid: 1TracerPid: 0Uid: 0 0 0 0Gid: 0 0 0 0FDSize: 2048Groups:VmPeak: 57282836 kBVmSize: 57205808 kBVmLck: 0 kBVmPin: 0 kBVmHWM: 1323640 kBVmRSS: 1323640 kBRssAnon: 1313280 kBRssFile: 10360 kBRssShmem: 0 kB
示例6:显示指定进程下的线程数
[whc@user]$ ps -mq 107|wc -l984