0%

Linux的 sort 命令

Linux sort 命令用于将文本内容进行排序。

官方定义为:

sort - sort lines of text files

语法

1
2
$ sort [OPTION]... [FILE]...
$ sort [OPTION]... --files0-from=F

常用的参数为

  • -c 检查文件是否已经按照顺序排序。
  • -u 意味着是唯一的(unique),输出的结果是去完重了的。
  • -r 以相反的顺序来排序。
  • -k field1[,field2] 按指定的列进行排序。

这里假定测试文件名为testfile

1
2
3
4
5
6
7
LiSi            80

ZhangSan 70

WangWu 90

MaLiu 88

默认无参数

在使用 sort 命令以默认的式对文件的行进行排序,命令如下:

1
2
3
4
5
6
7
8
$ sort testfile 



LiSi 80
MaLiu 88
WangWu 90
ZhangSan 70

sort 命令默认情况下将第一列以 ASCII 码的次序排列,并将结果输出到标准输出。

根据第N列排序

对于测试文件而言,或许我们更希望使用数字来统计排序,此时可以使用-k N参数,其中N为列数

1
2
3
4
5
6
7
8
$  sort testfile -k 2



ZhangSan 70
LiSi 80
MaLiu 88
WangWu 90

检查是否已经排序

在某些情况下,或许只想看看文件是否已经排序,使用-c参数 :

1
2
$  sort -c testfile
sort: testfile:2: disorder

如果没有排序会有输出,而排序的话就没有输出。

逆序排列

如果希望看一下数字从高到低的培训,使用-r参数:

1
2
3
4
5
6
7
8
$  sort testfile -k 2  -r
WangWu 90
MaLiu 88
LiSi 80
ZhangSan 70



  • -b 忽略每行前面开始出的空格字符。

  • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。

  • -f 排序时,将小写字母视为大写字母。

    -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。

  • -m 将几个排序好的文件进行合并。

  • -M 将前面3个字母依照月份的缩写进行排序。

  • -n 依照数值的大小排序。

  • -o<输出文件> 将排序后的结果存入指定的文件。

  • -t<分隔字符> 指定排序时所用的栏位分隔字符。

  • +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

你是唯一的 uniq

.. note::
安得有车马,尚无渔与樵。
宋·王安石《游章义寺》

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

官方定义为:

uniq - report or omit repeated lines

uniq 可检查文本文件中重复出现的行列。

语法

语法比较简单,直接用就可以。

1
$ uniq [OPTION]... [INPUT [OUTPUT]]

常用的参数为:

  • -c--count 在每列旁边显示该行重复出现的次数。

  • -d--repeated 仅显示重复出现的行列。

  • -u--unique 仅显示出一次的行列。

假定有1个文件为testfile,内容如下:

1
2
3
4
5
6
7
8
9
10
11
testfile
Hello 1
Hello 2
Hello 2
Hello 3
Hello 3
Hello 3
Hello 4
Hello 4
Hello 4
Hello 4

默认无参数

使用uniq 命令可以删除重复的行,不管有多少重复的行,仅仅显示一行。

1
2
3
4
5
$  uniq testfile
Hello 1
Hello 2
Hello 3
Hello 4

统计出现频次

如果希望统计每一行出现的频次,可以使用-c参数,其中第一行输出为出现的次数

1
2
3
4
5
$  uniq -c testfile
1 Hello 1
2 Hello 2
3 Hello 3
4 Hello 4

仅仅显示重复的行

在某些情况下,或许只想看到有重复的列,使用-d参数 :

1
2
3
4
$  uniq -d testfile
Hello 2
Hello 3
Hello 4

仅仅显示不重复的行

而某些情况下,或许只想看到不重复的列,使用-u参数:

1
2
$  uniq -u testfile
Hello 1

Linux的 uniq 命令

Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

官方定义为:

uniq - report or omit repeated lines

uniq 可检查文本文件中重复出现的行列。

语法

语法比较简单,直接用就可以。

1
$ uniq [OPTION]... [INPUT [OUTPUT]]

常用的参数为:

  • -c--count 在每列旁边显示该行重复出现的次数。

  • -d--repeated 仅显示重复出现的行列。

  • -u--unique 仅显示出一次的行列。

假定有1个文件为testfile,内容如下:

1
2
3
4
5
6
7
8
9
10
11
testfile
Hello 1
Hello 2
Hello 2
Hello 3
Hello 3
Hello 3
Hello 4
Hello 4
Hello 4
Hello 4

1⃣ 默认无参数

使用uniq 命令可以删除重复的行,不管有多少重复的行,仅仅显示一行。

1
2
3
4
5
$  uniq testfile
Hello 1
Hello 2
Hello 3
Hello 4

2⃣ 统计出现频次

如果希望统计每一行出现的频次,可以使用-c参数,其中第一行输出为出现的次数

1
2
3
4
5
$  uniq -c testfile
1 Hello 1
2 Hello 2
3 Hello 3
4 Hello 4

3⃣ 仅仅显示重复的行

在某些情况下,或许只想看到有重复的列,使用-d参数 :

1
2
3
4
$  uniq -d testfile
Hello 2
Hello 3
Hello 4

4⃣ 仅仅显示不重复的行

而某些情况下,或许只想看到不重复的列,使用-u参数:

1
2
$  uniq -u testfile
Hello 1

Linux which命令

Linux which命令用于查找一个命令,不像findfind是用来查找文件的。

官方定义为:

which - locate a command

改名了会在当前环境变量中查找符合条件的命令。

语法

1
$ which [-a] filename ...

这个命令基本没有参数,只有一个:

  • -a print all matching pathnames of each argument

如果找到相关的指令并可执行,将返回0.

默认无参数

查找命令并显示具体路径:

1
2
$ which bash
/usr/bin/bash

可能会输出不同,取决于环境变量。

显示所有命令

一个命令,可能会有多个版本,或者同一个版本的多个位置,可以使用-a参数来检索。

1
2
3
$ which -a bash
/usr/bin/bash
/bin/bash

一个小小无聊的尝试

Ubuntu操作系统中,看看下面的命令:

1
2
$ which which
which: shell built-in command

显示为内建指令

扩展

如果确认程序或者命令已经安装,但是就是找不到这个命令,如下:

1
2
$ which command
command not found

这个时候就需要确定环境变量的配置PATH,可以通过下面的命令来查看:

1
2
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

此时可以从输出中看到,所确认命令的路径是否在当前环境变量中,如果没有的话,就需要考虑添加进来了。

Linux which命令

Linux which命令用于查找一个命令,不像findfind是用来查找文件的。

官方定义为:

which - locate a command

改名了会在当前环境变量中查找符合条件的命令。

语法

1
$ which [-a] filename ...

这个命令基本没有参数,只有一个:

  • -a print all matching pathnames of each argument

如果找到相关的指令并可执行,将返回0.

1⃣ 默认无参数

查找命令并显示具体路径:

1
2
$ which bash
/usr/bin/bash

可能会输出不同,取决于环境变量。

2⃣ 显示所有命令

一个命令,可能会有多个版本,或者同一个版本的多个位置,可以使用-a参数来检索。

1
2
3
$ which -a bash
/usr/bin/bash
/bin/bash

3⃣ 一个小小无聊的尝试

Ubuntu操作系统中,看看下面的命令:

1
2
$ which which
which: shell built-in command

显示为内建指令

扩展

如果确认程序或者命令已经安装,但是就是找不到这个命令,如下:

1
2
$ which command
command not found

这个时候就需要确定环境变量的配置PATH,可以通过下面的命令来查看:

1
2
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

此时可以从输出中看到,所确认命令的路径是否在当前环境变量中,如果没有的话,就需要考虑添加进来了。

如何阅读一本书? – 范多伦,艾德勒

法国学者巴斯卡(Pascal)在三百年前就说过:“读得太快或太慢,都一无所获。”注:读书不能太快或太慢!要有所把握

介绍四种不同层次的阅读—基础阅读(elementary reading)、检视阅读(inspectional reading)、分析阅读、主题阅读(syntopical reading)。

注:四种层次的阅读

阅读越主动,效果越好。这个读者比另一个读者更主动一些,他在阅读世界里面的探索能力就更强一些,收获更多一些,因而也更高明一些。读者对他自己,以及自己面前的书籍,要求的越多,获得的就越多。

注:主动阅读

阅读的目标:为获得资讯而读,以及为求得理解

注:阅读的目标

运用阅读以增加资讯与洞察力,与运用阅读增长理解力

注:阅读的目标

要避免这样的错误—以为读得多就是读得好的错误—我们必须要区分出各种不同的阅读形态。这种区分对阅读的本身,以及阅读与一般教育的关系都有很重大的影响。

注:读的多并不一定是读的好

敏锐的观察、灵敏可靠的记忆、想像的空间,再者当然就是训练有素的分析、省思能力。这么说的理由在于:阅读也就是一种发现—虽然那是经过帮助,而不是未经帮助的一个过

注:阅读的技巧

二个层次的阅读我们称之为检视阅读(inspectional reading)。特点在强调时间。在这个阅读层次,学生必须在规定的时间内完成一项阅读的功课

注:第二个层次

分析阅读就是全盘的阅读、完整的阅读,或是说优质的阅读—你能做到的最好的阅读方式。如果说检视阅读是在有限的时间内,最好也最完整的阅读,那么分析阅读就是在无限的时间里,最好也最完整的阅读

注:第三个层次,分析阅读

如比较阅读(comparative reading)。在做主题阅读时,阅读者会读很多书,而不是一本书,并列举出这些书之间相关之处,提出一个所有的书都谈到的主题。但只是书本字里行间的比较还不够。主题阅读涉及的远不止此。借助他所阅读的书籍,主题阅读者要能够架构出一个可能在哪一本书里都没提过的主题分析。因此,很显然的,主题阅读是最主动、也最花力气的一种阅读。

注:最复杂的主题阅读

层次所可能碰到的各种紧急状况与问题的程度就会明白了。然而,除非我们在所有的阅读层次都投下努力,否则我们社会里有关阅读的整体。特别就一本教人如何阅读的书来说,它的读者必须有某种程度的阅读能力才行。

?(1)先看书名页

注:略读的方法1

2)研究目录页,对这本书的基本架构做

注:略读的方法2

3)如果书中附有索引,也要检阅一下—大多数论说类的书籍都会有索引

注:略读的方法3索引

4)如果那是本包着书衣的新书,不妨读一下出版者的介绍

注:略读的方法4出版商说明

(5)从你对一本书的目录很概略,甚至有点模糊的印象当中,开始挑几个看来跟主题息息相关的篇章来看。如果这些篇章在开头或结尾有摘要说明(很多会有),就要仔细地阅读这些说明

注:略读的方法5随便挑几章看看

6)最后一步,把书打开来,东翻翻西翻翻,念个一两段.有时候连续读几页,但不要太多。就用这样的方法把全书翻过一遍,随时寻找主要论点的讯号,留意主题的基本脉动。最重要的是,不要忽略最后的两三页。就算最后有后记,一本书最后结尾的两三页也还是不可忽视的

注:略读的方法6主动寻找资讯

头一次面对一本难读的书的时候,从头到尾先读完一遍,碰到不懂的地方不要停下来查询或思索。

只注意你能理解的部分,不要为一些没法立即了解的东西而停顿。继续读下去,略过那些不懂的部分,很快你会读到你看得懂的地方。集中精神在这个部分。继续这样读下去。将全书读完,不要被一个看不懂的章节、注解、评论或参考资料阻挠或泄气。如果你让自己被困住了,如果你容许自己被某个顽固的段落绑住了,你就是被打败了。在大多数情况里,你一旦和它纠缠,就很难脱困而出。在读第二遍的时候,你对那个地方的了解可能会多一些,但是在那之前,你必须至少将这本书先从头到尾读一遍才行。

注:读书对的方向!不能因为某个章节不懂而停滞不前,至少完整读下来,多注意那些理解的章节

亚当·斯密(Adam Smith)的经典作品《国富论》(The Wealth of Nations

注:国富论

每一本书,不论是多么难读的书,在无关紧要的间隙部分就可以读快一点。而一本好书,总会包含一些比较困难,应该慢慢阅读的内容

注:快慢的把握

要矫正眼睛逗留于一点的工具有很多种,有些很复杂又很昂贵。无论如何,任何复杂的工具其实都比不上你的一双手来得有用,你可以利用双手训练自己的眼睛,跟着章节段落移动得越来越快。你可以自己做这样的训练:将大拇指与食指、中指合并在一起,用这个“指针”顺着一行一行的字移动下去,速度要比你眼睛感觉的还要快一点。强迫自己的眼睛跟着手部的动作移动。一旦你的眼睛能跟着手移动时,你就能读到那些字句了。继续练习下去,继续增快手的动作,等到你发觉以前,你的速度已经可以比以前快两三倍了

注:矫正眼睛经常逗留,跟不上脑袋的速度,用手做工具

在阅读一本书的时候,慢不该慢到不值得,快不该快到有损于满足与理解。不论怎么说,阅读的速度,不论是快还是慢,只不过是阅读问题一个微小的部分而

注:阅读时的速度把握

最后,在第一次阅读一本难读的书时,不要企图了解每一个字句。这是最最重要的一个规则。这也是检视阅读的基本概念。不要害怕,或是担忧自己似乎读得很肤浅。就算是最难读的书也快快地读一遍。当你再读第二次时,你就已经准备好要读这本书了。

注:对难懂的书先速读一遍,然后? 再研究第二遍

在阅读的时候想要保持清醒,或昏昏入睡,主要看你的阅读目标是什么。如果你的阅读目标是获得利益—不论是心灵或精神上的成长—你就得保持清醒。这也意味着在阅读时要尽可能地保持主动,同时还要做一番努力—而这番努力是会有回馈的。

注:阅读的时候保持清醒

关于一本书,你一定要提出四个主要的问题。

(1)整体来说,这本书到底在谈些什么?你一定要想办法找出这本书的主题,作者如何依次发展这个主题,如何逐步从核心主题分解出从属的关键议题来。

(2)作者细部说了什么,怎么说的?你一定要想办法找出主要的想法、声明与论点。这些组合成作者想要传达的特殊讯息。

(3)这本书说得有道理吗?是全部有道理,还是部分有道理?除非你能回答前两个问题,否则你没法回答这个问题。在你判断这本书是否有道理之前,你必须先了解整本书在说些什么才行。然而,等你了解了一本书,如果你又读得很认真的话,你会觉得有责任为这本书做个自己的判断。光是知道作者的想法是不够的。

(4)这本书跟你有什么关系?如果这本书给了你一些资讯,你一定要问问这些资讯有什么意义。为什么这位作者会认为知道这件事很重要?你真的有必要去了解吗?如果这本书不只提供了资讯,还启发了你,就更有必要找出其他相关的、更深的含意或建议,以获得更多的启示。

注:读书时要提出的四个问题

如何让一本书真正属于你自己

如果你有读书时提出问题的习惯,那就要比没有这种习惯更能成为一个好的阅读者。但是,就像我们所强调的,仅仅提出问题还不够。你还要试着去回答问题。理论上来说,这样的过程可以在你脑海中完成,但如果你手中有一枝笔会更容易做到。在你阅读时,这枝笔会变成提醒你的一个讯号。

注:如何让一本书属于你

俗话说:“你必须读出言外之意,才会有更大的收获。”而所谓阅读的规则,就是用一种比较正式的说法来说明这件事而已。此外,我们也鼓励你“写出言外之意”。不这么做,就难以达到最有效的阅读的境界。

你买了一本书,就像是买了一项资产,和你付钱买衣服或家具是一样的。但是就一本书来说,付钱购买的动作却不过是真正拥有这本书的前奏而已。要真正完全拥有一本书,必须把这本书变成你自己的一部分才行,而要让你成为书的一部分最好的方法—书成为你的一部分和你成为书的一部分是同一件事—就是要去写下来。

为什么对阅读来说,在书上做笔记是不可或缺的事?第一,那会让你保持清醒—不只是不昏睡,还是非常清醒。其次,阅读,如果是主动的,就是一种思考,而思考倾向于用语言表达出来—不管是用讲的还是写的。一个人如果说他知道他在想些什么,却说不出来,通常是他其实

注:让书成为自己的

知道自己在想些什么。第三,将你的感想写下来,能帮助你记住作者的思想

做笔记有各式各样,多彩多姿的方法。以下是几个可以采用的方

注:做笔记的方法

※ 三种做笔记的方

注:三种做笔记的方法

※ 培养阅读的习惯

所谓艺术或技巧,只属于那个能养成习惯,而且能依照规则来运作的人。这也是艺术家或任何领域的工匠与众不同之处。要养成习惯,除了不断地运作练习之外,别无他法。这也就是我们通常所说的,从实际去做中学习到如何去做的道

注:培养阅读的习惯

第七章 透视一本书

每一本书的封面之下都有一套自己的骨架。作为一个分析阅读的读者,你的责任就是要找出这个骨

注:透视一本书的骨架

一本好书,就像一栋好房子,每个部分都要很有秩序地排列起来。每个重要部分都要有一定的独立

注:好书像一个好房子

分析阅读的第一阶段,或,找出一本书在谈些什么的四个规则:

注:找出一本书在说什么的方法

一般来说,阅读的过程与商业上的过程正好相反。商人通常是在找出提案是什么后,才会达成共识。但是读者却要先与作者达成共识,才能明白作者的主旨是什么,以及他所声明的是什么样的判断

注:判断作者的主旨

?(5)诠释作者使用的关键字,与作者达成共识。

(6)从最重要的句子中抓出作者的重要主旨。

(7)找出作者的论述,重新架构这些论述的前因后果,以明白作者的主张。

(8)确定作者已经解决了哪些问题,还有哪些是未解决的。在未解决的问题中,确定哪些是作者认为自己无法解决的问题。

注:分析阅读的第二个阶段

我们的建议尤其适用于所谓巨著。一般人总是抱着热忱想要阅读巨著,但是当他绝望地感觉到自己无法理解这本书时,热忱很快便消退了。其中一个原因,当然是因为一般人根本不知道要如何好好地阅读一本书。但还不只如此,还有另一个原因:他们认为自己应该能够读懂自己所挑选的第一本书,用不着再读其他相关的著作。

注:巨著读法

许多伟大的作品不只是互相有关联,而且在写作时还有特定的先后顺序,这都是不该忽略的事。后人的作品总是受到前人的影响。如果你先读前一位的作品,他可能会帮助你了解后人的作品。阅读彼此相关的书籍‘,依照写作的时间顺序来读,对你了解最后写的作品有很大帮助。这就是外在辅助阅读的基本常识与规则。

注:读巨著前先读一些基础著作

读一本好书,却会让你的努力有所回报。最好的书对你的回馈也最多。当然,这样的回馈分成两种:第一,当你成功地阅读了一本难读的好书之后,你的阅读技巧必然增进了。第二—长期来说这一点更重要—一本好书能教你了解这个世界以及你自己。你不只更懂得如何读得更好,还更懂得生命。你变得更有智慧,而不只是更有知识—像只提供讯息的书所形成的那样。你会成为一位智者,对人类生命中永恒的真理有更深刻的体认。

注:读一本好书的好处

好的阅读,也就是主动的阅读,不只是对阅读本身有用,也不只是对我们的工作或事业有帮助,更能帮助我们的心智保持活力与

使用git将本地文件上传至github

我的使用配置

首先在https://github.com/上注册,然后新建一个Repository,输入Repository的名称以及对这个Repository的描述。

红色斜体只需要操作一次即可。

首先clone下来工程gtk-programming:

1
git clone git://github.com/shaoguangleo/gtk-programming.git

这里如果要上传代码,有几个关键步骤:

1
git init

这个命令会在当前目录下创建一个.git文件夹。

1
git add filename

这个命令会把当前路径下的所有文件,添加到待上传的文件列表中。

1
git commit -m "xxxxx"  

提交至本地的git库
git read-only方式

1
git remote add origin  git://github.com/shaoguangleo/gtk-programming.git

ssh方式

1
git remote add origin git@github.com:shaoguangleo/gtk-programming.git

http方式

1
git remote add origin https://github.com/shaoguangleo/gtk-programming.git

通过三种方式为远程的服务器定义别名origin,我用的是第三种方式。

1
git push origin master

提交当地文件到远端服务器,其中master为默认的本地开发别名。

网络上关于github的使用

使用GitHub步骤:

1、申请GitHub帐户 xxx ,创建名为new-project的新Repository

2、安装Git客户端(Linux)

1
#yum install git git-gui

3、 生成密钥对,这样项目可以push到 GitHub上

1
#ssh-keygen -t rsa -C "xxx@gmail.com"

4、将.ssh/id_rsa.pub拷贝到GitHub网站

5、为了方便,设置ssh不输入口令

1
2
3
# eval `ssh-agent`
# ssh-add
(输入passphrase)

6、测试是否能联通GitHub

1
#ssh git@github.com

如果配置正确,显示

1
2
ERROR: Hi xxx! You've successfully authenticated, but GitHub does not provide shell access
Connection to github.com closed.

7、设置Git全局用户配置

1
2
# git config --global user.name "xxx"
# git config --global user.email xxx@gmail.com

8、创建本地新项目工作树

1
2
3
4
5
6
# mkdir new-project
# cd new-project
# git init
# touch README
# git add README
# git commit -m 'first commit'

定义远程服务器别名origin

1
#  git remote add origin git@github.com:xxx/new-project.git   

本地和远程合并,本地默认分支为master

1
# git push origin master  

GitHub网站上就可以看见了, http://github.com/xxx/new-project

  1. 更新文件
1
2
3
4
5
# vi README
自动commit更改文件
# git commit -a
更新至远程
# git push origin master
  1. 创建和合并分支
1
2
3
4
5
6
7
8
9
$git branch 显示当前分支是master
$git branch new-feature 创建分支
$ git checkout new-feature 切换到新分支
$ vi page_cache.inc.php
$ git add page_cache.inc.php
# Commit 到本地GIT
$ git commit -a -m "added initial version of page cache"
# 合并到远程服务器
$ git push origin new-feature

如果new-feature分支成熟了,觉得有必要合并进master

1
2
3
4
#git checkout master
#git merge new-feature
#git branch
#git push

则master中也合并了new-feature 的代码

再登录到GitHub可以看见”Switch Branches”下的分支选项:

GitHub还有一个很实用的功能,查看开发进程网络图(Network)

如何提取python中的一列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> arr
[[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[12, 13, 14, 15, 16, 17, 18, 19, 20, 21],
[13, 14, 15, 16, 17, 18, 19, 20, 21, 22],
[14, 15, 16, 17, 18, 19, 20, 21, 22, 23],
[15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
[16, 17, 18, 19, 20, 21, 22, 23, 24, 25],
[17, 18, 19, 20, 21, 22, 23, 24, 25, 26],
[18, 19, 20, 21, 22, 23, 24, 25, 26, 27],
[19, 20, 21, 22, 23, 24, 25, 26, 27, 28],
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]]
>>> l = [x[0] for x in arr]
>>> l
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
>>>

mount挂载

执行umount 的时候却提示:device is busy 的处理方法

1
2
3
4
5
6
# 查询占用挂载点的PID
$ fuser -m /mount/point/
/mount/point/: 1234c 5678c //占用进程pid

# 查询并杀死占用挂载点的PID
#fuser -m -k /mnt/cdrom/
1
2
# 查询具体的进程信息
# ps aux |grep 1234/5678

或者使用

1
$ lsof /mount/point

来查找具体的使用进程及用户信息

MacOS系统中MacPorts安装和使用

Mac系统中除了使用dmg、pkg的格式来安装软件,比较方便的还有MacPorts和brew软件,这两个软件类似Linux下面的yum和apt,可以帮助快速地解决依赖,按照软件。

这里说一下MacPorts的按照与使用,详细信息可以参考官网MacPorts

安装MacPorts

安装结束后还暂时不能使用,需要将/opt/local/bin/opt/local/sbin添加到$PATH搜索路径中,编辑/etc/profile文件中,加上

1
2
export PATH=/opt/local/bin:$PATH
export PATH=/opt/local/sbin:$PATH
  • Mac Port中第三方软件下载包存放的默认路径是:/opt/local/var/macports/distfiles/

  • 使用Mac Port前应该首先更新Port的index

MacPorts使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 更新ports tree和MacPorts版本,强烈推荐第一次运行的时候使用-v参数,显示详细的更新过程。
$ sudo port - v selfupdate

# 查看Mac Port中当前可用的软件包及其版本
$ port list

# 搜索索引中的软件
$ port search name

# 查看包详细信息
$ port info name

# 查看包详细信赖信息
$ port deps name

# 查看安装时允许客户定制的参数
$ port variants name

# 安装新软件
$ sudo port install name

# 安装完毕之后,清除安装时产生的临时文件
$ sudo port clean --all name

# 卸载软件
$ sudo port uninstall name

# 查看有更新的软件以及版本
$ port outdated

# 升级可以更新的软件
$ sudo port upgrade outdated