sysctl

sysctl是用于动态修改内核运行时的运行参数的命令,这些参数位于/proc/sys目录下。可以使用sysctl来设置或重新设置联网功能,如IP转发、源路由检查等。sysctl -a 可以查看所有参数,sysctl - ArchWiki有关于sysctl的使用方式,包括从配置文件加载参数配置的使用示例。

systemctl

systemctl是用于管理系统服务的指令。systemd是Linux下的初始化系统,可以并发启动进程,且尽可能少的启动进程,加快系统启动的速度;systemd对应的进程管理命令就是systemctl。同时systemctl兼容了service,因此可以使用systemctl来启动服务,关闭服务,创建启动项,删除启动项等等操作

cat << EOF 和 cat <<- EOF 的区别

可以使用 cat > file << EOF 的形式来新建一个文件,但是 << EOF 和 <<- EOF有一定的区别。

如果重定向的操作符是 <<-,那么分界符(EOF)所在行的开头部分的制表符都将被去除。换句话说:在使用 cat << EOF时,必须要在新的一行顶行写EOF,比如这样写:

1
2
3
cat <<EOF
Hello,world!
EOF

但是在使用 cat <<- EOF 时就可以不用顶行,系统会去掉前面的制表符。

1
2
3
cat <<-EOF
Hello,world!
EOF

lsof

lsof(list open files)是一个列出当前系统打开文件的工具。常用的用于查看端口占用的命令:lsof -i [port] 。因为Linux系统中一切皆文件,所以这个命令可以查看到所有的数据,包括常规的文件,或者是网络连接,亦或是硬件设备。

命令格式:lsof [参数][文件] ,详细用法可以使用 man 命令来查看。

strace

strace命令用来跟踪用户空间进程的系统调用和信号。目前我也没用过,这里有一篇关于strace使用的介绍