从windows到*nix(二) 日常操作

在windows下,我们有这样一个使用流程:登录系统->浏览文件系统->找到程序执行/找到文档打开->退出系统。

 

登录

在*nix中,有两种登录方式,一种是直接在本地终端上登录,一种是通过ssh或者telnet远程访问。不管哪种方式,在输入用户名、密码并成功登录后,出现在面前的是一个提示符,一般来说是$符号或者#,提示符也可以自己定制,如下所示

 

 

这是*nix的shell给你显示出来的,shell相当于windows的外壳程序explorer.exe,在*nix上你在提示符后面键入命令与shell打交道,windows中你用鼠标,键盘通过GUI界面与windows的外壳程序交互。

 

*nix的shell有很多种,如csh,ksh,bash,最流行的就是bash,我相信没有怪癖的用户都会使用bash。shell的选择可以在添加用户的时候指定,也可以输入命令切换。键入下面命令可以看出你的shell究竟是不是bash。

 

如果显示的是其他的shell,你可以手工输入bash命令切换过去

 

不过上面的提示bash: not found表示失败了,如果成功,应该是直接给你一个新的提示符,这个失败的原因是系统中没有安装bash,这也从一个侧面说明bash的地位,如果你工作的shell不是bash,那么八成是你系统中没有安装。

 

如果不是bash也没什么,各种shell在基本操作上大同小异,bash只不过让你更舒服一些。

 

浏览

先看看如何浏览你的文件系统,有下述一些命令可以使用

pwd 看看你现在在哪

ls 列出当前目录的文件

cd 进入某目录,cd .. 进入上级目录 cd ~ 进入用户主目录

df 列出当前文件系统分区

示例如下:

 

 

初次使用,你可能会觉得这种方式浏览起来远不如windows方便。但是如果你善用shell的tab自动补全的话,你就会发现优势。

举个例子来说,我正在写博客,突然我想到D:/CODE/sgfc-1.16下面去看看,那么在windows中,我需要先点开始菜单,然后点我的电脑,当运行的程序有点多时,这里要等待好一会儿(不要以为你的电脑快,用久了都会变成我这样的),然后双击D盘,文件有点多,找CODE花了不少时间,随后双击进去,找sgfc-1.16又花了不少时间,再双击进去。

那么在*nix下,假定我要去/home/oyd/CODE/sgfc-1.16,那么我只需要键入cd ~/C<tab>/sg<tab><enter>就可以了(<tab>表示制表键,<enter>表示回车键),这个过程非常的快捷。

 

windows的浏览方式特别适合陌生的东西,例如你去浏览别人的系统。*nix的浏览方式适合你已经很熟的东西,例如你自己电脑上的目录结构。

 

查看/执行

和windows的文档为中心不同,*nix的操作上依旧是程序为中心。也就是说你必须先知道能打开这个文档的程序是什么,你才能打开这个文档。

你会觉得*nix这种操作相当落后,但至少,你对你在做什么很清楚,不是吗?

在windows下,鬼知道你双击一个txt的时候,背地里是哪个木马在接管。何况,文档为中心的操作方式根本就不是一种能贯彻的理念,例如在文件进化到数据库之后,没见过谁是双击哪一条数据关联什么操作的。

 

*nix的一个基础信念,会使你在处理文档时比在windows下更轻松。*nix信奉一切都是文本。

例如你要在windows下查看账户信息,你需要专用的工具,但是*nix下,它只是一个文本文件(/etc/passwd),你可以用任意你习惯的方式去查看(例如cat)。

 

也就是说,windows下,你看到什么就双击,而*nix下,你看到什么就cat。举个例子,查看CPU的信息:

 

 

cat命令查看整个文件

more和less以一种一次一屏的方式查看整个文件

head查看文件的开头n行

tail查看文件的结尾n行

more或less你可以不管,但请记住head和tail,它们非常有用,对于程序员来说,在*nix下的日常操作也像在编程。

tail还有一个超级常用的用法,tail -f,它用来监视日志文件非常有用,如果你在windows下用ultraedit看日志文件的话,你会切换一下,再回来看看日志是否改变,虽然麻烦,但已经比用记事本好多了。要不就是有专用工具来查看日志,那些专用工具提供了一个ListView控件以一行一行列出日志(说来惭愧,小时候我也做过类似的工具)。

但是tail -f,简单的就好像它不存在一样,但是你一旦用过,不会再寻求其他了。

 

也有非文本文件,对于这类文件,有一个命令file,可以先探明它是什么类型的:

 

 

 

*nix命令,除了shell内置的以外,都是一个个*nix可执行文件,它们放在不同的目录下,有一个PATH环境变量向shell指出应该在哪个目录找到它们。

一般默认设置中的PATH都不包含当前目录,当前目录用点(.)表示,所以你执行当前目录的程序时,要在前面加./。例如./configure,这说明执行的是当前目录下的configure程序。

要执行一个程序,必须要有程序文件的执行权限。可执行的文件不一定是二进制,也可以是脚本。用ls -l来查看文件权限。

如上-rwxr-xr-x中的x表示可执行。因此这两个文件都是可执行文件。

但是configure是一个文本脚本,可由shell执行,ttt则是一个*nix下的32位可执行程序,如你所见,它还是动态链接的。

 

如果你确认一个文件是可执行的,例如ttt,那么你可以用下面几种方式来执行:

 

*nix程序有一些通用的对命令行参数的约定,有两种风格,长选项和短选项。一般来说,-h 或者 --help能够查看关于这个程序用法的简短帮助。

如果输入错误,Ctrl+C可以中断当前一行的输入,shell会输出新的提示符

 

退出*nix系统可以用exit命令。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值