学习shell时学习了广为人知的fork炸弹
命令
find /usr/bin -type f -mtime +1 | xargs ls -alh | awk '{print $9}'
假如我们想要删除光标后的内容可以使用:CTRL + K,恢复的话使用CTRL + Y,如果想删除光标前的内容使用CTRL + U,CTRL+W删除光标前的一个单词直到遇到下一个空格。
使用上面的find命令可以测试上述快捷键。
CPU测试工具的使用:
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
在终端机里输入:
apt-cache search
在终端机里输入:
apt-get install
在终端机里输入:
apt-get remove [--purge]
在终端机里输入:
apt-get update
这样系统会自动由映射点更新包列表,如果想安装最新包,必须先运行一次。每次修改了 /etc/apt/sources.list后,也必须运行一次。
在终端机里输入:
apt-get upgrade
这样系统会自动将所有已经安装在系统内的包升级为最新版本。如果一个包改变了依存关系,而需要安装一个新的包时,它将不会被升级,而是标识成hold。如果某个包被设置hold标号,就不会被升级。
在终端机里输入:
apt-get dist-upgrade
和apt-get upgrade类似,dist-upgrade会安装和移除包来满足依存关系,因此具有一定的危险性。