[命令] Linux 命令 set (设置 Shell 里的位置变量或者 Shell 的执行方式)

内容一:set 命令的格式

1.1 设置 Shell 的位置变量的格式

# set <Value of the first position variable> <Value of the second location variable> ......

1.2 设置 Shell 的执行方式

# set <parameter>

或者:

# set <parameter> +o

或者:

# set <parameter> -o

(补充:+o 代表打开特殊属性,-o 代表结束特殊属性)

内容二: set 的常用参数

1) -a 将已修改的变量进行标记,为将其输出至环境变量做准备
2) -b 让被中止的后台进程立刻显示退出状态代码
3) -d 取消使用杂凑表记忆中使用过的指令
4) -e 若退出状态代码不为 0 (正常退出)则立即退出,并显示错误原因
5) -f 取消通配符
6) -h 默认自动记录函数位置
7) -k 让命令的参数为此命令的环境变量
8) -l 默认自动记录 for 循环变量名
9) -m 监视模式
10) -n 测试模式(只读取不执行)
11) -p 优先顺序模式
12) -P 让文件或目录代替符号链接
13) -t 让随后的命令执行后立即退出
14) -u 使用未定义的变量时显示错误信息
15) -v 显示输入值
16) -H shell 使用感叹号 “!” + 号码的方式调用 history 命令中的历史命令
17) -x 命令指向前先显示此命令的参数或变量

(补充:将以上参数前面的 – 换成 + 则会变成相反的效果)

[步骤] Linux rm 命令的监控

步骤一:将原来的 rm 命令进行备份

# cp /usr/bin/rm  /usr/bin/rm.original

步骤二:创建一个记录 rm 命令使用的脚本

# cat /usr/bin/rm
#!/bin/bash
log=/var/log/rm_command.log
echo "The $$ is calling rm command" >> $log
echo "The full command is $*" >> $log
echo
echo "now use this command to get more information: /bin/ps axwwo user,pid,ppid,%cpu,%mem,vsz,rss,stat,time,cmd" >>$log
/bin/ps axwwo user,pid,ppid,%cpu,%mem,vsz,rss,stat,time,cmd >>$log
/usr/bin/rm.original $*
echo "============================================================" >>$log

步骤三:给记录 rm 命令使用的脚本执行权限

# chmod 755 /usr/bin/rm.original

步骤四:下次使用 rm 命令后就可以监控 /var/log/rm_command.log 日志了

(步骤略)

[排错] 解决 Linux 执行命令时报错 “bash: $’\r’: command not found”

报错代码

bash: $'\r': command not found

分析

Windows 系统文件换行使用的换行符是 \r\n
Linux 系统文件换行使用的换行符是 \n
在 Windows 编辑的文本换行符可能就是 \r\n
要解决这个问题需要将换行符从 \r\n 换成 \n

解决方法

方法一:使用 dos2unix 转换文件换行符

1.1 安装 dos2unix 软件

# yum -y install dos2unix

1.2 使用 dos2unix 转换文件换行符

# dos2unix <file>

方法二:使用 vim 命令转换文件换行符

2.1 使用 vim 命令进入文件

# vim <file>

2.2 转换文件换行符

: set ff=unix

(注意:是在 vim 的末行模式下执行以上命令)

2.3 保存文件

: wq

(注意:是在 vim 的末行模式下执行以上命令)

[内容] Linux 进程修正值 (nice 值) 的设置

内容一:进程优先级和修正值(nice 值)的关系

1.1 进程优先级的作用

进程的真正优先级越小,则此进程则越能优先被执行

1.2 进程优先级和修正值(nice 值)的关系

进程的真正优先级 = 进程默认优先级 + 修正值(nice 值)

1.3 修正值(nice 值)的范围

从 -20 到 +19

内容二:修正值(nice 值)的设置

2.1 设置修正值(nice 值)的格式

# nice -n <correction value> <command>

或者:

# nice --adjustment=<correction value> <command>

或者:

# nice -<correction value> <command>

2.2 设置修正值(nice 值)的案例

# nice -n 10 top

或者:

# nice --adjustment=10 top

或者:

# nice -10 top

(注意:这里的 -10 不是指负数 10 而是指正数 10)

(补充:这里以修正值为 10 启动 top 命令为例)

内容三:显示进程的修正值

# top

或者:

# ps -ef


补充:
1) PRI 代表进程默认的优先级
2) NI 代表进程的修正值(nice 值)
3) 进程的真正优先级 = PRI + NI
4) 如果多个进程的真正优先级一样,则 root 用户的进程被优先执行

[命令] Linux 命令 dmesg (显示开机日志)

内容一:dmesg 简介

Linux 的 kernel 会把开机日子存储在 ring buffer 和 /var/log/message 中,其中 ring buffer 里的开机日志可以使用 dmesg 来显示,如果开机时的提示信息来不及阅读的话,可以通过 dmesg 命令来显示

内容二:dmesg 命令的选项

1) -c 显示 ring buffer 的日志后清空 ring buffer
2) -n 显示日志的层级
3) -cn 显示 ring buffer 的日志后清空 ring buffer,同时显示日志的层级
4) -s 设置缓冲区的大小,默认为 8196 与 ring buffer 的大小一样

内容三:dmesg 命令的使用案例

3.1 显示所有开机日志

# dmesg | less

3.2 显示所有日志,显示 ring buffer 的日志后清空 ring buffer,同时显示日志的层级

# dmesg -cn

3.3 显示所有失败的开机日志

# dmesg | egrep -i "fail|warn|error"