cygwin使用:

  使用上的方便性很是不错,启动Cygwin以后,会在Windows下得到一个Bash Shell,由于Cygwin是以Windows下的服务运行的,所以很多情况下和在Linux下有很大的不同

开始使用Cygwin:

比如PS,相当于Windows下的TM(任务管理器),直接Ps的话 那么得到的会是Cygwin下的Shell的进程如下

Taynni-417@ENTERBD-417 ~
$ ps
PID PPID PGID WINPID TTY UID STIME COMMAND
2212 1 2212 2212 con 1003 01:54:29 /usr/bin/bas
3384 2212 3384 3232 con 1003 01:59:24 /usr/bin/ps

如果这个时候你需要在Cygwin下显示Windows下的进程你可以在PS后面加上参数-aW,PS的相关用法:

Quote
Usage ps [-aefl] [-u uid]
-f = show process uids, ppids
-l = show process uids, ppids, pgids, winpids
-u uid = list processes owned by uid
-a, -e = show processes of all users
-s = show process summary
-W = show windows as well as cygwin processes

很容易看懂.

有点不一样的地方,我想大家一定想知道在Cygwin下怎么访问Windows下的内容了,首先使用DF命令直接查看下本地驱动器,很容易了吧,显示的内容

如下:

Quote
Taynni-417@ENTERBD-417 ~
$ df
Filesystem 1k-blocks Used Available Use% Mounted on
e:\cygwin\bin 10231384 4844432 5386952 48% /usr/bin
e:\cygwin\lib 10231384 4844432 5386952 48% /usr/lib
e:\cygwin 10231384 4844432 5386952 48% /
c: 5106676 1240312 3866364 25% /cygdrive/c
d: 10239408 6560328 3679080 65% /cygdrive/d
e: 10231384 4844432 5386952 48% /cygdrive/e
f: 6333252 4065564 2267688 65% /cygdrive/f
g: 7150972 4672724 2478248 66% /cygdrive/g

如上便是我的硬盘的全部了,在后面的/cygdrive/c便是C盘了,然后/cygdrive/d便是D盘了,这样的话,想进D盘便可以这样进

Quote
Taynni-417@ENTERBD-417 ~
$ cd /cygdrive/d
Taynni-417@ENTERBD-417 /cygdrive/d
$ ls -l
ls: pagefile.sys: Permission denied
total 0
drwxr-xr-x 9 Taynni-4 None 0 Aug 31 20:56 Book
drwxr-xr-x 2 Taynni-4 None 0 Aug 23 05:24 Ftproot
drwxr-xr-x 30 Taynni-4 None 0 May 10 23:38 HACKER
drwxr-xr-x 11 Taynni-4 None 0 Feb 1 2005 JIAOXUE
drwxr-xr-x 8 Taynni-4 None 0 Jan 3 2005 Local Settings
dr-xr-xr-x 24 Taynni-4 None 0 Oct 16 2004 My Documents
drwxr-xr-x 12 Taynni-4 None 0 May 14 16:48 Mywww
drwxr-xr-x 2 Taynni-4 None 0 Jun 29 2004 Recycled
drwxr-xr-x 3 Taynni-4 None 0 Aug 22 04:44 SECBOOK
drwxr-xr-x 6 Taynni-4 None 0 Feb 28 2005 TaynniCHX
drwxr-xr-x 15 Taynni-4 None 0 Mar 30 01:04 TaynniGZ
drwxr-xr-x 12 Taynni-4 None 0 May 11 01:30 TaynniH
drwxr-xr-x 15 Taynni-4 None 0 Mar 12 04:27 TaynniYM
drwxr-xr-x 6 Taynni-4 None 0 Dec 13 2004 Taynniwww
drwxr-xr-x 8 Taynni-4 None 0 Aug 31 20:55 Word
Taynni-417@ENTERBD-417 /cygdrive/d
$

在Cygwin下还可以运行Windows下的程序,如下:

Taynni-417@ENTERBD-417 ~
$ cmd.exe
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
e:\cygwin\home\Taynni-417>d:
D:\>cd hacker
D:\HACKER>cd tools
D:\HACKER\Tools>cd pstools
D:\HACKER\Tools\Pstools>ls
pdh.dll pskill.exe pspasswd.exe
Psinfo.exe psexec.exe pslist.exe psservice.exe
Pstools.chm psfile.exe psloggedon.exe psshutdown.exe
README.TXT psgetsid.exe psloglist.exe pssuspend.exe
D:\HACKER\Tools\Pstools>exit
Taynni-417@ENTERBD-417 ~
$

  很明显的,直接输入CMD.EXE便可以得到一个本机CMDSHELL,这样你想运行什么程序都可以了

退出到Cygwin的Bash shell需要使用exit命令,很方便

  在Cygwin下还可以进行编译程序,比如C和perl,当然,你也可以借助ActivePy,这个东西也很不错,也是一个仿真器,在Windows下模拟perl的解释器.

  对于一个系统而言,没有相应的系统工具是不可能的,在Cygwin下拥有的UNIX工具基本上够你使用了。当然,这需要你安装完整的Cygwin包

  一般像grep,cut,sed,strings,strace,md5sum,diff,patch,ssh,xxd,等等工具你都可以进行安装和使用

(这个命令是用于效验文件md5值的,主要是为了文件的完整性和安全性)

Quote
Taynni-417@ENTERBD-417 ~
$ md5sum --help
Usage: md5sum [OPTION] [FILE]...
or: md5sum [OPTION] --check [FILE]
Print or check MD5 (128-bit) checksums.
With no FILE, or when FILE is -, read standard input.
-b, --binary read files in binary mode (default on DOS/Windows)
-c, --check check MD5 sums against given list
-t, --text read files in text mode (default)
The following two options are useful only when verifying checksums:
--status don't output anything, status code shows success
-w, --warn warn about improperly formated checksum lines
--help display this help and exit
--version output version information and exit
The sums are computed as described in RFC 1321. When checking, the input
should be a former output of this program. The default mode is to print
a line with checksum, a character indicating type (`*' for binary, ` ' for
text), and name for each FILE.
Taynni-417@ENTERBD-417 ~
$

来写一个hello world程序。

# cd

进入了/home/administrator目录,我当前的登陆帐号是administrator

# mkdir source

建立一个叫做source的子目录

# cd source

进入 /home/administrator/source

# vim hello.c

我们编辑hello.c文件,输入:

#include
int main(void) {
printf( "Hello World!");
}

然后,输入wq命令退到命令行。
输入编译指令:

# gcc hello.c -o hello

编译成功后可以看一下

# ls

看到hello.exe了吧,嘿嘿。
好,让我们运行看看。

# ./hello

效果如何?不错吧? :)
okey,现在玩一个C++的hello world,

# vim world.cpp

输入:

#include
using namespace std;
void main() {
cout << "Hello World!";
}

编译C++程序要用g++

# g++ world.cpp -o world

运行一下哈,

# ./world

如何,效果不错吧?诸位都是高手,走到这步应该编些简单程序都不成问题了吧:p
好了,关于如何编写makefile文件,如何用gdb下次再说了。

Linux开发一路过来 cygwin->make->gcc

常用命令
       在Bash shell的命令行交互中可以输入很多命令运行。例如:
命令 说明   命令 说明

touch 新建文件   cmd 切换到windows控制台,可以运行windows程序
rm 删除文件 --help 参数,显示命令帮助
mkdir 新建目录 man 显示命令帮助
rmdir 删除目录 info 显示命令更详细帮助
ls 显示文件和目录 ps 显示进程
cd 改当前目录 cd / echo 输出变量值,echo $PATH
cp 复制文件 find 查找文件
mv 移动文件 diff 比较文件差异
查看命令帮助文档时,按 Ctrl+Z 或 Ctrl+C 退出命令

这些命令之所以可用,是因为对应的exe都放在 /bin目录下。如果追加扩展的exe放于此目录,也是可以运行的。
此外,bash也可以看作一个脚本语言,其比批处理更灵活,内部通过正则表达式可以最大发挥文本的功能;流程控制也具备了顺序编程语言的特点;熟悉其变量、方法和脚本文件的组织和使用,可以做很多日常的操作维护。

http://itlab.idcquan.com/linux/special/linuxcom/Index.html

04-14 11:10