网络测试
- telnet
telnet 10.5.146.2 8020
- nc
##下面两句话就可以实现一个简单的网络聊天程序
nc -l 1234
nc localhost 1234
##检查远程计算机端口是否开放
nc -v 10.5.146.2 8021
- netstat
性能测试
- time命令
例子 time ps aux
time后面的指令会被执行,time负责测算执行时间
real 0m0.032s
user 0m0.004s
sys 0m0.016s
real是实际的时钟时间。user是进程在用户模式下话费的时间。sys是进程在内核中的时间。real是后两者的和加上进程被阻塞的时间(如其他进程的时间片和IO阻塞)
变量
-
set
查看本地shell定义的变量 -
env
查看环境变量
文件操作
- tar
tar zcvf /home/wamh.tar.gz /home/stud1/wang
注意前面是要生成的文件,后面才是要打包的文件夹目录。解压缩的参数为zxvf
-
diff
比较两个文件。 -
file
辨识文件类型
文件处理
-
zgrep 查找文本 压缩文件1.gz 压缩文件2.gz
可以免解压缩来查看日志 -
wc
计数命令.
ls -l|wc -l 用于统计当前文件夹中文件的数量。
netstat -anp|grep -i 61616 |wc -l 用于查看指定端口的连接数
-
nl
输出文件,并在非空行上加上行号
nl|grep exception. 带行号搜索 -
sed
以行为单位来编辑文本 -
tee
将标准输出输出为文件
ls -l|tee a.txt
注意,tee仍然将输出在标准输出上。
tee也可以采取追加输出的方式。比重定向的优点在于,可以同时输出到多个文件 -
sort
对文本文件进行排序 -
uniq
检查和删除文件中重复出现的行 -
split
切割文件,可以将大文件转化为小文件
进程状态
-
ps
显示当前活动的进程
-e 显示所有进程
-f 全格式
-l 长格式
–forest 显示进程树 -
pidstat
查看指定进程的具体信息,包含CPU,内存,磁盘IO,线程数情况等。 -
pmap
查看进程中各个模块所占用内存的具体情况
[root@C44 ~]# pmap -d 1
1: init [5]
Address Kbytes Mode Offset Device Mapping
00934000 88 r-x-- 0000000000000000 008:00005 ld-2.3.4.so
0094a000 4 r---- 0000000000015000 008:00005 ld-2.3.4.so
0094b000 4 rw--- 0000000000016000 008:00005 ld-2.3.4.so
0094e000 1188 r-x-- 0000000000000000 008:00005 libc-2.3.4.so
00a77000 8 r---- 0000000000129000 008:00005 libc-2.3.4.so
00a79000 8 rw--- 000000000012b000 008:00005 libc-2.3.4.so
00a7b000 8 rw--- 0000000000a7b000 000:00000 [ anon ]
00a85000 52 r-x-- 0000000000000000 008:00005 libsepol.so.1
00a92000 4 rw--- 000000000000c000 008:00005 libsepol.so.1
00a93000 32 rw--- 0000000000a93000 000:00000 [ anon ]
00d9d000 52 r-x-- 0000000000000000 008:00005 libselinux.so.1
00daa000 4 rw--- 000000000000d000 008:00005 libselinux.so.1
08048000 28 r-x-- 0000000000000000 008:00005 init
0804f000 4 rw--- 0000000000007000 008:00005 init
084e1000 132 rw--- 00000000084e1000 000:00000 [ anon ]
b7f5d000 8 rw--- 00000000b7f5d000 000:00000 [ anon ]
bffee000 72 rw--- 00000000bffee000 000:00000 [ stack ]
ffffe000 4 ----- 0000000000000000 000:00000 [ anon ]
mapped: 1700K writeable/private: 276K shared: 0K
-
pstack
检查操作系统的本地调用堆栈。相当于操作系统的java jstack。 -
strace 跟踪程序运行时所有的系统调用
strace -o echo.txt echo 1
运行之后文件如下
execve("/usr/bin/echo", ["echo", "1"], [/* 23 vars */]) = 0
brk(0) = 0xcff000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9cf16e2000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=20277, ...}) = 0
mmap(NULL, 20277, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9cf16dd000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\34\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2118128, ...}) = 0
mmap(NULL, 3932672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f9cf1103000
mprotect(0x7f9cf12b9000, 2097152, PROT_NONE) = 0
mmap(0x7f9cf14b9000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b6000) = 0x7f9cf14b9000
mmap(0x7f9cf14bf000, 16896, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f9cf14bf000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9cf16dc000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9cf16da000
arch_prctl(ARCH_SET_FS, 0x7f9cf16da740) = 0
mprotect(0x7f9cf14b9000, 16384, PROT_READ) = 0
mprotect(0x606000, 4096, PROT_READ) = 0
mprotect(0x7f9cf16e3000, 4096, PROT_READ) = 0
munmap(0x7f9cf16dd000, 20277) = 0
brk(0) = 0xcff000
brk(0xd20000) = 0xd20000
brk(0) = 0xd20000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=106070960, ...}) = 0
mmap(NULL, 106070960, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f9ceabda000
close(3) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9cf16e1000
write(1, "1\n", 2) = 2
close(1) = 0
munmap(0x7f9cf16e1000, 4096) = 0
close(2) = 0
exit_group(0) = ?
+++ exited with 0 +++
系统状态
- df -h 以标准markdown表格格式打印磁盘信息。
Filesystem | Size | Used| Avail|Use%| Mounted on
----|------|----|-----|-----|------
/dev/mapper/vg_root-lv_root|3.0G | 295M | 2.6G | 11% |/
tmpfs |3.9G | 76K |3.9G | 1% |/dev/shm
/dev/sda1 |485M | 37M | 423M | 9% |/boot
/dev/mapper/vg_root-lv_home |2.0G | 68M |1.9G | 4% |/home
/dev/mapper/vg_root-lv_adm|2.0G | 68M |1.9G | 4% |/opt/adm
/dev/mapper/vg_root-lv_tmp|1008M | 209M | 748M | 22% |/tmp
/dev/mapper/vg_root-lv_usr|6.0G | 3.0G | 2.7G | 53% |/usr
/dev/mapper/vg_root-lv_var|4.0G |1.3G |2.6G |33% |/var
/dev/mapper/vg_app-lv_DATA|50G | 16G | 31G | 35% |/DATA
注意,所有文件设备文件必须挂在在目录下才能够访问。
一般来说,linux发行版都会默认开启temfs,这个tempfs不在硬盘上,而是在内存中。你可以将这个目录当成正常目录进行存储,因为在内存中,所以速度很快。但是!这里的文件具有掉电就会失去。
-
free
查看内存和交换区大小
显示结果的第二行中
(-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached,反应被程序实实在在吃掉的内存量。
(+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached,反应现在系统可以被占用的内存量。 -
strace
查看系统调用 -
lsof
查看所有打开文件 -
cat /proc/cpuinfo
查看CPU占用 -
crontab -e
定时任务修改,注意,crontab不能获取环境变量,也不支持相对目录,必须使用绝对目录,或者手动cd到工作目录
tail /var/log/cron
查看crontab日志 -
du
查看文件大小 -
ls -lht
查看文件大小 -
top
linux版本的任务管理器 -
format
格式化磁盘 -
mount/umount
挂载文件 -
renice
调整优先级 -
ipcs
显示进程间通信 -
sync
将内存缓冲区内容存入磁盘 -
vmstat
显示计算机系统状态。可以以一定时间间隔不断输出。可以用来对操作系统的持续监控。 -
iostat
监控磁盘的IO -
swapon
监控交换分区的使用情况
辅助功能
-
which python
查看安装程序位置 -
tty
查看当前终端号 -
find ~ -iname “*.git”(mac)
查找文件 -
find . -name “*.git”(linux)
查找文件 -
find ./ -name *.c (linux)
-
find ./ -regex .*sh
版本信息
-
cat /etc/issue
查看linux版本信息 -
uname -a
查看架构信息 -
cat /etc/os-release/cat redhat-release
centos版本查询 -
lsb_release -a
ubuntu版本查询
网络查询
-
nslookup
查询一台及其的对应的IP地址和域名。 -
tcpdump
命令行版本的抓包工具 -
traceroute
-
sar 查看当前网卡的读取速度
-
iptraf 一个比较全面的网络监控,有彩色页面。
-
nmap 检查某一个主机打开的所有端口,在网络渗透中常用
proc
linux提供了通过proc目录查看运行时内存中数据结构的能力。
- cat /proc/cpuinfo CPU硬件信息
- cat /proc/meminfo 内存信息
- cat /proc/zoneinfo 内存映射信息
- cat /proc/mounts 磁盘映射信息
- cat /proc/loadavg 系统平均负载
安装软件
-
yum install mysql devel###
-
yum makecache###
-
yum list installed|##
查看所有已经安装的软件 -
rpm -ivh MySQL-client-5.5.44-1.el6.x86_64.rpm
离线安装rpm包 -
apt-get update 更新源的列表
-
apt-get upgrade 升级所有安装的软件包