首页 文章 精选 留言 我的

精选列表

搜索[小微模型],共10000篇文章
优秀的个人博客,低调大师

Android RTL 及小语种 适配

版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/79504666 一、需要单独适配的原因 包括中文、英文、+-等各种符号,都是从左往右显示,而阿拉伯语、波斯语等则是从右往左显示,等等问题都需要进行本地化适配。 二、适配须知 2.1)RTL语言有以下6种: 阿拉伯语 ar Arbic العربية 波斯语 fa Persian فارسی 希伯来语 iw Hebrew עברית 乌尔都语(印度、巴基斯坦) ur Urdu اردو 维吾尔语 Uyghur 2.2)数字: 西阿拉伯数字:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 东阿拉伯数字:(٠‎ - ١‎ - ٢‎ - ٣‎ - ٤‎ - ٥‎ - ٦‎ - ٧‎ - ٨‎ - ٩‎) 波斯数字:(۰ - ۱ - ۲ - ۳ - ۴ - ۵ - ۶ - ۷ - ۸ - ۹) 其他有一些语言也有自己的数字. 2.3) 强字符:具有明确方向的字符,这种类型字符的例子包括大多数字母字符、音节字符、汉语表意文字、非欧洲或非阿拉伯数字,以及这些语言脚本的标点。 弱字符:具有模糊方向的字符,这种类型字符的例子包括欧洲数字、中东阿拉伯-印度数字、算术符号和货币账号。许多语言脚本中的标点符号,如冒号、逗号。 中性字符:不根据上下文就无法确定方向性,例如段落分隔符、制表符和大多数其他空格字符。 三、需要进行的修改 一、控件的显示 “+8618310002000”这类号码会被显示成“8618310002000+”,就是因为阿拉伯语是从右往左显示的,所以加号显示在了最右边。 设置控件的textDirection属性即可,控制组件的文字对齐方式: android:textAlignment="viewStart" .setTextDirection(View.TEXT_DIRECTION_LTR); .setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); 此外还有layoutDirection属性来设置组件的布局排列方式。 二、数字的格式化 比如,将西阿拉伯数字改成东阿拉伯数字。 西阿拉伯数字:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 东阿拉伯数字:(٠‎ - ١‎ - ٢‎ - ٣‎ - ٤‎ - ٥‎ - ٦‎ - ٧‎ - ٨‎ - ٩‎) 这类问题又细分为以下几种: 1)纯数字,可以使用 Character.getNumericValue来转换,给控件设置LTR属性即可。 2)带有“+”,“,”等中性字符、弱字符符号,比如前者用在+86,后者用在分机号,可以给控件设置LTR属性,也可以通过BidiFormatter.getInstance().unicodeWrap(),它会根据上下文来添加LTR属性。 3)带有“@”等强字符符号,比如SIP账号“abc@10.239.224.22”,需要使用\u202A等标记来强制改变方向。同时空格等中性符号,如果在阿拉伯语环境下会显示成RTL,例如将号码“183 1000 2000”显示成“2000 1000 183”,因此也需要使用此类符号。 同时在场景中又细分为以下几种: 1)直接进行转换的数字:控件中展示给用户的数字,如“1秒、2秒” 2)用户的输入但是需要转换的数字:比如在联系人中输入号码10086,则转换成١٠٠٨٦ 3)不应该转换的数字:收到短信中包含数字,联系人名字中包含的数字(验证过iOS中也是处理) 同时记录另一个问题,在某些只能输入数字的情况下,iOS的键盘能够输入多种数字,Android目前看到的都只能输入西阿拉伯数字。 我针对上述情况拆分出以下3个方法。 1)localizeString(String str) 将字符串中的数字进行翻译,但不改变方向)。 例如10086,10010等共2人,会被翻译成“人2共等10086,10010”,(由于wiki本身RTL支持不好,我复制过来顺序都显示的错的,所以举例中只改了方向,数字文字都不变,下文同理)。 数字本身是LTR的,先翻译10086,逗号是弱性字符,跟着左边,再往后才是10010(这里应该让10086显示在右边比较好,但是考虑到这个场景问题不大,暂不处理),接下来是阿拉伯语,因此后面的方向是RTL的。 2)localizeNumber(String number) localizeNumber(String number, boolean nameIsNumber) 对号码中的数字进行翻译,默认nameIsNumber为true,当为false时表示为name,因此不翻译。 2.1)中性字符,例如加号 例如+8618310002000,当为阿拉伯语环境时,第一个+号显示出来之后根据上下文环境判断是RTL,因此号码显示在+号左边,最终是8618310002000+。此时使用View.TEXT_DIRECTION_LTR即可。 例如+86 183 1000 2000,当为阿拉伯语环境时,同上+号第一个显示,86紧随+号,同时空格也是中性字符,在RTL环境下也是继续往左显示,最终显示为2000 1000 183 86+。但此时添加View.TEXT_DIRECTION_LTR只能让+号显示正确,空格并不生效,原因尚不清楚。 2.2)弱字符:例如冒号、逗号 例如播分机号时10086,1,1,它会继承前面的顺序,因此顺序不变还是10086,1,1。如果是10086\u202B,1:2,这里的\u202B是RTL的属性,首先是10086,然后逗号前有RTL标记,因此其之后改变方向为RTL,所以最终是100861:2,。 2.3)强字符:例如@等符号 例如SIP号码123@10.238.24.140,@和阿拉伯语一样属于强字符,因此显示为10.238.24.140@123,这次需要使用\u202A标记来将方向改成LTR。 3)localizeDigit(String str, boolean isNeedLTR) 这个方法是最终用来处理的,因为处理有前提,不推荐外部调用,所以设置成了private。 当前需要改成LTR且环境是RTL时,才添加\202A标记,减少不必要的操作同时降低风险。 三、双向字符集 这类问题比较复杂,原生系统中也大量存在。 没有发现什么特别好的办法,加标记是可行的,但是很麻烦。比如使用\u200f和\202A等标记,具体就不展开讲了,核心内容在上一节已经举例讲过了。 四、参考 string-concatenation-containing-arabic-and-western-characters Universal_Character_Set_characters en.wikipedia.org/wiki/Bi-directional_text

优秀的个人博客,低调大师

几个文件操作的小例子

最近一直在学习java web方面的东西,本来想完整的写一篇java web方面的文章,但是那一块太杂了,自己现在也不是很清晰,主要是myeclipse+Tomcat,每次启动tomcat都要花很长的时间,所以java web方面的文章目前还没有写,今天就先将自己之前的东西贴出来吧、 【案例1】获取文件的属性 运行结果: 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

优秀的个人博客,低调大师

Jbuilder2005开发小技巧

1) 安装好jbuilder2005后,可以看下它的安装目录,对以后很有帮助。它主要的目录有:(1)bin目录。这里存放各种可执行的二进制文件。(2)doc目录。这里存放各种.jar格式的javadoc帮助文档,jbuilder2005会调用这个目录下的帮助文件来显示帮助信息。(3)extras目录:这里有一些著名的第三方开源项目 (4)jdk1.4目录:自带的一个jdk 。(5)lib目录。存放jbuilder2005的各种类库 (6)patch目录:存放补丁的地方。(7)samples目录:这是我们最应该学习的地方了,很多示例程序 (8)src目录:jbuilder2005开发的组件和类库的源代码。(9)templates目录:jbuilder2005各种技术的模板。(10)thirdparty目录:放置第三方开源项目的文档。 2) 当你需要查找一个类的信息时,可以Search->Find classes,就会载入类的代码,切换到doc就可以查看文挡。或者你可以将光标定位到要查看的类上,Ctrl+Q就可以调出帮助信息。此外,你也可以按F1,就可以调出帮助信息。 3) Jbuilder2005安装好后,不要立即启动,因为还存在着几个问题。1)光标错位。解决办法:在〈Jbuilder2005安装目录〉/bin目录下找到jbuilder.config文件,加入这样的: 20 vmmemmin 32m 21 vmmemmax 75% 22 vmparam –Dprimetime.editor.useVariableWidthFont=true 加入黑体的这一行再启动jbuilder,就可以解决掉问题。 4) jdk5.0新特性: a)监视和管理,新加javax.management和java.lang.management包 package com.vitamin.Console; import java.lang.management.*; import java.util.*; import javax.management.*; public class MemoTest { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 List pools = ManagementFactory.getMemoryPoolMXBeans(); for(ListIterator i = pools.listIterator();i.hasNext();) { MemoryPoolMXBean p = (MemoryPoolMXBean)i.next(); System.out.println("内存类型: "+p.getType()); System.out.println("内存使用情况: "+p.getUsage()); } } } b).泛型 未使用泛型的代码: package com.vitamin.Console; import java.util.ArrayList; import java.lang.*; public class MemoTest { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 ArrayList al = new ArrayList(); al.add(0,new Integer(44)); int tol = ((Integer)al.get(0)).intValue(); System.out.println(tol); } } 使用泛型的代码: package com.vitamin.Console; import java.util.ArrayList; import java.lang.*; public class MemoTest { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 ArrayList<Integer> al = new ArrayList<Integer>(); al.add(0,new Integer(44)); int tol = al.get(0).intValue(); System.out.println(tol); } } 使用泛型可以不需要再进行类型转换了,而且如果往里面添加类型不符合的数据的话,在编译时就会报错。 c)自动装/拆箱 未使用: ArrayList<Integer> al = new ArrayList<Integer>(); al.add(0,new Integer(44)); int tol = al.get(0).intValue(); 使用: ArrayList<Integer> al = new ArrayList<Integer>(); al.add(0, 44); int tol = al.get(0); d)增强型for循环 未使用: ArrayList<Integer> list = new ArrayList<Integer>(); For(Iterator I = list.iterator();i.hasNext();) { Integer value = (Integer)i.next(); } 使用: ArrayList<Integer> list = new ArrayList<Integer>(); For(Integer i : list) { Integer value = i ; } 甚至可以: ArrayList<Integer> list = new ArrayList<Integer>(); For(int i : list) { int value = i ; } e)引入了新关键字enum public enum StopLight { Reg,Green,Yellow } f)静态引入 使用前: Import java.awt.BorderLayout.*; getContentPane().add(new JPanel(),BorderLayout.CENTER); 使用后: Import static java.awt.BorderLayout.*; getContentPane().add(new JPanel(),CENTER); g)格式化输出/输入 System.out.printf(“hello,World\n”); System.out.printf(“%s %5d”,user,total); Scanner s = Scanner.create(System.in); String param = s.next(); Int value = s.nextInt(); s.close(); h)不定参数 它允许在一个方法中传入多个不定数量的参数, Void myFunc(Object. . . args) { For(int I = 0;I <args.length;i++) { } } myFunc(“tt”,”dafa”); 本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2006/06/17/428250.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android被逼学习小例子1

这个程序的功能就是当点击图片的时候,就会自动切换到下一个图片。对,就是这么简单的一个功能,高手请不要鄙视。 主要的代码如下: HelloWorldActivity.java代码为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 package hello.com; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.LinearLayout; public class HelloWorldActivity extends Activity { /** Called when the activity is first created. */ int [] images = new int [] { R.drawable.ajax, R.drawable.java, R.drawable.ee, R.drawable.classic, R.drawable.xml, }; int currentImage = 0 ; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); LinearLayout mainLayout = (LinearLayout) findViewById(R.id.root); final ImageView image = new ImageView( this ); mainLayout.addView(image); image.setImageResource(images[ 0 ]); image.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { if (currentImage >= 4 ) { currentImage = - 1 ; } image.setImageResource(images[++currentImage]); } }); } } main.xml代码为: 1 2 3 4 5 6 7 <? xml version="1.0" encoding="utf-8"?> < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > </ LinearLayout > 其余的没多大变化,只是图片放在drawable-mdpi目录下面。 运行结果为: ============================================================================== 本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/05/16/2505357.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

[Java]System类的小使用

判断操作系统是Linux还是Windows System.out.println(System.getProperties().getProperty("os.name")); 判断用户的当前工作目录 System.out.println(System.getProperties().getProperty("user.dir")); 如图: 键 相关值的描述 java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目录 java.vm.specification.version Java 虚拟机规范版本 java.vm.specification.vendor Java 虚拟机规范供应商 java.vm.specification.name Java 虚拟机规范名称 java.vm.version Java 虚拟机实现版本 java.vm.vendor Java 虚拟机实现供应商 java.vm.name Java 虚拟机实现名称 java.specification.version Java 运行时环境规范版本 java.specification.vendor Java 运行时环境规范供应商 java.specification.name Java 运行时环境规范名称 java.class.version Java 类格式版本号 java.class.path Java 类路径 java.library.path 加载库时搜索的路径列表 java.io.tmpdir 默认的临时文件路径 java.compiler 要使用的 JIT 编译器的名称 java.ext.dirs 一个或多个扩展目录的路径 os.name 操作系统的名称 os.arch 操作系统的架构 os.version 操作系统的版本 file.separator 文件分隔符(在 UNIX 系统中是“/”) path.separator 路径分隔符(在 UNIX 系统中是“:”) line.separator 行分隔符(在 UNIX 系统中是“/n”) user.name 用户的账户名称 user.home 用户的主目录 user.dir 用户的当前工作目录

优秀的个人博客,低调大师

[Spark][Python]Spark Join 小例子

[training@localhost ~]$ hdfs dfs -cat people.json {"name":"Alice","pcode":"94304"} {"name":"Brayden","age":30,"pcode":"94304"} {"name":"Carla","age":19,"pcoe":"10036"} {"name":"Diana","age":46} {"name":"Etienne","pcode":"94104"} [training@localhost ~]$ hdfs dfs -cat pcodes.json {"pcode":"10036","city":"New York","state":"NY"} {"pcode:"87501","city":"Santa Fe","state":"NM"} {"pcode":"94304","city":"Palo Alto","state":"CA"} {"pcode":"94104","city":"San Francisco","state":"CA"} sqlContext = HiveContext(sc) peopleDF = sqlContext.read.json("people.json") sqlContext = HiveContext(sc) pcodesDF = sqlContext.read.json("pcodes.json") mydf001=peopleDF.join(pcodesDF,"pcode") mydf001.limit(5).show() +-----+----+-------+----+---------------+-------------+-----+ |pcode| age| name|pcoe|_corrupt_record| city|state| +-----+----+-------+----+---------------+-------------+-----+ |94304|null| Alice|null| null| Palo Alto| CA| |94304| 30|Brayden|null| null| Palo Alto| CA| |94104|null|Etienne|null| null|San Francisco| CA| +-----+----+-------+----+---------------+-------------+-----+ 本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/p/7630003.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Linux 用户,组,权限小练习

1.新建一个没有家目录的用户openstack 2.复制/etc/skel为/home/openstack 3.改变/home/openstack及其内部的文件的属主,属组均为openstack 4./home/openstack及其内部的文件,属组和其他用户没有任何访问权限 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [root@localhost ~] # useradd -M openstack [root@localhost ~] # ls -l /home/openstack ls : /home/openstack : No such file or directory [root@localhost ~] # tail -1 /etc/passwd openstack:x:4005:4005:: /home/openstack : /bin/bash [root@localhost ~] # id openstack uid=4005(openstack) gid=4005(openstack) groups =4005(openstack) context=root:system_r:unconfined_t:SystemLow-SystemHigh [root@localhost ~] # finger openstack Login: openstack Name: (null) Directory: /home/openstack Shell: /bin/bash Never logged in . No mail. No Plan. [root@localhost ~] # cp -rv /etc/skel /home/openstack ` /etc/skel ' -> `/home/openstack' ` /etc/skel/ .bashrc ' -> `/home/openstack/.bashrc' ` /etc/skel/ .bash_logout ' -> `/home/openstack/.bash_logout' ` /etc/skel/ .bash_profile ' -> `/home/openstack/.bash_profile' [root@localhost ~] # ls -la /home/openstack total 40 drwxr-xr-x 2 root root 4096 May 16 16:14 . drwxr-xr-x 28 root root 4096 May 16 16:14 .. -rw-r--r-- 1 root root 24 May 16 16:14 .bash_logout -rw-r--r-- 1 root root 176 May 16 16:14 .bash_profile -rw-r--r-- 1 root root 124 May 16 16:14 .bashrc [root@localhost ~] # cd /home/openstack [root@localhost openstack] # ls -la total 40 drwxr-xr-x 2 root root 4096 May 16 16:14 . drwxr-xr-x 28 root root 4096 May 16 16:14 .. -rw-r--r-- 1 root root 24 May 16 16:14 .bash_logout -rw-r--r-- 1 root root 176 May 16 16:14 .bash_profile -rw-r--r-- 1 root root 124 May 16 16:14 .bashrc [root@localhost openstack] # chown -R openstack:openstack . [root@localhost openstack] # ls -la total 40 drwxr-xr-x 2 openstack openstack 4096 May 16 16:14 . drwxr-xr-x 28 root root 4096 May 16 16:14 .. -rw-r--r-- 1 openstack openstack 24 May 16 16:14 .bash_logout -rw-r--r-- 1 openstack openstack 176 May 16 16:14 .bash_profile -rw-r--r-- 1 openstack openstack 124 May 16 16:14 .bashrc [root@localhost openstack] # chmod go= . [root@localhost openstack] # ls -la total 40 drwx------ 2 openstack openstack 4096 May 16 16:14 . drwxr-xr-x 28 root root 4096 May 16 16:14 .. -rw-r--r-- 1 openstack openstack 24 May 16 16:14 .bash_logout -rw-r--r-- 1 openstack openstack 176 May 16 16:14 .bash_profile -rw-r--r-- 1 openstack openstack 124 May 16 16:14 .bashrc [root@localhost openstack] # chmod -R go= . [root@localhost openstack] # ls -la total 40 drwx------ 2 openstack openstack 4096 May 16 16:14 . drwxr-xr-x 28 root root 4096 May 16 16:14 .. -rw------- 1 openstack openstack 24 May 16 16:14 .bash_logout -rw------- 1 openstack openstack 176 May 16 16:14 .bash_profile -rw------- 1 openstack openstack 124 May 16 16:14 .bashrc [root@localhost openstack] # 结果: 1 2 3 [root@localhost openstack] # su - openstack [openstack@localhost ~]$ id uid=4005(openstack) gid=4005(openstack) groups =4005(openstack) context=root:system_r:unconfined_t:SystemLow-SystemHigh 其实上面的过程也揭示了用户创建的过程。 (每一个命令执行完毕后,都应该想办法去验证它!) 本文转自zfz_linux_boy 51CTO博客,原文链接:http://blog.51cto.com/zhangfengzhe/1412919,如需转载请自行联系原作者

优秀的个人博客,低调大师

运维shel小编(2)

第一章:shell历史与变量 2.1、shell历史与bash简介 Shell就是一个用于客户交互操作硬件的一个中间件。由于linux版本众多,shell也有很多种,/bin/bash是linux默认的shell。 Bashshell的功能: Tab自动补全、历史命令、命令别名、标准输入输出、重定向操作和管道功能。 History查看历史history-c清除历史,!n使用命令历史 Alias查看别名 >输出 1>和2>分别是正确输出和错误输出 |管道命令,用于将上一个执行结果向下传递 2.2shell变量的应用 变量:就是用一个特定字符串代替不固定的内容。Shell变量为linux提供了灵活的参数,包括变量名和变量值两部分。 变量赋值格式:变量名=变量值 变量查看的方式:echo$变量名 Env用于查看全局变量,set所有变量 通过键盘输入内容为变量值的格式为:read[-p“信息”]变量名 对于引用时符号注意事项:双引号“”表示引用变量值,单引号''表示$视为普通值,反撇号``意思为将结果输出给变量。 如果引用变量,它会认为$a11111看成一个整体变量,需要用${a}用 测试一个shell脚本,格式如下,但是我们却看不到结果,因为全局变量才会被启用 全局变量才会被启用,我们可以使用export变量名将结果变为全局变量,然后就可以引用了。unset进行取消变量。 键盘键入变量 2.3shell的其它变量 环境变量配置文件/etc/profile我们可以通过path增加环境变量路径,将该路径下变量变为全局变量 位置变量是指,一个数组可以使用$1-9来引用变量值 预定义变量:$#:返回命令行中参数个数,$*:显示参数内容,$?:返回上一条命令的状态,为0表示正常,$$:当前进程号,$0:当前执行进程。 2.4shell脚本简介与简单实例 Shell脚本是用于完成特定的、较复杂任务的一种自动化文本。是高级管理员必备的工具。 1、一个与键盘交互的shell脚本 2.完成一个简单的数值运算,对于计算我们使用(())双重的括号来进行数学运算。 3.每隔三天对数据库进行一次完整备份,并记录磁盘信息 本文转自zsaisai 51CTO博客,原文链接:http://blog.51cto.com/3402313/1003939

优秀的个人博客,低调大师

Linux 小知识翻译 - 「架构」(arch)

这次,聊聊「架构」这个术语。 在PC相关的文档中,是不是经常看到「x86架构」这个短句。但是对于这句话,是不是总感到有种似懂非懂的感觉。 架构的英语是「architecture」。这里面有「建筑」,「建筑风格」,「构造」的意思。实际上架构这个词在很多领域中都有「构造」的意思。 其实,即使在电脑的世界里,「架构」也有被用在多种场合。软件设计中会使用「架构」这个术语,硬件中也会使用「架构」这个术语。 使用时会涉及到多个方面,很难用一句话来概括「架构」的意思,但基本含有之前提到的「构造」,「设计风格」的意思。 那么,「x86架构」指的又是什么呢?「x86」是被称为电脑的头脑的CPU的一种。 所以,说「x86架构」的时候,就是指以 x86 CPU为核心的各种硬件的组合。 总之,只有CPU的话电脑是无法运行的,根据CPU的不同,硬件(使用什么样主板好呢?使用什么样的内存好呢?等等)的构成也会变化。 把和CPU相关的硬件的全体被称为「架构」,这样来考虑可能比较好。 (硬件)架构这个术语产生的理由是因为软件会「根据硬件架构的不同而改变」。即,同样的软件,可能在某些架构上能运行,其他架构上则不能运行或者运行的不好。 为了防止这种事情,有必要掌握使用软件的电脑的架构是什么样的。 标签: linux 本文转自wang_yb博客园博客,原文链接:http://www.cnblogs.com/wang_yb/p/3796348.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

LINUX用户和组小练习

1.创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux 1 2 3 4 5 6 [root@localhost~] #groupadd-g3003distro [root@localhost~] #tail-1/etc/group distro:x:3003: [root@localhost~] #groupaddlinux [root@localhost~] #tail-1/etc/group linux:x:3004: 1 2 3 [root@localhost~] #useradd-u2002-gdistro-Glinuxmandriva [root@localhost~] #idmandriva uid=2002(mandriva)gid=3003(distro) groups =3003(distro),3004(linux)context=root:system_r:unconfined_t:SystemLow-SystemHigh 2.创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh 1 2 3 4 5 6 7 8 9 10 [root@localhost~] #useradd-c"FedoraCommnuity"-s/bin/tcshfedora [root@localhost~] #idfedora uid=2003(fedora)gid=2003(fedora) groups =2003(fedora)context=root:system_r:unconfined_t:SystemLow-SystemHigh [root@localhost~] #fingerfedora Login:fedoraName:FedoraCommnuity Directory: /home/fedora Shell: /bin/tcsh Neverlogged in . Nomail. NoPlan. [root@localhost~] # 3.修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora 1 2 3 [root@localhost~] #usermod-u4004-glinux-Gdistro,fedoramandriva [root@localhost~] #idmandriva uid=4004(mandriva)gid=3004(linux) groups =3004(linux),3003(distro),2003(fedora)context=root:system_r:unconfined_t:SystemLow-SystemHigh 4.给fedora加密码,并设定其密码最短使用期限为2天,最长为50天。 1 2 3 4 5 6 7 8 9 10 [root@localhost~] #passwdfedora Changingpassword for userfedora. NewUNIXpassword: BADPASSWORD:itisWAYtooshort RetypenewUNIXpassword: passwd :allauthenticationtokensupdatedsuccessfully. [root@localhost~] #passwd-n2-x50fedora Adjustingagingdata for userfedora. passwd :Success [root@localhost~] # 5.将mandriva的默认shell改为/bin/bash 1 2 3 4 5 6 7 8 9 10 [root@localhost~] #usermod-s/bin/bashmandriva [root@localhost~] #idmandriva uid=4004(mandriva)gid=3004(linux) groups =3004(linux),3003(distro),2003(fedora)context=root:system_r:unconfined_t:SystemLow-SystemHigh [root@localhost~] #fingermandriva Login:mandrivaName:(null) Directory: /home/mandriva Shell: /bin/bash Neverlogged in . Nomail. NoPlan. [root@localhost~] # 6.添加系统用户hbase,且不允许其登陆系统。 1 2 3 4 5 6 7 [root@localhost~] #useradd-r-s/bin/nologinhbase [root@localhost~] #tail-1/etc/passwd hbase:x:102:103:: /home/hbase : /bin/nologin [root@localhost~] #su-hbase su :warning:cannotchangedirectoryto /home/hbase :Nosuch file ordirectory su : /bin/nologin :Nosuch file ordirectory [root@localhost~] # 本文转自zfz_linux_boy 51CTO博客,原文链接:http://blog.51cto.com/zhangfengzhe/1412871,如需转载请自行联系原作者

优秀的个人博客,低调大师

CentOS yum源配置小技巧

一、配置yum源 网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错,将yum源设置为163yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。具体设置方法如下: 1,进入yum源配置目录 #cd/etc/yum.repos.d 2,备份系统自带的yum源 #mvCentOS-Base.repoCentOS-Base.repo.bk 下载163网易的yum源: #wgethttp://mirrors.163.com/.help/CentOS6-Base-163.repo 3,更新玩yum源后,执行下边命令更新yum配置,使操作立即生效 #yummakecache 4,除了网易之外,国内还有其他不错的yum源,比如中科大和搜狐的,大家可以根据自己需求下载 中科大的yum源: #wgethttp://centos.ustc.edu.cn/CentOS-Base.repo sohu的yum源 #wgethttp://mirrors.sohu.com/help/CentOS-Base-sohu.repo 理论上讲,这些yum源redhat系统以及fedora也是可以用 的,但是没有经过测试,需要的可以自己测试一下。 二、安装yum-downloadonly,下载rpm软件包 方法1、安装yum-downloadonly插件,下载rpm包; #wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-5.repo #yuminstallyum-downloadonly #yuminstall--downloadonly--downloaddir=/nginx.rpmpcre 如果下载不到yum-downloadonly这个软件包,请查看附件,下载之后解压缩,上传到linux上,进行安装。 方法2、修改配置文件/etc/yum.conf ,将keepcache=0 修改为keepcache=1 通过yum安装的软件将会在下面的cachedir中缓存。 cachedir=/var/cache/yum/$basearch/$releasever 例如: #cd/var/cache/yum/x86_64/6/base/packages/ libpcap-1.4.0-4.20130826git2dbcaa1.el6.x86_64.rpm tcpdump-4.0.0-9.20090921gitdf3cb4.2.el6.x86_64.rpm 三、使用CentOS的iso搭建本地yum源 #ls/etc/yum.repos.d/ #CentOS-Base.repoCentOS-Media.repo #cp/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.bak #vim/etc/yum.repos.d/CentOS-Base.repo 1[dvd] 2name=installdvd 3baseurl=file:///media/CentOS_6.5_Final#iso的挂载路径 4enable=1 5gpgcheck=1#是否对下载的rpm包进行安全检查 6gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #yummakecache Loadedplugins:fastestmirror Loadingmirrorspeedsfromcachedhostfile dvd|1.1kB00:00 dvd/filelists|2.9MB00:00 dvd/other|9.1MB00:00 dvd/group|920kB00:00 dvd/primary|920kB00:00 dvd2599/2599 dvd2599/2599 dvd2599/2599 MetadataCacheCreated

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册