暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux下的Centos 6.5 基础命令讲解 <3>基础不牢,地动山摇

爱婷如命一生一世 2017-03-14
441

上回说完了mkdir -p的递归创建之后,我接着分享基础命令。

因为在众多的命令里,我们都不可能都去记住他,所以必须要有一个好的办法来解决,那就是系统自带的帮助命令,我要利用帮助这个功能来解决各种系统基础命令的由来!

帮助命令:Man 

比如,我想知道mkdir 这个命令的用法:我可以用 man 想要查看的命令,来查看具体的内容,你看里面就有了mkdir的由来,还有参数的用法。

    

还有个帮助命名: --help,这个命令也可以达到我们想要的命令帮助,自己查询就可以了! 

即使不愿因用以上这两个命令(原因就是纯英文,对于国人来说看的比较费劲)上网查询就可以了,百度一下嘛(如果能用谷歌最好,因为排错这一块用谷歌查询比较全方位!上不去谷歌就用翻墙啥的),带上Linux 就可以了!但是一定要带上自己的案例,好加深印象!


---------------

在敲击命令的时候要覃勇TAB键,帮你补全。

接着我们回归面试考官爱考的基础命令问题:

 10. root权限下,已知/data目录下已经存在的shijian.txt的文件,如何执行命令才能把/tmp/shijian.txt拷贝到 /data 下覆盖掉/data/shijian.txt,而让系统不提示是否覆盖呢?  在大批量文件的复制中,如果老让你确认,会降低工作效率,很麻烦!

如果我直接用cp执行的话,肯定会让你选择是还是NO,因为像CP RM 这些命令受系统机制保护,都会人性化的询问确定。

第一种办法:在命令前增加 \

第二种办法:通过查看CP这个命令的所在的系统位置:

whitch 查看命令的路径!

然后跟上命令的全路径,执行拷贝操作,也不会提示是否覆盖!

那么问题来了,技术总监那边肯定会问你,为什么用这样的办法才能解决?它的原因是什么??

那就是别名造成的。

别名作用:防止误操作,保护危险命令;建议不修改!别名的好处就是将复杂的字符串缩减成一个简单的命令!

用alias (这个命令比较特殊,属于bash的内置命令,可以用 man 来获取帮助)查看系统内的命令别名:我可以看到cp -i 的i 就是确认功能

所以我要通过修改别名达到这个目的,我可以去掉别名!

然后我在执行这个复制的命令,发现就没有提示了!

但是呢,为什么有别名,就是起了保护作用,所以在安全角度来讲,还是不建议删除掉别名的选项的,主要是服务器不是你一个人在搞,假如别人不知道的话,那就惨了!

我现在为了安全起见,还是将CP 恢复别名吧!添加完之后又恢复了!呵呵!

别名其实也很重要,合理利用可以提高工作效率!比如我想重启网卡,我可以定义一个别名:cqwk=/etc/init.d/netwrok restart

然后我在输入cqwk ,哈哈,很神奇吧!就是这么快!

当然,自己定义的别名,在系统重启之后,这些都会消失,所以我们需要进入到alias这个别名的文件里去保存:~指用户的家目录。

用vi 进去编辑就保存可以了,就不担心系统重启后自己定义的别名会失效!

还有很多可以利用,这里我就不列举了!网上有很多的例子,可以自己查询

-----------

我来说下find 这个命令,这命令功能非常强大,也很复杂,这里我只做下简单的介绍,以后我要是在分享更多的服务应用时,这个命令还会拿出来分享的。

find:查找 很重要的一个命令!!

在目录下面查找文件,还有各种参数!

列举一个查找cat 这个命令:跟which 结果是一模一样!、

我用find -type(类型) f (文件) -name "cat"来执行。

速度来说没有 which来的快,如果第二次在查询,因为有缓存,所以会快。

查找shijian.txt文件

那么删除文件的时候,我也可以用find 配合来删除,如果用rm -f  删除的话,有时候会造成一些问题,

比如我要删除/tmp下的shizhong.txt,可以用find 来配合

{}代表find 找到的内容

exec 一个衔接的命令,就是把前面的内容交给后面的命令来执行!

;是bash的特殊意义,用反斜杠转译

但是这个命令不好记,所以不推广!

假设查找的文件多的话又想删除多个,用find 配合删除比较有效率

|  管道符

管道:管道是用管子、管子联接件和阀门等联接成的用于输送气体、液体或带固体颗粒的流体的装置。

在Linux下,就是把前面查询的结果传送到另一面,到后面被一个命令执行!

也可以这么认为:通过管道把前面一个命令的输出交给后一个命令继续执行!

管道符在书写命令时,可以不跟空格!这里我跟了,以后会避免的!

xargs 删除多行文件,我这里只有一个shijian.txt,如果多的话,用xargs 很适合!如下图,用xargs 是最合适,不同路径下的相同名字文件!

find 这个命令功能是强大的,也可以根据时间来查找。

例如,我用find 查找3天以前前 /root 下面的所改动的文件有哪些?

可以用以下命令来解决这个事情。

-mitme :按照修改时间查找的参数。这个在Web应用上删除一些过期的日志就显得非常重要了!

关于mtime的时间用法我还想补充一下:

比如说我要删除网站3天前没用的过期数据,这里我可以精确查找所有的.log日志文件,然后按整行 强制删除

*代表所有。

所以不懂的话,要勤用帮助命令

仔细看的话,TYPE还不仅仅能查文件,还可以查目录呢,英文看的费劲的话,就直接百度看使用文档即可,我一般都是这样^^

----------------------------------------------------



         11.只查看系统文件/tmp/xx.txt里面的20-30行

先引出一个seq命令 ,这是个很复杂的命令: 序列的意思,打印序列!

我可竖着打印出来:

也可以这样写 开头结尾

也可以间隔按照规律打,中间是步长的数值:

咱也可以倒着打, 用管道符连接 tac

也可横着打印出来并以空格隔开用 -s和 “”

还可以用+符号来衔接:都可以用!

shell编程时常用!

然后我们用重定向,将100行的内容输入到xx.txt的文件里。

然后用vi或者cat查看xx.txt里面的文件是有100行的!

为了更准确的表达,我还是用vi 来查看,因为vi 里面可以用sed nu,高亮的为行数!

那么根据题目,我只需要看xx.txt里面的20-30行的内容,我就要用三剑客的老二了 sed 来处理: 这样的效率会比用head 和tail 来掐头去尾来的快一些!

-n 取消默认输出,P打印出来


用了三剑客老二sed 之后,我尝试的用更为强大的awk来演示下,虽然比较难,但是我也要分享出来。因为日后工作往往会碰见更难的问题,这就需要更强大的命令来解决它!

awk一般的用法是这样格式:

命令如下:看起来是不是很高大上??但是没有sed方便,有点复杂咯!

我来解释下吧:如下图,我解释的很清楚了。

也可以打印一行,记住要用==来表达!

虽然AWK在处理行上并没有sed 方便,但是在输出列上却是有独到之处!

时间。

举个例子:系统的用户和密码所在的文件,里面有很多的以:分割的列。这样看起来很凌乱

所以我需要看每一行的以:分割的第一列的内容,我用以下命令来解决这个需求问题:命令如下:

我来解释下:只需熟练方可大成!!

时间关系,下次我继续分享吧!


文章转载自爱婷如命一生一世,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论