第四章:言归正传讲Python:Mac系统的终端Terminal命令行快速入门之“较复杂的命令”
在写第三章的时候,发现自己已经忘记了好多命令。其实我并没有按照Zed A.Shaw的提示,将这些命令做成小卡片,然后每天去记忆。可能源于我的目的并非是为了掌握并精研Python,我写博客并不是单纯为了分享自己的学习经验。而是希望自己能够通过学习python和写博客的形式,让自己以后养成这样的学习和记录习惯,有助于以后技能的掌握和积累。Python起到抛砖引玉的作用。
闲话少说,下面开始介绍较为复杂些的终端命令:小提示:如何往终端中输入目录或文件的路径?只需要将目录或文件往终端里拖就行!
7, touch,New-Item(创建空文件):注意此处的是“文件”,而不是“文件夹”,后缀是自己根据需要添加。例如:
bogon:ex2.py neymagico$ touch 1
bogon:ex2.py neymagico$ touch 1.txt
bogon:ex2.py neymagico$ touch 1.py
bogon:ex2.py neymagico$ touch 1.dwg
bogon:ex2.py neymagico$ touch 1.pdf
bogon:ex2.py neymagico$ ls
1 1.dwg 1.pdf 1.py 1.txt
8,pushd,popd(在多个目录中切换):惭愧得很,我对这两个命令,仍然不是很清楚,首先是其原理,其次是其应用。
下面,我在ex目录中再创建一个名为pushdpopd的目录,其内部有i/love/you的三级子目录,如下图:
bogon:~ neymagico$ cd ex/pushdpopd #进入pushdpopd目录
bogon:pushdpopd neymagico$ pushd i/love/you #跳转到you目录,并保存当前路径
~/ex/pushdpopd/i/love/you ~/ex/pushdpopd #输出两个路径,第一个路径是you,第二个路径是pushdpopd,该路径被保存在一个栈中(先进后出)
bogon:you neymagico$ popd #跳回到保存的最后的一个目录,此处为pushdpopd
~/ex/pushdpopd #输出pushdpopd的路径
bogon:pushdpopd neymagico$ pwd #打印当前路径
/Users/neymagico/ex/pushdpopd #输出当前所在的路径pushdpopd
bogon:pushdpopd neymagico$ pushd i/love #调转到love目录,并保存当前路径
~/ex/pushdpopd/i/love ~/ex/pushdpopd #输出love的路径和pushpopd的路径
bogon:love neymagico$ popd #跳回到保存的最后的一个目录,此处为pushdpopd
~/ex/pushdpopd。 #打印出当前的路径pushdpopd
bogon:pushdpopd neymagico$
注释:上面红色名称:表示在键入命令时,所处在的路径的名称;蓝色的名称:表示的是用pushd命令所保存的路径的名称和路径
bogon:pushdpopd neymagico$ pushd i/love #跳转到love目录,并保存当前pushdpopd路径
~/ex/pushdpopd/i/love ~/ex/pushdpopd。 #打印love路径, 并打印保存的第一个路径
bogon:love neymagico$ pushd you。 #在love目录里,跳转到you目录,并保存当前love的路径
~/ex/pushdpopd/i/love/you ~/ex/pushdpopd/i/love ~/ex/pushdpopd #打印you的路径,并打印保存的第二个路径love,然后打印保存的第一个路径pushdpod
bogon:you neymagico$ popd #在you目录里跳转到最后一次用pushd保存的路径,此处为第二次保存的路径love
~/ex/pushdpopd/i/love ~/ex/pushdpopd # 打印出love的路径,并打印出剩余被保存的全部的路径,此处仅剩一个路径,即为第一次保存的pushdpod路径
bogon:love neymagico$ popd #在love目录里跳转到用pushd保存的路径,此处为第一次保存的路径pushdpopd
~/ex/pushdpopd #打印出pushdpopd的路径
注释:pushd命令保存的路径,放到一个类似于栈的列表中,最先保存的路径,最晚被popd命令弹出,即为“先进后出”。
还是很高兴写了这段博客,因为我搞清楚了pushd和popd命令到底是什么意思,懂了以后,才知道确实是很厉害很好用的两个命令!
9,cp(复制文件):复制分两种,一种是复制一个文件到另一个地方,另外一种是复制一个文件中的内容到另一个文件中,其实还是挺复杂的。
(1) 复制文件:bogon:ex2.py neymagico$ cp 1.txt 2.txt #在下方的ex2.py目录里得到2.txt,它是由1.txt复制得到,内容是一样的
(2)复制文件夹:bogon:ex neymagico$ cp -r ex2.py 4 # 在ex目录下,将 ‘目录ex2.py’复制,得到名称为‘目录4’。他们所包含的子目录和文件是一样的
(3)将一个下级目录中的文档或目录复制到上级或下级目录中? 当时想到这个问题,想要解决,思考了很长时间,最终找到了方法如下:
如何将目录ex2.py里面的 1.txt 复制到上级目录ex中: bogon:ex2.py neymagico$ cp 1.txt /Users/neymagico/ex # cp 文件/目录名 目的目录完整路径
如何将目录ex2.py里面的 1.txt 复制到下级目录3中: bogon:ex2.py neymagico$ cp 1.txt /Users/neymagico/ex/3 # cp 文件/目录名 目的目录完整路径
如何将文件复制到上级或下级目录,并且将文件名更改 :
bogon:ex2.py neymagico$ cp 1.txt 3.txt /Users/neymagico/ex/ex2.py/3 # cp 目标文件/目录名 更改后的文件名/目录名 目的目录完整路径
10,mv(移动文件)
(1) “重命名”功能:上张图片中目录3中的3.txt改成4.txt : bogon:3 neymagico$ mv 3.txt 4.txt
(2)移动功能: 将目录3中的4.txt移动到上级目录ex2.py中: bogon:3 neymagico$ mv 4.txt /Users/neymagico/ex/ex2.py
11,less(查看文件内容):顾名思义,就是文件里面的内容读出来,如想退出,键入q即可。例如我想将目录3中的1.txt内容读出来:
bogon:3 neymagico$ less 1.txt
Je t'aime! 法语的“我爱你!”
12, cat(流文件内容显示), 其实类似于less命令。惭愧!其实以我现在的能力,我并不知道流文件是个什么毛线!!我也百度了,说是没有结构的文件。
bogon:3 neymagico$ cat 1.txt
Je t'aime! 法语的“我爱你!”
13,rm(删除文件)区别于rmdir命令,rm是可以删除文件,也可以删除目录,而rmdir只能删除目录
14,exit(推出命令行)我暂时没用过这个命令
其实在这本书中,Zed列出过很多其他的命令,我们并没有全部介绍,感兴趣的朋友可以挨个尝试:
pwd: 打印当前工作目录
hostname: 获取我的计算机的网络名称
mkdir: 创建目录
cd: 更改目录
ls: 列出目录下的文件
rmdir: 删除目录
pushd: push directory
popd: pop directory
cp: 复制文件或目录
mv: 移动/重命名文件或目录
less: 按页查看文件
cat: 输出整个文件
xargs: 执行参数
find: 查找文件
grep: 查找文件里面的东西
man: 阅读帮助手册
apropos: find what man page is appropriate
env: 查看计算机环境
echo: 输出一些参数
export: 设置一个新的环境变量
exit: 退出终端
sudo: 危险! 拥有超级用户权限!
*** 第五章预告:真的开始要讲Python啦!