UNIX/Linux环境编程必须需要注意的问题总结

简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://dgd2010.blog.51cto.com/1539422/1674199

在UNIX/Linux下编程必须需要注意一下几点问题(特别是在运行于Windows上的IDE或编程工具进行开发):

1.大小写问题。

在文件或目录的命名规则中,特别注意驼峰命名法的大小写区分问题。有些语言的内部变量或者引用方面同样也是。

2.权限问题。

不要任意操作文件系统,换句话说,不要动与自己无关的任何文件(UNIX/Linux下一切都是文件),特别是新部署或者应用中要生成新文件时将权限先查看清楚

3.关于unix文件编码问题的再次强调

在运行于Windows上的IDE或编程工具进行开发时特别注意,保存文件时一定要将dos文件格式(file format)转化成unix文件格式。

dos文件格式中换行符为\r\n

unix文件格式中换行符为\n

现在vim和awk对此有了改进,能自动识别,而grep还不能很好的识别,因此一旦用grep这样的工具就会导致出现未知的后果。

附:针对文件格式做的一些测试:

1
2
3
4
5
6
7
8
9
#!/bin/bash   
#chkconfig: 345 86 14    
#description: Startup and shutdown script for ChatterServer(Port:$SERVICEPORT))    
#SERVICEPORT=29093    
#SERVICEPORT=`grep ^port $(pwd)/../conf/constant.properties | awk -F '=' '{print $2}'`    
PORTFILE=$( pwd )/.. /conf/constant .properties    
#SERVICEPORT=$(cat $PORTFILE | grep ^port | awk -F '=' '{print $2}')    
SERVICEPORT=$( cat  $PORTFILE | dos2unix |  grep  ^port)    
echo  "SUCCESS: ChatterServer(Port:$SERVICEPORT) is OK"

上面的constant.properties文件的fileformat如果为dos,如下图所示:   
2015-07-14_172206

则就会出现

2015-07-14_164347

另一个测试脚本:

1
2
3
4
5
6
7
8
9
10
11
12
cat  >. /portfile <<eof   
port=1080    
eof    
PIDFILE=. /portfile    
cat  $PIDFILE    
#SERVICEPORT=$(grep ^port $PORTFILE | awk -F '=' '{print $2}')    
#grep ^port $PORTFILE | awk -F '=' '{print $2}'    
# VS    
cat  $PIDFILE |  grep  ^port |  awk  -F  '='  '{print $2}'    
SERVICEPORT=$( cat  $PIDFILE |  grep  ^port |  awk  -F  '='  '{print $2}' )    
echo  $SERVICEPORT    
echo  "SUCCESS: ChatterServer(Port:$SERVICEPORT) is OK"

针对上面的文件格式问题,可以用IDE或者文件编辑器来处理,例如下图所示的设置:

image

image

也可以用vim中的:set ff=unix转换,也可以用dos2unix这样的工具转换,如下面的脚本所示:

1
2
3
4
5
# NOTE: $(pwd)/../conf/constant.properties file fileformat must be unix NOT dos in shell scripts, or will cause some unknown error   
# NOTE: grep is vrey sensitive to dos fileformat or unix fileformat    
# apt-get install dos2unix    
PORTFILE=$( pwd )/.. /conf/constant .properties    
SERVICEPORT=$( cat  $PORTFILE | dos2unix |  grep  ^port |  awk  -F  '='  '{print $2}' )

--end--

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1674199

目录
相关文章
|
4月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
563 11
|
6月前
|
存储 监控 Linux
Linux环境锁定关键文件防止误删操作流程。
总结以上内容,在Linux环境下锁定重要文档避免误删涉及到多种技术手段与策略组合运作, 包括但不限于利用chatter指挥官固化文档状态至只读模式、运作ACL精准调整访问权利列表、编排自动化流程简
274 20
|
6月前
|
Linux
Linux环境下的UDEV机制及其与守护进程的关联
实际使用时管理员需要熟悉编写合适udev rules去满足特殊需求;同时也需要注意避免编写过度复杂导致无法预料结果rules.UDEVD虽然稳健但错误配置可能导致无法预料问题因此需谨慎处理相关配置工作.
238 16
|
6月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
498 8
|
7月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
512 10
|
6月前
|
Ubuntu 安全 Linux
Ubuntu 24.10 发行版登场:Linux 6.11 内核、GNOME 47 桌面环境
Ubuntu 24.10 还带来了 GNOME 47,增强了性能和稳定性,并引入了新功能。此版本的 Ubuntu 还默认在采用 Nvidia 显卡的硬件上切换到 Wayland,并在支持的硬件上默认使用开源的 Nvidia 560 内核模块。 另外需要注意的是,Ubuntu 24.10 是稳定版本,但作为非 LTS 版本,仅支持 9 个月。
|
6月前
|
安全 Linux 网络安全
Linux系统初步设置本地Git环境和生成SSH密钥的步骤。
现在您的Linux系统已经配置好了Git环境,并创建并添加了SSH密钥,可以安全地与远端仓库进行交互,无论是克隆、推送还是拉取操作。此过程确保了数据传输的安全并使版本控制流程更为顺畅。使用Git时应考虑定期更新并管理您的凭据,以确保安全性。
885 0
|
6月前
|
XML 缓存 Linux
在Linux环境下解决Visual Studio Code字体显示异常和字体替换方法。
解决Linux下VS Code字体显示异常,需要对Linux字体渲染机制有所理解,并对VS Code的配置选项进行合理设置。替换字体时则要通过系统字体配置或VS Code设置来完成。通过上述方法,可以有效地解决字体显示问题,从而提升代码编辑的视觉体验。
976 0
|
7月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
438 0