Linux学习中容易忽略的细节(一)

来源:互联网 发布:java购物车 编辑:程序博客网 时间:2024/05/21 17:29

目录


  • 写在前面
  • mv命令
  • 压缩与解压缩命令
  • 引号
  • 执行脚本
  • find命令

写在前面

Linux命令种类繁多,其中有很多我们特别容易忽略的细节,在这里我总结出来与大家分享一下。如有错误的地方,希望各位能不吝赐教。如需转载请注明出处。

mv命令


大家都知道mv命令可以移动目录或者文件,或者是重命名文件或文件夹。但是mv命令有一个非常重要却又很容易被忽略的细节。
假设你在移动一个指向目录的软链接,就需要特别注意输入的内容。假设在你的home目录里有一个名为lnkdir1的软链接指向/home/dir1,而你想把整个软链接移动到其他地方(比如/home/dir2/)。正确的做法是这样:

$ mv lnkdir1 /home/dir2

而如果你这样做的话,就会移动lnkdir1所指向的目录dir1。

$ mv lnkdir1/ /home/dir2

压缩与解压缩命令


无论是使用哪种解压缩命令(unzip、gunzip、bunzip2),在解压之前最好是先使用-l或-t参数。-l(仅适用于unzip命令)参数可以让你看到压缩包里面的内容而不解压,这样可以防止不小心错误地解压了一个包含100个文件的压缩文件,而实际上原本想解压的是一个包含100个文件的目录。前者解压后的文件将放得很凌乱,后者处理起来就容易多了。而-t(代表test)选项对文档进行测试。在解压之前使用该命令可以事先知道文档是否是损坏的。你也许遇到过花了好长时间解压的文件竟然是损坏的情况,那么这个选项会对你有所帮助。

引号


一般情况下,脚本文件中的参数以空白字符分隔,如果你想在一个参数中包含一个或多个空白字符,你就必须给参数加上引号。
$foo这样的变量在引号中的行为取决于你所使用的引号类型。如果你把一个$变量表达式放在双引号
中,程序执行到这一行时就会把变量替换为它所代表的值;如果你把它放在单引号中,就不会发生替换现象。你还可以通过在$字符前面加上一个\字符以取消它的特殊含义。字符串通常都被放在双引号中,以防止变量被空白字符分开,同时又允许$拓展。

$*与$@


二者都表示命令行中的所有参数,但是$@$*的不同就是,它不使用IFS环境变量,所以当IFS为空时,用它显示出的参数的值不会紧挨在一起,相反使用$*就会这样。
下面我们举个栗子,

$ IFS=''$ set foo bar bam$ echo "$*"

结果为:

foobarbam

而运行:

$ echo "$@"

结果却是这样:

foo bar bam

执行脚本

看到这个题目,我觉得大部分人都会笑,这有什么难的,还好意思写在博客里面。其实,执行脚本有很多方法,但是最好的方法或者说习惯应该是使用./

首先最简单的方法是调用shell:

$ /bin/sh first.sh

当然,你也可以先将脚本文件设为可执行,然后直接输入它的名字来调用它:

$ chmod +x first$ first

但是,你可能会得到一个错误信息告诉你未找到命令。这种情况很可能发生,因为shell环境变量PATH并未被设置为在当前目录下查找要执行的命令。要解决这个问题,你可以在命令行上直接输入命令PATH=$PATH:.或者你可以将这个命令添加到你的.bash_profile(关于此文件的详细信息请参考这里)文件的末尾,然后重新登录进来。显然这种方法是十分繁琐而且不安全的。

最好的方法使用./来调用它(首先必须要有可执行权限):

$ ./first

使用./的一个好处是,他能够保证你不会意外执行系统中与你的脚本文件同名的另一个命令。

find命令

find命令的基本格式想必大家都比较清楚了,find [path] [option] [tests] [actions]。在这里我想说的是[tests]参数。当你的tests参数是-name时,为了确保pattern被传递给find命令而不是shell来处理,pattern必须总是用引号括起。

未完待续…

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 洗完鞋子发黄了怎么办 牛拜单车不退押金怎么办 总裁太爱我怎么办小说 小班走丢了怎么办ppt 走丢了怎么办 教案 ppt 小鸽子一大一小怎么办 烤八寸蛋糕胚表面上色严重怎么办 小班安全教案下雨打雷怎么办 幼儿园小班社会教案下雨打雷怎么办 两个月宝宝吃手怎么办 胳膊上长了个猴子怎么办 刚刚出壳的小鸡怎么办 南宁电动车牌被偷了怎么办 南宁电车车牌被偷了怎么办 电车车牌被偷了怎么办 上海电动车车牌被偷了怎么办 太子摩托车离合回的慢怎么办 指甲小月牙太少怎么办 牛仔裤用84泡了怎么办 蓝色的衣服晒红怎么办 厨房用的剪刀开合很紧怎么办 理发的剪刀钝了怎么办 小孩眼睛肿了怎么办才能消肿 柿子和螃蟹后要怎么办 柿子和螃蟹吃了怎么办 吃了没熟的虾怎么办 邻居小孩怕我家小狗怎么办 心里有一道坎过不去了怎么办 刚买的小狗怕人怎么办 一年级孩子字写不好怎么办 小狗三天没吃了怎么办 捡到一只流浪猫怎么办 仓鼠四肢红肿圈状怎么办 泰迪的鼻子干燥怎么办 小狗眼睛有白色浓稠物怎么办 流浪狗生了小狗怎么办 学生字写得很差怎么办 猫身上粘老鼠胶怎么办 抄东西抄的手疼怎么办 皮质物品被油性笔划了怎么办 在小区猫丢了怎么办