Linux 系统参数和变量配置

一、常见系统参数配置

(一)用户系统资源限制

文件路径:/etc/security/limits.conf

常见配置:

对appuser做资源限制
    appuser soft nofile 655360

对所有用户做资源限制
    * soft nofile 655360

对用户组做限制
    @student hard nofile 65535

类型:
    soft 超过阈值告警
    hard 真正的上限

命令:ulimit

ulimit -a 显示当前所有的资源限制
ulimit -H 设置硬件资源限制 必须卸载n参数前面
ulimit -S 设置软件资源限制
ulimit -n 设置进程最大打开文件描述符数
ulimit -f 设置可以建立的最大文件容量

注意:

  • 可以限制通过PAM登录的用户资源使用,但是不对系统服务生效
  • 动态的参数同样会写进/pro/sys 目录下
  • 很多软件都有推荐的ulimit配置

(二)内核参数配置

文件

内核静态参数配置 /etc/sysctl.conf

例如:

        在配置文件中追加:net.ipv4.ip_forward=1 

        sysctl -p /etc/sysctl.conf 使参数生效

命令

内核运行参数配置 sysctl

内核参数位置:/proc/sys 参数名称是以文件所在的路径,并将 '/' 以 '.' 来取代

例如:/proc/sys/net/ipv4/ip_forward的参数名称为net.ipv4.ip_forward

sysctl -w net.ipv4.ip_forward=1

等价于

echo 1 > /proc/sys/net/ipv4/ip_forward

注意:部分内核参数是不允许修改的,在没清楚参数作用前,变更要谨慎!!!


二、变量与环境变量

(一)变量

设置变量
FIRST='Hello World!'

注意:
    1) 变量等号左右不能有空格
    2) 变量由字符和数字组成,但不能用数字开头
    3) 变量的内容可以用""和''组成,可以拼接和共用
        "" 内可以包含转义符
        '' 会原样输出,纯文本
        \ 在双引号内是转义字符

        `` 反单引号返回内容命令执行结果
        $() 同上,返回内容命令执行结果
    4) $变量名 取值
    5) 未定义的变量为空


案例:
# echo "$FIRST"            # 可以取值
Hello World!

# echo '$FIRST'            # 原样输出
$FIRST

# FIRST="Hello World!"     # ! 是特殊字符需要转义
bash: !": event not found
取消变量

unset FIRST

特殊变量
常用特殊变量

    $ 当前shell的PID
    ? 上一条命令的返回值,0是执行成功,其他值都是不成功

echo $$
echo $?
变量的剪切
用例:
time_env=`date "+%Y/%m/%d %H:%m:%S"`

echo $time_env
2023/12/26 17:12:16

从前往后剪切


    # :从第一个字符开始,尝试匹配正则表达式,去掉 <第一个完全满足的最小子串> 
        例:去掉符合 '*/' 正则表达式的第一个子串,最小匹配
        echo ${time_env#*/}
        12/26 17:12:16
    ## : 从第一个字符开始,尝试匹配正则表达式,去掉 <第一个完全满足的最大子串> 贪婪
        例:去掉符合 '*/' 正则表达式的第一个子串,贪婪匹配
        echo ${time_env##*/}
        26 17:12:16


从后往前剪切
    % :从右往左,尝试匹配正则表达式,去掉 <第一个完全满足的最小子串>
        echo ${time_env%:*}
        2023/12/26 17:12

    %% :从右往左,尝试匹配正则表达式,去掉 <第一个完全满足的最小子串> 贪婪
        echo ${time_env%%:*}
        2023/12/26 17

未完待续

你可能感兴趣的:(知识系列,#,知识系列,Linux-基础知识,linux,运维,服务器)