在Linux下查看、修改Windows分区的卷标

修改Linux分区的卷标可以用 e2label,比如要把/dev/sda1 的卷标改为/boot,则可这样

$ e2label /dev/sda1 /boot
查看Linux分区文件系统卷标
$ e2label /dev/sda1
/boot

在Linux中如何修改Windows分区的卷标呢?我们要用到两个工具:
对于 VFAT 文件系统,可以使用来自 dosfstools 软件包的 >dosfslabel;对于 NTFS 文件系统,可以使用来自 ntfsprogs 软件包的 ntfslabel

dosfslabel (若没有安装,Fedora用户可以直接yum install -y dosfstools)
用于VFAT分区,命令用法:
dosfslabel device [label]

如修改vfat分区(fat16,fat32均可)卷标

$ dosfslabel /dev/sda5 /windows

查看vfat分区卷标

$ dosfslabel /dev/sda5

ntfsprogs (若没有安装,Fedora用户可以直接yum install -y ntfsprogs)

用于NTFS分区,命令用法:
ntfslabel device [label]
如修改ntfs分区卷标

$ ntfslabel /dev/sda6 /xp

查看ntfs分区卷标

$ ntfslabel /dev/sda6
/xp

发表在 linux/unix, shell | 标签为 | 2 条评论

UNIX 高手的 10 个习惯

采用 10 个能够提高您的 UNIX® 命令行效率的好习惯——并在此过程中摆脱不良的使用模式。本文循序渐进地指导您学习几项用于命令行操作的技术,这些技术非常好,但是通常被忽略。了解常见 错误和克服它们的方法,以便您能够确切了解为何值得采用这些 UNIX 习惯。

当 您经常使用某个系统时,往往会陷入某种固定的使用模式。有时,您没有养成以尽可能最好的方式做事的习惯。有时,您的不良习惯甚至会导致出现混乱。纠正此类 缺点的最佳方法之一,就是有意识地采用抵制这些坏习惯的好习惯。本文提出了 10 个值得采用的 UNIX 命令行习惯——帮助您克服许多常见使用怪癖,并在该过程中提高命令行工作效率的好习惯。下面列出了这 10 个好习惯,之后对进行了更详细的描述。

继续阅读

发表在 linux/unix, shell | 标签为 | 3 条评论

GNU 与自由软件基金会创始人 Richard Stallman 访谈录

Richard Stallman 是著名的 GNU 项目,自由软件基金会创始人,这是vnunet.com 对 Richard Stallman 做的一次访谈,谈到了他对自由软件,商业软件以及开源软件看法,另谈到了社会网络站点以及隐私问题。原文作者 Rosalie Marshall。

作为自由软件基金会的创始人,你如何定义自由软件?

继续阅读

发表在 linux/unix | 标签为 | 留下评论

使用 Shell 进行进制转换

假定在您的脚本中有一些数字,您需要以另外的进制处理这些数字。使用 Shell 运算可以很容易地自动实现这类转换。一种情况是使用 Shell 运算把一个数字从给定的进制转换位十进制。如果数字以运算展开式的形式提供,那么假定它带有十进制符号,除非 它前面带有 0(这种情况假定是八进制)或 0x(这种情况假定是十六进制)。键入以下内容以得到一些八进制和十六进制值的十进制输出:

$ echo $((013))
$ echo $((0xA4))

您还可以使用以下格式指定 2 到 64 之间的任意进制:

继续阅读

发表在 linux/unix, shell | 标签为 | 一条评论

awk内置字符串函数详解

awk提供了许多强大的字符串函数,见下表:
awk内置字符串函数

gsub(r,s) 在整个$0中用s替代r
gsub(r,s,t) 在整个t中用s替代r
index(s,t) 返回s中字符串t的第一位置
length(s) 返回s长度
match(s,r) 测试s是否包含匹配r的字符串
split(s,a,fs) 在fs上将s分成序列a
sprint(fmt,exp) 返回经fmt格式化后的exp
sub(r,s) 用$0中最左边最长的子串代替s
substr(s,p) 返回字符串s中从p开始的后缀部分
substr(s,p,n) 返回字符串s中从p开始长度为n的后缀部分

详细说明一下各个函数的使用方法。

继续阅读

发表在 awk, linux/unix, shell | 标签为 | 2 条评论

Linux禁止单用户模式(single)来增强系统安全

一、Linux忘记root密码,进入单用户模式修改密码

(一)、关于lilo

1. 在出现 lilo: 提示时键入 Linux single

画面显示 lilo: Linux single

2. 回车可直接进入Linux命令行

3. 用password命令修改密码

(二)、关于 grub

1. 在出现grub画面时,用上下键选中你平时启动Linux的那一项,然后按e键

2. 再次用上下键选中你平时启动Linux的那一项(类似于kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键

3. 修改你现在见到的命令行,后加上数字1或者single:

继续阅读

发表在 linux/unix | 标签为 | 留下评论

“懒惰”Linux:“懒惰”集群管理员的 11 个秘诀

集群 对于不同的人有不同的含义。在本文的上下文中,集群最好定义为横向扩展(scale-out)—— 横向扩展集群一般包含大量相同类型的组件,比如 Web 场、表示场和高性能计算 (HPC) 系统。管理员会告诉您,对于横向扩展集群,必须百千次地重复修改,无论修改是多么小;最懒惰的管理员精通横向扩展管理技术,因此无论节点的数量有多少,需 要的工作量都是相同的。在本文中,作者将泄露世界上最懒惰的 Linux® 管理员的秘诀。

自从世界上最快 的 500 台计算机清单于 1998 年首次发布以来,Linux 集群已经从科学实验项目发展成了当今超级计算领域的主流技术。实际上,在 1998 年的 Top 500 清单中 Linux 集群只占据一席(一个集群,一个 Linux 操作系统),但是在 2008 年的清单中占据了五分之四(400 个集群,458 个 Linux 操作系统)。

继续阅读

发表在 linux/unix, shell | 标签为 | 留下评论

无根的根:无名师的Unix心传

一、无名师与万行码
无名师曾对来访的程序员说:“Unix传统上认为,一行shell脚本胜过万行C程序。”
这个程序员自以为对C极其精通,说:“这不可能。UNIX内核正是用C实现的。”
无名师回道:“确是如此。不过,UNIX传统上认为,一行shell脚本胜过万行C程序。“
程序员颇为沮丧:”但是在C中我们可领会到尊者Ritchie的智慧。我们与操作系统和机器合而为一,可以获取无与伦比的性能。”
无名师回道:“诚如你言。不过,Unix传统上认为,一行shell脚本胜过万行C程序。”
程序员冷笑着想愤然离去。无名师向学生Nubi颔首示意,Nubi在黑板上写下一行shell脚本,问道:“尊敬的程序员,看看这行管道,用纯C实现,是不是要一万行C代码?”
程序员沉吟念诵。最终他承认如此。
“你需要多长时间来实现和调试那个C程序?”Nubi问道。
“很长”,来访的程序员承认。“但傻子才会干这个而不去完成更有价值的任务。”
“那么谁更了解Unix传统?”无名师问道。“是写一万行代码的,还是看到任务的无谓而不去编码的?”
听到此,程序员眼中一亮。

继续阅读

发表在 linux/unix, 未分类 | 标签为 | 一条评论

Linux 管理员的 10 个关键技巧

学会这 10 个技巧后,您将成为世界上最强大的 Linux® 系统管理员,整个世界是有点夸张,但要在一个大团队中工作,这些技巧是十分必要的。学习 SHH 通道、VNC、密码恢复、控制台侦察等等。各个技巧都附有例子,可以将这些例子复制到自己的系统中。

好的系统管理员区分在效率上。如果一位高效的系统管理员能在 10 分钟内完成一件他人需要 2 个小时才能完成的任务,那么他应该受到奖励(得到更多报酬),因为他为公司节约了时间,而时间就是金钱,不是吗?

技巧是为了提高管理效率。虽然本文不打算对所有 技巧进行讨论,但是我会介绍 “懒惰” 管理员所用的 10 个基本法宝。这些技巧可以节约时间 —— 即使没有因为高效而得到更多的报酬,但至少可以有更多的时间去玩。

继续阅读

发表在 linux/unix, shell | 标签为 | 一条评论

Linux进程调度程序的具体细节

性别之间的一个差别,据说,是处理多任务的能力。现在,就看你说话的人是持有这种看法的女人还是男人,但是,我还没有那么大胆参加这种争论。然而,我能够告诉你的是,Linux明确无疑地这么做。而且,事实上,许多系统也许没有充分利用多任务。理由在这里。

追溯从前,桌面计算机没有多任务。这些计算机每次运行一个专门的任务。这些日子过去了;现在,甚至连最小型的嵌入式操作系统一般也有某些方面的多任务处理能力。

对于操作系统开发者来说,实现多任务并不简单。但解释起来却足够简单——必须在所有不同任务之间分配CPU时间。然而,不仅如此,还有一大堆问题。一些进程比另一些进程更重要并且必须有定期运行。其他不太重要的可以闲着无事坐在背后。而且为了其他人,应该让程序决定何时放弃控制,返回操作系统,抑或应由OS决定给各任务在挂起前一个指定的运行时间?

继续阅读

发表在 linux/unix | 标签为 | 留下评论

黑客文化简史

hackers

本篇原作者为Eric S. Raymond esr@snark.thyrsus.com,他是一位大哥级的 Hacker,写了很多自由软件,知名著作有Jargon File等,近年来发表“大教堂与集市”论文为Opensource software努力,Netscape 愿意公开Navigator的原始码,与这篇文章有很大的关系。

Hacker文化简史

序曲: Real Programmer
故事一开始,我要介绍的是所谓的Real Programmer。
他们从不自称是Real Programmer、Hacker或任何特殊的称号;`Real Programmer' 这个名词是在1980年代才出现,但早自1945年起,电脑科学便不断地吸引世界上头脑最顶尖、想像力最丰富的人投入其中。从Eckert &Mauchly发明ENIAC後,便不断有狂热的programmer投入其中,他们以撰写软件与玩弄各种程式设计技巧为乐,逐渐形成具有自我意识的一套科技文化。当时这批Real Programmers主要来自工程界与物理界,他们戴著厚厚的眼镜, 穿聚酯纤维T恤与纯白袜子,用机器语言、汇编语言、FORTRAN及很多古老的 语言写程式。他们是Hacker时代的先驱者,默默贡献,却鲜为人知。

继续阅读

发表在 linux/unix | 标签为 | 留下评论

不安装rpm包提取rpm软件包中的文件

有时我们需要取出rpm包中的文件,但是不想安装。Linux提供的丰富工具让我们可以轻易解决这个问题,方法是用rpm2cpio将rpm文件转换成cpio格式,然后再从cpio中提取文件,下面是详细命令:

rpm2cpio foo.rpm | cpio -idmv

rpm2cpio可以将rpm包转换成cpio格式
cpio命令中的-i是提取文件,-d表示根据rpm包中文件原来的路径建立目, -m是保持文件的更新时间, -v是显示处理的文件列表。

这样就会把foo.rpm文件中的所有文件放在当前目录中。

发表在 linux/unix, shell | 标签为 | 一条评论

Linux man手册的章节分类

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。
Linux的man手册共有以下几个章节:

1、Standard commands (标准命令)
2、System calls (系统调用)
3、Library functions (库函数)
4、Special devices (设备说明)
5、File formats (文件格式)
6、Games and toys (游戏和娱乐)
7、Miscellaneous (杂项)
8、Administrative Commands (管理员命令)

例如:我们输入 man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输入“man ifconfig”它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。

man是按照手册的章节号的顺序进行搜索的,比如:

man sleep

只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:

man 3 sleep

发表在 linux/unix | 标签为 | 留下评论

Linux设置shell提示符的方法

Linux系统终端提示符的特征由系统环境变量PS1定义。通过命令echo $PS1查看当前设置。

PS1的值由一系列静态文本或\和转义字符序列组成,如:
PS1="\u@\H \w$ "

比较有用的转义序列有:
\a ASCII 响铃字符(也可以键入 \007)
\d "Wed Sep 06" 格式的日期
\e ASCII转义字符
\h 主机名
\H 完整的主机名
\j 在此 shell 中通过按 ^Z 挂起的进程数
\l 此 shell 的终端设备名(如 "ttyp1")
\n 换行符
\r 回车符
\s shell 的名称(如 "bash")
\t 24小时制时间
\T 12小时制时间
\@ 带有 am/pm 的 12 小时制时间
\v bash 的版本(如 2.04)
\V Bash 版本(包括补丁级别)
\u 用户名
\w 当前工作目录(绝对路径)
\w 当前工作目录(basename)
\! 当前命令在历史缓冲区的位置
\$ 如果当前用户是super user,则插入字符#;否则插入字符$
\\ 反斜杠
\[ 出现在不移动光标的字符序列之前
\] 出现在非打印字符之后
\xxx 插入一个用三位数 xxx(用零代替未使用的数字,如 "\007")表示的 ASCII 字符

我们可以通过设置PS1变量使提示符成为彩色。在PS1中设置字符序列颜色的格式为:
\[\e[F;Bm\]
其中``F''为字体颜色,编号30~37;``B''为背景色,编号40~47。
可通过``\e[0m''关闭颜色输出;特别的,当B为1时,将显示加亮加粗的文字,详细请看下面的颜色表与代码表。

颜色表

前景 背景 颜色
---------------------------------------
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色

代码 意义
-------------------------
0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见

如果想要设置终端提示符的样式只要把$PS1在~/.bahrc指定即可比,比如我的设置如下:

PS1="\[\e[32m\][\u@\h \w]$\[\e[m\]"
export PS1
效果:
[LinuxSong@test ~]$

根据你的爱好,设置自己喜欢的样式吧:)

发表在 linux/unix, shell | 标签为 | 留下评论

如何用正确的方法来写出质量好的软件的75条体会

1. 你们的项目组使用源代码管理工具了么?
应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。

2. 你们的项目组使用缺陷管理系统了么?
应该用。ClearQuest太复杂,我的推荐是BugZilla。

3. 你们的测试组还在用Word写测试用例么?
不要用Word写测试用例(Test Case)。应该用一个专门的系统,可以是Test Manager,也可以是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。

4. 你们的项目组有没有建立一个门户网站?
要 有一个门户网站,用来放Contact Info、Baselined Schedule、News等等。推荐Sharepoint PortalServer 2003来实现,15分钟就搞定。买不起SPS 2003可以用WSS (Windows Sharepoint Service)。

5. 你们的项目组用了你能买到最好的工具么?
应该用尽量好的工具来工作。比如,应该用VS.NET而不是Notepad来写C#。用Notepad写程序多半只是一种炫耀。但也要考虑到经费,所以说是“你能买到最好的”。

6. 你们的程序员工作在安静的环境里么?
需要安静环境。这点极端重要,而且要保证每个人的空间大于一定面积。

7. 你们的员工每个人都有一部电话么?
需要每人一部电话。而且电话最好是带留言功能的。当然,上这么一套带留言电话系统开销不小。不过至少每人一部电话要有,千万别搞得经常有人站起来喊:“某某某电话”。《人件》里面就强烈谴责这种做法。

8. 你们每个人都知道出了问题应该找谁么?
应该知道。任何一个Feature至少都应该有一个Owner,当然,Owner可以继续Dispatch给其他人。

9. 你遇到过有人说“我以为…”么?
要消灭“我以为”。Never assume anything。

10. 你们的项目组中所有的人都坐在一起么?
需要。我反对Virtual Team,也反对Dev在美国、Test在中国这种开发方式。能坐在一起就最好坐在一起,好处多得不得了。
继续阅读

发表在 programming | 标签为 | 留下评论