cygwin使用:
使用上的方便性很是不错,启动Cygwin以后,会在Windows下得到一个Bash Shell,由于Cygwin是以Windows下的服务运行的,所以很多情况下和在Linux下有很大的不同
开始使用Cygwin:
比如PS,相当于Windows下的TM(任务管理器),直接Ps的话 那么得到的会是Cygwin下的Shell的进程如下
Taynni-417@ENTERBD-417 ~$ psPID PPID PGID WINPID TTY UID STIME COMMAND2212 1 2212 2212 con 1003 01:54:29 /usr/bin/bas3384 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 ~$ dfFilesystem 1k-blocks Used Available Use% Mounted one:\cygwin\bin 10231384 4844432 5386952 48% /usr/bine:\cygwin\lib 10231384 4844432 5386952 48% /usr/libe:\cygwin 10231384 4844432 5386952 48% /c: 5106676 1240312 3866364 25% /cygdrive/cd: 10239408 6560328 3679080 65% /cygdrive/de: 10231384 4844432 5386952 48% /cygdrive/ef: 6333252 4065564 2267688 65% /cygdrive/fg: 7150972 4672724 2478248 66% /cygdrive/g
如上便是我的硬盘的全部了,在后面的/cygdrive/c便是C盘了,然后/cygdrive/d便是D盘了,这样的话,想进D盘便可以这样进
Quote Taynni-417@ENTERBD-417 ~$ cd /cygdrive/dTaynni-417@ENTERBD-417 /cygdrive/d$ ls -lls: pagefile.sys: Permission deniedtotal 0drwxr-xr-x 9 Taynni-4 None 0 Aug 31 20:56 Bookdrwxr-xr-x 2 Taynni-4 None 0 Aug 23 05:24 Ftprootdrwxr-xr-x 30 Taynni-4 None 0 May 10 23:38 HACKERdrwxr-xr-x 11 Taynni-4 None 0 Feb 1 2005 JIAOXUEdrwxr-xr-x 8 Taynni-4 None 0 Jan 3 2005 Local Settingsdr-xr-xr-x 24 Taynni-4 None 0 Oct 16 2004 My Documentsdrwxr-xr-x 12 Taynni-4 None 0 May 14 16:48 Mywwwdrwxr-xr-x 2 Taynni-4 None 0 Jun 29 2004 Recycleddrwxr-xr-x 3 Taynni-4 None 0 Aug 22 04:44 SECBOOKdrwxr-xr-x 6 Taynni-4 None 0 Feb 28 2005 TaynniCHXdrwxr-xr-x 15 Taynni-4 None 0 Mar 30 01:04 TaynniGZdrwxr-xr-x 12 Taynni-4 None 0 May 11 01:30 TaynniHdrwxr-xr-x 15 Taynni-4 None 0 Mar 12 04:27 TaynniYMdrwxr-xr-x 6 Taynni-4 None 0 Dec 13 2004 Taynniwwwdrwxr-xr-x 8 Taynni-4 None 0 Aug 31 20:55 WordTaynni-417@ENTERBD-417 /cygdrive/d$
在Cygwin下还可以运行Windows下的程序,如下:
Taynni-417@ENTERBD-417 ~$ cmd.exeMicrosoft Windows XP [Version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.e:\cygwin\home\Taynni-417>d:D:\>cd hackerD:\HACKER>cd toolsD:\HACKER\Tools>cd pstoolsD:\HACKER\Tools\Pstools>lspdh.dll pskill.exe pspasswd.exePsinfo.exe psexec.exe pslist.exe psservice.exePstools.chm psfile.exe psloggedon.exe psshutdown.exeREADME.TXT psgetsid.exe psloglist.exe pssuspend.exeD:\HACKER\Tools\Pstools>exitTaynni-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 --helpUsage: 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 exitThe sums are computed as described in RFC 1321. When checking, the inputshould be a former output of this program. The default mode is to printa line with checksum, a character indicating type (`*' for binary, ` ' fortext), 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文件,输入:
#includeint main(void) {printf( "Hello World!");}
然后,输入wq命令退到命令行。
输入编译指令:# gcc hello.c -o hello
编译成功后可以看一下
# ls
看到hello.exe了吧,嘿嘿。
好,让我们运行看看。# ./hello
效果如何?不错吧? :)
okey,现在玩一个C++的hello world,# vim world.cpp
输入:
#includeusing 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 $PATHcp 复制文件 find 查找文件mv 移动文件 diff 比较文件差异查看命令帮助文档时,按 Ctrl+Z 或 Ctrl+C 退出命令
这些命令之所以可用,是因为对应的exe都放在 /bin目录下。如果追加扩展的exe放于此目录,也是可以运行的。
此外,bash也可以看作一个脚本语言,其比批处理更灵活,内部通过正则表达式可以最大发挥文本的功能;流程控制也具备了顺序编程语言的特点;熟悉其变量、方法和脚本文件的组织和使用,可以做很多日常的操作维护。