cat /proc/sys/kernel/printk
4 4 1 7
其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息
2、修改打印
echo "新的打印级别 4 1 7" >/proc/sys/kernel/printk
了解了上面的这些知识后,我们就应该知道如何手动控制printk打印了。例如,我想屏蔽掉所有的内核printk打印,那么我只需要把第一个数值调到最小值1或者0。
# echo 1 4 1 7 > /proc/sys/kernel/printk
或者
# echo 0 4 0 7 > /proc/sys/kernel/printk
3、不够打印级别的信息会被写到日志中可通过dmesg 命令来查看
4、printk的打印级别
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
在 /proc/sys/kernel/printk 会显示4个数值(可由 echo 修改),分别表示当前控制台日志级别、未明确指定日志级别的默认消息日志级别、最小(最高)允许设置的控制台日志级别、引导时默认的日志级别。当 printk() 中的消息日志级别小于当前控制台日志级别时,printk 的信息(要有/n符)就会在控制台上显示。但无论当前控制台日志级别是何值,通过 /proc/kmsg (或使用dmesg)总能查看。另外如果配置好并运行了 syslogd 或 klogd,没有在控制台上显示的 printk 的信息也会追加到 /var/log/messages.log 中。
5、printk函数的使用
printk(打印级别 “要打印的信息”)
打印级别 既上面定义的几个宏
char myname[] = "chinacodec/n";
printk(KERN_INFO "Hello, world %s!/n", myname);
在linux图形界面下,是无法在命令行下显示的,尝试切换到命令行模式下就可以在终端显示了
切换方法:
不同的linux系统切换方式会稍有一点差别 从图形界面切换到字符界面:Alt+F(1-6) 或者 Alt+Ctrl+Shift+F(1-6) 从字符界面切换回图形界面:Alt+F7 字符界面启动到图形界面使用:startx 或者 init5
(开机为文本界面,由文本界面切换到图形界面: 方法1:运行命令 #startx , 需要先配置图形界面信息,(暂时不会~) ; 方法2:修改/etc/inittab文件中的 id:3:initdefault , 将3改为5 ,重新启动系统; 真机环境中,在图形界面和文本界面间切换: Ctrl+Alt+F(n) , 其中F(n)为F1-F6 ,为6个控制台; Ctrl+ALT+F7 ; 虚拟机环境,在图形界面和文本界面间切换: VMWare虚拟机下,由图形界面切换到文本界面,和虚拟机设置有关,默认VM占用Ctrl+Alt为热键,所以由图形界面切换到文本界面的组合键为: Ctrl+Alt+Shift+F(n) ,其中F(n)为F1-F6 ; 由文本界面切换回图形界面的组合键为: Alt+F7 ; 在文本界面不同控制台界面之间切换: Alt+F(n) , 其中F(n)为F1-F6,为6个控制台)