Feed on
Posts
Comments

Category Archive for 'Linux相关'

Linux文件权限

在终端输入:ls -l filename 会出现文件属性,主要是如下这些: -rw-rw-r-x 一共10位,标识着文件的权限和所有者,下面对这10位进行详细介绍。
1. Linux文件类型
最前面的’-’这一位代表文件类型,不同的文件类型使用的字符不一样。Linux文件类型不是由文件扩展名来区分的,常见文件类型有:普通文件、目录、字符设备文件、块设备文件、套接口文件、符号链接文件等。

Linux文件类型
文件属性的第一个字符

普通文件
-

目录
d

字符设备文件
c

块设备文件
b

套接口文件
s

符号链接文件
l

2. 文件权限

Read Full Post »

管道和重定向的理解

入门Linux确实比上手Windows要不容易。这段时间已经深刻体会。今天Linux程序设计里的一句话有误导了半天,幸好什么有位高手——小胖哈哈!
这里只是简单的介绍下管道和重定向,因为在接下来的shell编程中会深入了解,到时候在详细总结。
管道连接着一个命令的标准输出和另外一个命令的标准输入。在linux下管道连接的进程可以同时运行,并且随着数据流在它们之间的传递可以自动地进行协调。形象的讲:管道就相当于自来水管,而进程或者(程序)相当于水龙头,管道里的水相当于数据,水可以在不同的水龙头间依次流动。
例如:..#ps -aux | sort
其中的ps可以看作是“水龙头1”,‘|’看作是“水管”, sort看作是“水龙头2”,ps -aux运行的结果看作是“水”
重定向对标准输入输出进行重定向。将“水”从一处运往另外一处。
例如:ls -a > lsoutput.txt
将程序ls的标准输出流重定向到文本文件中。也就是说,‘>’的左端必须有输出流。例子中ls -a输出的结果本来是显示在屏幕上的,但是经过重定向将其输出到了文件中。
书中的一个例子:
cat lsoutput.txt | sort | uniq | > output.txt
这样最终得到的output.txt是一个空文件。 为什么?因为最后一个‘|’后面没有跟“水龙头”,怎么可能把“水”从“管子”里放出来,运到另外一个地方呢?
解决方法至少有两种:
cat lsoutput.txt | sort | uniq | tee> output.txt
或者
cat lsoutput.txt | sort | uniq > output.txt
通过形象的比喻,以上两种方式都能很少的理解!!

Read Full Post »

linux设置备忘

1. ADSL拨号上网:
上http://www.roaringpenguin.com/products/pppoe下载rp-pppoe客户端软件,它是使用GNU License的,所以我们可以放心的使用。
(1) 下载源码,解压,到rp-pppoe-3.8子文件夹,打开终端,运行脚本 :
..#./go
将自动进行编译和安装,最后,自动调用 pppoe-setup 进行配置,具体解释见下面。
(2) 配置PPPOE客户端软件
安装完软件包后,必须配置pppoe的配置文件/etc/ppp/pppoe.conf,从而让ADSL拨号时使用配置文件中的用户名、密码等参数。我们不必手工改动这个文件,可以使用pppoe-setup这个命令进行配置:
..#pppoe-setup
当出现
>>> Enter your PPPoE user name : (如 HFK01010101)
输入ADSL帐号的用户名
当出现
>>> Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where ‘n’ is a number.
(default eth0):
输入 eth0 ,这是ADSL相连的网卡的名字。
当出现
>>> Enter the demand value (default no):
输入 no
当出现
>>> Enter [...]

Read Full Post »

ubuntu7.10教育网更新源

刚解决好grub的问题,又不是什么原因,我们ubuntu6.10崩溃了,不能启动!将错误提示信息在google中搜索,结果有的人说是什么硬件问题,完全P话,我一直用得好好的,怎么可能突然出现硬件和软件的冲突呢。回想一下,好像我之前确实删除过什么文件,但是那是apt自动完成的,所以我也不知道到底删除了哪些,更新了哪些。
问了下小胖,他也不知道什么原因!实在找不到解决办法,于是还是决定重新安装。反正ubuntu已经出了7.10版本。天意,让我体验下最新的版本。本来想下载700M的文件,今天是搞不定了,不关机一直下载吧。找到官方的全部下载页面,发现有台湾某大学的下载mirror,尝试了下,我的个神呀,速度达到了8M/s。实验室教育网就是快,爽!!!
于是乎下载只花费了我几分钟。7.10支持硬盘安装,在xp下,将ubuntu-7.10-desktop-i386.iso文件下载到C盘,然后将其中casper目录,.disk目录,wubi-cdboot.exe文件完整解压到C盘根目录下,然后运行wubi-cdboot.exe,重启,就会出现一个ubuntu-linux选项,选择这个选项,继续安装!!
ubuntu的优势就在于它能够在网上方便的更新所有软件包。所以每次重新安装系统,都可能会有大量的包要更新,如果你选择的更新源速度不行,那我建议你睡一觉再说!
首先根据你的网络选择速度最快的更新源,google一下一大把!我这里是教育网,所以在网上找了一些教育网的更新源,果然速度惊人!
..$sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
..$sudo gedit /etc/apt/sources.list
删除文件里的所有,然后copy你在网上找到的更新源到文件中,保存!
..$sudo apt-get update
这样就可以用了!

Read Full Post »

恢复ubuntu的grub

很久很久以前,安装了ubuntu,使用了一段时间,收获颇多。但是由于项目需要不得不重新安装xp,结果野蛮的xp将我的MBR给清掉了。当然无辜的ubuntu也就不再我的视线以内了。一直以来也没有什么时间恢复我的Grub,所以ubuntu被我冷落了好长一段时间。
今天心血来潮,想到我的ubuntu,于是想重新捡起它来。
备忘恢复Grub过程:
1.插入ubuntu live CD盘,最好和你安装的ubuntu版本对应!
2.启动ubuntu,进入终端,依次输入如下命令:
..$sudo su
..#grub
..#find /boot/grub/stage1 显示类似于(hd0,5)这样的东东
..#root (hd0,5)
..#setup (hd0)
终端应该会显示成功安装!
重启,就有Grub向导,选择xp或者ubuntu了。

Read Full Post »

set函数:
为了将符号flowers的值设置为列表(rose violet daisy buttercup),我们在emacs中使用如下列表:
(set ‘flowers ‘(rose violet daisy buttercup));例一
光标置于表达式之后,键入C-x C-e或者C-x-e,列表(rose violet daisy buttercup)将会出现在回显区。这是set函数的返回值,每个Lisp函数如果不产生错误消息,它将必须有一个返回值作为附带效果,而函数的附带效果有且仅有一个附带效果。
我们已经为符号flowers赋值,那么我们可以对它进行求值:
flowers
光标置于它之后,键入C-x C-e或者C-x-e,回显区将显示列表(rose violet daisy buttercup)。我们也可以将flowers的值以字符串形式输出,这里使用到函数message:
(message “%s” flowers);有点类似C语言里的printf
同样键入C-x C-e或者C-x-e,回显区将以字符串“(rose violet daisy buttercup)”的形式显示flowers的值。
这里还要说明注意一下,为什么set函数的两个参量之前都用了一个单引号?Lisp解释器是由内层列表往外层列表进行解释的,所以执行函数时,首先要对参量进行解释或者求值。而单引号位于列表或者变量之前,是为了告诉Lisp解释器不要对这个列表和变量进行求值操作。试想,如果例一中没有在两个参量前面添加一个单引号,那么在执行set函数之前首先要对flowers进行求值,而flowers此时是没有值的,自然要报错,而且如果列表(rose violet daisy buttercup)前面没有单引号,Lisp解释器会将列表中的第一个符号rose理解成要执行的命令即函数,但是没有帮定在符号rose上的函数,所以执行也要报错。但是如果有的参量值确实是可以求得的,那么还是可以不加单引号的:
(set ‘flowers (+ 2 2));flowers的值将被赋予4
setq函数:
这个函数其实是set函数的一个扩充,因为在大多数情况下我们总是会在set函数的第一个参量前加单引号。既然set函数和其第一个带单引号的参量的组合如此常见,所以就产生了一个特殊的函数:setq(set+quote)。这个函数和set函数的功能类似,不同的是setq函数在执行的时候自动的在其第一个参量前带上单引号,而不必自己键入单引号。
所以下面两个列表执行结果是一致的:
(set ‘flowers ‘(rose violet daisy buttercup))
(setq flowers ‘(rose violet daisy buttercup))
当然,setq还被赋予了一个新的功能,给几个不同的变量赋予不同的值,如:
(setq flowers ‘(rose violet daisy buttercup) trees ‘(pine fir oak maple))
上述列表是将第一个参量指向第二个参量列表(赋值),第三个参量指向第四个参量列表(赋值)。
利用setq,我们可以实现一个简单的计数器:
(setq counter 0);初始化counter的值为0
(setq counter (+ counter [...]

Read Full Post »

刚装上ubuntu当然要学习下软件安装方法。Linux下任何文件都具有可执行的属性,即使是我们熟悉的文本文件,所以它的软件安装不像Windows下双击exe可执行文件那么简单。安装都是使用package来进行的。作为新手,开始真的被终端下的rpm/apt/dpkg弄糊涂了,只是知道他们都可以用来安装软件,但是不知道他们到底有什么区别。
终端下输入如下命令:
man rpm
man dpkg
man apt
将manual page的查询结果对比一下,区别还是很明显。rpm,dpkg都是 package manager,都是操作软件包文件的主要工具,管理着从网上下载下来的软件的安装,卸载以及更新等操作,它们的区别只是前者是RedHat支持的包管理器,处理的扩展名是.rpm,而后者是debian支持的包管理器,处理的扩展名是.deb。所以在不同的Linux系统中,我们可以使用rpm或是dpkg不同的命令参数来安装软件,但它们不会考虑软件包的相依性问题。Ubuntu是基于Debian的,所以它是利用dpkg来管理软件包的。虽然我们不推荐在ubuntu下安装rpm包,但我们还是可以安装扩展名为.rpm的包的。方法如下:
1.装个将rpm包转换为deb包的小工具alien
apt-get install alien
2.进入rpm所在的目录,输入命令
alien *.rpm
这样就生成Ubuntu支持的*.deb
3.最后使用dpkg进行安装
sudo dpkg -i *.deb
而apt是 management system for software packages,我觉得它和Ubuntu里的新立德软件包管理器类似,它是自动下载软件源里的软件,然后调用dpkg来进行安装以及其他操作。不同的是APT是利用终端命令工作的:
sudo apt-get install package
当然我们还可以进行其他的命令进行维护。它的好处以及其他应用具体见APT介绍和使用。

Read Full Post »

APT介绍和使用

APT(Advanced Package Tool)是 Debian GNU/Linux 用来管理套件的工具,Conectiva 这家巴西的 Linux 套件公司将它移植到使用 RPM 系统的 Linux 套件上,們可以用 APT 来管理我們的 RPM ,不管是安装、移除、或是升級,APT 都做的到,可是我们选用 APT 最大的理由是:它能够自动处理 RPM 相依性的问题,例如:当我们要安装 A rpm,而 A rpm 和 B rpm 又有相依关系的时候,传统作法是先下载 B rpm 安装之后,再下载 A rpm 安装之;可是我们若有安装APT,则只要下一行「apt-get install A」指令就可以了,这样 APT 就会帮我们下载 A rpm,且会自动下载相依性档案(B rpm)帮我们安装,如此一來我们对于 RPM 的安装、移除、或是升級都可以不用去管相依性问题了。
上述的RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。这里顺便说说Linux软件扩展名。软件后缀为.rpm 最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用;后缀为.deb是Debain Linux提供的一种包封装格式;后缀为.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系统打包工具tar打包的;后缀为.bin 的一般是一些商业软件。通过扩展名可以了解软件格式,进而了解软件安装。
Apt 使用参考
命令 [...]

Read Full Post »

Older Posts »