nls-NLS-Name-linux-name-深入了解Linux中NLS名称的作用和应用-Linux (牛栏山哪里生产的)

教程大全 2025-07-09 18:12:46 浏览

一、 引言

Linux是一种开源的操作系统,由于其开放性、安全性、高效性等特点,受到越来越多技术爱好者、开发者、企业的青睐。Linux中NLS(National Language Support,国际化支持)是与字符集和多语言有关的重要概念,它为不同的语言和区域提供了支持,具有很大的作用和应用价值。本文就通过深入分析Linux中的NLS名称,探讨NLS的作用和应用,帮助读者更好地理解和使用Linux。

二、 NLS名称的定义

NLS在Linux中是一个用于字符集和本地化的标准接口,它为不同语言和区域的用户提供了支持。NLS名称是用于标识不同字符集和本地化环境的Unicode名称,主要用于文件系统的编码、系统日志的记录、系统时间的设置等方面,是Linux系统运行的重要组成部分。NLS名称的形式如:nls_.,其中字符集名称是指支持的字符集类型,如utf8、gbk等;本地化名称是指支持的区域和语言类型,如简体中文、英文、日文等。

三、 NLS名称的作用和应用

1、 文件系统的编码

在Linux中,文件系统的编码是由NLS名称控制的。当文件系统的编码与当前的语言环境不匹配时,就可能出现无法识别字符、乱码等情况。例如,在中文环境下使用windows系统创建的文件,需要将文件系统的NLS名称设置为支持中文的字符集名称和本地化名称,才能正确地读写中文内容。同样地,在使用Linux系统时,也需要根据自己的语言环境选择合适的NLS名称,以确保文件系统的编码正确无误。

NLS

2、 系统日志的记录

系统日志是Linux系统重要的运行记录、调试和故障排除工具。在记录系统日志时,NLS名称也很重要。如果日志文件使用的编码与当前的语言环境不匹配,就会出现乱码或无法显示的情况,从而影响日志的可读性和分析效果。因此,在记录系统日志时,需要将NLS名称设置为与当前语言环境相同的字符集和本地化环境。

3、 系统时间的设置

在Linux中,时间的显示和处理是受NLS名称限制的。系统时间是一个重要的指标,不同语言环境下需要显示不同的时间格式。例如,在中文环境下,时间通常以“年、月、日、时、分、秒”的格式显示,而在英文环境下则以“日、月、年、时、分、秒”的格式显示。因此,在设置系统时间时,需要根据环境选择合适的NLS名称,以确保时间的格式正确无误。

四、 NLS名称的使用方法

在Linux中,NLS名称的使用方法通常有两种。一种是在启动系统时,在命令行中添加-nls参数来指定NLS名称,例如:

[root@localhost ~]# mount -o nls=utf8 /dev/sdb1 /mnt

这表示在挂载/dev/sdb1分区时使用utf8编码的文件系统。另一种是通过修改系统配置文件/etc/locale.conf来设置全局的NLS名称,例如:

[root@localhost ~]# vi /etc/locale.conf

LANG=en_US.UTF-8

这表示将系统的全局语言环境设置为英文语言环境,并使用UTF-8编码。

五、 结论

相关问题拓展阅读:

linux 编译内核几个常见问题解决方法

之一次把自己编译的驱动模块加载进开发板,就出现问题,还好没花费多长时间,下面列举出辩戚现的问题及解决方案

1:出现inod: error inserting ‘hello.ko’: -1 Invalid module format

法一(网上的):是因为内核模块生成的环境与运行的环境不一致,用linux-2.6.27内核源代码生成的模块,可能就不能在linux-2.6.32.2内核的linux环境下加载,需要在linux-2.6.27内核的linux环境下加载。

a.执行 uname -r //查看内核版本

b.一般出错信息被记录在文件/var/log/messages中,执行下面命令看错误信息

# cat /var/log/messages |tail

若出现类似下面:

Jun 4 22:07:54 localhost kernel:hello: version magic ‘2.6.35.6-45.fc14.i686.PAE

‘ should be ‘2.6.35.13-92.fc14.i686.PAE’

则把 Makefile里的KDIR :=/lib/modules/2.6.35.6-45.fc14.i686.PAE/build1 改为

KDIR :=/lib/modules/2.6.35.13-92.fc14.i686.PAE/build1 //改成自己内核源码路径

(这里的build1是一个文件链接,链接到/usr/src/kernels/2.6.35.6-45.fc14.i686.PAE和13-92的)

然并卵,我的fedora 14 /usr/src/kernels下并没有2.6.35.13-92.fc14.i686.PAE,只有2.6.35.13-92.fc14.i686,虽然不知道两者有什么区别,但改成2.6.35.13-92.fc14.i686还是不行,照样这个问题,还好后来在看教学视频的到启发

法二:改的还是那个位置

KDIR :=/opt/FriendlyARM/linux-2.6.32.//把这里改成你编译生成kernel的那个路径

$ (MAKE) -C $ (KDIR) M = $ (PWD) Modules ARCH=arm CROSS_COMPILE=arm-linux- //加这句

2. hello: module license ‘unspecified’ taints kernel.

Disabling lock debugging due to kernel taint

方法:在模块程序中加入: MODULE_LICENSE(“GPL”);

3. rmmod: chdir(2.6.32.2-FriendlyARM): No such file or directory 错误解决

方法:lod 可查看模块信息

即无法删除对应的模块。

就是必须在/lib/modules下建立错误提示的对应的目录((2.6.32.2)即可。

必须创建/lib/modules/2.6.32.2这样一个空目录,否则不能卸载ko模块.

# rmmod nls_cp936

rmmod: chdir(/lib/modules): No such file or directory

但是这样倒是可以卸载nls_cp936,不过会一直有这样一个提示:

rmmod: module ‘nls_cp936’ not found

初步发现,原来这是编译kernel时使用make modules_install生成的一个目录,

但是经测试得知,rmmod: module ‘nls_cp936’ not found来自于busybox,并不是来自判渣kernel

1).创建/lib/modules/2.6.32.2空目录

2).使用如下源码生成rmmod命令,就掘灶悄可以没有任何提示的卸载ko模块了

int main(int argc, char *argv)

const char *modname = argv;

int ret = -1;

int maxtry = 10;

while (maxtry– > 0) {

ret = delete_module(modname, O_NONBLOCK | O_EXCL);//系统调用sys_delete_module

if (ret #include

#include /* Necessary because we use the proc fs */

#define procfs_name “proctest”

MODULE_LICENSE(“GPL”);

struct proc_dir_entry *Our_Proc_File;

int procfile_read(char *buffer,char **buffer_location,off_t offset, int buffer_length, int *eof, void *data)

ret = sprintf(buffer, “HelloWorld!\n”);

return ret;

int proc_init()

{Our_Proc_File = create_proc_entry(procfs_name, 0644, NULL);

if (Our_Proc_File == NULL) {

remove_proc_entry(procfs_name, NULL);

printk(KERN_ALERT “Error: Could not initialize /proc/%s\n”,procfs_name);

return -ENOMEM;}

Our_Proc_File->read_proc = procfile_read;//

//Our_Proc_File->owner = THIS_MODULE;

Our_Proc_File->mode = S_IFREG | S_IRUGO;

Our_Proc_File->uid = 0;

Our_Proc_File->gid = 0;

Our_Proc_File->size = 37;

printk(“/proc/%s created\n”, procfs_name);

void proc_exit()

{remove_proc_entry(procfs_name, NULL);

printk(KERN_INFO “/proc/%s removed\n”, procfs_name);

module_init(proc_init);

module_exit(proc_exit);

view plain copy

ifneq ($(KERNELRELEASE),)

obj-m :=proc.o

KDIR :=/opt/FriendlyARM/linux-2.6.32.2

#KDIR :=/lib/modules/2.6.35.13-92.fc14.i686.PAE/build1

PWD :=$(shell pwd)

$(MAKE) -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-

rm -f *.ko *.o *.mod.o *.mod.c *.symvers

make后生成proc.ko,再在开发板上inod proc.ko即可

linux nls name的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux nls name,Linux NLS Name:深入了解Linux中NLS名称的作用和应用,linux 编译内核几个常见问题解决方法的信息别忘了在本站进行查找喔。

香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。


linux下useradd参数的用法~!

-p就是设定密码呀-p123 就是密码是123

linux下为用户备注名称

首先来新建一个用户a ,密码

useradd a -p

然后查看/etc/passwd文件,看到了新增加的用a,以冒号作为分隔符,各段的说明如下:

a 代表用户

x 代表密码,该密码是经过MD5加密生成的

501第一个501代表用户uid,第二个501代表用户gid

::之间的就代表用户的说明

/home/a 代表用户a的家目录

/bin/bash 代表用户的登录shell

现在要给用户a增加备注,使用以下命令

usermod -c FTP user a

下面查看哈,修改的结果

看到那里变成FTP user 了吧。 成功了。 。

说的很明白了哦!

一名合格的网管,要具备什么知识?

对于网吧的网管,一般就得具有全面的知识和动手能力,这是基本的。 不过合格的网管学的东西还是很多的 看看吧: 网络管理员的知识结构 仅仅是计算机相关专业毕业,离一名合格的网管还相距很远。 在网络技术日新月异的今天,课本内容已显得非常落伍与陈旧。 因此,应当广泛涉猎与网络管理相关的领域,完成最基本的知识积累。 ●了解网络设计 拥有丰富的网络设计知识,熟悉网络布线规范和施工规范,了解交换机、路由器、服务器等网络设备,掌握局域网基本技术和相关技术,规划设计包含路由的局域网络和广域网络,为中小型网络提供完全的解决方案。 ●掌握网络施工 掌握充分的网络基本知识,深入了解TCP/IP网络协议,独立完成路由器、交换机等网络设备的安装、连接、配置和操作,搭建多层交换的企业网络,实现网络互联和Internet连接。 掌握网络软件工具的使用,迅速诊断、定位和排除网络故障,正确使用、保养和维护硬件设备。 ●熟悉网络安全 设计并实施完整的网络安全解决方案,以降低损失和攻击风险。 在Internet和局域网络中,路由器、交换机和应用程序,乃至管理不严格的安全设备,都可能成为遭受攻击的目标。 网络必须全力以赴加强戒备,以防止来自黑客、外来者甚至心怀不满的员工对信息安全、信息完整性以及日常业务操作的威胁。 ●熟悉网络操作系统 熟悉Windows和Linux操作系统,具备使用高级的Windows和Linux平台,为企业提供成功的设计、实施和管理商业解决方案的能力。 ●了解Web数据库 了解Web数据库的基本原理,能够围绕Web数据库系统开展实施与管理工作,实现对企业数据的综合应用。 网管的素质能力 一个真正的网管,应当对网络硬件和操作系统都有较为深入的了解。 也就是说,作为网管,应当熟悉网络设备的性能、连接与配置,掌握网络服务的搭建、配置与管理,深入了解网络协议和网络安全,熟练使用网络诊断软件工具,及时排除网络故障。 ●自学能力 网管应当拥有强烈的求知欲和非常强的自学能力。 第一,网络知识和网络技术不断更新,需要继续学习的内容非常多。 第二,学校课本知识大多过于陈旧,并且脱离于网络管理实际,许多知识都要从头学起。 第三,网络设备和操作系统非常繁杂,各自拥有不同的优点,适用于不同的环境和需求,需要全面了解、重点掌握。 ●英文阅读能力 由于绝大多数新的理论和技术都是英文资料,网络设备和管理软件说明书大多也是英文,所以,网管必须掌握大量的计算机专业词汇,从而能够流畅地阅读原版的白皮书和技术资料。 提高阅读能力最简单的方法,就是先选择自己熟悉的技术,然后,登录到厂商的官方网站,阅读技术白皮书,从而了解技术文档的表述方式。 遇到生词时,可以使用电子词典在线翻译。 ●动手能力 作为网管,需要亲自动手的时候非常多,如网络设备的连接、网络服务的搭建、交换机和路由器的设置、综合布线的实施、服务器扩容与升级,等等。 所以,网管必须拥有一双灵巧的手,具备很强的动手能力。 当然,事先应认真阅读技术手册,并进行必要的理论准备。 ●创造和应变能力 硬件设备、管理工具、应用软件所提供的直接功能往往是有限的,而网络需求却是无限的。 利用有限的功能满足无限的需要,就要求网管具有较强的应变能力,利用现有的功能、手段和技术,创造性的实现各种复杂的功能,满足用户各种需求。 以访问列表为例,利用对端口的限制,除了可以限制对网络服务的访问外,还可用于限制蠕虫病毒的传播。 ●观察和分析判断能力 具有敏锐的观察能力和出色的分析判断能力。 出错信息、日志记录、LED指示灯等,都会从不同侧面提示可能导致故障的原因。 对故障现象观察的越细致、越全面,排除故障的机会也就越大。 另外,通过经常、认真的观察,还可以及时排除潜在的网络隐患。 网络是一个完整的系统,故障与原因关系复杂,既可能是一因多果,也可能是一果多因。 所以,网管必须用全面、动态和联系的眼光分析问题,善于进行逻辑推理,从纷繁复杂的现象中发现事物的本质。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐