my blog my blog

Tag: Linux
BeagleBone-Black的debian系统安装中文字体支持教程

 

BeagleBone-Black的debian中默认没有中文,处理方法如下,可以保证中文不显示成方块。

 

  1. apt-get install locales 
  2. dpkg-reconfigure locales 
  3. 选择zh_CN UTF-8 UTF-8后保存退出 
  4. apt-get install ttf-arphic-uming 
  5. apt-get install ttf-wqy-zenhei 

 

BeagleBone-Black添加VNC支持教程

 

奶牛的BeagleBone-Black闲置了好久了,最近需要一个下载机,看了下NAS价格还是比较高的,成本有些高,而且功能也就那样吧,所以决定动用手上的BeagleBone-Black,挂移动硬盘的话还需要usb-hub供电才可以,直接插上接着就挂(估计是电流不够),手上的5.3V  2A的电源接在BeagleBone-Black上竟然还不够电流,只能靠外接了看样子。废话不多说了,写教程。

奶牛的BeagleBone-Black安装的是debian版本,所以ps -aux先看了下都运行了啥,发现了lightdm和openbox,这就好办了。

  1. vim /etc/lightdm/lightdm.conf 

将VNC的配置激活

 

  1. enabled=true 
  2. width=1366 
  3. height=768 
  4. depth=16 

port端口默认就好了,不影响。

然后电脑下载个tightvnc客户端就直接连接ip就可以了。那样子就不用给下载机接个屏啥的了。

Windows下cmd中类似linux命令行的进程管理命令tasklist和taskkill

 

linux下我们用ps来查看进程用kill来结束进程。在windows下的cmd中,也可以通过命令行来完成。

tasklist可以像ps一样列进程,包括可执行文件名,pid什么的,taskkill则用来杀进程。

  1. TASKLIST [/S system [/U username [/P [password]]]] 
  2.          [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH] 
  3.  
  4. 描述: 
  5.     该工具显示在本地或远程机器上当前运行的进程列表。 
  6.  
  7. 参数列表: 
  8.    /S     system           指定连接到的远程系统。 
  9.  
  10.    /U     [domain\]user    指定应该在哪个用户上下文执行这个命令。 
  11.  
  12.    /P     [password]       为提供的用户上下文指定密码。如果省略,则 
  13.                            提示输入。 
  14.  
  15.    /M     [module]         列出当前使用所给 exe/dll 名称的所有任务。 
  16.                            如果没有指定模块名称,显示所有加载的模块。 
  17.  
  18.    /SVC                    显示每个进程中主持的服务。 
  19.  
  20.    /APPS                   显示应用商店应用及其关联进程。 
  21.  
  22.    /V                      显示详细任务信息。 
  23.  
  24.    /FI    filter           显示一系列符合筛选器 
  25.                            指定条件的任务。 
  26.  
  27.    /FO    format           指定输出格式。 
  28.                            有效值: "TABLE"、"LIST"、"CSV"。 
  29.  
  30.    /NH                     指定列标题不应该 
  31.                            在输出中显示。 
  32.                            只对 "TABLE" 和 "CSV" 格式有效。 
  33.  
  34.    /?                      Displays this help message. 
  35.  
  36. 筛选器: 
  37.     筛选器名称     有效运算符           有效值 
  38.     -----------     ---------------           -------------------------- 
  39.     STATUS          eq, ne                    RUNNING | SUSPENDED 
  40.                                               NOT RESPONDING | UNKNOWN 
  41.     IMAGENAME       eq, ne                    映像名称 
  42.     PID             eq, ne, gt, lt, ge, le    PID 值 
  43.     SESSION         eq, ne, gt, lt, ge, le    会话编号 
  44.     SESSIONNAME     eq, ne                    会话名称 
  45.     CPUTIME         eq, ne, gt, lt, ge, le    CPU 时间,格式为 
  46.                                               hh:mm:ss。 
  47.                                               hh - 小时, 
  48.                                               mm - 分钟,ss - 秒 
  49.     MEMUSAGE        eq, ne, gt, lt, ge, le    内存使用(以 KB 为单位) 
  50.     USERNAME        eq, ne                    用户名,格式为 
  51.                                               [域\]用户 
  52.     SERVICES        eq, ne                    服务名称 
  53.     WINDOWTITLE     eq, ne                    窗口标题 
  54.     MODULES         eq, ne                    DLL name 
  55.  
  56. 注意: 当查询远程计算机时,不支持 "WINDOWTITLE" 和 "STATUS" 
  57.       筛选器。 
  58.  
  59. Examples: 
  60.     TASKLIST 
  61.     TASKLIST /M 
  62.     TASKLIST /V /FO CSV 
  63.     TASKLIST /SVC /FO LIST 
  64.     TASKLIST /APPS /FI "STATUS eq RUNNING" 
  65.     TASKLIST /M wbem* 
  66.     TASKLIST /S system /FO LIST 
  67.     TASKLIST /S system /U domain\username /FO CSV /NH 
  68.     TASKLIST /S system /U username /P password /FO TABLE /NH 
  69.     TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running" 

 

  1. TASKKILL [/S system [/U username [/P [password]]]] 
  2.          { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F] 
  3.  
  4. 描述: 
  5.     使用该工具按照进程 ID (PID) 或映像名称终止任务。 
  6.  
  7. 参数列表: 
  8.     /S    system           指定要连接的远程系统。 
  9.  
  10.     /U    [domain\]user    指定应该在哪个用户上下文执行这个命令。 
  11.  
  12.     /P    [password]       为提供的用户上下文指定密码。如果忽略,提示 
  13.                            输入。 
  14.  
  15.     /FI   filter           应用筛选器以选择一组任务。 
  16.                            允许使用 "*"。例如,映像名称 eq acme* 
  17.  
  18.     /PID  processid        指定要终止的进程的 PID。 
  19.                            使用 TaskList 取得 PID。 
  20.  
  21.     /IM   imagename        指定要终止的进程的映像名称。通配符 '*'可用来 
  22.                            指定所有任务或映像名称。 
  23.  
  24.     /T                     终止指定的进程和由它启用的子进程。 
  25.  
  26.     /F                     指定强制终止进程。 
  27.  
  28.     /?                     显示帮助消息。 
  29.  
  30. 筛选器: 
  31.     筛选器名      有效运算符                有效值 
  32.     -----------   ---------------           ------------------------- 
  33.     STATUS        eq, ne                    RUNNING | 
  34.                                             NOT RESPONDING | UNKNOWN 
  35.     IMAGENAME     eq, ne                    映像名称 
  36.     PID           eq, ne, gt, lt, ge, le    PID 值 
  37.     SESSION       eq, ne, gt, lt, ge, le    会话编号。 
  38.     CPUTIME       eq, ne, gt, lt, ge, le    CPU 时间,格式为 
  39.                                             hh:mm:ss。 
  40.                                             hh - 时, 
  41.                                             mm - 分,ss - 秒 
  42.     MEMUSAGE      eq, ne, gt, lt, ge, le    内存使用量,单位为 KB 
  43.     USERNAME      eq, ne                    用户名,格式为 [domain\]user 
  44.     MODULES       eq, ne                    DLL 名称 
  45.     SERVICES      eq, ne                    服务名称 
  46.     WINDOWTITLE   eq, ne                    窗口标题 
  47.  
  48.     说明 
  49.     ---- 
  50.     1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。 
  51.     2) 远程进程总是要强行 (/F) 终止。 
  52.     3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。 
  53.  
  54. 例如: 
  55.     TASKKILL /IM notepad.exe 
  56.     TASKKILL /PID 1230 /PID 1241 /PID 1253 /T 
  57.     TASKKILL /F /IM cmd.exe /T 
  58.     TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*" 
  59.     TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe 
  60.     TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM * 
  61.     TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*" 

 

Kernel首页换新颜

 

RT,kernel首页换了新主题,呃,从订阅里面看到的。

很多朋友可能没自己编译过内核,也对内核具体是个什么东东不是很了解。奶牛引用下wiki介绍:

内核(Kernel)在计算机科学中是操作系统最基本的部分,主要负责管理系统资源。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并由内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的。所以内核通常提供一种硬件抽象的方法,来完成这些操作。通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备)。 

严格地说,内核并不是计算机系统中必要的组成部分。程序可以直接地被调入计算机中执行;这样的设计,说明了设计者不希望提供任何硬件抽象和操作系统的支持;它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者写入在只读记忆体里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。

kernel.org是linux内核的维护页面,感兴趣的朋友可以去看看,话说linux kernel就跟赶着投胎一样,竟然都飙到3.8版本了….

Ubuntu移动版操作系统之我见

 

Ubuntu今天发布了移动版本系统,虽然ubuntu for android在很久之前就提出来了,但是真东西还一直没见过,现在ubuntu for phone也出来了,看样子就不仅仅是个以android为基础的设计了,而是自己开始开发移动版操作系统。对于已经较为成熟的linux内核的Android操作系统,ubuntu移动系统的出现可能并不会造成太大的影响,而且,现阶段完全看不到什么优势。

1.界面

看过介绍视频的朋友应该第一印象是ubuntu手机系统的界面还是以触屏为基础的滑动型界面,其中融入了很多unity的元素,比如边栏的Launcher,多少可以看到些桌面版本的影子。在UI上有不少创新,但是在这方面Android的操作相对而言并没有什么劣势,可定制性还更强,因为Android的启动器有很多家都在做,而且美观程度与使用程度都很强大。

2.厂商支持

估计这个是最关键的,大厂商一年能出几款机器都是有数的,就拿htc说事儿,今年有几款机型,多数Android系统,出了8s跟8x的wp8手机,之外的我们了解就很少了,三星主打就是Android而且今年的新机型也不多,moto lg的也都如此,所以,从厂商方面,他们没出一台新机器都会很慎重,对于技术不成熟的产品,未见会有大兴趣。

3.应用

上面那些虽然重要,但我觉得不是至关重要的,买智能手机,我们最看重的就是应用。现在应用方面我觉得可以算是IOS的跟Android的两家独大,虽然WP的也有很多,但是从出货量上与Android跟IOS还是有很大差距,暂且不说。Ubuntu移动版有多少应用呢?又会有多少人为其开放应用呢?我反而觉得Chrome OS跟Firefox OS会有更大的优势,至少人家专注在浏览器,专注在web app,而且web app的跨平台性也会好很多,所以开发者还是会考虑的,但是ubuntu的移动版哩,呃。。。

也并没有打击谁的意思,只是觉得还是专注做好自己的桌面Linux就好了,搞移动操作系统,想在其中分块肉,并非易事,微软尚且没有做那么成功,何况canonical。微软的wm系统在移动智能操作系统领域也是先驱,底子绝对够厚,如今也还是被Android压得很累。Android从2.x版本到现在的4.2版本,真的是越来越成熟,系统的流畅度也有目共睹。看着ubuntu port在谷歌三儿子的视频,心里也不知道是个啥滋味了,难道只能做个geek的玩物?

Ubuntu OS Port On Galaxy Nexus视频如下:

Arch Linux 2012.12.01 发布新安装介质

 

Arch Linux 现在每月好像都发一次新的安装介质镜像,呃,发吧,可能是最近一直变化比较大吧。对了Arch Linux现在已经全面启用systemd了,没有做迁移的都做迁移吧,原来的initscripts已经不继续支持更新咯。

新版本下载地址:https://www.archlinux.org/download/

systemd迁移方法可以看:https://wiki.archlinux.org/index.php/Systemd

Makefile的基本写法与范例

 

Makefile 基本写法:

格式:

  1. ------------------------------------------------- 
  2.  
  3. target: dependencies 
  4.  
  5. [tab] system command 
  6.  
  7. ------------------------------------------------- 

范例1:

  1. # I am a comment, and I want to say that the variable CC will be 
  2.  
  3. # the compiler to use. 
  4.  
  5. CC=g++ 
  6.  
  7. # Hey!, I am comment number 2. I want to say that CFLAGS will be the 
  8.  
  9. # options I'll pass to the compiler. 
  10.  
  11. CFLAGS=-c -Wall 
  12.  
  13.   
  14.  
  15. all: hello 
  16.  
  17. hello: main.o factorial.o hello.o 
  18.  
  19.        g++ main.o factorial.o hello.o -o hello 
  20.  
  21.   
  22.  
  23. main.o: main.cpp 
  24.  
  25.        g++ -c main.cpp 
  26.  
  27.   
  28.  
  29. factorial.o: factorial.cpp 
  30.  
  31.        g++ -c factorial.cpp 
  32.  
  33.   
  34.  
  35. hello.o: hello.cpp 
  36.  
  37.        g++ -c hello.cpp 
  38.  
  39.   
  40.  
  41. clean: 
  42.  
  43.        rm -rf *o hello 

范例2:
 

  1. CC=g++ 
  2.  
  3. CFLAGS=-c -Wall 
  4.  
  5. LDFLAGS
  6.  
  7. SOURCES=main.cpp hello.cpp factorial.cpp 
  8.  
  9. OBJECTS=$(SOURCES:.cpp=.o) 
  10.  
  11. EXECUTABLE=hello 
  12.  
  13.   
  14.  
  15. all: $(SOURCES) $(EXECUTABLE) 
  16.  
  17.        
  18.  
  19. $(EXECUTABLE): $(OBJECTS) 
  20.  
  21.        $(CC) $(LDFLAGS) $(OBJECTS) -o $@ 
  22.  
  23.   
  24.  
  25. .cpp.o: 
  26.  
  27.        $(CC) $(CFLAGS) $< -o $@ 
  28.  
  29. Hello.c 

 

Linux与Win8双系统实战

 

win8从开发者预览版发布到现在的正式版发布已经有日子了,今天奶牛就来说说Linux与win8双系统的启动相关的东东。

首先说思路,思路就是首先你有一个windows8了,你想再装linux,那样子就正常安装就可以了,安装到boot的地方的时候,把引导程序写在MBR上,那样子,开机就是linux的引导了,一般现在都是grub2的,grub也是同理,没有啥变化,呃,不要说你是lilo,也是同样的道理。这样子linux安装完成后你就可以进入linux了,然后从linux引导windows是很方便的,只要chainloader +1,然后把windows所在的分区make active就可以了,可以参考grub.cfg的配置文件。

第二种情况是你现在是linux,想装个win8玩儿玩儿,这个呢也有好方法,不过你要保证你的分区情况不变,至少你的boot所在的分区不能变,否则你需要先把分区等事情先处理好再来做。首先,备份你的mbr

  1. dd if=/dev/sda of=./mbr.bak bs=512 count=1 

这样子是把你现有的分区跟引导信息保存下来了,接下来你可以去安装你的win8了。安装完成后你应该默认进入win8了,找个linux的live进入linux,然后把刚才的mbr.bak还原回去。

  1. dd if=./mbr.bak of=/dev/sda  bs=446 count=1

这样子就只恢复你的引导,为啥不是bs=512呢?因为你linux下分区如果不是ntfs格式,你安装win8的时候又使用了ntfs格式的话,你的win不就挂了哦,所以这里用446保险,一般不会有问题.

这样子你就又得到了linux的引导了,继续如前所述,改下grub.cfg就可以进入win8了。

当然如果你想用win8来引导linux也可以,可以装easybcd,利用grub4dos来实现,奶牛没测试过,请自测,不过此方案肯定是行得通的。

BIOS跟Ubuntu无关

 

今天weibo吐槽了一个人,实在有些看不下去了,虽然这几年来在网上看到关于操作系统的吐槽不少,但是从来就没见过这么低水平的吐槽。引用下:

作者的原话:ubuntu连BIOS都找不到。。。。。。。。这怎么改 优先 光驱 日了

我转发顺便评论了下:ubuntu 连开机键都找不到 。。。。。。。。这怎么开机哇 日了

收到作者的回复:呵呵 我就不信@奶牛博客 生来就会用UBUNTU 。。。。以自己的强项去吐槽别人的弱项 是显得你的强大伟岸呢 还是什么心理阴暗 幸灾乐祸 真是林大什么鸟都有

好吧,就到这。现在作者把原微博已经删除了,无处可寻,但是,奶牛仅就此时谈谈感想。

本来只是想娱乐下大众,没想到收到如此的回复,呵呵一笑带过一千只乌鸦飞过的感觉。自始至终,我都觉得自己有很多东西要学,我知道自己有多少东西不会有多少东西不知道有多少方向要努力,我也懒得用自己宝贵的时间去跟你争论什么强项弱项,三年来积累写下的文章有小600篇了,不晓得对各位有多少帮助,但是我觉得我还算是比较热心跟有爱心的。一个知道可以在BIOS里面改启动优先级的人竟然都不知道BIOS跟操作系统无关,这个可以不怪你,但是不要拿这么愚蠢的问题来吐槽一个压根儿不适合你的操作系统可以么?你不觉得这个操作系统很无辜么?你可以说你不会用,你也可以求助询问如何使用,但是请不要这么装13似的无知的告诉别人ubuntu就像垃圾一样。科普下什么是BIOS:

  1. BIOS是英文"Basic Input Output System"的缩略语 
  2. 中文名称就是"基本输入/输出系统" 
  3. 它是一组固化到计算机内主板上一个ROM芯片上的程序 
  4. 它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 
  5. 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。 

从上面的百科介绍,我们可以知道BIOS是一个ROM芯片上的程序,固化在了主板上的硬件上,所以就算你的硬盘是完全空白的,BIOS仍旧是可以正常工作的。而对于操作系统而言,跟BIOS并没有直接关系。

那个作者所说的启动优先级是BIOS设置中常用的一个设置方面,可以通过设置boot的顺序来改变先启动什么硬件。比如你有光驱,有优盘,有硬盘,还有网络,这四种最常见的启动方式,如果你的硬盘放在第一启动项,那么就算你把安装光盘放进了光驱,重新启动,仍旧是从硬盘先启动而非你的光盘,这也就是启动顺序的一个比较好的一个例子了。裸机一般都会在硬盘装有操作系统,就像现在很多厂商为了降低笔记本的价格,从而安装linux操作系统,比如像奶牛前阵子接触的那个meego系统的机子一样。如何知道怎么进入BIOS呢,可以开机的时候看看最先出来的那行提示就知道了。

好了,科普结束。Linux操作系统本来就不是适合每个人用的,那些根本还不知道什么是linux还想着装B的筒子无权吐槽。

[mp3 auto=1]http://blog.96911.com/blog_musfile/89811004.mp3?ickey=1[/mp3]

GNOME 3.6 正式发布

 

用户界面更新

新应用更新

多语言更新

 

开发者工具更新

 希望Ubuntu 12.10的下个版本跟Arch Linux都可以尽快更新吧~

本文纯属翻译,详细看http://library.gnome.org/misc/release-notes/3.6/index.html.en