普通用户常用命令或工具
常用命令
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添加默认路由
arpARP高速缓存管理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软件调试工具ldGND链接器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