shell导入环境变量

看到一篇非常有意思的文章export variables,讲述了shell环境变量的用法,其中有一个比较新奇的点,例如我在命令行中直接输入bash可以创建一个新的实例(start a new shell instance).如果普通的变量定义在子进程中输出为空,如果想要将变量传递给子进程就需要export变量。

在stackoverflow看到一篇答案bash

The short answer is that when you type "bash" at a bash prompt, it starts a new bash process.

Bash is a program t......

week-note-190108

touch命令

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

注意到touch命令是在youtube上的一个video,对一个存在的文件,使用touch命令将更新文件或者目录的时间属性。

[root@centos-linux-10 workspace]# ll -al

总用量 80

drwxr-xr-x. 3 root root 4096 12月 31 15:05 .

dr-xr-x---. 7 root root 4096 12月 31 15:05 ..

drwxr-xr-x. 2 root root ......

C++ primer 5th学习

由于最近工作中需要使用c++编写一个工具,趁元旦三天假期学习下c++的相关特性,浏览C++ primer 5th一书,这本当时4年前买的大块头的书,看新旧程度应该只看了100页左右😓。

编译c++程序

gcc可以对c/c++代码进行编译,g++可以对c++代码进行编译,gcc和g++在编译c++代码时,在预编译 编译阶段作用相同,在链接阶段g++会自动链接标准c++库,so,而gcc需要手动加上-lstdc++

完整的编译命令如下:

gcc -g -o execute example.cpp -lstdc++

使用gcc编译完整命令:

g++ -o prog1 prog1.......

week-note-181109

学习shell时学习了广为人知的fork炸弹

fork炸弹

GNU parallel官方文档

命令

find /usr/bin -type f -mtime +1 | xargs ls -alh | awk '{print $9}'

假如我们想要删除光标后的内容可以使用:CTRL + K,恢复的话使用CTRL + Y,如果想删除光标前的内容使用CTRL + U,CTRL+W删除光标前的一个单词直到遇到下一个空格。

使用上面的find命令可以测试上述快捷键。

CPU测试工具的使用:

Unixbench

awk入门教程

git官方文档

Linux top命......

GNU parallel

安装GNU parallel报错

因公司项目编译由串行修改为并行,因此学习GNU parallel知识,使用GNU parallel进行并行编译。

在下载了GNU parallel安装包,解压之后执行

./configure

make&&make install

结果提示如下错误:

[root@centos-linux-10 parallel-20171222]# make

CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /root/parallel-20171222/missing a......

使用addr2line定位程序崩溃位置

dmesg介绍

在介绍addr2line前需要学习下dmesg:

dmesg命令用于打印Linux系统开机启动信息,kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看(print or control the kernel ring buffer)。开机信息亦保存在/var/log/dmesg的文件里。

常用参数

格式:dmesg

查看开机信息。

格式:dmesg -c

清除开机信息,但/var/log/dmesg文件中仍然有这些信息。

实例一

dmesg消息重定向

dmesg >boot.me......

Linux内核模块

cat /proc/modules

第一列: 模块的名字

第二列: 模块的内存大小,单位是bytes

第三列: 被load的次数,0以为着没有被load过

第四列: 是否依赖第三方moudle,列出这些module,不依赖第三方moudle使用-代替

第五列: 模块的状态,有Live, Loading, Unloading三种状态

第六列: 模块当前的内核内存偏移位置。这些信息,debug的时候会非常有用。例如一些诊断工具 oprofile。

[root@centos7-10 ~]# cat /proc/modules

xt_CHECKSUM 12549 1 - Live ......

Linux网络安全技术与实现

本文记录Linux网络技术与实现读书笔记,这是一本已经停产了的书,在豆瓣上评分颇高,此书为第二版,第一版书名为-更安全的Linux网络。笔记记录的形式不会采取面面俱到的方式,精选一些比较重要的内容,如果你没有接触过这方面的内容,阅读本文可能会有强烈的不适感。

TCP UDP及Socket的关系端口的分类

公认的端口:0-1023

注册的端口:1024-49151

动态端口:49152-65535

端口的作用

假设我们在服务器端主机运行了Web SSH及DNS三项服务。在TCP/IP的网络规范中,当一个网络应用运行起来时,都会占用一个端口,如服务器端的Web服务器启动时,即会占用......

linux Command Line Cookbook

在gitbook上看到一本不错的书,适合在碎片时间比如地铁上阅读,而且是英文版,格调比较高。

Command Line Cookbook

书中首先讲的是重定向相关的内容,书中讲了一个例子,比如执行两条命令,在第一条命令执行失败时才执行第二条命令,可以用如下方法:

ls file &> /dev/null || echo "File not exist"

假如当前目录下不存在file这个文件,才会打印 File not exist,而&>file是一种特殊的用法,也可以写成>&file,二者的意思完全相同,都等价于

>file ......

深入理解Linux /proc/pid/maps

man手册中内容

stackoverflow