strace
- 获取某个可执行文件执行过程中用到的所有系统调用
:strace -f g++ main.cpp &| vim查看g++编译过程调用了哪些系统调用 , 通过管道符用vim接收:%! grep execve:%s/ , /\r /g将文件中的 ,+空格 换成\r , /g表示全局替换strace参数-c 统计每一系统调用的所执行的时间,次数和出错的次数等.-d 输出strace关于标准错误的调试信息.-f 跟踪由fork调用所产生的子进程.-ff 如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪.-h 输出简要的帮助信息.-i 输出系统调用的入口指针.-q 禁止输出关于脱离的消息.-r 打印出相对时间关于,,每一个系统调用.-t 在输出中的每一行前加上时间信息.-tt 在输出中的每一行前加上时间信息,微秒级.-ttt 微秒级输出,以秒了表示时间.-T 显示每一调用所耗的时间.-v 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.-V 输出strace的版本信息.-x 以十六进制形式输出非标准字符串-xx 所有字符串以十六进制形式输出.-a column
Linux目录介绍目录/bin存放二进制可执行文件(ls,cat,mkdir等) , 常用命令一般都在这里 。/etc存放系统管理和配置文件/home存放所有用户文件的根目录 , 是用户主目录的基点 , 比如用户user的主目录就是/home/user , 可以用~user表示/usr用于存放系统应用程序 , 比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用) 。这是最庞大的目录 , 要用到的应用程序和文件几乎都在这个目录 。/usr/x11r6 存放x window的目录 /usr/bin 众多的应用程序/usr/sbin 超级用户的一些管理程序/usr/doc linux文档/usr/include linux下开发和编译应用程序所需要的头文件/usr/lib 常用的动态链接库和软件包的配置文件/usr/man 帮助文档/usr/src 源代码 , linux内核的源代码就放在/usr/src/linux里/usr/local/bin 本地增加的命令/usr/local/lib 本地增加的库/opt额外安装的可选应用程序包所放置的位置 。一般情况下 , 我们可以把tomcat等都安装到这里 。/proc不能动 , 虚拟文件系统目录 , 是系统内存的映射 。可直接访问这个目录来获取系统信息 。/sys不能动 , linux内核 , 硬件设备的驱动程序信息/root超级用户(系统管理员)的主目录(特权阶级o)/sbin存放二进制可执行文件 , 只有root才能访问 。这里存放的是系统管理员使用的系统级别的管理命令和程序 。如ifconfig等 。/dev用于存放设备文件 。/mnt系统管理员安装临时文件系统的安装点 , 系统提供这个目录是让用户临时挂载其他的文件系统 。/boot存放用于系统引导时使用的各种文件 , 启动时的核心文件/lib存放跟文件系统中的程序运行所需要的共享库及内核模块 。共享库又叫动态链接共享库 , 作用类似windows里的.dll文件 , 存放了根文件系统程序运行所需的共享文件 。/tmp用于存放各种临时文件 , 是公用的临时文件存储点 。/var用于存放运行时需要改变数据的文件 , 也是某些大文件的溢出区 , 比方说各种服务的日志文件(系统启动日志等 。)等 。/lost+found这个目录平时是空的 , 系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里/srv不能动 , service缩写 , 存放一些服务启动之后需要提取的数据 , tmux使用能:(1) 分屏 。(2) 允许断开Terminal连接后 , 继续运行进程 。结构:一个tmux可以包含多个session , 一个session可以包含多个window , 一个window可以包含多个pane 。实例:tmux:session 0:window 0:pane 0pane 1pane 2...window 1window 2...session 1session 2...操作:(1) tmux:新建一个session , 其中包含一个window , window中包含一个pane , pane里打开了一个shell对话框 。(2) 按下Ctrl + a后手指松开 , 然后按%:将当前pane左右平分成两个pane 。(3) 按下Ctrl + a后手指松开 , 然后按"(注意是双引号"):将当前pane上下平分成两个pane 。(4) Ctrl + d:关闭当前pane;如果当前window的所有pane均已关闭 , 则自动关闭window;如果当前session的所有window均已关闭 , 则自动关闭session 。(5) 鼠标点击可以选pane 。(6) 按下ctrl + a后手指松开 , 然后按方向键:选择相邻的pane 。(7) 鼠标拖动pane之间的分割线 , 可以调整分割线的位置 。(8) 按住ctrl + a的同时按方向键 , 可以调整pane之间分割线的位置 。(9) 按下ctrl + a后手指松开 , 然后按z:将当前pane全屏/取消全屏 。(10) 按下ctrl + a后手指松开 , 然后按d:挂起当前session 。(11) tmux a:打开之前挂起的session 。(12) 按下ctrl + a后手指松开 , 然后按s:选择其它session 。方向键 —— 上:选择上一项 session/window/pane方向键 —— 下:选择下一项 session/window/pane方向键 —— 右:展开当前项 session/window方向键 —— 左:闭合当前项 session/window(13) 按下Ctrl + a后手指松开 , 然后按c:在当前session中创建一个新的window 。(14) 按下Ctrl + a后手指松开 , 然后按w:选择其他window , 操作方法与(12)完全相同 。(15) 按下Ctrl + a后手指松开 , 然后按PageUp:翻阅当前pane内的内容 。(16) 鼠标滚轮:翻阅当前pane内的内容 。(17) 在tmux中选中文本时 , 需要按住shift键 。(仅支持Windows和Linux , 不支持Mac , 不过该操作并不是必须的 , 因此影响不大)(18) tmux中复制/粘贴文本的通用方式:(1) 按下Ctrl + a后松开手指 , 然后按[(2) 用鼠标选中文本 , 被选中的文本会被自动复制到tmux的剪贴板(3) 按下Ctrl + a后松开手指 , 然后按] , 会将剪贴板中的内容粘贴到光标处
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- centos7系统资源限制整理
- 大数据常用的Linux命令
- 整理一些Windows桌面运维常用的命令,并且整合成脚本
- csv2ECharts,**一行命令查看数据趋势图 工具分享**
- 工作7年收集到的git命令
- cmd常用命令介绍
- 自身 如何在linux下检测IP冲突
- linux双系统启动
- 【设计模式】Java设计模式 - 命令模式
- linux系统时间设置