Linux中录制回放终端会话

利用script和scriptreplay命令,我们可以录制命令的次序以及时序,将相关数据记录在文本文件中。利用这些文件,其他人可以在终端上回放并查看命令的输出。

我们在ubuntu终端中输入如下命令:

script -t 2> timing.log -a output.session

然后接着输入一系列命令操作,等操作演示完之后输入exit,将timing.log 和output.session发送到另一台centos中,可以通过scriptreplay timing.log output.session来回放录制的演示操作。

最终效果:在左侧ubuntu中我们使用scr......

gdb调试进程线程

本文是学习100gdb-tips的总结内容,部分代码与原文不同,补充相关调试程序中遇到的问题与解决方法。

调试已运行的程序

thread.c

#include <stdio.h>

#include <unistd.h>

#include <pthread.h>

void *thread_func(void *p_arg)

{

while (1)

{

printf("%s\n", (char*)p_arg);

sleep(10);

}

}

int main(void)

{

pthread_t t1, t2;

pthread_c......

Linux终端伪造黑客屏幕

在电影中经常看到黑客在破解某系统时屏幕上闪过一堆内容,今天在朋友圈看到居然有这方面的应用。可以说是居家旅行,装逼必备的利器了。

这个工具叫Hollywood,从根本上说,它运行在 Byobu ——一个基于文本的窗口管理器,而且它会创建随机数量、随机尺寸的分屏,并在每个里面运行一个混乱的文字应用。

Byobu 是一个在 Ubuntu 上由 Dustin Kirkland 开发的有趣工具。

Ubuntu 用户可以使用简单的命令安装 Hollywood:

sudo apt install hollywood

安装完成,输入hollywood即可开始装逼之旅,因为它会先运行 Byosu ,你......

Makefile与C

本文记录学习Makefile的过程,从C工程编译入手,在看之前APUE TLPI等书时源代码中均采用了Makefile的形式,因此此篇文章记录学习过程,会长期更新,如果有任何错误与疑问欢迎指出。

在编译一个大型项目的时候,往往有很多目标文件、库文件、头文件以及最终的可执行文件。不同的文件之间存在依赖关系(dependency)。

在我们编译一个大型项目时,我们往往要很多次的调用编译器,来根据依赖关系,逐步编译整个项目。这样的方式是自下而上的,即先编译下游文件,再编译上游文件。

UNIX系统下的make工具用于自动记录和处理文件之间的依赖关系。我们不用输入大量的"gcc&quo......

shell脚本判断文件是否存在

有一个需求是判断某一个目录下文件是否存在,如果该文件不存在,则从当前目录拷贝文件到该目录。

由于没有学习写过shell脚本,晚上下班回来搜索后写出了如下的脚本,这里shell的if语法格式与C语言大致相同,语法格式:

if [ 条件 ]; then

条件成立

else

条件不成立

fi

fi是结束if语句。

version1.0

#!/bin/sh

myFile="/root/apue/example.xml "

# 这里的-f参数判断$myFile是否存在

if [ ! -f "$myFile" ]; then

cp......

ssh连接ubuntu虚拟机

在mac中通过parallels在线下载ubuntu安装之后,通过已创建的用户登录进系统切换到root却发现root密码不对,应该做如下设置:

1、先用安装时候的用户登录进入系统

2、输入:sudo passwd 按回车

3、输入新密码,重复输入密码,最后提示passwd:password updated sucessfully

此时已完成root密码的设置,操作示例如下图所示,下图中设置了两遍root密码,由此可以判断我是一个喜欢做无用功的人。

Linux重定向

最近开始看UNIX环境高级编程,对于重定向的知识有所学习,在较早学习Linux命令行大全一书时对重定向学习不够深入,在UNIX环境高级编程第三章习题时有种恍然大明白的感觉。

重定向

按照惯例UNIX系统shell把文件描述符0与进程标准输入关联,1与标准输出关联,2与标准错误关联。

标准输入 标准输出 标准错误

默认情况下,标准输出和标准错误都被链接到屏幕上。

标准输入链接到键盘。I/O重定向的功能可以改变输出内容发送的目的地,也可以改变输入内容的来源。通常情况下,输入来自于键盘,输出内容显示在屏幕上,重定向可以改变这一惯例。

标准输出重定向

ls -l /usr/bin ......

Linux命令行大全总结(下)

本文是Linux命令行大全这本书第12章之后的阅读笔记部分。

VI简介

数字0 跳转至本行开头

Shift + 4 跳转至本行末尾

Shift + G 跳转至文件最后一行

dd 删除当前行

5dd 删除当前行和之后的4行

dG 删除当前行到文件末尾

d20G 删除从当前行至20行

复制命令

yy 复制当前行

5yy 复制当前行和之后4行

yG 复制当前行到文件末尾

y20G 复制......

Linux命令行大全总结(上)

阅读Linux/UNIX系统编程闲暇之余阅读Linux命令行大全这本书,想起当初毕业同学送给我时的场景,书很新,新到什么程度呢,我说这书时昨天刚买的都没毛病。

本篇博客只记录一些印象不太深刻的内容,相对较简单或对我来说比较熟练的,不再记录.

shell是一个接受由键盘输入的命令,并将其传递给操作系统来执行的程序。bash是Bourne Again Shell的首字母缩写,Bourne Again Shell基于这样一个事实,即bash是sh的增强版本,而sh是最初的UNIX shell程序,由Steve Bourne编写。

结束终端会话

直接关闭终端窗口或是在shell提示符下输入e......

生活

在地铁上看到旁边的一个人在津津有味的看一段关于生活的描述:

生活是什么?

生活对我而言是活着,是存在,是每一口呼吸,每一顿饭,每一个晚安。

生活是医院里给家人打电话,慌慌张张擦泪的外地人。

生活是雨天里踩着共享单车没打伞,全身湿透只为一个全勤的年轻人。

生活是明白一段感情,很多事,徒劳无功,但还是要奋力一试。

如果你觉得他们在假装,那我想,你真的对生活有什么误解。

当我看到邻座的大姐看的kindle上这段话时,我鼓起勇气冒着搭讪的风险问能不能拍个照,就这样在大姐的满脸疑惑中我举起了我心爱的iphone6s手机拍下这段当时在我看来感动的一塌糊涂的文字。

那么生活到底是什么呢......