2010年3月17日 星期三

轉自IBM官網的VI技術文件

VI可以很簡單,也可以很複雜!
端看你想用功的層次來論~

我在windows系統,還想不出有什麼文字編輯器可以媲美VI?
你有一份幾千行的文字文件,需要做文字搜尋甚至代換,
前後文字調整,段落調整,去除空白字元,或是去除空白行,英文大小寫變化……等等

VI都能輕鬆用指令模式搞定!
在學習VI的過程中,會很能體會到UNIX簡潔但強大的設計哲學。
真的~

以下轉自IBM官網:VIM實用技術



Vim 实用技术,第 3 部分: 定制 Vim
前面两部分讲的都是如何使用现有的 Vim 系统,本部分则会通过实例来讲如何定制 Vim 的行为。良好的定制可以让使用 Vim 变得更为得心应手;同时,在掌握了基本的定制之后,也许你就会想进一步写一些自己的 Vim 脚本,从而真正地成为一个 Vim 专家。





Vim 实用技术,第 1 部分: 实用技巧
本系列文章分三部分详细阐述了 Vim 的使用技巧、插件、定制。第一部分主要是深入分析了 Vim 的使用。





Vim 实用技术,第 2 部分: 常用插件
第一部分介绍了一些基本的 Vim 使用技巧。掌握这些技巧可以很大地提高编辑效率,但是 Vim 的强大功能并不仅限于此。Vim 还可以通过“插件”来进行功能扩展。精确地说,是通过脚本来进行扩展,脚本类型有插件、语法加亮、配色方案、文件类型检测等多种。大部分的脚本都是由 Vim 的用户写的,解决了用户身边的问题,使 Vim 变得更加有用。本章将介绍最常用的一些脚本,其中除了一个属于“语法加亮”脚本外,其它都属于“插件”类型。关于如何写脚本的一些基础知识将在下一部分进行一些介绍。

2010年3月16日 星期二

自己动手写操作系统[轉]

[吳大補遺]
這本書我有買,動機也是為了學嵌入式系統!
但以為只要有C的基礎就能看下去,結果發現還要多少懂一些組合語言,昏~

nasm是Open Source一套功能很強的組合語言編譯器。
ubuntu安裝的指令是:
sudo apt-get install nasm

Fedora系列則是:
yum install nasm

SuSE系列是:
yast -install nasm

當然Gentoo和FreeBSD也都能裝……這不是廢話嗎#$%……
把以上轉貼文章中的source,寫成一個boot.asm檔!
編譯指令我有偷懶,簡化了一步,直接編成img檔:
nasm boot.asm -o boot.img

我是利用VirtualBox測的,要掛成軟碟機來用。



成功的畫面和引文不太一樣!
但原理是確定可行的!


以上!
補遺完畢!

+===============================================================================+
http://blog.ednchina.com/craftor/264430/message.aspx

摘自 于渊写的《自己动手写操作系统(第2版)》,内容有改动

一、十分钟完成的操作系统

环境:WinXP,Ubuntu(在虚拟机VMware中)

软件:NASM(见附件),VMware

1.编写如下代码,另外为boot.asm文件

org 07c00h
mov ax, cs
mov ds, ax
mov es, ax
call DispStr
jmp $
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessage: db "Hello, Craftor!"
times 510-($-$$) db 0
dw 0xaa55

2.用NASM将boot.asm编译成boot.bin文件(在XP下)

点击开大图

3.将boot.bin生成软盘镜像文件boot.img(在Ubuntu下)

点击开大图

4.在VMware中新建虚拟机,从boot.img启动(放在软驱里),启动成功后如下:

点击开大图

EMBED LINUX学习步骤

转自http://blog.ednchina.com/kyosho/202019/message.aspx

EMBED LINUX学习步骤

嵌入式系统学习步骤(转)

1、Linux 基础
安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程基础使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器
2、Shell 编程基础
Shell简介 认识后台程序Bash编程熟悉Linux系统下的编辑环境 熟悉Linux下的各种Shell 熟练进行shell编程熟悉vi基本操作 熟悉Emacs的基本操作 比较不同shell的区别 编写一个测试服务器是否连通的shell脚本程序 编写一个查看进程是否存在的shell脚本程序 编写一个带有循环语句的shell脚本程序
3、Linux 下的 C 编程基础
linux C语言环境概述 Gcc使用方法 Gdb调试技术 Autoconf Automake Makefile 代码优化 熟悉Linux系统下的开发环境 熟悉Gcc编译器 熟悉Makefile规则编写Hello,World程序 使用 make命令编译程序 编写带有一个循环的程序 调试一个有问题的程序
4、嵌入式系统开发基础
嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核 嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程 建立嵌入式系统开发环境制作cross_gcc工具链 编译并下载U-boot 编译并下载Linux内核 编译并下载Linux应用程序
4、嵌入式系统移植
Linux内核代码 平台相关代码分析 ARM平台介绍 平台移植的关键技术 移植Linux内核到 ARM平台 了解移植的概念 能够移植Linux内核移植Linux2.6内核到 ARM9开发板
5、嵌入式 Linux 下串口通信
串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉文件I/O 编写串口通信程序 编写多串口通信程序
6、嵌入式系统中多进程程序设计
Linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解Linux系统中进程的概念 能够编写多进程程序编写多进程程序 编写一个守护进程程序 sleep系统调用任务管理、同步与通信 Linux任务概述任务调度 管道 信号 共享内存 任务管理 API 了解Linux系统任务管理机制 熟悉进程间通信的几种方式 熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输 编写一个使用共享内存的程序
7、嵌入式系统中多线程程序设计
线程的基础知识 多线程编程方法 线程应用中的同步问题了解线程的概念 能够编写简单的多线程程序编写一个多线程程序
8、嵌入式 Linux 网络编程
网络基础知识 嵌入式Linux中TCP/IP网络结构 socket 编程 常用 API函数 分析Ping命令的实现 基本UDP套接口编程 许可证管理 PPP协议 GPRS 了解嵌入式Linux网络体系结构 能够进行嵌入式Linux环境下的socket 编程 熟悉UDP协议、PPP协议 熟悉GPRS 使用socket 编写代理服务器 使用socket 编写路由器 编写许可证服务器 指出TCP和UDP的优缺点 编写一个web服务器 编写一个运行在 ARM平台的网络播放器
9、GUI 程序开发
GUI基础 嵌入式系统GUI类型 编译QT 进行QT开发熟悉嵌入式系统常用的GUI 能够进行QT编程使用QT编写“Hello,World”程序 调试一个加入信号/槽的实例 通过重载QWidget 类方法处理事件
10、Linux 字符设备驱动程序
设备驱动程序基础知识 Linux系统的模块 字符设备驱动分析 fs_operation结构 加载驱动程序了解设备驱动程序的概念 了解Linux字符设备驱动程序结构 能够编写字符设备驱动程序编写Skull驱动 编写键盘驱动 编写I/O驱动 分析一个看门狗驱动程序 对比Linux2.6内核与2.4内核中字符设备驱动的不同Linux 块设备驱动程序块设备驱动程序工作原理 典型的块设备驱动程序分析 块设备的读写请求队列了解Linux块设备驱动程序结构 能够编写简单的块设备驱动程序比较字符设备与块设备的异同 编写MMC卡驱动程序 分析一个文件系统 对比Linux2.6内核与2.4内核中块设备驱动的不同
11、文件系统
虚拟文件系统 文件系统的建立 ramfs内存文件系统 proc文件系统 devfs 文件系统 MTD技术简介 MTD块设备初始化 MTD块设备的读写操作了解Linux系统的文件系统 了解嵌入式Linux的文件系统 了解MTD技术 能够编写简单的文件系统为 ARM9开发板添加 MTD支持 移植JFFS2文件系统 通过proc文件系统修改操作系统参数 分析romfs 文件系统源代码 创建一个cramfs 文件系统

Linux主要发行版软件包管理速查表

[转载]Linux主要发行版软件包管理速查表

任务 apt
Debian, Ubuntu
zypp
openSUSE
yum
Fedora, CentOS
安装包 apt-get install zypper install yum install
移除包 apt-get remove zypper remove yum erase
更新包列表 apt-get update zypper refresh yum check-update
更新系统 apt-get upgrade zypper update yum update
列出源 cat /etc/apt/sources.list zypper repos yum repolist
添加源 (edit /etc/apt/sources.list) zypper addrepo (add to /etc/yum.repos.d/)
移除源 (edit /etc/apt/sources.list) zypper removerepo (remove from /etc/yum.repos.d/)
搜索包 apt-cache search zypper search yum search
列出已安装的包 dpkg -l rpm -qa rpm -qa
任务 urpmi
Mandriva
slackpkg
Slackware
pacman
Arch
安装包 urpmi slackpkg install pacman -S
移除包 urpme slackpkg remove pacman -R
更新包列表 urpmi.update -a slackpkg update pacman -Sy
更新系统 urpmi --auto-select slackpkg upgrade-all pacman -Su
列出源 urpmq --list-media cat /etc/slackpkg/mirrors cat /etc/pacman.conf
添加源 urpmi.addmedia (edit /etc/slackpkg/mirrors) (edit /etc/pacman.conf)
移除源 urpmi.removemedia (edit /etc/slackpkg/mirrors) (edit /etc/pacman.conf)
搜索包 urpmf -- pacman -Qs
列出已安装的包 rpm -qa ls /var/log/packages/ pacman -Qii
任务 conary
rPath, Foresight
pisi
Pardus
emerge
Gentoo
安装包 conary update pisi install emerge
移除包 conary erase pisi remove emerge -C
更新包列表
pisi update-repo emerge --sync | layman -S [for added repositories]
更新系统 conary updateall pisi upgrade emerge -NuDa world
列出源
pisi list-repo layman -L
添加源
pisi add-repo layman -a
移除源
pisi remove-repo layman -d
搜索包 conary query pisi search emerge --search
列出已安装的包 conary query pisi list-installed cat /var/lib/portage | more

2010年3月11日 星期四

windows XP 建立Ad Hoc連線

一直覺得無線會是未來網路環境的主流。
但也很矛盾的認為,還是有線的網路比較值得信任其穩定性和安全性。
現在很多小筆電和簡易型電腦,本身就附了無線網路的設備。
大牛學長的公司,甚至乾脆就拿EeeBox取代原先的桌上型電腦。
省電又不占空間!

但AP不够用,或是訊號不够遠時,也許下面連結的文件。
參考著作法,把XP改一改設定,就能提供不錯的網路環境!

http://www.smallnetbuilder.com/content/view/24430/98/

http://www.microsoft.com/china/windowsxp/expertzone/columns/bowman/02april08.mspx

2010年3月10日 星期三

使用OEM的權限

當我們新建一個新帳號,已經給予CONNECT,RESOURCE兩大角色權限時!
若是該帳號要再能使用JAVA OEM時,必須再給予兩套權限!

SQL> grant select_catalog_role to jfshr ;

Grant succeeded.

SQL>
SQL> grant select any dictionary to jfshr ;

Grant succeeded.

SQL>


在登入OEM出錯時,照說明指示,也能查詢到相關作法!

2010年3月3日 星期三

oracle SQL 練習(重點在權限和synonym的運用)

以下範例使用SQL*Plus登入本機oracle做練習:

1.login user: system
(1) --建立一個user名稱test01(CREATE USER test01)密碼預設為test01(語法:IDENTIFIED BY test01)
CREATE USER TEST01 IDENTIFIED BY test01 ;
(2) --賦予test01可以連接資料庫的權限
GRANT CREATE SESSION TO test01;
(3) --建立一個user test02,且賦予連線權限
CREATE USER TEST02 IDENTIFIED BY test02 ;
GRANT CREATE SESSION TO test02;

2.login user: hr (練習建立public synonyms與權限)
(1) --將hr下面的table:departments建立成為公用synonyms:dep_p
create public synonym dep_p for hr.departments;
(2) --賦予user:test01可以讀取(select)hr裡面的table:departments的權限
grant select on departments to test01;

3.login user: test01 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(以下語法執行若不成功表示上述範例1與2的設定有問題)
select * from dep_p ;

4.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(以下語法執行會出現錯誤ORA-00942: 表格或視觀表不存在
--,因為雖然dep_p為public,但是在範例2-(2)中沒有設定test02的讀取權限)
select * from dep_p ;

5.login user: hr (練習建立權限)
(1) --賦予user:test02可以讀取(select)hr裡面的table:departments的權限
grant select on departments to test02;

6.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(以下語法執行若不成功表示上述範例5的設定有問題)
select * from dep_p ;

7.login user: hr (練習with grant option)
(1) --先將之前建立的權限移除
revoke select on departments from test02;
revoke select on departments from test01;
(2) --賦予test01有with grant option的權限
grant select on departments to test01
with grant option;

(2) --賦予user:test01可以讀取(select)hr裡面的table:departments的權限
grant select on departments to test01;

8.login user: test01 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(以下語法執行若不成功表示上述範例7的設定有問題)
select * from dep_p ;

9.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(應該會無法讀取才對)
select * from dep_p ;

10.login user: test01 (練習with grant option)
(1) --練習由user:test01去指定賦予user:test02讀取user:hr的table:departments的權限
grant select on hr.departments to test02;

11.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(應該會可以讀取才對)
select * from dep_p ;

12.login user: hr (練習移除with grant option)
(1) --直接由hr撤銷test01對department的select權限
revoke select on departments from test01;

13.login user: test01 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(應該會無法讀取才對,因範例12已經撤銷權限)
select * from dep_p ;

14.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(應該會無法讀取才對,因為範例12已經撤銷父層權限)
select * from dep_p ;

15.login user: hr (練習建立private synonyms與權限)
(1) --將hr下面的table:departments建立成為user:test02私用synonyms:dept
create synonym test02.dept for hr.departments;
(2) --賦予user:test02可以讀取(select)hr裡面的table:departments的權限
grant select on departments to test02;

16.login user: test02 (測試是否能讀取private synonyms)
(1) --測試是否能讀取私用synonyms(應該會可以讀取才對)
select * from dept ;

---------------(練習完畢已經頭昏眼花 @_@ )-----------------------------

註:那裡抄來的,已不可考!但練習內容,的確對DBA有所助益~

2010年3月2日 星期二

Cent OS 最小安裝之後,怎麼裝X-window?

# yum groupinstall "X Window System"

如果要能有一套Desktop環境,再裝GNOME!
# yum groupinstall "GNOME Desktop Environment"

就這樣!
以上~


搜尋此網誌

本站大事記

這個部落格(網站)內容以分享LINUX和延伸出的技術文章為主!
特別是為了工作和進修需要,搜集了不少網站連結。
希望對來這裡觀文的朋友們,有提供一些有用的資訊或文章。
但這裡的文章中,也包含個人的心情扎記和隨興言談……
若是當中沒有對上你的口味,請多包涵!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!
--原序文--
就是當LINUX遇上CISCO啦!他們的結合還能作什麼事…不就是讓這個世界的網路,串…串起來啊…不然你們那能上這網站看部落格!