学习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命令
-d: 表示每一次刷新的时间间隔
-c: 显示整个命令行(包括参数)而不只是显示命令名
-p: 只显示具体的进程,不显示所有的进程
在top的显示过程中,还可以输入命令进行交互:
M:以内存的占有率进行排序
P:CPU占有率进行排序
T:运行时间进行排序
d:改变刷新时间

实例:
top //每隔5秒显式所有进程的资源占用情况
top -d 2 //每隔2秒显式所有进程的资源占用情况
top -c //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

volatile关键字的两层语义
一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:
1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
2)禁止进行指令重排序。
3)不保证操作原子性。

centos7开机以图形界面/命令行启动
查看/etc/inittab如下:

# systemd uses 'targets' instead of runlevels. 
# by default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target

新版本的CentOS 系统里使用’targets’ 取代了运行级别的概念。系统有两种默认的’targets’: 多用户.target 对应之前版本的3 运行级别; 而图形.target 对应之前的5运行级别。

查看默认的target,执行:
systemctl get-default

开机以命令模式启动,执行:
systemctl set-default multi-user.target

开机以图形界面启动,执行:
systemctl set-default graphical.target

在用户不确定一个软件包类型时,可以使用file命令查看文件类型。
ubuntu软件包的命名分遵循以下约定:
Filename_Version-Reversion_Architecture.deb

dpkg是Debian软件包管理器的基础,它被伊恩·默多克创建于1993年。 dpkg与RPM十分相似,同样被用于安装、卸载和供给和.deb软件包相关的信息。 dpkg本身是一个底层的工具。 上层的工具,像是APT,被用于从远程获取软件包以及处理复杂的软件包关系。

dpkg -i 安装本地文件系统上存在的Debian软件包
dpkg -r 移除已经安装的软件包
dpkg -P 移除已经安装软件包和配置
dpkg -L 列出安装的软件包清单
dpkg -s 显示软件包的安装状态

高级包装工具APT介绍

在终端机里输入:
apt-cache search
这样系统会列出与名称相匹配的包。

在终端机里输入:
apt-get install
这样系统会自动下载以及所有的依存包,同时进行包的安装。

在终端机里输入:
apt-get remove [--purge]
这样系统会自动移除以及任何依此存包的其它包。 --purge指明包应被完全清除。

在终端机里输入:
apt-get update
这样系统会自动由映射点更新包列表,如果想安装最新包,必须先运行一次。每次修改了 /etc/apt/sources.list后,也必须运行一次。

在终端机里输入:
apt-get upgrade
这样系统会自动将所有已经安装在系统内的包升级为最新版本。如果一个包改变了依存关系,而需要安装一个新的包时,它将不会被升级,而是标识成hold。如果某个包被设置hold标号,就不会被升级。

在终端机里输入:
apt-get dist-upgrade
和apt-get upgrade类似,dist-upgrade会安装和移除包来满足依存关系,因此具有一定的危险性。