一些杂七杂八的指令(组合)
# 用指定IP和Port连某台机器 ssh -i ~/.ssh/my_id_rsa yourname@remote_ip -p port # 用scp直接从A机器往B机器拷贝文件(跳过本地中转过程) scp -3 machine_a:/home/yourname/test.txt machine_b:/home/yourname/downloads/ # 用scp传文件夹 scp -r /path/to/local/folder username@remote:/path/to/remote/folder # 查看Linux版本信息(Debian) cat /etc/os-release # 批量清空文件(如日志) find somedir/ -name your_pattern_*.log -exec dd if=/dev/null of={} \; find somedir/ -name your_pattern_*.log | xargs -I {} sh -c "cat /dev/null > {}" # 计算一个目录下所有文件的md5总和 find /path/to/directory -type f -print0 | sort -z | xargs -0 cat | md5sum # pip安装指定版本的库(pip3同理) pip install gevent==1.4.0 greenlet==0.4.15 pip install -r requirements.txt # 从文件安装(pip freeze > requirements.txt得到) # vim删除包含特定字符串的行 %g/debug/d # vim删除不包含特定字符串的行 %g!/debug/d # 查看某个进程监听了哪些tcp端口(去掉grep那部分可以看进程打开的所有文件) lsof -p 17637 | grep -i tcp # 查看打开了某个文件的所有进程 lsof -a /lib/x86_64-linux-gnu/libutil-2.19.so # 查看监听了udp的进程 lsof -i udp # 查看使用了8888端口的进程 lsof -i :8888 # 查看当前所有进程,按线程数排序(这样可以找到创建线程最多的进程) ps -eLf | sort -nrk 6,6 | head # 查找某个.so是否有某个符号 nm -D /lib/x86_64-linux-gnu/libdl-2.28.so | grep dlsym # 查看demangle后的符号(底层形式转换成用户可读形式) nm -C /usr/lib/x86_64-linux-gnu/libresolv.a # 查看二进制都加载了哪些.so ldd /usr/bin/python3.7 # 查看二进制的动态库部分,可用于看RUNPATH,方便知道它的动态库搜索路径 readelf -d ./bin/my_bin # 查看二进制的符号表(看.so或者.a也可以的,尤其是系统的库,这个貌似nm看不到) readelf -s ./bin/my_bin # 查找是否安装了某个库 dpkg -l | grep libmongoc-dev # 查找某个库的库文件及头文件位置 dpkg -L libmongoc-dev # 查看文件的创建/修改时间信息 stat filepath # 创建软连接,ln -s target_path link_path # 文件: sudo ln -s /lib/x86_64-linux-gnu/libicuuc.so.67 /lib/x86_64-linux-gnu/libicuuc.so # 文件夹,需要保证/usr/local/python3/include存在,sudo mkdir -p /usr/local/python3/include: sudo ln -s /usr/local/include/python3.7m /usr/local/python3/include/python3.7m # 检查tcp连通性 telnet 127.0.0.1 1234 # 也可以用nc,如:nc 127.0.0.1 1234;如果看udp,就加-u,如:nc -u 127.0.0.1 1234,但nc不一定有,要装 # 检查udp连通性 nc -vuz 127.0.0.1 1234 # 如果双端都有nc,可以这样: nc -u -l -p 12345 # 服务端 echo "hello" | nc -u dest_ip 12345 # 客户端 # 这样服务端会显示hello,不过好像只能一次,再用就只能两边ctrl+c再来 # perf相关 # 直接启动 perf record -o ~/tmp/test_perf.data your_command # 分析perf数据 perf report -i ~/tmp/test_perf.data # 更多请查看:https://www.brendangregg.com/perf.html # ag相关 # 只匹配py文件(ag --list-file-types查看支持的类型,常用有--cc和--cpp): ag --python -w keyword ./dir_to_match