shell--awk和sed用法

awk和sed都是功能超强的文件处理工具,awk主要用于行处理,sed用于列的处理

简介awk用法

awk是一个对文本操作的工具,可以直接用于命令行,也可以以脚本的形式

以截取自己的局域网ip为例

shell--find用法

在shell编程中常常需要来查找文件,并对文件进行处理
find
find 的参数有很多,就不一一列举,主要写了几个常用参数
-name 根据文件名来查找
-perm 根据文件权限来查找
-user 根据文件的所有者
-type 根据文件类型来查找

linux--修改PS1的值

##PS1变量值的作用
PS1变量用来显示用户终端的提示符号

可以直接echo $PS1 来查看PS1的值
无论是root还是普通用户,默认都是
[\u@\h \W]\$
\u代表表示当前的用户名
\h代表主机名
\W代表当前的目录

unix_c--静态链接库和动态链接库

编译的过程

当我们用gcc编译c语言程序的时候都是直接生成可执行文件,但是在实际的编译过程中
编译的过程也是有明显的步骤之分的。
以最简单的程序hello.c为例。
1:预编译
gcc -E hello.c -o hello.i
简单来说就是替换掉宏,展开头文件。

1
2
3
4
5
6
将所有的`#define`删除,并且展开所有的宏定义
处理所有条件预编译指令,比如`#if`、`#ifdef`、`#elif`、`else`、`#endif`
处理`include`预编译指令,将被包含的头文件插入到该预编译指令的位置。(这个过程是递归进行的,也就是被包含的文件可能包含有其他的文件)
删除所有的注释`//`和`/**/`
添加行号和文件名标识,比如`#2"hello.c"`,以便于编译时遍一起产生调试用的行号信息以及用于编译时产生编译错误或警告时能够显示行号
保留所有的`#progma`编译指令,因为编译器须要使用它们

linux--修改redhat7的截图配置

操作平台: rhel 7.1
桌面环境: gnome3 Version 3.8.4

首先说以下为什么要更改配置,默认情况下redhat的截图是放在Picture目录下的
而且,截图的文件名都是以screenshot+from+日期+时间,但是这个中间是带空格
的,当在终端下批量操作的时候,可能发生一些神奇的错误。
那么,问题来了,怎样名字都不会以空格隔开,而且,不同天的截图放在以日期
命名的目录下呢?

算法--排序算法整理

排序概念

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。

各种排序

以下的排序都是以排序数组为例。当然一般用来排序的也就是数组了,比如栈,队列,哈系表这些,
就不用排序了,因为它们的主要用途不在于排序。

数据结构--将通用双端链表封装成栈

什么是栈?

栈(stack)又名堆栈,它是一种运算受限的线性表。
其限制是仅允许在表的一端进行插入和删除运算。
这一端被称为栈顶,相对地,把另一端称为栈底。
向一个栈插入新元素又称作进栈、入栈或压栈,
它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;
从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,
使其相邻的元素成为新的栈顶元素。

,