-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtlcl-kan-shu-bi-ji-2.html
285 lines (265 loc) · 16.5 KB
/
tlcl-kan-shu-bi-ji-2.html
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Won" />
<meta name="copyright" content="Won" />
<meta name="keywords" content="TLCL, Reading, " />
<title>TLCL 看书笔记(2) · Tugqi Biz
</title>
<link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="http://wbowam.github.io/theme/css/style.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://wbowam.github.io/theme/css/solarizedlight.css" media="screen">
<link rel="shortcut icon" href="http://wbowam.github.io/theme/images/favicon.ico" type="image/x-icon" />
<link rel="apple-touch-icon" href="http://wbowam.github.io/theme/images/apple-touch-icon.png" />
<link rel="apple-touch-icon" sizes="57x57" href="http://wbowam.github.io/theme/images/apple-touch-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="72x72" href="http://wbowam.github.io/theme/images/apple-touch-icon-72x72.png" />
<link rel="apple-touch-icon" sizes="114x114" href="http://wbowam.github.io/theme/images/apple-touch-icon-114x114.png" />
<link rel="apple-touch-icon" sizes="144x144" href="http://wbowam.github.io/theme/images/apple-touch-icon-144x144.png" />
<link rel="icon" href="http://wbowam.github.io/theme/images/apple-touch-icon-144x144.png" />
</head>
<body>
<div id="content-sans-footer">
<div class="navbar navbar-static-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="http://wbowam.github.io/"><span class=site-name>Tugqi Biz</span></a>
<div class="nav-collapse collapse">
<ul class="nav pull-right top-menu">
<li ><a href="http://wbowam.github.io">Home</a></li>
<li ><a href="http://wbowam.github.io/categories.html">Categories</a></li>
<li ><a href="http://wbowam.github.io/tags.html">Tags</a></li>
<li ><a href="http://wbowam.github.io/archives.html">Archives</a></li>
<li><form class="navbar-search" action="http://wbowam.github.io/search.html" onsubmit="return validateForm(this.elements['q'].value);"> <input type="text" class="search-query" placeholder="Search" name="q" id="tipue_search_input"></form></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span1"></div>
<div class="span10">
<article>
<div class="row-fluid">
<header class="page_header span10">
<h1><a href="http://wbowam.github.io/tlcl-kan-shu-bi-ji-2.html"> TLCL 看书笔记(2) </a></h1>
</header>
</div>
<div class="row-fluid">
<div class="span10 article-content">
<h3 id="_1">笔记开始<a class="headerlink" href="#_1" title="Permanent link">¶</a></h3>
<blockquote>
<p>坦诚地说,用图形文件管理器来完成一些由这些命令执行的任务会更容易些。</p>
</blockquote>
<p><code>cp -u *.html destination</code></p>
<blockquote>
<p>那么, 为什么还使用早期的命令行程序呢?</p>
</blockquote>
<p>会有很多小白问这个问题,,,,,,,我总是说不清楚自己为什么喜欢命令行</p>
<blockquote>
<p>命令行程序,功能强大灵活。虽然图形文件管理器能轻松地实现简单的文件操作,但是对于 复杂的文件操作任务,则使用命令行程序比较容易完成。</p>
</blockquote>
<p>答案来了~这是为什么极客们喜欢用Linux</p>
<blockquote>
<p>ln — 创建硬链接和符号链接</p>
<p>mkdir dir1 dir2 dir3</p>
</blockquote>
<p>原来也可以传多个参数啊,<code>mk blog blog/content</code></p>
<blockquote>
<p>接受文件名作为参数的任何命令,都可以使用通配符</p>
</blockquote>
<p>到目前为止,我以为通配符就是正则,,难道我有错吗?</p>
<blockquote>
<p>cp item... directory</p>
</blockquote>
<p>原来能一次性复制好多文件, 三个点表示能接受多个参数</p>
<blockquote>
<p><code>cp file1 file2</code> 复制文件 file1 内容到文件 file2。
如果 file2 已经存在,file2 的内容会被 file1 的 内容重写。
如果 file2 不存在,则会创建 file2。
<code>cp -i file1 file2</code> 这条命令和上面的命令一样,除了如果文件 file2 存在的话,在文件 file2 被重写之前,会提示用户确认信息。
<code>cp file1 file2 dir1</code> 复制文件 file1 和文件 file2 到目录 dir1。目录 dir1 必须存在。
<code>cp dir1/* dir2</code> 使用一个通配符,在目录 dir1 中的所有文件都被复制到目录 dir2 中。 dir2 必须已经存在。
<code>cp -r dir1 dir2</code> 这里的<code>r</code>参数是递归的意思,如下</p>
</blockquote>
<div class="highlight"><pre><span class="n">cp</span>
<span class="o">-</span><span class="n">R</span><span class="p">,</span> <span class="o">-</span><span class="n">r</span><span class="p">,</span> <span class="o">--</span><span class="n">recursive</span>
<span class="n">copy</span> <span class="n">directories</span> <span class="n">recursively</span>
</pre></div>
<p>递归地复制目录及目录中的内容。当复制目录时, 需要这个选项(或者-a 选项)</p>
<div class="highlight"><pre><span class="o">-</span><span class="n">u</span><span class="p">,</span> <span class="o">--</span><span class="n">update</span>
</pre></div>
<p>当把文件从一个目录复制到另一个目录时,仅复制 目标目录中不存在的文件,或者是文件内容新于目标目录中已经存在的文件。</p>
<div class="highlight"><pre><span class="o">-</span><span class="n">f</span><span class="p">,</span> <span class="o">--</span><span class="n">force</span>
</pre></div>
<blockquote>
<p>Linux,没有复原命令。一旦你用 rm 删除了一些东西, 它就消失了。Linux 假定你很聪明,你知道你在做什么。</p>
</blockquote>
<p>曾经亲身经历过这么悲催的事情,,,那是一个蛋疼的上午和中午,我写了一个上午的代码啊~~本来我想删swp文件的,一不小心...当时我是正准备commit 的</p>
<blockquote>
<p>小贴士。 无论什么时候,rm 命令用到通配符(除了仔细检查输入的内容外!), 用 ls 命令来测试通配符。这会让你看到要删除的文件列表。然后按下上箭头按键,重新调用 刚刚执行的命令,用 rm 替换 ls。</p>
</blockquote>
<p>嗯嗯,当构造复杂的通配符时,可以先用这个技巧验证一下</p>
<blockquote>
<p>符号链接是文件的特殊类型,它包含一个指向 目标文件或目录的文本指针。</p>
</blockquote>
<p>普通文件是由文件名和指针组成
符号链接是由文件名和指向目标文件的指针
我的理解对吗?</p>
<blockquote>
<p>符号链接类似Windows的快捷方式
当然,符号链接早于 Windows 的快捷方式 很多年;-)</p>
</blockquote>
<p>作者很逗,总是在讽刺widows的抄袭(这是软链接的笔记,不知怎么的跑到这里了)</p>
<blockquote>
<p>一个程序要求使用某个包含在名为“foo”文件中的共享资源,但是“foo”经常改变版本号。 这样,在文件名中包含版本号,会是一个好主意,因此管理员或者其它相关方,会知道安装了哪个“foo”版本。 这又会导致一个问题。如果我们更改了共享资源的名字,那么我们必须跟踪每个可能使用了 这个共享资源的程序,当每次这个资源的新版本被安装后,都要让使用了它的程序去寻找新的资源名。 这听起来很没趣。</p>
</blockquote>
<p>这就是符号链接存在至今的原因。
这是一个关于软链接的故事。讲述了软链接活着的意义</p>
<div class="highlight"><pre><span class="n">ls</span> <span class="o">-</span><span class="n">l</span> <span class="n">dir1</span>
<span class="n">total</span> <span class="mi">4</span>
<span class="o">-</span><span class="n">rw</span><span class="o">-</span><span class="n">r</span><span class="o">--</span><span class="n">r</span><span class="o">--</span> <span class="mi">4</span> <span class="n">me</span> <span class="n">me</span> <span class="mi">1650</span> <span class="mi">2008</span><span class="o">-</span><span class="mo">01</span><span class="o">-</span><span class="mi">10</span> <span class="mi">16</span><span class="o">:</span><span class="mi">33</span> <span class="n">fun</span><span class="o">-</span><span class="n">hard</span>
<span class="n">lrwxrwxrwx</span> <span class="mi">1</span> <span class="n">me</span> <span class="n">me</span> <span class="mi">6</span> <span class="mi">2008</span><span class="o">-</span><span class="mo">01</span><span class="o">-</span><span class="mi">15</span> <span class="mi">15</span><span class="o">:</span><span class="mi">17</span> <span class="n">fun</span><span class="o">-</span><span class="n">sym</span> <span class="o">-></span> <span class="p">..</span><span class="o">/</span><span class="n">fun</span>
</pre></div>
<blockquote>
<p>dir1 中,fun-sym 的列表说明了它是一个符号链接,通过在第一字段中的首字符"l" 可知,并且它还指向"../fun",也是正确的。相对于 fun-sym 的存储位置,fun 在它的 上一个目录。同时注意,符号链接文件的长度是6,这是字符串"../fun"所包含的字符数, 而不是符号链接所指向的文件长度</p>
</blockquote>
<p>不太理解,软链接文件的大小是目标文件名(包括路径名哈,但为什么不是绝对路径啊?)的长度,这是因为</p>
<blockquote>
<p>Linux,有个普遍的观念就是“任何东西都是一个文件”。 随着课程的进行,我们将会明白这句话的真谛。</p>
</blockquote>
<p>明白字面上的意思了,但还没震撼过</p>
<blockquote>
<p>file 命令会打印出文件内容的简单描述</p>
</blockquote>
<p>感觉不是很常用啊</p>
<blockquote>
<p>less 程序是早期 Unix 程序 more 的改进版。“less” 这个名字,对习语 “less is more” 开了个玩笑, 这个习语是现代主义建筑师和设计者的座右铭。</p>
</blockquote>
<p>喜欢Unix这种风格</p>
<blockquote>
<p>记得复制和粘贴技巧!如果你正在使用鼠标,双击文件名,来复制它,然后按下鼠标中键,粘贴文件名到命令行中</p>
</blockquote>
<p>见过几次赵宇这样复制粘贴,很实用的样子</p>
<blockquote>
<p>在系统中游玩时,不要害怕粘花惹草。普通用户是很难把东西弄乱的。那是系统管理员的工作! 如果一个命令抱怨一些事情,不要管它,尽管去玩别的东西。花一些时间四处走走。 系统是我们自己的,尽情地探究吧。记住在 Linux 中,没有秘密存在!</p>
</blockquote>
<p>这话足够风趣,够吸引人</p>
<blockquote>
<p>大多数安装在系统中的软件包会包含一些文档。在/usr/share/doc 目录下, 我们可以找到按照软件包分类的文档。</p>
</blockquote>
<p>平时可以翻翻</p>
<blockquote>
<p>/etc/crontab, 定义自动运行的任务。
/etc/fstab,包含存储设备的列表,以及与他们相关的挂载点。
/etc/passwd,包含用户帐号列表。</p>
</blockquote>
<p>自动运行的任务哈,,可以写到一些配置文件里哈</p>
<blockquote>
<p>在现在的 Linux 系统中,/media 目录会包含可移除媒体设备的挂载点, 例如 USB 驱动器,CD-ROMs 等等。这些设备连接到计算机之后,会自动地挂载到这个目录结点下。</p>
</blockquote>
<p>曾经学过怎么挂载硬盘或U盘,现在忘记了,因为Ubuntu的自动挂载</p>
<blockquote>
<p>type-显示命令的类型</p>
</blockquote>
<div class="highlight"><pre><span class="err">$</span><span class="n">type</span> <span class="n">ls</span>
<span class="n">ls</span> <span class="n">is</span> <span class="n">an</span> <span class="n">alias</span> <span class="k">for</span> <span class="n">ls</span> <span class="o">--</span><span class="n">color</span><span class="o">=</span><span class="n">tty</span>
<span class="err">$</span><span class="n">type</span> <span class="n">cp</span>
<span class="n">cp</span> <span class="n">is</span> <span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">cp</span>
</pre></div>
<blockquote>
<p>alias – 创建命令别名</p>
</blockquote>
<div class="highlight"><pre><span class="n">alias</span> <span class="n">fj</span><span class="o">=</span><span class="n">ssh</span> <span class="n">tulpar</span><span class="err">@</span><span class="mf">127.0.0.1</span>
</pre></div>
<blockquote>
<p>由于阅读难度而能拿到特等奖的手册页应该是 bash 手册页。</p>
</blockquote>
<p>哈哈哈,所以我刚刚才跨国<code>man</code></p>
<blockquote>
<p>zless 可以显示由gzip 压缩的文本文件的内容。</p>
</blockquote>
<p>直接解压看不行吗,非要个这样的命令吗?</p>
<blockquote>
<p><strong>可以把多个命令放在同一行上,命令之间 用";"分开。</strong></p>
</blockquote>
<p>这个知识点实用,必须掌握</p>
<blockquote>
<p>alias foo='cd /usr; ls; cd -'</p>
</blockquote>
<p>想知道重新登录这个配置还在吗?
肯定不在了哈...所以写到<code>.bashrc</code></p>
<blockquote>
<p>grep - 打印匹配行</p>
</blockquote>
<p>神一样的命令终于出现了,看到这里我再次确定这是一本好书了
话说XX推荐用<a href="http://beyondgrep.com/">ACK</a>替代grep</p>
<aside>
<hr/>
<nav>
<ul class="articles_timeline">
<li class="previous_article">« <a href="http://wbowam.github.io/djangokai-qi-the-sites-framework.html" title="Previous: Django开启 the sites framework">Django开启 the sites framework</a></li>
<li class="next_article"><a href="http://wbowam.github.io/tlcl-kan-shu-bi-ji-1.html" title="Next: TLCL 看书笔记(1)">TLCL 看书笔记(1)</a> »</li>
</ul>
</nav>
</aside>
<!-- Duoshuo Comment BEGIN -->
<div class="ds-thread" data-author-key="4433755"></div>
<script type="text/javascript">
var duoshuoQuery = {short_name:"tlbog"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = 'http://static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
<!-- Duoshuo Comment END -->
</div>
<section>
<div class="span2" style="float:right;font-size:0.9em;">
<h4>Published</h4>
<time pubdate="pubdate" datetime="2015-03-29T00:00:00+08:00">Mar 29, 2015</time>
<h4>Category</h4>
<a class="category-link" href="/categories.html#Reading-ref">Reading</a>
<h4>Tags</h4>
<ul class="list-of-tags tags-in-article">
<li><a href="/tags.html#TLCL-ref">TLCL
<span>4</span>
</a></li>
</ul>
</div>
</section>
</div>
</article>
</div>
<div class="span1"></div>
</div>
</div>
</div>
<footer>
<div id="footer">
<ul class="footer-content">
<li class="elegant-power">Powered by <a href="http://getpelican.com/" title="Pelican Home Page">Pelican</a>. Theme: <a href="http://oncrashreboot.com/pelican-elegant" title="Theme Elegant Home Page">Elegant</a> by <a href="http://oncrashreboot.com" title="Talha Mansoor Home Page">Talha Mansoor</a></li>
</ul>
</div>
</footer> <script src="http://code.jquery.com/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script>
function validateForm(query)
{
return (query.length > 0);
}
</script>
</body>
</html>