Linux

Some notes about Linux.

如果用sudo执行python命令的话,会发现import os; os.getenv(“PATH”)得到的变量和普通权限得到的不一致,即使是sudo加上-E参数也没有用。 这是sudoers的默认行为导致的,解决方案: sudo visudo Defaults env_reset 改为Defaults !env_reset,注意,加了!号 同时注释掉 Defaults secure_path 改完记得注销一下。 不需要以sudo执行python的时候记得改回来,防止出现权限安全问题。 这个奇葩的问题Google居然搜不到,看来是个神坑,分析过程如下: 既然问题的根源是sudo -E python都无法继承当前的环境变量,那么首先man sudo 搜索-E参数,发现是这么写的: -E, –preserve-env Indicates to the security policy that the […]

虽然用Linux好几年了,但是对shell脚本的掌握基本为零……最近需要做一些文件批量重命名,图像批量预处理,文本批量预处理的琐碎而重复的工作,于是乎下定决心好好学习一下shell脚本。于是找了一本口碑不错的shell脚本入门书—-《Linux Shell 脚本攻略 第2版》,是印度人Shantanu Tushar和Sarath Lakshman写的。边看边写博客系列(计划分九个系列完成)当做读书笔记,同时,也不完全是读书笔记,会加上一些解释的链接或者个人的经验:)当然,如果有人看,也算是做个“脱水版”的精炼shell脚本入门“指南”吧:) 基本的文件格式结构,运行规则:文件开头第一行 #!/bin/bash(这里可以是别的shell的路径),#!这玩意叫shebang,运行可以$ bash script.sh 这种运行方式首行的shebang就没什么用了,或者$ chmod +x script.sh 然后 $ ./script.sh。 命令间隔符:换行符或者分号; 是等价的,也就是说 $ cmd1; cmd2 等同于 $ cmd1 $ cmd2。 终端的打印:最基本的echo,$ echo “Hello […]

This blog is excellent for best practices in Android! Here is the summary: Use Gradle and its recommended project structure Put passwords and sensitive data in gradle.properties Use the Jackson […]