cygwin使用:
使用上的方便性很是不错,启动Cygwin以后,会在Windows下得到一个Bash Shell,由于Cygwin是以Windows下的服务运行的,所以很多情况下和在Linux下有很大的不同
开始使用Cygwin:
比如PS,相当于Windows下的TM(任务管理器),直接Ps的话 那么得到的会是Cygwin下的Shell的进程如下
[email protected] ~ $ 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[email protected] ~ $ 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[email protected] ~ $ cd /cygdrive/d Taynni[email protected] /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[email protected] /cygdrive/d $
在Cygwin下还可以运行Windows下的程序,如下:
[email protected] ~ $ 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[email protected] ~ $
很明显的,直接输入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[email protected] ~ $ 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[email protected] ~ $
来写一个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