普通用户常用命令或工具
常用命令
cd
更改当前目录ls
显示目录下的文件find
根据文件名进行查找grep
查找文件内容chown
更改文件属主chmod
更改文件模式位ps
显示进程快照ln
创建文件链接ln target hardlink
创建硬链接ln -s target symbollink
创建符号链接
history
显示历史命令tar
打包工具tar -cvf target.tar file1 file2
将file1和file2归档到target.tartar -xvf target.tar
文件解包
unzip
解压缩zip文件zip
压缩zip文件alias
创建命令别名su
切换用户sudo
临时使用管理员权限file
查看文件类型stat
查看文件或文件系统状态,该命令一般用来查看文件的修改或访问时间记录
磁盘管理
du
查看文件所占用的磁盘空间df
查看磁盘空间使用情况fdisk
磁盘分区表管理工具,可用于查看和划分磁盘分区mkfs
创建Linux文件系统mount
文件系统挂载工具
用户管理命令
useradd
添加用户passwd
修改用户命令who
查看当前登录到该系统的用户finger
查看当前登录到该系统的用户
系统信息查看命令
top
实时显示当前进程运行状态free
显示当前系统内存使用情况/proc/version /proc/cpuinfo /proc/meminfo
在/proc目录下会有很多跟系统信息相关的临时文件
网络管理命令
ip
新的网络配置管理和查看命令,旧的ifconfig
不再使用。例:ip addr
查看网卡地址ss
查看当前网络活动,旧的netstat
不再使用。例:ss -anl
查看系统当前TCP监听端口route
路由表管理命令。route -n
显示路由表route del -net 0.0.0.0
删除默认路由route add -net 0.0.0.0 gw 10.0.2.2 dev eth0
添加默认路由
arp
ARP高速缓存管理arp -d 192.168.56.100
删除高速缓存
tcpdump
抓包工具traceroute
网络包追踪
selinux(Security-Enhanced Linux)
跟 selinux 相关的命令有 getenforce 和 setenforce。具体可查看手册页:man selinux
openssl加解密工具
RSA加解密
- 生成RSA私钥:
openssl genrsa -des3 -out private.pem 2048
- 生成RSA私钥对应的公钥:
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
- 使用RSA公钥加密文件:
openssl rsautl -encrypt -inkey public.pem -pubin -in file.in -out file.rsa
- 使用RSA私钥解密文件:
openssl rsautl -decrypt -inkey private.pem -in file.rsa -out file.out
开发工具或命令
编译相关
gcc/g++
GNU C/C++编译器gcc -E source.c -o target.i
预处理:展开宏gcc -S target.i -o target.s
编译:将源文件编译为汇编代码gcc -c target.s -o target.o
汇编:将汇编代码编译为机器码(中间目标文件)gcc target.o -o target
链接:将目标文件链接为可执行文件
ar
目标文件打包工具,可用于打包静态库make
软件工程自动化构建工具gdb
软件调试工具ld
GND链接器ldd
显示程序所需的动态链接库nm
打印目标文件的符号信息strings
查看嵌入于二进制文件中的字符串time
显示程序执行时间
程序调试及调优工具
strace
追踪软件使用的系统调用strace -p pid
追踪进程号为pid的进程所执行的系统调用strace emacs -o emacs.trace
启动emacs并追踪其进程调用,并将信息打印到emacs.trace文件中strace emacs > emacs.trace 2>&1
同上述命令
lsof
显示进程打开的文件- PID=`pidof nginx` && for i in $PID; do lsof -p $i; done 打印所有nginx进程打开的文件
valgrind
应用程序调试及分析工具包valgrind --leak-check=full a.out
内存泄漏检查
vmstat
查看虚拟内存mpstat
查看CPU状态pstack
查看运行进程的函数堆栈
系统排查工具
追踪文件被哪个进程修改
可以通过audit来追踪。 Linux内核本身就提供审计功能,但我们如果需要将内核中的审计日志提取出来则需要通过audit工具套件。
假如我们要追踪 /tmp/foo 文件被哪些进程修改或读取过,可通过如下步骤来实现:
- auditctl -w /tmp/foo -p rwxa -k fileop
- ausearch -k fileop